1.touch命令
touch命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”。
touch命令创建空白的文本文件很方便。比如,touch linuxprobe命令可以创建出一个名为linuxprobe的空白文本文件。对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。touch命令的参数及其作用如表所示。
参数 | 作用 |
-a | 仅修改“读取时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改atime与mtime |
2.mkdir命令
mkdir命令用于创建空白的目录,格式为“mkdir [选项] 目录”。
在Linux系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外,mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录。
[root@udbs01 ~]# mkdir linuxprobe [root@udbs01 ~]# cd linuxprobe [root@udbs01 linuxprobe]# mkdir -p a/b/c/d/e [root@udbs01 linuxprobe]# cd a [root@udbs01 a]# cd b [root@udbs01 b]#
3.cp命令
cp命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。在Linux系统中,复制操作具体分为3种情况:
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
cp命令的参数及其作用如表所示。
参数 | 作用 |
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p、d、r为上述参数) |
使用touch创建一个名为install.log的普通空白文件,然后将其复制为一份名为x.log的备份文件,最后再使用ls命令查看目录中的文件:
[root@udbs01 ~]# touch install.log [root@udbs01 ~]# cp install.log x.log [root@udbs01 ~]# ls install.log x.log
4.mv命令
mv命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。
剪切操作会默认把源文件删除掉,只保留剪切后的文件。如果在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名:
[root@udbs01 ~]# mv x.log linux.log [root@udbs01 ~]# ls install.log linux.log
5.rm命令
rm命令用于删除文件或目录,格式为“rm [选项] 文件”。
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在rm命令后跟上-f参数来强制删除。另外,想要删除一个目录,需要在rm命令后面加一个-r参数才可以,否则删除不掉。例如:删除前面创建的install.log和linux.log文件:
[root@udbs01 ~]# rm install.log rm: remove regular empty file ‘install.log’? y [root@udbs01 ~]# rm -f linux.log [root@udbs01 ~]# ls [root@udbs01 ~]#
6.dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。
dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数的数据块来复制文件的内容。Linux系统中有一个名为/dev/zero的设备文件,这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。dd命令的参数及其作用如表所示。
参数 | 作用 |
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
例如我们可以用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件。
[root@udbs01 ~]# dd if=/dev/zero of=560_file count=1 bs=560M 1+0 records in 1+0 records out 587202560 bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
7.file命令
file命令用于查看文件的类型,格式为“file 文件名”。
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,就需要使用file命令来查看文件类型了。
[root@udbs01 ~]# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text [root@udbs01 ~]# file /dev/sda /dev/sda: block special
8.tar命令
tar命令用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]”。
在Linux系统中,常见的文件格式比较多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式,tar命令的参数及其作用如表所示。
参数 | 作用 |
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
-c参数用于创建压缩文件,-x参数用于解压文件,因此这两个参数不能同时使用。
其次,-z参数指定使用Gzip格式来压缩或解压文件,-j参数指定使用bzip2格式来压缩或解压文件。
-v参数向用户不断显示压缩或解压的过程。-C参数用于指定要解压到哪个指定的目录。-f参数必须放到参数的最后一位,代表要压缩或解压的软件包名称。
[root@udbs01 ~]# tar -zxcf etc.tar.gz /etc
2.grep命令
grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。grep命令的参数及其作用如表所示。
参数 | 作用 |
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行。 |
可以使用grep命令来查找出当前系统中不允许登录系统的所有用户信息:
[root@udbs01 ~]# grep /sbin/nologin /etc/passwd
3.find命令
find命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。
find命令的参数以及作用如表所示。
参数 | 作用 |
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
-type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …… {}\; | 后面可跟用于进一步处理搜索结果的命令(下文会有演示) |