linux相关
view
Linux下的view命令,也就是vi命令,可以实现文本的编辑,但是有个可怕的地方。如果文件很大好几十G,那么vi一下,则会把所有文件都会加载到内存中。导致服务器瘫痪。
因此查看文件,不能用vi命令。比较好用的是less,cat,tail命令。用法如下:
cat
cat [选项] [文件]...
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开
cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;
也可以和less组合使用,利用管道,例如 cat gc.* | less
cat -n test.log | grep "debug" 查询关键字的日志
tac
tac 是 cat 的反写,功能与 cat 命令刚好相反,cat 是顺序输出文件每一行到屏幕上,tac 是反序输出文件每一行到屏幕上。
虽然功能相反,但是命令参数却大不相同,个人感觉 tac 的实用价值非常小。
-b, --before: 在行前添加分隔符。
-r, --regex: 把分隔符当作正则表达式来解析。
-s, --separator=STRING: 使用指定字符串代替新行作为分隔符。
less
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
less 文件名
-c 从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新;
-f 强制打开文件,二进制文件显示时,不提示警告;
-i 搜索时忽略大小写;除非搜索串中包含大写字母;
-I 搜索时忽略大小写,除非搜索串中包含小写字母;
-m 显示读取文件的百分比;
-M 显法读取文件的百分比、行号及总行数;
-N 在每行前输出行号;
-p pattern 搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL /etc/profile
-s 把连续多个空白行作为一个空白行显示;
-Q 在终端下不响铃;
进入less后,动作命令
y 向上移动一行;
空格键 向下滚动一屏;
b 向上滚动一屏;
d 向下滚动半屏;
h less的帮助;
u 向上洋动半屏;
w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;
g 跳到第一行;
G 跳到最后一行;
p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
v 调用vi编辑器;
q 退出less
!command 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;
shift + f 启动流式模式,类似 tail -f功能
more
显示输出的内容,可以根据窗口的大小进行分页显示,还能提示文件的百分比
more命令从前向后读取文件,因此在启动时就加载整个文件。
more [参数选项] [文件]
+num 从第num行开始显示;
-num 定义屏幕大小,为num行;
+/pattern 从pattern 前两行开始显示;
-c 从顶部清屏然后显示;
-d 提示Press space to continue, 'q' to quit.(按空格键继续,按q键退出),禁用响铃功能;
-l 忽略Ctrl+l (换页)字符;
-p 通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似;
-s 把连续的多个空行显示为一行;
-u 把文件内容中的下划线去掉退出more的动作指令是q
动作命令
Enter 向下n行,需要定义,默认为1行;
Ctrl+f 向下滚动一屏;
空格键 向下滚动一屏;
Ctrl+b 返回上一屏;
= 输出当前行的行号;
:f 输出文件名和当前行的行号;
v 调用vi编辑器;
! 命令 调用Shell,并执行命令;
q 退出more当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的;
head
head 是显示一个文件的内容的前多少行;
head -n 行数值 文件名;
tail
tail 是显示一个文件的内容的最后多少行;
tail -n 行数值 文件名;
tail -f 文件名 显示文件的后十行内容并在文件内容增加后,且自动显示新增的文件内容。(常用于监控日志文件)
tail -n 200 -f 文件名, 或者 tail -200f 文件, 2条命令是等价的
参考使用示例:
cat -n test.log | grep "debug" 查询关键字的日志
从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000