1.touch命令
touch 命令用于创建空白文件或设置文件的时间,语法格式为“touch [参数] 文件名称”。
接下来,先使用 ls 命令查看一个文件的修改时间,随后修改这个文件,最后再查看一下 文件的修改时间,看是否发生了变化:
[root@rhel-8 ~]# ls -l anaconda-ks.cfg-rw-------. 1 root root 1289 Nov 915:47 anaconda-ks.cfg [root@rhel-8 ~]# echo "test" >> anaconda-ks.cfg[root@rhel-8 ~]# ls -l anaconda-ks.cfg-rw-------. 1 root root 1294 Nov 1314:18 anaconda-ks.cfg
如果不想让别人知道我们修改了它,那么这时就可以用 touch 命令把修改后的文件时间 设置成修改之前的时间(很多黑客就是这样做的呢):
[root@rhel-8 ~]# touch -d "2022-11-9 15:47" anaconda-ks.cfg[root@rhel-8 ~]# ls -l anaconda-ks.cfg-rw-------. 1 root root 1294 Nov 915:47 anaconda-ks.cfg
3.cp命令
cp 命令用于复制文件或目录,英文全称为“copy”,语法格式为“cp [参数] 源文件名称 目 标文件名称”。
在 Linux 系统中,复制操作具 体分为 3 种情况:
➢ 如果目标文件是目录,则会把源文件复制到该目录中;
➢ 如果目标文件也是普通文件,则会询问是否要覆盖它;
➢ 如果目标文件不存在,则执行正常的复制操作。
复制命令基本不会出错,唯一需要记住的就是在复制目录时要加上-r 参数。
使用 touch 命令创建一个名为 install.log 的普通空白文件,然后将其复制为一份 名为 x.log 的备份文件,最后再使用 ls 命令查看目录中的文件:
[root@rhel-8 ~]# touch install.log[root@rhel-8 ~]# cp install.log x.log[root@rhel-8 ~]# lsinstall.log x.log
4.mv命令
mv 命令用于剪切或重命名文件,英文全称为“move”,语法格式为“mv [参数] 源文件 名称 目标文件名称”。
剪切操作不同于复制操作,因为它默认会把源文件删除,只保留剪切后的文件。如果 在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实也就是对该文件进行了重命 名操作:
[root@rhel-8 ~]# mv x.log linux.log[root@rhel-8 ~]# lsinstall.log linux.log
5.rm命令
rm 命令用于删除文件或目录,英文全称为“remove”,语法格式为“rm [参数] 文件 名称”。
在 Linux 系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是 看到这种反复的确认信息,可在 rm 命令后跟上-f 参数来强制删除。另外,要想删除一个目录, 需要在 rm 命令后面加一个-r 参数才可以,否则删除不掉。
下面尝试删除前面创建的 install.log 和 linux.log 文件,大家感受一下加与不加-f 参数的区别:
[root@rhel-8 ~]# rm install.logrm: remove regular empty file 'install.log'? y [root@rhel-8 ~]# rm -f linux.log[root@rhel-8 ~]# ls[root@rhel-8 ~]#
6.dd命令
dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,语法格式为“dd if= 参数值 of=参数值 count=参数值 bs=参数值”。
dd 命令是一个比较重要而且比较有特色的命令,它能够让用户按照指定大小和个数的数 据块来复制文件的内容。当然,如果愿意的话,还可以在复制过程中转换其中的数据。
Linux 系统中有一个名为/dev/zero 的设备文件,每次在课堂上解释它时都充满哲学理论的色彩。因 为这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此常常使用它作为 dd 命令的输入文件,来生成一个指定大小的文件。
例如,用 dd 命令从/dev/zero 设备文件中取出一个大小为 560MB 的数据块,然后保存成 名为 560_file 的文件。在理解了这个命令后,以后就能随意创建任意大小的文件了:
[root@rhel-8 ~]# dd if=/dev/zero of=560_file count=1 bs=560M1+0 records in1+0 records out 587202560 bytes (587 MB, 560 MiB) copied, 0.380624 s, 1.5 GB/s
dd 命令的功能也绝不仅限于复制文件这么简单。如果想把光驱设备中的光盘制作成 iso 格式的镜像文件,在 Windows 系统中需要借助于第三方软件才能做到,但在 Linux 系统中可 以直接使用 dd 命令来压制出光盘镜像文件,将它变成一个可立即使用的 iso 镜像:
[root@rhel-8 ~]# dd if=/dev/cdrom of=RHEL-8-x86_64-test.iso13873152+0 records in13873152+0 records out 7103053824 bytes (7.1 GB, 6.6 GiB) copied, 72.8583 s, 97.5 MB/s
考虑到有些读者会纠结 bs 块大小与 count 块个数的关系,下面举一个吃货的例子进行解 释。假设小明的饭量(即需求)是一个固定的值,用来盛饭的勺子的大小是 bs 块的大小,而用勺子盛饭的次数则是 count 块的个数。小明要想吃饱(满足需求),则需要在勺子大小(bs 块大小)与用勺子盛饭的次数(count 块个数)之间进行平衡。勺子越大,用勺子盛饭的次数 就越少。由上可见,bs 与 count 都是用来指定容量的大小,只要能满足需求,可随意组合搭 配方式。
7.file命令
file 命令用于查看文件的类型,语法格式为“file 文件名称”。
在 Linux 系统中,由于文本、目录、设备等所有这些一切都统称为文件,但是它们又不 像 Windows 系统那样都有后缀,因此很难通过文件名一眼判断出具体的文件类型,这时就需 要使用 file 命令来查看文件类型了。
[root@rhel-8 ~]# file anaconda-ks.cfganaconda-ks.cfg: ASCII text [root@rhel-8 ~]# file /dev/sr0/dev/sr0: block special (11/0)
8.tar命令
tar 命令用于对文件进行打包压缩或解压,语法格式为“tar 参数 文件名称”。
在 Linux 系统中,主要使用的是.tar、.tar.gz 或.tar.bz2 格式,大家不用担心格式太多而记不住,其实这些格式大部分都是由 tar 命令生成的。
首先,-c 参数用于创建压缩文件,-x 参数用于解压文件,因此这两个参数不能同时使用。 其次,-z 参数指定使用 gzip 格式来压缩或解压文件,-j 参数指定使用 bzip2 格式来压缩或解 压文件。
使用-v 参数向用户不断显示 压缩或解压的过程。-C 参数用于指定要解压到哪个指定的目录。-f 参数特别重要,它必须放 到参数的最后一位,代表要压缩或解压的软件包名称。
一般使用“tar -czvf 压缩包名称.tar.gz 要打包的目录”命令把指定的文件进行打包压缩;相应的解压命令为“tar -xzvf 压缩 包名称.tar.gz”。
使用 tar 命令把/etc 目录通过 gzip 格式进行打包压缩,并把文件命名为 etc.tar.gz:
[root@rhel-8 ~]# tar -czvf etc.tar.gz /etc/tar: Removing leading `/' from member names/etc//etc/mtab/etc/fstab...
将打包后的压缩包文件指定解压到/root/etc 目录中(先使用 mkdir 命令创建/root/etc 目录):
[root@rhel-8 ~]# tar -xzvf etc.tar.gz -C /root/etcetc/ etc/mtab etc/fstab ...