在学习Linux中明白了linux并不是版本系数越高就是好的,而是要看其版本功能是否更加高效,稳定,安全来确定是不是最好的版本。如需更换新版本,一般要在实验环境里进行3-6个月的试验!
在Linux中root拥有极高的权限甚至可以达到自杀的效果,所以在工作中基本很少直接登录root用户 而是用普通用户登录 在系统出现故障的时候普通用户权限达不到我们才可以通过root用户取得更高的权限,从而清除故障,清楚完成后立即换回普通用户。
Linux的哲学思想:
1、一切皆文件
linux把几乎所有的资源都抽象为文件的形式,甚至连硬件、网络通信使用的套接字以及管道皆如此
文件:一组有边界的位于存储设备中的流式数据
2、由众多的功能单一的小程序组成,却可以实现复杂的任务
功能单:每个小程序只做一件事,并且要做好
复杂任务:尽可能完美的组合多个小程序,让其功能发挥到极致
3、尽量避免与用户进行直接交互,易于以编程的方式实现自动化任务实施
4、使用纯文本文件保存程序的配置信息
平面结构管理文件,效率及其低
分层结构
文件系统(分层编址)
/:原初起点
元数据:描述文件的属性
数据:文件的内容
在文件系统中,基于文件名引用文件,按名来进行存取,在文件系统中,对于文件名有一系列的规定
1、文件名不能包含“/”字符
“/”表示根文件系统
“/”表示路径分隔符
2、文件名的长度不能超过255字符
3、在同一位置中,文件名不能重复
4、文件名要求严格区分大小写
使用路径的概念来表示文件的具体位置;
路径:定位一个文件所在的位置时,所必须经过的目录的层次结构;
路径的描述方式:
结对路径:
一切从“/”开始查找的路径
相对路径:
从“工作目录(当前目录)”开始查找的路径
.:表示当前目录;
..:表示当前目录的父目录;
注意:如果顺路就用相对路径,如果不顺路就用绝对路径;
在目标文件的绝对路径中,是否包含当前目录。
工作目录:e
到达M文件的绝对路径:/a/e/m,因此用相对路径更容易;
./m,通常.可以省略m
到达z文件的绝对路径:/d/k/z/,因此用绝对路径可能更容易:
../../d/k/z
同时Linux分为两种操作界面分别是图形界面和命令行界面
家目录:每个用户登录系统时的当前目录,也是每个用户的起始目录:~代指
任何一个路径都可以分为两部分:
文件基名:basename
文件目录名:dirname
例如:/d/k/z
z为基名,/d/k为目录名
HFS——层级标准
/:(根目录下面有很多字文件)
bin:普通用户可以执行的普通操作命令
boot:引导操作系统启动的静态文件,包括:引导程序,内核,initramfs等
dev:device 设备
块设备:能够实现数据存放的设备,随机访问
字符设备:能够实现数据传输和数据处理的设备,顺序访问(显示器属于字符设备)
etc:存放着主机专用的系统配置文件
home 普通用户的家目录的根
lib、lib64:存放共享库文件的目录表,内核的模块
media:可移动设备的挂载点
mnt:临时的文件系统的挂载点
opt:以前是非常流行的第三方应用程序的安装目录(逐渐废弃)
root:超级用户root的家目录
sbin:存放那些只有超级用户root能够执行的管理类命令
srv:存放由系统提供的各种服务数据(逐渐废弃)
tmp:temperate,临时文件目录,每隔30天自动清除目录中30日之内没有访问的数据
usr:linux系统的第二根,主要安装第三方应用程序
/usr/local第三根,主要用于编译安装第三方应用程序
/usr/src:存放应用程序的源代码
ver:可变化的数据
伪文件系统:
proc:process,进程
sys:system
文件类型:
根据颜色:
黑色或白色:普通的文本文件
绿色:可执行文件
黄色:设备文件
红色:包文件(压缩包,归档包,软件包)
深蓝色:目录文件
天蓝色:符号链接文件,相当于windows快捷方式
紫色:套接字文件
棕色:管道文件
根据标记:
-:文本文件
b:块设备
c:字符设备
d:目录文件
l:符号链接文件
p:管道文件
S:套接字文件
命令提示符:[[email protected]~]# [用户登录名@非完整格式的主机名 工作目录]#|$
Root(前面):当前登录的用户账户名称
Mylab11(中间):非完整格式的计算机名称
~(后面):在执行命令时的当前目录(currunt directory),也叫工作目录(working directory),~符号代表用户的家目录
#:命令提示符
#:超级用户root
$:普通用户
程序一般包含四类文件:
二进制文件:可执行文件
Windows:EXE(execute)msi
Linux:ELF
API:Application Programming Interface,应用程序编程接口
POSIX:软件开发接口国际标准(portable operating system 可移植操作系统)
ABI:Application Binary Interface应用程序二进制接口
头文件/库文件:
Windows:DLL(dynamic linked library)动态库
Linux:so(shared object)共享库
Ko(kernel object)内核库
A静态库
帮助文件:使用说明书
配置文件:配置程序参数
命令的本身其实就是二进制文件!
命令的格式:
command options arguments[parameters]
Command(命令):想要执行的操作主体,进程
内部命令:内建于shell中的命令
外部命令:通过安装应用程序而得到的命令
第一次执行通过path变量中的路径进行查找,以后只要hash缓存中依然有缓存记录,就不会再查找path变量,直接查找缓存。
使用type命令查看一个命令属于内部还是外部。
Tape(查询命令是内部命令还是外部命令)
Options(选项):此此命令执行过程中所使用的特性
短选项:
-CHAR
一次可以写多个,-a,-l,-d ==> -ald
长选项:
-Word:--help --list --human-readable
长选项不能合并书写,只能一个一个写
注意:
1.有些选项需要额外的参数
2.有些选项可以不用-引导,有些命令的选项一定不能加-
3.有些命令的长选项使用一个-
Arguments(parameters参数):此次命令执行的操作对象
有些命令可以同时有多个参数,但是参数之间,必须要用空白字符分隔
注意:
1.命令在书写的时候,command(命令)、options(选项)、Arguments(parameters参数)之间必须使用空白字符分隔。
2.有些命令在书写时,options(命令)和Arguments(parameters参数)位置可以调换。
3.命令中的所有组成部分,严格区分大小写。(文件系统规定严格)
获取命令的使用帮助:
[]:可以省略不写,也可以根据需要填写:
<>:必须书写
…:有更多的
a|b|c:多旋翼
XXXXX.gz(Linux压缩包)
Tape(查询命令是内部命令还是外部命令)
内部命令:
Help (command)
1.使用--help选项
2.man(manual)
Man九章
1.用户命令(所有用户可以执行的普通命令)
2.系统调用
3.C库函数
4.设备和特殊文件
5.配置文件格式
6.游戏相关的帮助信息
7.杂项
8.管理类命令(只有root能够执行的管理命令)
9.内核相关
每个man手册中都偶有很多字段:
Name:程序的名称及相关的功能简介
Synopsis:命令使用的语法格式
Description:程序的详细描述信息
Options:选项的用法及含义的详细说明
Author:程序的作者信息
Reporting bugs:报告程序中所包含的BUG的方式
Examples:命令的使用范例
See also:额外的参考内容
Files:与该程序相关的其他文件,如配置文件等