LInux基础之目录、文件相关知识总结

来源:互联网 发布:linux ibus pinyin 编辑:程序博客网 时间:2024/06/05 15:07
=== 目录与文件管理相关总结 ===
扇区sector:磁盘最小存取单位,大小512字节
块block:文件存取的最小单位,一般为4KB
inode 节点表 文件原信息存储区 一般为256字节 可使用mkfs命令更改其大小
一.节点表
节点(inode),又被称为索引节点,文件一般由两部分组成,一部分是用户数据,而另外一部分是包含文件各种属性信息(如文件大小,创建时间UID,GID等)的元数据,其中节点像人的身份证一样唯一标识一个文件,便于管理文件系统,计算机使用节点识别文件。
查看节点表详细信息:
      stat 文件或目录名 ...
节点的详细信息包括:
文件大小(单位字节B)      块大小        IO 块(IO缓存大小)
设备名          节点号Inode          硬链接数
权限   Uid  Gid
最近访问Access   (最后一次查看文件时间)
最近更改Modify    (最后一次修改文件数据内容时间)
最近改动Change  (最后一次修改INode的时间,INode包括文件类型、权限、文件大小、文件创建时间、文件修改时间、文件访问时间等)
创建时间                (第一次生成文件的时间)
硬链接hard link:
文件有相同的 inode 及 data block;
硬链接文件的创建会增加i_nlink的数量
只能对已存在的文件进行创建;
不能交叉文件系统进行硬链接的创建;
不能对目录进行创建,只可对文件创建;
删除一个硬链接文件并不影响其他有相同 inode 号的文件。
使用link 或 ln 命令创建硬链接
link | ln [源文件] [链接文件]
软连接soft link :d
软链接有自己的文件属性及权限等;
可对不存在的文件或目录创建软链接;
软链接可交叉文件系统;
软链接可对文件或目录创建;
创建软链接时,链接计数 i_nlink 不会增加;
删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。


二.文件及目录管理相关的基本命令
1.pwd [option]   #查看当前所在路径
       -L #显示软连接逻辑路径
      -P #显示文件实际路径而不是链接文件路径


2.cd  [dirnmae] #切换到指定目录./表示当前目录 ../表示上一级目录 - 前一个目录 !$ 引用上一个命  令的参数作为cd命令的参数


3.ls [选项]... [文件]...  #显示该目录下的所有文件及目录
  -a #显示所有目录及文件,包括隐藏文件与目录
  -A #与-a相同,不显示. 与 .. 目录
  -d #显示所在目录信息而非目录下的文件信息
   -h #以合适的单位显示文件大小
  -si #与-h类似单位进制为1000而不是1024
   -l #显示文件或目录的详细信息,与ll 命令功能相同,默认显示文件更改时间,大小单位字节
   -u #显示文件或目录最后被访问的时间需与-l配合使用
   -c #显示文件或目录最后被改动的时间需与-l配合使用
   -t #按修改时间排序,最近修改的在前,默认文件名称排序
   -i #显示文件的节点号
   -v #根据版本号进行排序显示
   -s #以块为单位列出文件大小
   -R #递归显示


 4.   touch [选项]... 文件... #创建文件或更改文件的修动时间
  -a #只更改访问时间
  -c #不创建任何文件
  -d  时间 #指定文件修改时间使用指定字符串表示时间而非当前时间
  -h 文件名 #只更改指定文件,不修改其所链接的文件
  -m #只更改修改时间
  -r  文件名 #将文件时间戳设置为指定文件的时间戳
  -t #与-d 类似,时间格式不同


5. mkdir [选项]... 目录... #创建目录
  -m 权限 #指定目录权限
  -p #创建多级目录
  -Z #设置安全上下文,开启SELinux时生效


6.cp [选项]... 源文件... 目录 #复制文件或重命名文件
必选参数对长短选项同时适用。
  -a #等价于-dpR
  -b #若覆盖已存在的文件,将其备份后覆盖
  -d #若源文件为链接文件则目标文件也同样为链接文件并指向源文件所指文件
  -f #强制复制不询问
  -i #覆盖已有文件前询问属主
  -l #不复制源文件,生成一个硬链接
  -L, --dereference            always follow symbolic links in SOURCE
  -n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
  -P #复制时保留源文件或目录属性
  -R|-r #递归复制目录及其子目录内的所有内容
  -s #只创建软连接链接而不复制文件
  -S #备份时指定后缀
  -t 目录 #将参数指定的文件或目录复制至目标目录
  -T #将目标目录视作普通文件
  -u #更新,只在源文件比目标文件新,或目标文件不存在时才进行复制
  -v #显示详细的进行步骤
  -x #不跨越文件系统进行操作
  -Z  #将目标文件的安全上下文恢复为默认


7.rm [选项]... [文件]... #删除文件
  -f #强制执行,不提示
  -i #操作前进行询问每一个是否删除
  -r #递归操作
  -d #删除空白文件夹


8.mv [选项]... 源文件... 目录 #移动或重命名目录或文件
  --backup=参数 #若覆盖则为每个已存在的目标文件创建备份
  -b #类似--backup 但不接受参数
  -f #强制执行,覆盖前不询问
  -i #覆盖前询问
  -n| --no-clobber #不覆盖已存在文件
    如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
  --strip-trailing-slashes #去掉每个源文件参数尾部的斜线
  -S #指定目标文件的后缀
  -t, --target-directory=DIRECTORY #将文件的参数设置为指定文件的参数
  -T, --no-target-directory #将其视为普通文件进行操作
  -u #更新,只有当源文件比目标文件新或目标文件不存在时才执行操作
  -v #显示详细信息
  -Z, --context   #将目标文件的SELinux属性恢复为默认


9.find [选项] [路径] [表达式] #搜索文件或目录
表达式:
      -empty #查找空白文件或目录
      -group #按组查找
      -name #按名称查找
      -iname #按名称查找,不区分大小写
      -mtime #按修改时间查找
      -size #按大小查找
      -type #按类型查找  f 文件  d 目录  b | c 设备  l 链接
      -user #按用户查找
      -exec 命令 #对找到的文件执行特定命令
      - a  #and 并且
      -o #or 或
优先级:a   0


10.du [选项]... [文件]... #统计文件或目录的大小
  -a #显示所有
  -b #指定容量单位为byte
  -k #指定单位为KB
  -m #指定单位为MB
  -s #只显示总和
  -h #人性化显示容量大小
  -H #类似-h 进制为1000
  -L 链接文件 #显示软连接文件的源文件的大小
  -D #功能与-L相同
  -c #显示文件的总大小


11.:rmdir [选项]... 目录... #删除指定的空目录
      --ignore-fail-on-non-empty #忽略仅由目录非空产生的所有错误
     -p #递归操作,删除目录时若父目录为空则一同删除
    -v #显示操作进程


三.文件的查看相关命令
1.cat [选项]... [文件]... #查看文件内容
  -A #显示所有内容
  -b #显示行号不包括空白行
  -E #
  -n #显示行号包括空白行
  -s #压缩空白行,将两行以上的空白行用一行代替


2.more [options] <file>... #分页查看文件内容
option :
    -d #显示提示信息
    -s #压缩空行,多行空格只显示一行
    -u #不显示下滑下
   +<n> #从第n行开始显示
命令:
  <空格键>                显示下 k 行文本[当前屏幕尺寸]
z                       显示下 k 行文本[当前屏幕尺寸]*
<回车键>                显示下 k 行文本[1]*
d 或 ctrl-D             滚动 k 行[当前滚动尺寸,初始值为 11]*
q 或 Q 或 <interrupt>   退出 more
s                       跳过下面 k 行文本[1]
f                       跳过下面 k 屏文本[1]
b 或 ctrl-B             跳过上面 k 屏文本 [1]
'                       转到上次搜索开始处
=                       显示当前行号
/<正则表达式>           搜索正则表达式第 k 次出现处[1]
n                       搜索前一正则表达式第 k 次出现处[1]
!<cmd> 或 :!<cmd>       在子 shell 中执行 <cmd> 命令
v                       在当前行启动 /usr/bin/vi
ctrl-L                  重绘屏幕
:n                      转到后面第 k 个文件[1]
:p                      转到前面第 k 个文件 [1]
:f                      显示当前文件名和行号
.                     重复前一命令


3.less [option ]  <file> ... #分页显示文件内容
与more类似,可使用方向键控制显示内容,上下键 上一行或下一行 左右键 左右移动显示
option :
   -e #显示完后退出
   -f #强制显示
  -g #搜索时不高亮
  -l #搜索时忽略大小写
  -N #显示行号
  -s #压缩空行
  -x<n> #指定Tab键跳过的空格数


4. head [选项]... [文件]... #显示文件头部内容,默认显示前10行
  -c<n> #显示前n个字符
  -n<n> #显示前n行 
  -q | --quiet | --silent #不显示文件名的文件头
  -v,|--verbose #总是显示文件名的文件头
  -z   #换行符设置为NUL


5.tail [选项]... [文件]... #显示文件尾部内容,默认显示后10行
  -c  #显示尾部n个字节的内容
  -f #动态监控文件内容相当于 tailf命令
   --retry    #当文件不可访问时重新尝试打开文件,需与-f配合使用
  -F #相当于-f与--retry同时使用
  --pid PID #与-f连用,当指定的进程结束后退出tail
  -q #不显示文件名信息
  -s <秒> #与-f连用,指定刷新文件时间间隔
  -v #显示文件名信息
  -z #将换行符设置为NUL


6.wc [选项]... [文件]... #显示文件中的行、单词、字节统计信息,若未指定文件则从标准输入中读取
  -c #显示文件字节统计信息
  -m #显示文件字符统计信息
  -l #显示文件行数统计信息
  -L #显示最长的一行的长度
  -w #显示文件单词统计信息


7.echo [字符] .... #显示指定字符信息
       -n #输出时不换行
       -e #支持转义字符
  转义字符:
\\  #反斜线
\a  #警告
\b  #退格键,删除前一个字符
\c #添加到行尾表示不添加换行符,即输出后不换行
\f #换行输出光标不改变位置
\n #换行
\r #只改变光标的位置不换行
\t #水平插入Tab
\v #垂直插入Tab
\0NNN #NNN为三位八进制数,代表ASCII所代表的符号
\xHH #HH为两位位十六进制数,代表ASCII所代表的符号
\www[字体颜色值 m 显示字符 \www[0m   #设置字体颜色,www为标识符,可以用其他字符替代
  颜色值:
30  黑色    31 红色   32 绿色  33 黄色   34 蓝色 35 紫色 36 深绿 37 白色


文件的压缩与解压
1. gzip [OPTION]... [FILE]... #压缩或解压文件后缀名一般为.gz
   -c, --stdout      write on standard output, keep original files unchanged
  -d #解压文件
  -f #强制执行
  -h #帮助文档
  -l #显示压缩文件信息
  -L #显示gzip版本及版权信息
  -n #压缩后不保留源文件名及时间戳
  -N #压缩后保留源文件名及时间戳
  -q #不显示警告信息
  -r #递归执行
  -t #测试压缩问价完整性
  -v #显示执行进程
  -V #显示gzip版本信息
  -1 #最小压缩比压缩,耗时少,压缩文件较大
  -9 #最大压缩比压缩,耗时多,压缩文件小  ,1~9 都可以用来指定压缩比例


2. bzip2 [OPTION]... [FILE]...  #文件压缩及解压,后缀名一般为.bz2或.bz
   -h #帮助文档
   -d #解压
   -z  #强制执行压缩
   -k #保留源文件
   -f #强制覆盖已有同名文件
   -t #测试压缩文件完整性
   -c #将执行结果输出
   -q #不显示警告信息
   -v #显示执行进程
   -L #显示软件版本和许可
   -V #显示版本信息
   -s  #降低执行时内存使用量
   -1 .. -9  #与gzip相同
   --fast   #等价于-1
   --best  #等价于-9
 
3.tar <format> [option] [ 文件]
format :
 -c #创建打包文件
  --delete #删除打包文件
  -r #将文件追加到打包文件
  -t #列出打包文件的内容
  -x #释放打包文件
option :
  -C #指定解压路径
  -f #指定解压文件名称
  -j #打包并压缩,压缩格式为bzip2
 --remove-files #打包后删除源文件
  -Z #打包并压缩,压缩格式为gzip


文件权限补充
chown [option] [owner] [filesname] #更改文件或目录的属主与所属组
 -c #显示执行进程但只显示更改部分
  -f #强制执行,不显示错误信息
  -v #显示执行过程
  -h #更改链接文件时只更改指定文件不更改链接指向的文件
  -R #递归处理


两个特殊权限:
SUID  #拥有suid权限的文件被执行时执行者以该文件的属主权限运行
SGID #拥有SGID权限的文件被执行时执行者以该文件所属组的权限运行
设置SUID与SGID的方法
chmod u+s [filename] #添加SUID权限
chmod g+s [filename] #添加SGID权限
取消时使用 u-s 与g-s 
SGID与SUID占据x权限的位置,若有x权限则显示为小写s,若无x权限则显示为大写S


ACL访问控制权限:
文件的基本权限只能对用户,用户组,其他用户三类进行权限限制,却无法对某个文件或某个用户进行精准的权限限制,ACL便是可以完成对单一文件或用户进行权限限制。
acl文件格式:
第一行:文件或目录名
第二行:文件所属主
第三行:文件所属组
第四行:标记。`
getfacl 文件 #查看文件的acl权限
-a #仅显示文件访问控制列表
  -d #仅显示默认的访问控制列表
  -c #不显示注释表头
  -e #显示所有的有效权限
  -E #显示无效权限
  -s #跳过只有文件
  -R #递归执行,显示子目录或文件的acl权限
  -L 软连接 #逻辑遍历显示软连接所指向的文件的acl权限
  -P #物理遍历显示软连接本身的acl权限
  -t #使用制表符分隔输出格式
  -n #显示用户/组标识
  -p #不去除路径前的 / 符号
  
setfacl 2.2.52 -- 设定文件访问控制列表
用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
  -m #添加文件的访问控制列表
  -M #更改文件访问控制列表条目更改
  -x, --remove=acl 根据文件中访问控制列表移除条目
  -X, --remove-file=file 从文件读取访问控制列表条目并删除
  -b #删除所有扩展访问控制列表条目,保留默认的访问控制列表
  -k #删除默认访问控制列表
      --set=acl #设定替换当前的文件访问控制列表
      --set-file=file #从文件中读取访问控制列表条目设定
      --mask #重新计算有效权限掩码
  -n | --no-mask #不重新计算有效权限掩码
  -d #设置默认访问控制列表
  -R #递归操作子目录
  -L 软连接 #逻辑遍历,修改软连接所指向的文件的acl权限,跳过软连接
  -P #物理遍历,修改软连接本身的acl权限


用户账号相关文件:
账号信息文件:/etc/passwd
保存格式为:
账号名称:密码占位符:(X表示需要密码进行登录,空表示无需密码):UID:GID:附加信息:用户主目录:登录时指定的Shell (/sbin/nologin表示禁止登陆)


账户密码文件:/etc/shadow
保存格式:
账号名称:密码(!!表示无密码,加密显示):上次修改密码与197年1月1日相隔的时间(单位:天):密码有效最短时间(多长时间后才能修改密码单位:天):密码最长有效时间(单位:天,到期后密码会失效):过期前多少天进行警告:密码过期后多少天依然可以使用(此时无法使用旧密码登录):账号失效日期(时间为从1970年1月1日起多少天):保留位


用户组信息文件:/etc/group
保存格式:
组账号名称:密码占位符:GID:组成员信息(附属成员)


组密码文件:/etc/gshadow
保存格式:

组账号名称:组密码:组管理员:组成员(附属成员)

文件颜色的含义:\\
绿色文件: 可执行文件,可执行的程序 \\
红色文件:压缩文件或者包文件 \\
蓝色文件:目录 \\
白色文件:一般性文件,如文本文件,配置文件,源码文件等 \\
青色文件:链接文件,主要是使用ln命令建立的文件 \\
红色闪烁:表示链接的文件有问题,一般为死链接 \\
黄色:表示设备文件 \\
灰色:表示其他文件\\
挂载点:访问文件的入口\\