文件管理类命令是系统基本的命令,这些命令主要对文件内容进行操作,包括文件内容查询、文件内容重定向、更改文件权限、文件创建和删除等。
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命令在自动化运维中常用到,特别是在备份数据上,比如自动查找过去某时间段被更改过的文件或自动查找符合条件的文件后进行备份、删除等。
磁盘管理类命令的主要作用是对磁盘进行操作,包括对磁盘使用状态的查询、磁盘读写测试、磁盘分区创建及挂载等。
dd命令全称为disk dump,用于复制磁盘的数据块。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
dd [OPERAND]... dd OPTION
2)命令选项参数说明:
●if=FILE:输入文件名称,默认是标准输入。
●of=FILE:输出文件名称,默认是标准输出。
●bs= BYTES:同时设置输入/输出的块大小为bytes字节。
●count=blocks:指定要复制块的数量。
3)示例:
创建大小为1GB的磁盘文件:
[root@centos-s8 ~]# dd if=/dev/zero bs=1024M count=1 of=/root/disk.img 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.0258 s, 89.3 MB/s
fdisk命令全称为find disk,可以查看磁盘分区、划分分区及删除分区等。命令的使用权限只对系统管理员开放。
1)命令语法格式:
fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device fdisk -l [-u] [device...] fdisk -s partition... fdisk [option]
2)命令参数选项说明:
●-b:指定磁盘分区的大小。
●-C:关闭DOS-compatible模式。
●-H(heads):指定磁盘头数。
●-l(list):显示指定磁盘的分区信息。
●-u:显示分区列表时,以分区的方式来替代柱面。
3)示例:
查看/dev/sda的信息:
[root@centos-s8 ~]# fdisk -l /dev/sda Disk /dev/sda: 15 GiB, 16106127360 bytes, 31457280 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xc2236080 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 CentOS /dev/sda2 2099200 31457279 29358080 14G 8e CentOS LVM
df命令全称为disk free,其能够显示挂载到系统的磁盘分区的相关信息。命令的使用权限对系统的所有用户开放。
1)命令语法格式:
df [OPTION]... [FILE]...
2)命令参数选项说明:
●-a(all):包含所有具有0 Blocks文件的系统。
●-h:以KB、MB、GB的格式输出文件系统的信息。
●-i(inodes):显示inode的信息,而不显示已使用的block。
●-l(local):列出本地文件系统结构信息。
●-P(portability):使用POSIX输出格式。
●-t(type):限制列出文件系统的类型。
3)示例:
查看磁盘分区的使用状态:
[root@centos-s8 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 963M 0 963M 0% /dev tmpfs 981M 0 981M 0% /dev/shm tmpfs 981M 8.6M 972M 1% /run tmpfs 981M 0 981M 0% /sys/fs/cgroup /dev/mapper/cl-root 13G 2.5G 11G 20% / /dev/sda1 976M 124M 786M 14% /boot tmpfs 197M 0 197M 0% /run/user/0
mount命令可将某个磁盘分区的内容解读成文件系统,并以可读写或只读的方式将文件系统挂载到指定的位置,该命令也可以查看系统挂载的文件系统信息。
1)命令语法格式:
mount [-lhV] mount -a [-fFnrsvw] [-t vfstype] [-O optlist] mount [-fnrsvw] [-o option[,option]...] device|dir mount [-fnrsvw] [-t vfstype] [-o options] device dir
2)命令参数选项说明:
●-a(all):将/etc/fstab文件中定义的所有文件系统挂载。
●-f(fake):模拟挂载文件系统的过程。
●-n:挂载未写入/etc/mtab文件的文件系统。
●-L(label):将具有特定标签的硬盘分区挂载。
●-U uuid(Universally Unique Identifier):将指定标识符的分区挂载。
●-o ro(read only):以只读模式挂上。
●-o rw(read write):以可读写模式挂上。
3)示例:
挂载指定的分区到指定的目录下:
[root@centos-s8 ~]# mount -o ro /dev/sdb1 /mnt
以只读的方式把/dev/sdb1分区挂载到/mnt/目录下,命令执行后没有提示错误的信息说明挂载成功,或使用mount命令查看系统已挂载的文件系统信息。