[关闭]
@Chiang 2019-10-02T14:51:12.000000Z 字数 2891 阅读 544

文件与目录管理

Linux


比较特殊的目录

  • . 代表此层目录
  • .. 代表上一层目录
  • - 代表前一个工作目录
  • ~ 代表目前使用者身份所在的家目录
  • ~account 代表account这个使用者的家目录(account是个账号名称)

环境变量

当我们在执行一个命令的时候,举例来说ls好了,系统会依照PATH的设置去每个PATH定义的目录下查找文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先查找到的同名命令先被执行

  1. # 查看$PATH
  2. echo $PATH
  3. # 设置$PATH,不建议将"."加入PATH的查找目录中
  4. PATH="${PATH}:/root"

相关命令

cd 切换目录

  1. # 切换到家目录
  2. cd ~

pwd 显示目前所在的目录

  1. # 显示目录
  2. pwd
  3. # -P 显示出真正的路径,而非使用链接路径
  4. pwd -P

mkdir 建立新目录

  1. mkdir [-mp] 目录名称
  2. # -m 直接设置文件的权限,不使用默认权限(umask)
  3. # -p 递归创建目录

rmdir 删除空的目录

  1. # 递归删除 -p
  2. rmdir [-p] 目录名称

ls 文件与目录的查看

  1. # 系统查询命令的使用方法
  2. ls --help
  3. info ls
  4. man ls

cp 复制

rm 删除

mv 移动

basename 获取路径的文件名

dirname 获取路径的目录名

cat

将一个文件的内容连续打印在屏幕上

  1. cat [-AbEnTv]

tac

由最后一行先显示,将一个文件的内容连续打印在屏幕上

nl 添加行号打印

  1. nl [-bnw] 文件

more 一页一页翻动

  • 空格键(space):代表向下翻一页
  • Enter:代表向下翻一行
  • /字符串:代表在这个显示的内容当中,向下查找字符串这个关键词
  • :f:立刻显示出文件名以及目前显示的行数
  • q:代表立刻离开more,不再显示该文件内容
  • b或Ctrl+b:代表往回翻页,不过这操作只对文件有用,对管道无用
  1. more /etc/man_db.conf

less 一页一页翻动

  • 空格键:向下翻动一页
  • [pagedown]:向下翻动一页
  • [pageup]:向上翻动一页
  • /字符串:向下查找字符串的功能
  • ?字符串:向上查找字符串的功能
  • n:重复前一个查找(与/或?有关)
  • N:反向的重复前一个查找(与/或?有关)
  • g:前进到这个数据的第一行
  • G:前进到这个数据的最后一行去
  • q:离开less这个程序
  1. less /etc/man_db.conf

head 取出前面几行

  1. head [-n number] 文件
  2. head [-n -number] 文件

tail 取出后面几行

  1. tail [-n number] 文件
  2. tail [-n -number] 文件
  3. # 持续刷新
  4. tail -f

od

  1. od [-t TYPE] 文件

touch 修改文件时间或创建新文件

  1. touch [-acdmt] 文件

file 观察文件类型

判断tar包使用的是哪种压缩方式

  1. file 文件名

which 查找执行文件

  1. # 根据PATH这个环境变量所规范的路径,去查找执行文件的文件名
  2. which [-a] command

type 查找命令是否为Bash shell的内置命令

  1. type [-tpa] name

whereis 由一些特定的目录中查找目录

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

locate/updatedb

  • locate 寻找数据库特别快,这是因为locate寻找的数据是由已建立的数据库 /var/lib/mlocate/ 里面的数据所查找到的,所以不用直接再去硬盘当中读取数据
  • updatedb: 根据 /etc/updatedb.conf的设置去查找系统硬盘内的文件,并更新 var/lib/mlocate 内的数据库文件
  • locate: 依据 /var/lib/mlocate 内的数据库记录,找出用户所输入关键词的文件名

find

  1. find [path] [option] [action]
  2. # 与时间有关的选项
  3. # 将过去系统上面24小时内有修改过内容的的文件列出
  4. find / -mtime 0
  5. # 寻找/etc下面的文件,如果文件日期比/etc/passwd新就列出来
  6. find /etc -newer /etc/passwd
  7. # 与使用者或用户组名称有关的参数
  8. find / -uid n
  9. find / -gid n
  10. find / -user name
  11. find / -group name
  12. find / -nouser
  13. find / -nogroup
  14. # 与文件权限及名称有关的参数
  15. find / -name "*passwd*"
  16. find / -size +1M
  17. # 文件类型:
  18. # f: 一般正规文件
  19. # b,c: 设备文件
  20. # d: 目录
  21. # l: 链接文件
  22. # s: socket
  23. # p: FIFO
  24. find / -type s
  25. # 查找文件权限刚好等于mode的文件
  26. find / -perm mode
  27. find / -perm 0744
  28. # 查找文件权限必须要全部囊括mode的权限的文件
  29. find / -perm -mode
  30. # 查找文件权限包含任一mode的权限的文件
  31. find / -perm /mode
  32. find / -perm /7000
  33. # 额外可进行的操作 -exec
  34. find / -perm /7000 -exec ls -l {} \;

find / -perm /7000 -exec ls -l {} \;

  • {} 代表的是由find找到的内容,find的结果会被放置到{}位置中
  • -exec 一直到 \; 是关键词,代表find额外操作的开始-exec到结束\;,在这中间的就是find命令内的额外操作.就是ls -l {}
  • 因为 ; 在bash环境下是有特殊意义的,因此利用反斜杠来转义

find 相关的时间参数意义

  • +4 代表大于等于5天前的文件: ex > find /var -mtime +4
  • -4 代表小于等于4天内的文件: ex > find /var -mtime -4
  • 4 则是代表4-5那一天的文件: ex > find /var -mtime 4

atime,ctime与mtime 的意义

mtime 修改时间(modification time),默认情况下显示修改时间

当文件的[内容数据]变更时,就会更新这个时间,内容数据指的是文件的内容,而不是文件的属性或权限

ctime 状态时间(status time)

当文件的状态改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间

atime 读取时间(access time)

当该文件的内容被读取时,就会更新这个读取时间,举例来说,我们使用cat去读取/etc/man_db.conf,就会更新该文件的atime


参考资料:
鸟哥的Linux私房菜

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注