7.mv 命令:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORYmove all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
例1:
//将a.php重命名为 abc.jsp
mv a.php abc.jsp
例2:
//将abc.php文件移动到test目录
mv abc.php test
例3:
//命令将log1.txt ,log2.txt, log3.txt 三个文件移到 test1目录中去
mv log1.txt log2.txt log3.txt tes1 ,
//命令又将三个文件移动到test2目录中去
mv -t mv /home/alpha/桌面/A/test2/ log1.txt log2.txt log3.txt
例4:
//将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
mv –I a.php b.html
//将文件file1改名为file2,如果file2已经存在,还是直接覆盖
mv –f a.php b.html
例5:
//目录的移动将test移动到test11目录中
mv test test11
例6:
//移动当前文件夹下的所有文件到上一级目录
mv * ../
//把当前目录的一个子目录的文件移动到另一个子目录里
mv test1/*.txt test2
8.cp命令
-a, --archive 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b,类似--backup 但不接受参数
--copy-contents 在递归处理是复制特殊文件内容
-d等于--no-dereference --preserve=links
-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随源文件中的命令行符号链接
-l, --link 链接文件而不复制
-L, --dereference 总是跟随符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 不跟随源文件中的符号链接
-p 等于--preserve=模式,所有权,时间戳
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等
-R, -r, --recursive 复制目录及目录内的所有项目
例1:
//复制单个文件到目标目录,文件在目标目录中不存在,存在时会询问;目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
cp a.log test
例2:
//复制整个目录,如果目标目录存在时,则整个目录复制到目标目录里面;
cp –a test test11
[root@localhost A]# cp -a a test
[root@localhost A]# ll
总用量 0
drwxr-xr-x 2 root root 67 7月 10 11:35 a
drwxr-xr-x 3 root root 27 7月 10 11:54 test
[root@localhost A]# cd test
[root@localhost test]# ll
总用量 0
drwxr-xr-x 2 root root 67 7月 10 11:35 a
-rw-r--r-- 1 root root 0 7月 10 11:38 a.html
//不存在,就产生目标目录
cp –a test test12
[root@localhost A]# cp -a a b
[root@localhost A]# ll
总用量 0
drwxr-xr-x 2 root root 67 7月 10 11:35 a
drwxr-xr-x 2 root root 67 7月 10 11:35 b
drwxr-xr-x 3 root root 27 7月 10 11:54 test
例3:
//复制的 a.html建立一个连结档 a_link.html;-s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的
cp –s a.html a_link.html
[root@localhost A]# cp -s a.html a_link.html
[root@localhost A]# ll
总用量 0
-rw-r--r-- 1 root root 0 7月 10 11:23 a.html
lrwxrwxrwx 1 root root 6 7月 10 12:03 a_link.html -> a.html
9.touch 命令:
-a 或--time=atime或--time=access或--time=use 只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间
例1:创建不存在的文件
touch a.log b.log
例2:更新a.log的时间和b.log时间戳相同
touch -r a.log b.log
例3:设定文件的时间戳
touch -t 201607142234.50 a.log
-t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time规定为如下形式的十进制数:
[[CC]YY]MMDDhhmm[.SS] 这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的。
10.Cat 命令:
cat主要有三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file
命令参数:
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
例1:把 a.log 的文件内容加上行号后输入 b.log 这个文件里(空格也加,a.log和b.log内容不变)
[root@localhost test]# cat a.log
111111111
[root@localhost test]# cat b.log
22222222
[root@localhost test]# cat -n a.log b.log
1 111111111
2 22222222
[root@localhost test]# cat a.log
111111111
[root@localhost test]# cat b.log
22222222
例2:把 a.log 的文件内容加上行号后输入 b.log 这个文件里(空格不加)
cat -b a.log b.log
例3:
把 la.log 的文件内容加上行号后输入 b.log 这个文件里 (覆盖b.log)
cat -n a.log > b.log
把 la.log 的文件内容加上行号后输入 b.log 这个文件里 (不覆盖b.log)
cat -n a.log > >b.log
例4:使用here doc来生成文件
[root@localhost test]# cat >log.txt <<EOF
> Hello
> World
> Linux
> PWD=$(pwd)
> EOF
说明:注意粗体部分,here doc可以进行字符串替换。
备注:tac (反向列示)
命令:
tac log.txt
输出:
[root@localhost test]# tac log.txt
PWD=/opt/soft/test
Linux
World
Hello
说明:tac 是将 cat 反写过来,所以他的功能就跟 cat相反, cat是由第一行到最后一行连续显示在萤幕上,而 tac则是由最后一行到第一行反向在萤幕上显示出来!
11.nl 命令
nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
1.命令格式:
nl [选项]... [文件]...
2.命令参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。
3.命令功能:
nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。 输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。 除非使用 -p 标志,nl 命令在每个逻辑页开始的地方重新设置行号。 可以单独为头、主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能)。
例1:用 nl列出 log2012.log的内容
命令:
nl log2012.log
输出:
[root@localhost test]# nl log2012.log
1 2012-01
2 2012-02
3 ======[root@localhost test]#
说明:
文件中的空白行,nl不会加上行号
例2:用 nl列出 log2012.log的内容,空本行也加上行号
命令:
nl -b a log2012.log
输出:
[root@localhost test]# nl -b a log2012.log
1 2012-01
2 2012-02
3
4
5 ======[root@localhost test]#
例3:让行号前面自动补上0,统一输出格式
命令:
输出:
[root@localhost test]# nl -b a -n rz log2014.log
000001 2014-01
000002 2014-02
000003 2014-03
000004 2014-04
000005 2014-05
000006 2014-06
000007 2014-07
000008 2014-08
000009 2014-09
000010 2014-10
000011 2014-11
000012 2014-12
000013 =======
[root@localhost test]# nl -b a -n rz -w 3 log2014.log
001 2014-01
002 2014-02
003 2014-03
004 2014-04
005 2014-05
006 2014-06
007 2014-07
008 2014-08
009 2014-09
010 2014-10
011 2014-11
012 2014-12
013 =======
说明:
nl -b a -n rz 命令行号默认为六位,要调整位数可以加上参数 -w 3调整为3位。
12.more 命令:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space tocontinue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
例1:显示文件中从第3行起的内容
more +3 abc.log
例2:从文件中查找第一个出现"sb"字符串的行,并从该处前两行开始显示输出
more +/sb abc.log
例3:设定每屏显示行数:
more -3 abc.log
如下图所示,最下面显示了该屏展示的内容占文件总行数的比例,按 Ctrl+F或者空格键将会显示下一屏3条内容,百分比也会跟着变化。
例4:列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来
命令:ls –l |more -2
13.less 命令:
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
1.命令格式:
less [参数] 文件
2.命令功能:
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
3.命令参数:
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
例1:查看文件
less abc.log
例2:ps查看进程信息并通过less分页显示
ps -ef |less
例3:查看命令历史使用记录并通过less分页显示
history | less
5:浏览多个文件
less abc.log a.log
说明:
输入 :n后,切换到 log2014.log
输入 :p 后,切换到log2013.log
4.附加备注
1.全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
2.单行导航
j - 向前移动一行
k - 向后移动一行
3.其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令
4.其它有用的命令
v - 使用配置的编辑器编辑当前文件
h - 显示 less 的帮助文档
&pattern - 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma - 使用 a 标记文本的当前位置
'a - 导航到标记 a 处