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]