Linux目录配置标准:FHS
FHS(Filesystem Hierarchy Standard) 目录定义有四种交互作用的形态 可分享的 不可分享的 不变的 /usr(软件放置处) /etc(配置文件) /opt(第三方软件) /boot(内核) 可变动的 /var/mail(邮箱) /var/run(程序相关) /var/spool/news(新闻群组) /var/lock(程序相关) 目录 应放置文件内容 第一部分 FHS要求必须要存在的目录 /bin 系统可执行文件的目录,单人维护模式下还能够被操作的指令 /boot 开机是同的文件,包括linux核心文件以及开机菜单和开机配置文件等 /dev 周边设备以文件形态存放于该目录下 /etc 大部分系统主要配置文件存放的目录 /lib 开机或者/bin还有/sbin指令调用的函数库 /media 可移除设备 /mnt 暂时挂载的目录 /opt 第三方软件目录 /run 开机启动后产生的各项信息,早期为/var/run目录 /sbin 开机过程做需要的指令,包括开机、修复、还原系统命令 /srv 网络服务启动后所需要取用的数据目录 /tmp 临时目录 /usr 第二层FHS设置 /var 第二层FHS设置 第二部分 FHS建议可以存在的目录 /home 系统默认的使用者主文件夹 /lib<qual> 存放与/lib不同格式的二进制函数库,例如64位的/lib64函数库等 /root 系统管理员主文件夹 重要的目录 目录 应放置文件内容 /lost+found ext文件系统产生,当文件系统发生错误,暂存文件目录 /proc 虚拟文件系统,数据存放在内存中,例如核心、进程、周边设备以及网络状态信息等 /sys 虚拟文件系统,主要记录核心和硬件相关信息 /usr目录 目录 应放置文件内容 第一部分 FHS要求必须要存在的目录 /usr/bin 一般用户能用到的指令,目前centos7已将全部使用者指令放置到该目录,/bin链接到该目录 /usr/lib 与/lib目录相同,/lib链接到该目录 /usr/local 管理员安装第三方软件的目录 /usr/sbin 非系统正常运行需要的系统指令,/sbin链接到该目录 /usr/share 只读架构的数据文件 第二部分 FHS建议可以存在的目录 /usr/games 游戏相关数据目录 /usr/include 程序头文件 /usr/libexec 不被一般使用者常用的可执行文件或脚本 /usr/lib<qual> 与/lib<qual>相同,/lib<qual>链接到该目录 /usr/src 源代码目录 /var目录 目录 应放置文件内容 /var/cache 引用文件缓存存放目录 /var/lib 程序数据文件目录 /var/lock 设备或文件锁目录 /var/log 日志文件目录 /var/mail 个人电子邮箱目录 /var/run 程序或服务PID目录 /var/spool 队列数据文件 centos7与早期版本目录差异 /bin --> /usr/bin /sbin --> /usr/sbin /lib --> /usr/lib /lib64 --> /usr/lib64 /var/lock --> /run/lock /var/run --> /run
路径、文件和目录的查看和修改
路径:绝对路径和相对路径 绝对路径:以根目录/开头 相对路径: 1、'.'表示当前目录 2、'..'表示上一级目录 3、'-'表示上一个工作目录 4、'~'表示当前账户的住文件夹(home文件夹) 5、'~account'表示账户account的住文件夹(home文件夹)
目录的查询和切换 cd(change directory),切换文件夹 pwd(print work directory),显示当前目录的绝对路径 mkdir,创建空文件夹 rmdir,移除空文件夹
文件和目录的检视 ls [-aldFh] file/direcrtory -a,显示全部文件,包括隐藏文件 -A,显示全部文件,不包括隐藏文件 -l,显示文件的信息,例如文件的权限和属性等 -F,根据文件、目录等信息,给予附加数据结构信息 -d,列出目录本身的信息而不是目录内的文件信息 -h,将文件大小以更加易读的形式显示出来,例如默认是以bytes为单位,对于大小适合的文件,可以转换为KB、MB、GB等,通常需要配合'-l'一起使用
cp [-adrfpui] source_file[...] destination_file/directory -d,当复制文件为链接文件(link file)时,复制链接文件属性而不是链接文件指向的实际文件 -r,递归操作,同时复制目录以及目录底下的文件 -f,(force)强制进行操作 -p,复制文件原本的所有属性,实际结果与用户权限有关 -u,当文件source_file比destination_file更新时或者destination_file不存在时,才进行动作 -a,等价与-dr -i,进行操作时与用户互动,确认操作是否进行
rm [-fir] file/directory -f,强制操作 -i,进行操作时与用户互动,确认操作是否进行 -r,递归操作,同时删除目录以及目录底下的文件
mv [-fiu] source_file/source_directory destination_file/destination_directory -f,强制操作 -i,进行操作时与用户互动,确认操作是否进行 -u,当source_file/source_directory比destination_file/destination_directory更新时,才进行动作
文件内容的查看 cat [-AbEnTv] file -b,标识出行号,空白行不标识 -E,将结尾符号以$标识出来(END?) -n,标识出行号,包括空白行 -T,将Tab键以^I标识出来(Tab?) -v,显示一些看不出的特殊 -A,等价于 -vTE,显示出特殊字符
tac 同cat,差别在于以行为单位反序输出 nl [-bnw] file -b a/t,空行 '列出/不列' 出行号 -n ln/rn/rz,行号在 '最左方/右方/右方且加0' 显示 -w n,n为数字,表示以多少位数字标识行号 head [-n number] file number为数字,显示文件的前面几行内容,当number为负数时,表示不显示文件的最后几行。number默认值为10 tail [-n number | -f] file -n,number为数字,显示文件的后面几行内容,当number为正数时,表示不显示文件的前面几行。number默认值为10 -f,表示持续检测文件内容并输出最后几行,结束以ctrl-c操作 more 以页为单位翻动 空白键(space)/Enter,向下翻动一页 b/ctrl-b,向上翻动一页,仅对文件有效,对管道数据无效 /string,在显示的内容中向下搜索字符串string :f,显示当前文件名和目前显示行号 q,离开 less 空白键(space)/[pagedown],向下翻动一页 [pageup],向上翻动一页 /string,在显示的内容中向下搜索字符串string ?string,在显示的内容中向上搜索字符串string n,重复前一个搜索动作 N,反向的重复前一个搜索动作 g,返回到第一行 G,返回到最后一行 q,离开 od [-t type] file type: a,默认字符输出 c,ASCII码输出 d [size],十进制输出,每个数占用 size Bytes f [size],浮点数输出,每个数占用 size Bytes o [size],八进制输出,每个数占用 size Bytes x [size],十六进制输出,每个数占用 size Bytes
创建空文件以及修改文件时间 文件时间主要有三种:1、modification time (mtime),文件内容变更记录的时间 2、status time(ctime),文件状态变更记录的时间,例如文件权限和属性变更 3、access time(atime),文件被取用记录的时间 touch [-acdmt] file -a,修改atime -c,如果要修改的文件不存在,此选项使touch不去创建它 -d,可以使用当前/指定时间修改文件的时间 -m,修改mtime -t,可以使用当前/指定时间修改文件的时间,指定时间格式为MMDDhhmm[[CC]YY][.ss](月份日期小时分钟[[世纪]年份][.秒数])
查看文件的类型(file) 利用命令file可以确定文件的所属类型 file filename
文件和目录的默认权限、特殊权限和隐藏属性
文件和目录的默认权限、特殊权限和隐藏属性 新建文件和目录的初始权限满足一下条件: 1、文件和目录的权限与用户的umask值有关,umask数值可以通过命令umask查询。umask默认四组权限,其中第一个数值是特殊权限,其余三个数值对应ugo三种身份权限 umask值是指默认需要去除的权限数值,例如一般用户的umask为0002,指的是others身份用户默认没有写入(write)权限 2、文件创建默认三种身份都没有执行权限x,因此权限最大为666 3、目录创建默认三种身份都拥有执行权限x,因此权限最大为777 4、文件和目录都含有特殊权限 特殊权限有三种:SUID、SGID、SBIT SUID,(1)仅对于二进制文件有效,(2)需要用户对二进制文件具有执行权限x,(3)在执行过程中可以临时获得文件所有者(owner)的权限,(4)仅在当此执行过程有效 SGID,二进制文件:(1)有执行权限x,(2)在执行过程中可以临时获得文件所有群组(group)的权限 目录:()具有r和x权限,可以进入该目录,(2)进入目录后用户的有效群组会变成目录的群组,(3)具有w权限,在该目录下新建文件,文件所属群组为目录的群组 SBIT,(1)仅对文件夹有效,(2)具有wx权限,用户在目录下新建的文件只有拥有者账户和root账户能够删除 同样,对于特殊权限可以跟rwx权限一样进行二进制数值编码 [[SUID] [SGID] [SBIT]] --> [[1/0] [1/0] [1/0]],然后转换成十进制,同样可以通过字符形式授予,u+s授予SUID,g+s授予SGID,o+t授予SBIT,当对应身份具有x权限时,特殊权限显示为小写字母s或t,反之显示为大写S或T
隐藏属性 查看与更改: lsattr [-adR] file/directory -a,列出隐藏文件 -d,列出目录本身的权限而不是目录里文件的权限 -R,递归操作,同事列出子目录的文件 chattr [+-=][ASacdisu] file/directory +,增加属性 -,去除属性 =,赋予属性 A,取用文件或目录,atime不修改 S,文件被修改后会立刻同步写入磁盘 a,文件内容只能增加,不可以修改和删除,root用户才可以设置 c,文件自动被压缩保存,读取时自动解压 d,在dump备份时不包含该文件或目录 i,不能删除,重命名,增加数据甚至是设置链接,root用户才可以设置 s,在进行删除操作时文件数据被彻底删除 u,与s相反,在进行删除操作时文件数据不被彻底删除
指令和文件的搜索
指令和文件的搜索 which [-a] command -a,显示所有包含在PATH里面的命令的路径,而不是第一个符合选项 whereis [-lbmsu] file/directory (搜寻数据库) -l,列出常用搜索文件的目录的路径 -b,仅搜索二进制文件(binary) -m,仅搜索说明文档manual下的文件(manual) -s,仅搜索source下的文件 -u,搜索其他文件 locate [-icblr] name (搜寻数据库) -i,忽略大小写(ignore) -c,输出匹配的文件数量(count) -b '\filename',显示完全匹配文件名的文件路径(basename) -l n,n为数字,表示只显示n行数据 -r,匹配正则表达式 updatedb 立刻更新系统的文件数据库
find [PATH] [option] [action]
