在命令环境下对文件进行操作比在图形环境下操作更加快捷和高效。文件操作主要包括搜索文件、复制和移动文件、删除文件以及合并文件的内容等。
1 cat命令
格式:cat [选项][文件]……
功能:将[文件]或标准输入组合输出到标准输出,如果[文件]缺省,或者[文件]为-,则读取标准输入。
选项说明:
-n 或--number 从1开始对所有输出的行数编号。
-b 或--number-nonblank 与-n类似,但是不对空白行编号。
-s 或--squeeze-blank 当遇到连续两行以上空白行时,将其替换为一行空白行。
-E 在每行结束处显示$
例如,在当前用户目录htc中有文本文件file1和file2,要将文件file1的内容加上行号后输入到文件file2中,可作如下操作:
[htc@localhostday01]$cat -n file1>file2
但是要注意,这条命令会使file1中的内容把file2中的内容覆盖掉,是全部覆盖不是替换!如下命令结果:
[htc@localhost day01]$ cat file2
This is the first line in file2
This is the second line in file2
This is the third line in file2
[htc@localhost day01]$ cat file1
This is the first line in file1
[htc@localhost day01]$ cat -n file1>file2
[htc@localhost day01]$ cat file2
1 This is the first line in file1
[htc@localhostday01]$
2 more 命令
格式:more[-dlfpcsu][-num][+/pattern][+linenum][file….]
功能:与cat类似,但它适合显示长文件清单或者文件清单,可以以一次一屏或者一个窗口的方式显示。按空格键继续显示下一页,按B(Back space)键显示上一页。
选项说明:
-d 用于提示用户,在屏幕下方显示[press space to continue,q to quit.],如果用户按错了键,则显示[press h for instructions.]
-l 取消遇到特殊字元^L(送纸字元)时会暂停的功能。
-f 计算行数,以实际行数为依据,而非以自动换行后的行数为依据。
-p 不易卷动的方式显示每一页,而是先清除屏幕,然后再显示内容。
-c 与p类似,但先显示内容,然后再清楚其他旧信息
-s 当遇到两行以上的空白行时,替换为一行空白行
-u 不显示下引号(根据环境变量TERM指定的terminal而有所不同)
+/ 在每个文件显示前搜寻该字符串(pattern),然后从该字串之后开始显示
-num 指定一次显示的行数
+num 从第num行开始显示
如:[htc@localhost day01]$ more -s +2 file1 命令表示从第二行起显示文件file1的内容,并且如果file1中存在连续两行以上的空白行,则只显示一行空白行。
3 less 命令
格式:less[Option]filename
功能:与more命令相似,都可以用与浏览文件内容,但是less除了可以用空格键向下显示文件外,还可以通过按方向键来滚动显示文件,要结合浏览,只需在提示符”:”下按下q键即可。由于less并未在一开始就读入整个文件,所以打开大文件时会比较快。
4 find 命令
格式:find[路径…][表达式]
功能:对某个特定的文件,某些特定的文件或者某种特定类型的文件进行检索,可以根据名称、类型、文件属主以及文件上次修改的时间等条件来检索文件。
选项说明:
-amin n 在过去n分钟内读取过的文件
-anewerfile 比文件file更晚被读取过的文件
-atime n在过去n天内读取过的文件
-cmin n 在过去n分钟内被修改过的文件
-ctime n在过去n天内被修改过的文件
-type c 查找文件扩展名是c的文件。另外,在-type参数后还可以设置其他参数,其中d表示目录,f表示一般文件,l表示符号链接等。
[htc@localhostday01]$ find -name "*.sh" 表示在当前目录和其子目录下查找扩展名为.sh文件,并显示出来。
5 touch 命令
格式:touch[选项]…文件…
功能:改变文件的时间记录
选项说明:
-a 改变文件的读取时间记录
-m 改变文件的修改时间记录
-c 如果目标文件不存在,不会建立新的文件
-r 使用参考文件的时间记录
-d 设定时间与日期,可使用各种不同的格式
-t 设定文件的时间记录,格式与date指令相同
-no-create不建立新文件
--help列出命令格式
--version列出版本信息
例如,要将当前目录中的file1文件的时间记录为2007年3月15日14:20 可用如下命令:[htc@localhost day01]$ touch -d "2:20pm 03/04/2007" file1
6 head 命令与 tail 命令
head命令的功能是查看文件的开头部分, head -n file1 是查看file1 文件内容开头的n 行内容 ; head -cn file1 是查看file1 文件内容开头的n 个字符的内容 此外 head -v file1,表示查看file1的开头的10行内容,并且会在开头出显示这个文件的名字 也就是会把 file1显示出来;head -q file1,表示查看file1的开头的10行内容, 但不会在开头出显示这个文件的名字。与这个功能相反的是tail 命令 默认情况下是查看文件的后10行内容,这有助于查看日志文件的最后10行来阅读重要的系统信息,tail命令的参数也有 -n ; -cn; -v; -q等 此外, 还有一个-f 可以使tail 自动实时地把打开文件中的最新消息显示到屏幕上。
7 cp命令
格式:cp[Options]source dest 或者 cp[Options] source…directory
功能:将指定的源文件复制到目标文件,或者将多个文件复制到目标文件中。
选项说明:
-a 尽可能将文件状态、权限等信息都按原状态复制
-d 复制时保留链接
-f 如果目的地已经有相同文件名的文件存在,则在复制前先删除该文件再进行复制
-r 如果source中包含目录名,则将该目录下的文件也都复制到目的地
-i 与-f的作用相反,在覆盖目标文件之前给出提示并要求用户确认,若用户回答y则覆盖目标文件,因而是交互式的复制命令。
-p 此时,cp命令除了复制源文件的内容外,还将把其修改时间和访问权限也都复制到新文件中
-l 不做复制,只是链接文件
例如,将当前目录中的file1复制到到Desktop中,并重命名file2,可用如下命令:[htc@localhost Desktop]$ cp file1 ~/Desktop/file2
8 mv命令移动文件或改名
格式:mv [options] source dest 或者mv [options] source... directory
功能:将一个文件更名为另一个文件,或者将几个文件移动另一一个目录
选项说明:
-i 如果目的地已经有同名文件,则先询问是否覆盖旧文件
-f 禁止交互式操作,在mv操作将要覆盖某已有目标文件时,直接覆盖不提示
例如mv更名file1 为file5, 命令如:[htc@localhostDesktop]$ mv file1 file5, 则file1没有了 只有file5 了 此时mv同时具有移动和更名的作用。
例如mv 把file1,file2,file3,file4同时移动到当前目录的子目录subdir中的命令:[htc@localhost Desktop]$ mv file[1-4] ./subdir
9 rm命令
格式:rm[选项]… 文件…
功能:删除指定的文件。该命令可以删除目录中的一个或者多个文件或者目录,也可以将某个目录及其下所有的文件和子目录都删除掉。对于链接文件,删除后只是断开了链接,原文件保存不变。
选项说明:
-i 在删除文件前逐一询问确认
-f 即使原文件的属性为只读,也直接删除,无需逐一确认
-r 将目录及该目录下的文件都删除掉
特别注意的是,rm一旦把文件删除掉了,就不能再恢复了,所以用rm命令时要小心。指定被删除的文件列表中,如果含有目录,则必须加上 -r 或 -R 命令才能删除
10 rmdir命令
rmdir命令只能删除空目录。当要删除非空目录时,需要使用带有 -R 选项的rm指令。rmdir指令的-p选项可以递归删除指定目录树,但是要求每个目录必须是空目录。例如:rmdir -p -v /dir1/dir2/dir3, 这条命令将依次删除dir3,dir2,dir1并将详细信息显示到命令上, 前提是这个dir1-3是空目录