前言:Linux命令在项目中是经常用,查看日志信息是一个不可缺少的指令。一般都是用Less,more,tail,head,cat 这些命令 目前是足够的。
很久不用就会忘记。现在简单写一写。
①tail 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
参数设置:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c 字节数目 显示的字节数目
-n 行数 显示行数
-pid=PID 与-f 合用 表示在进行ID,PID死掉之后结束
-q,-quiet,-silent 从不输出文件名的首部(没太看懂这点是什么意思,还没用过,存疑)
-s,-sleep-interval=S与-f 合用 表示在每次反复的间隔休眠S秒
实际例子:文件名为b.log
显示文件末尾最后5行 : tail -n 5 b.log
循环查看文件: tail -f b.log
另:ping 192.168.120.204 > test.log & //在后台ping远程主机。并输出文件到test.log;这种做法也使用于一个以上的档案监视。用Ctrl+c来终止。
从第五行开始显示: tail -n +5 b.log
②head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
参数设置 :
-c 数目 文件名 显示前多少字节
-n 数目 文件名 显示前多少行
-q 隐藏文件名
-v 显示文件名
实际例子,文件名为a.log
显示前5行:head -n 5 a.log
显示前5个字节:head -c 5 a.log
显示除了最后5行的行: head -n -5 a.log
显示除了最后5个字节的字节: head -c -5 a.log
负数则是除去最后几行,几字节,正数则是前面的字节或者行数。
③less less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
参数设置:
-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]: 向上翻动一页
实际例子: 文件名 c.log
查看文件 less c.log
查看进程信息并且分页显示 ps -ef | less
查看命令历史记录并且通过分页显示 history | less
浏览多个文件 less a.log b. log
注意:
输入 :n后,切换到 b.log (n是next,下一页)
输入 :p 后,切换到a.log (P 是previous,前一个)
*********************************************************************************************************************
附加:(此处为网上资料,还未用过,仅供参考)
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 处
*********************************************************************************************************************
④more 和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
参数设置:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’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 log2012.log
输出:
[root@localhost test]# cat log2012.log
2012-01
2012-02
2012-03
2012-04-day1
2012-04-day2
2012-04-day3
======[root@localhost test]# more +3 log2012.log
2012-03
2012-04-day1
2012-04-day2
2012-04-day3
======[root@localhost test]#
实例2:从文件中查找第一个出现”day3″字符串的行,并从该处前两行开始显示输出
命令:
more +/day3 log2012.log
输出:
[root@localhost test]# more +/day3 log2012.log
...skipping
2012-04-day1
2012-04-day2
2012-04-day3
2012-05
2012-05-day1
======[root@localhost test]#
实例3:设定每屏显示行数
命令:
more -5 log2012.log
输出:
[root@localhost test]# more -5 log2012.log
2012-01
2012-02
2012-03
2012-04-day1
2012-04-day2
说明:
实例4:列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来
命令:
ls -l | more -5
输出:
[root@localhost test]# ls -l | more -5
总计 36
-rw-r--r-- 1 root root 308 11-01 16:49 log2012.log
-rw-r--r-- 1 root root 33 10-28 16:54 log2013.log
-rw-r--r-- 1 root root 127 10-28 16:51 log2014.log
lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log
-rw-r--r-- 1 root root 25 10-28 17:02 log.log
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxrwxrwx 2 root root 4096 10-28 14:47 test4
说明:
每页显示5个文件信息,按 Ctrl+F 或者 空格键 将会显示下5条文件信息。
⑤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 之外
-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 之外
实际例子:
把a.log的文件内容加上行号 输入到b.log
cat -n a.log b.log 结果是插入到b.log内容的前面
把 a.log 和b.log 的文件内容加上行号(空白行不加)之后将内容附加到 c.log 里。
cat -b a.log b.log > c.log
把 a.log 的文件内容加上行号后输入b.log 这个文件里
cat -n a.log > b.log
附加说明:
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!