鸟哥的linux私房菜——第7章 Linux的文件与目录管理

一、目录

1. 特殊目录

  • . :当前目录
  • .. :上一层目录
  • - :前一个工作目录
  • ~ :“当前用户”的主文件夹
  • ~account:账号名称为account的用户的主文件夹

2. 常用命令

(1)cd:切换目录  //change directory

用法:cd [相对路径或绝对路径]  // 如cd ..

(2)pwd:显示目前所在的目录  //print working directory

用法:pwd [-P]  //参数-P表示显示当前的路径而非使用连接路径(link),即显示被连接指向的目录的完整路径

(3)mkdir:新建目录  //make directory

用法:mkdir [-mp] 目录名称

-m:强制配置目录的权限(不考虑默认权限umask)

-p:递归地创建目标目录(当不存在上层目录时自动创建)

(4)rmdir:删除“空”目录  //被删除的目录中不能存在其他的目录或文件

用法:rmdir [-p] 目录名称  //参数-p连同上层的“空”目录一起删除

3. 环境变量$PATH  //echo $PATH

在执行命令时,系统会依照PATH的设置去每个PATH定义的目录下查询相应的可执行文件名,先查到的命令先被执行

  • 不同用户的默认PATH不同
  • PATH可以被修改:PATH="$PATH":新添加搜索路径

二、文件与目录管理

1. 查看文件与目录:ls  // -a, -d, -l

2. 复制、删除与移动:cp, rm, mv

(1)cp:复制文件或目录

  • 默认情况下,cp的源文件和目的文件的权限有所变化,目的文件的所有者一般为命令操作用户,可以利用-a实现完整的数据特性复制(用于备份情况)
  • -l为硬连接(hard link);-s为软连接(symbolic link)
  • -i:需确认是否覆盖;-r:递归复制目录

(2)rm:删除文件或目录  //可以删除非空目录

(3)mv:移动文件或目录;或重命名

重命名:直接将文件以新的名称mv到当前文件下,mv myfile myfilename_new  //针对多个文件同时重命名:man rename

(4)取得文件名和目录名

  • basename:取得文件名  basename /etc/sysconfig/network  输出“network”
  • dirname:取得目录名  dirname /etc/sysconfig/network  输出“/etc/sysconfig”

三、文件内容查阅

  • cat  由第一行开始显示文件内容
  • tac  从最后一行开始显示,可以看出 tac 是 cat 的倒写形式!
  • nl   显示的时候,顺道输出行号
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页
  • head 只看头几行
  • tail 只看尾巴几行
  • od   以二进制的方式读取文件内容!

1. 直接查看文件内容:cat, tac, nl

2. 翻页查看:more, less

3. 数据选取:head, tail

tail -f 文件名:文件有数据写入时就立刻显示到屏幕上  //持续检测文件的数据内容,直至按下“Ctrl + c”

4. 非纯文本文件:od

5. 修改文件时间创建新文件:touch

  • 内容修改时间:modification time, mtime  //默认显示
  • 状态变更时间:status time, ctime  //如修改权限后
  • 文件读取时间:access time, atime  //如cat文件后
  • ls -l --time=ctime/atime ....  //默认显示mtime

四、文件与目录的默认权限和隐藏权限

1. 文件默认权限:umask [-S]  //目前用户新建文件或目录时的权限默认值,umask在/etc/bashrc中设置

umask的分数指的是:默认值需要减掉的权限,其中文件默认值为666(rw),目录默认值为777(rwx)

2. 文件隐藏属性chattr, lsattr  //与系统安全相关 +a、+i

3. 文件特殊权限:SUID、SGID、SBIT

4. 查看文件类型:file 文件名

五、命令与文件的查询

1. 脚本文件名的查询  //查找命令的完整文件名,which或type

用法:which [-a] 命令  //如which ifconfig

其中,-a 参数列出PATH路径中所有相应命令,而不是第一个

2. 文件名的查找  //查找文件的完整文件名

whereis和locate是利用数据库查找数据(快速),find直接查找硬盘(较慢)

(1)whereis [-bmsu] 文件或目录名

(2)locate [-ir] keyword(关键词)  //-i:忽略大小写;-r:可接正则表达式

  • 从/var/lib/mlocate/中已创建的数据库查找,速度较快
  • updatedb命令:根据/etc/updatedb.conf的设置去查找系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件

(3)find命令  //直接在硬盘文件系统中查询

 六、权限与命令之间的关系

1. 用户能够进入某目录的基本权限要求

  • 可以使用 cd 等切换工作目录的命令
  • 对目标目录具有 x 权限
  • 如果想要利用 ls 查看目录,需要对目录有 r 权限

2. 用户读取某目录内文件的基本权限要求

  • 可以使用cat, more, less等命令
  • 对目标目录有 x 权限
  • 对文件有 r 权限

3. 修改目录内文件的基本权限要求

  • 可以使用nano或者vi等
  • 对目标目录具有 x 权限
  • 对文件有 r 和 w 权限

4. 创建文件的基本权限要求

  • 目标目录具有 w 和 x 权限

5. 进入某个目录并执行该目录下的某个命令的基本权限要求

  • 对目录具有 x 权限
  • 对文件有 x 权限

猜你喜欢

转载自www.cnblogs.com/hg-love-dfc/p/10323111.html