touch命令用于创建空白文件与设置文件的各种时间,格式为:“touch [选项] [文件]”。

    这个touch命令可真的是特别好用,它能够为咱们创建出空白的文本文件,但这实在太简单不需要去讲,例如“touch linuxprobe”这样就可以创建出一个空白的名为linuxprobe的文本文件,而有难度的操作主要是用于设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)。

咱们可以在修改一个文件前先查看下文件的修改时间,然后再通过touch命令将修改后的文件时间设置伪装成自己没有动过的一样,很多黑客就会这么做呢:

参数作用
-a仅修改“访问时间”(atime)
-m仅修改“更改时间”(mtime)
-d同时修改atime与mtime


[root@localhost ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1213 May  4 15:44 anaconda-ks.cfg
[root@localhost ~]# echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg
[root@localhost ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 Aug  2 01:26 anaconda-ks.cfg
[root@localhost ~]# touch -d "2016-05-04 15:44" anaconda-ks.cfg 
[root@localhost ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1260 May  4 15:44 anaconda-ks.cfg

mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。

    在Linux系统中文件夹应该是最常见的文件类型之一,除了一般的创建单个目录操作外,咱们还可以使用“-p”参数来递归创建出具有嵌套叠层关系的文件目录。

[root@linuxprobe ~]# mkdir linuxprobe
[root@linuxprobe ~]# cd linuxprobe
[root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e
[root@linuxprobe linuxprobe]# cd a
[root@linuxprobe a]# cd b
[root@linuxprobe b]#

 cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。

想必您一定对复制操作不是很陌生的,在Linux系统中的复制操作其实具体还分为3种情况,第一种情况是如果目标文件是个目录,则会将源文件复制到该目录中,第二种情况是如果目标文件也是个普通文件,则会提示是否要覆盖它,最后是第三种的情况了,如果目标文件是不存在的,则会将源文件修改成目标文件的名称,类似于是重命名的操作。

参数作用
-p保留原始文件的属性
-d若对象为"链接文件",则保留该"链接文件"的属性
-r递归持续复制(用于目录)
-i若目标文件存在则询问是否覆盖
-a相当于-pdr(p,d,r为上述的参数)


首先创建一个名为install.log的文件,然后将其复制出来一份名为x.log的备份文件:

[root@linuxprobe ~]# touch install.log
[root@linuxprobe ~]# cp install.log x.log
[root@linuxprobe ~]# ls
install.log x.log

mv命令用于移动文件或改名,格式为:“mv [选项] 源文件 [目标路径|目标文件名]”。

剪切操作不同于复制操作,因为它会默认将源文件删除掉,用户就只有剪切后的文件了,并且如果对一个文件在同一个目录中进行剪切操作,其实也是重命名的作用:

[root@linuxprobe ~]# mv x.log linux.log

rm命令用于删除文件或目录,格式为:“rm [选项] 文件”。

在Linux系统中删除文件时会默认再向您询问是否要执行删除操作,如果不想总看到这种反复的确认信息,您可以使用“-f”参数来直接强制删除,另外还要删除于目录文件夹的话,必需追加一个“-r”参数才可以,否则是删除不掉的,例如咱们来尝试删除下刚刚那两个文件吧:

[root@linuxprobe ~]# ls
install.log linux.log
[root@linuxprobe ~]# rm install.log
rm: remove regular empty file ‘install.log’? y
[root@linuxprobe ~]# rm -rf linux.log
[root@linuxprobe ~]# ls
[root@linuxprobe ~]#

dd命令用于指定大小的拷贝文件或指定转换文件,格式为:“dd [参数]”。

dd命令是个比较重要且具有特色的一个命令,它能够让用户指定数据块的大小和个数来复制一个文件的内容,当然如果您愿意的话还可以在复制过程中转换其中的数据。Linux系统中有一个叫做/dev/zero的设备文件,每次讲课解释起来都感觉有点哲学理论的色彩,因为它不会占用您的系统存储空间,但里面却可以保存有无穷无尽的数据,一般用来搭配dd命令来生成出来一个指定大小的文件是再好不过的了。

参数作用
if输入的文件名称。
of输出的文件名称。
bs设置每个“块”的大小。
count设置要拷贝“块”的个数。


[root@linuxprobe ~]# 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

dd命令也绝对不仅限于复制文件这么简单,如果您想把一个光盘设备只做成iso格式的镜像文件,在Windows系统中一定免不了要用到第三方的很多软件才可以,但咱们可以直接使用这个dd命令来复制并压制光盘设备变成一个可立即使用的iso镜像哦:

[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s

file命令用于查看文件的类型,格式为:“file 文件名”。

如此看来在Linux系统中文本、目录、设备等等这些一切都会可以被统称为文件,而咱们一般又不能单凭后缀就知道具体的文件类型,这时就可以用file命令来查看下啦~

[root@linuxprobe ~]# file anaconda-ks.cfg 
anaconda-ks.cfg: ASCII text
[root@linuxprobe ~]# file /dev/sda
/dev/sda: block special