1. touch
touch命令用于创建空白文件或设置文件的时间,语法格式为:“touch [参数] 文件名称”.
在创建空白的文件方面,这个touch命令相当简捷,简捷到没有必要铺开去讲.比如,touch linuxprobe命令可以创建出一个名为linuxprobe的空白文本文件.对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面.touch命令的参数及其作用如表所示.
参数 | 作用 |
---|---|
-a | 仅修改“读取时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改atime与mtime |
接下来,先使用ls命令查看一个文件的修改时间,随后修改它,然后再查看一下文件时间果然发生了变化:
# ls -l anaconda-ks.cfg -rw-------. 1 root root 1213 May 4 15:44 anaconda-ks.cfg # echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg # ls -l anaconda-ks.cfg -rw-------. 1 root root 1260 Aug 2 01:26 anaconda-ks.cfg
如果不想让别人知道我们修改了它,那么这时候可以用touch命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的呢):
# touch -d "2020-05-04 15:44" anaconda-ks.cfg # ls -l anaconda-ks.cfg -rw-------. 1 root root 1260 May 4 15:44 anaconda-ks.cfg
2. mkdir
mkdir命令用于创建空白的目录,英文全称为:“make directory”,语法格式为:“mkdir [参数] 目录名称”.
除了能创建单个空白目录外,mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录:
# mkdir lo8ol # cd lo8ol [root@lo8ol lo8ol]# mkdir -p a/b/c/d/e [root@lo8ol lo8ol]# cd a [root@lo8ol b]# cd b [root@lo8ol b]#
3. cp
cp命令用于复制文件或目录,英文全称为:“copy”,语法格式为:“cp [参数] 源文件名称目标文件名称”.
大家对文件复制操作应该不陌生,几乎每天都会使用到,在Linux系统中,复制操作具体分为3种情况:
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作.
复制命令基本不会出错,唯一需要记住的就是复制目录时要加上-r参数,cp命令的参数及其作用如表所示.
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p、d、r为上述参数) |
接下来,使用创建一个名为install.log的普通空白文件,然后将其复制为一份名为x.log的备份文件,最后再使用ls命令查看目录中的文件:
# touch install.log
# cp install.log x.log
# ls
install.log x.log
4. mv(剪切或重命)
mv命令用于剪切或重命名文件,英文全称为:“move”,语法格式为:“mv [参数] 源文件名称目标文件名称”.
剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件.如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作:
# mv x.log linux.log
# ls
install.log linux.log
5. rm
rm命令用于删除文件或目录,英文全称为:“remove”,语法格式为:“rm [参数] 文件名称”.
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除.另外,想要删除一个目录,需要在rm命令后面加一个-r参数才可以,否则删除不掉.rm命令的参数及其作用如表所示.
参数 | 作用 |
---|---|
-f | 强制执行 |
-i | 删除前询问 |
-r | 删除目录 |
-v | 显示过程 |
尝试删除前面创建的install.log和linux.log文件,同学们感受下加与不加-f参数的区别:
# rm install.log rm: remove regular empty file ‘install.log’? y # rm -f linux.log # ls #
1.1.6. dd(复制/转换文件)
dd命令用于按照指定大小的数据块个数来复制文件或转换文件,语法格式为:“dd if=参数值 of=参数值 count=参数值 bs=参数值”.
dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容.还可以在复制过程中转换其中的数据.Linux系统中有一个名为/dev/zero的设备文件,每次在课堂上解释它时都充满哲学理论的色彩.因为这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此常常使用它作为dd命令的输入文件,来生成一个指定大小的文件.dd命令的参数及其作用如表所示.
参数 | 作用 |
---|---|
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
例如用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件.在理解了这个命令后,以后就能随意创建任意大小的文件了:
# dd if=/dev/zero of=560_file count=1 bs=560M 1+0 records in 1+0 records out 587202560 bytes (587 MB, 560 MiB) copied, 1.28667 s, 456 MB/s
dd命令的功能也绝不仅限于复制文件这么简单.如果想把光驱设备中的光盘制作成iso格式的镜像文件,在Windows系统中需要借助于第三方软件才能做到,但在Linux系统中可以直接使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像:
# dd if=/dev/cdrom of=RHEL-server-8.0-x86_64-LinuxProbe.Com.iso 13873152+0 records in 13873152+0 records out 7103053824 bytes (7.1 GB, 6.6 GiB) copied, 27.8812 s, 255 MB/s
考虑到有些读者会纠结bs块大小与count块个数的关系,下面举一个吃货的例子进行解释.假设小明的饭量(即需求)是一个固定的值,用来盛饭的勺子的大小即bs块大小,而用勺子盛饭的次数即count块个数.小明要想吃饱(满足需求),则需要在勺子大小(bs块大小)与用勺子盛饭的次数(count块个数)之间进行平衡.勺子越大,用勺子盛饭的次数就越少.由上可见,bs与count都是用来指定容量的大小,只要能满足需求,可随意组合搭配方式.
7. file(文件类型)
file命令用于查看文件的类型,语法格式为:“file 文件名称”.
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,又不像Windows系统那样都有后缀,有时候很难通过文件名一眼判断具体的文件类型,这时就需要使用file命令来查看文件类型了.
# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text # file /dev/sda /dev/sda: block special
Tips
Windows系统打开文件一般是通过用户双击鼠标完成的,系统要自行判断用户双击的是什么文件类型,因此需要有后缀进行区别.而Linux系统则是根据用户执行的命令进行的调用,例如cat命令查看文本、bash命令执行脚本等等,所以也就不需要强制让用户给文件设置后缀了.
8. tar
tar命令用于对文件进行打包压缩或解压,语法格式为:“tar 参数文件名称”.
在网络上,人们越来越倾向于传输压缩格式的文件,原因是压缩文件体积小,在网速相同的情况下,传输时间短.Linux系统中主要使用的是.tar或.tar.gz或.tar.bz2格式,读者不用担心格式太多而记不住,其实这些格式大部分都是由tar命令来生成的,tar命令的参数及其作用如表所示.
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
首先,-c参数用于创建压缩文件,-x参数用于解压文件,因此这两个参数不能同时使用.其次,-z参数指定使用Gzip格式来压缩或解压文件,-j参数指定使用bzip2格式来压缩或解压文件.用户使用时则是根据文件的后缀来决定应使用何种格式参数进行解压.在执行某些压缩或解压操作时,可能需要花费数个小时,如果屏幕一直没有输出,您一方面不好判断打包的进度情况,另一方面也会怀疑电脑死机了,因此非常推荐使用-v参数向用户不断显示压缩或解压的过程.-C参数用于指定要解压到哪个指定的目录.-f参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称.
一般使用“tar -czvf 压缩包名称.tar.gz 要打包的目录”命令把指定的文件进行打包压缩;
相应的解压命令为“tar -xzvf 压缩包名称.tar.gz”.下面我们逐个演示下打包压缩与解压的操作,先使用tar命令把/etc目录通过gzip格式进行打包压缩,并把文件命名为etc.tar.gz:
# tar czvf etc.tar.gz /etc tar: Removing leading `/' from member names /etc/ /etc/fstab /etc/crypttab /etc/mtab /etc/fonts/ /etc/fonts/conf.d/ /etc/fonts/conf.d/65-0-madan.conf /etc/fonts/conf.d/59-liberation-sans.conf /etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf /etc/fonts/conf.d/59-liberation-mono.conf /etc/fonts/conf.d/66-sil-nuosu.conf ………………省略部分压缩过程信息………………
接下来将打包后的压缩包文件指定解压到/root/etc目录中(先使用mkdir命令来创建/root/etc目录):
# mkdir /root/etc # tar xzvf etc.tar.gz -C /root/etc etc/ etc/fstab etc/crypttab etc/mtab etc/fonts/ etc/fonts/conf.d/ etc/fonts/conf.d/65-0-madan.conf etc/fonts/conf.d/59-liberation-sans.conf etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf etc/fonts/conf.d/59-liberation-mono.conf etc/fonts/conf.d/66-sil-nuosu.conf etc/fonts/conf.d/65-1-vlgothic-gothic.conf etc/fonts/conf.d/65-0-lohit-bengali.conf etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf ………………省略部分解压过程信息………………
2 条评论
good
good