文件管理类命令是系统基本的命令,这些命令主要对文件内容进行操作,包括文件内容查询、文件内容重定向、更改文件权限、文件创建和删除等。
cat命令全称为concatenate,用于读取文件内容并将读取到的内容输出到标准输出或重定向到文件。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
cat [OPTION] [FILE]...
2)命令常用选项参数说明:
●-n(number):从第一行开始对文件输出的所有行进行编号。
●-b:忽略对空白行的编号。
●-s(--squeeze-blank):将连续的两行空白行合并为一行。
3)示例:
获取/etc/hosts文件的内容:
[root@centos-s8 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4. localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.50 centos8
如果查看的文件内容比较多,可以使用more来分页显示。其中,符号“|”是管道符,作用是把一个命令的输出当作另一个命令的输入。
[root@centos-s8 ~]# cat /root/anaconda-ks.cfg | more #version=RHEL8 ignoredisk --only-use=sda autopart --type=lvm # Partition clearing information clearpart --none --initlabel # Use graphical install graphical ……
cd命令全称为change directory,用于切换目录位置(更改当前的路径)。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
cd [-L|-P] [dir]
2)命令常用选项参数说明:
●-L:强制带符号链接。
●-P:设置内建命令。
3)示例:
切换到/usr/bin/目录:
[root@centos-s8 ~]# cd /usr/bin/ [root@centos-s8 bin]#
返回上层目录:
[root@centos-s8 bin]# cd .. [root@centos-s8 usr]#
如果直接返回家目录,执行cd命令就可以。
chmod命令全称为change mode,用于更改文件可读(r)、可写(w)和可执行(x)的权限。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE...
2)命令常用选项参数说明:
●-c(changes):完成权限更改后,显示更改信息。
●-f:忽略错误信息的输出。
●-R(recursive):以递归的方式更改文件权限。
3)示例:
给/root/anaconda-ks.cfg文件增加可执行权:
[root@centos-s8 ~]# chmod +x /root/anaconda-ks.cfg
文件权限的更改分为添加权限和取消权限,为某个文件添加权限时使用“+”,取消权限时使用“?”。另外,由于文件的权限由用户、同组用户和其他(分别表示为u、g和o)组成,因此只给某个组成部分添加权限时要具体指定,比如:
[root@centos-s8 ~]# chmod g+w /root/anaconda-ks.cfg
chown命令全称为change owner,用于更改文件的所有者和组。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE...
2)命令常用选项参数说明:
●-c(changes):显示文件所有者更改后的信息。
●-f:忽略错误信息的输出。
●-R(recursive):以递归的方式更改目录及子目录的所有者。
●-v(verbose):输出命令执行的过程。
3)示例:
把/root/anaconda-ks.cfg文件的用户和组都更改为cuser(注意,cuser这个用户和组在系统中要存在,否则会更改失败):
[root@centos-s8 ~]# chown cuser:cuser /root/anaconda-ks.cfg
du命令全称为disk usage,用于对文件和目录的占用磁盘空间进行统计。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
du [OPTION]... [FILE]... du [OPTION]... --files0-from=F
2)命令常用选项参数说明:
●-a(all):计算每个文件的大小。
●-b(byte):以byte为单位显示文件的大小。
●-h:计算每个目录的大小。
●-L:计算所有文件的大小。
●-s(summarize):显示每个文件的大小。
3)示例:
统计整个/etc/目录占用的磁盘空间:
[root@centos-s8 ~]# du -sh /etc/ 22M /etc/
要计算某个目录占用多少磁盘空间,直接指定就可以,如果要计算指定目录下所有的子目录和文件大小,可以使用通配符来辅助。例如,统计/etc/目录下的文件和目录大小:
[root@centos-s8 ~]# du -sh /etc/* …… 4.0K /etc/xattr.conf 0 /etc/xdg 0 /etc/xinetd.d 0 /etc/yum 0 /etc/yum.conf 56K /etc/yum.repos.d
如果还要统计目录下的子目录,指定要统计的子目录路径就可以。
find命令用于查找指定目录下符合条件的文件,并将查找的结果输出。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
find [OPTION(S)] [path...] [expression]
2)命令常用选项参数说明:
●-amin n:查找在过去n分钟内被读取过的文件。
●-atime n:查找n×24小时内读取过的文件。
●-cmin n:查找在过去n分钟内被更改过的文件。
●-ctime n:查找在过去n×24小时内被更改过的文件。
●-ctime n:查找n小时前被修改的文件。
●-mmin n:查找在过去n分钟内被修改的文件。
3)示例:
查找根目录下以tty1开始的全部文件:
[root@centos-s8 ~]# find / -name tty1* …… /sys/devices/virtual/tty/tty19 /sys/devices/virtual/tty/tty17 /sys/devices/virtual/tty/tty15 /sys/devices/virtual/tty/tty13 /sys/devices/virtual/tty/tty11
如果要查找指定目录下n天前改动的文件,并将符合条件的文件全部显示出来,可用-atime参数来实现,如查找/usr/bin/下500天前被更改过的文件:
[root@centos-s8 ~]# find /usr/bin/ -type f -atime +500 -exec ls {} \; …… /usr/bin/lexgrog /usr/bin/mandb /usr/bin/manpath /usr/bin/whatis /usr/bin/lsscsi
提示
find命令在自动化运维中常用到,特别是在备份数据上,比如自动查找过去某时间段被更改过的文件或自动查找符合条件的文件后进行备份、删除等。