在大家刚接触Linux操作系统,首先都会让你了解linux的哲学思想:一切皆文件;那么今天就带大家认识linux中的一些文本查看工具。
1、cat和tac
连接文件并在标准输出上打印;其中cat是正向显示;tac是倒着显示
格式:cat [ options ]... [ FILE ]...
选项:
-E filename 能看到行的结束符
-A filename 能看到tab键 回车
-n filename 加行号
-s filename 压缩空行(连续相邻的空行)
-b 加行号,但空行不加 cat > f3 给文件写入内容(nl==cat -b )
实例:
[ root@vinsent ~ ]#vim 1[ root@vinsent ~ ]#[ root@vinsent ~ ]#[ root@vinsent ~ ]#cat 1 # 直接cat文件名,便可看见文件中的内容,保留原格式12dsfghjkhadoop[ root@vinsent ~ ]#cat -n 1 # -n 查看时添加行号 1 12 2 dsf 3 4 ghjk 5 6 hadoop[ root@vinsent ~ ]#cat -E 1 # -E 选项能看到每行的结束符$12$dsf$$ghjk$ $hadoop$[ root@vinsent ~ ]#cat -A 1 # -A 能看到详细的信息,包括tab键以及行结束符 12$dsf$$ghjk$^I$hadoop$[ root@vinsent ~ ]#tac 1 # tac 将文件内容倒着显示hadoop ghjkdsf12[ root@vinsent ~ ]#
2、more:
more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
格式:
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
选项:
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能,静默模式
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
实例
[ root@vinsent ~ ]#cat -n /etc/passwd | more +4 # 表示从第4行开始显示 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6 sync:x:5:0:sync:/sbin:/bin/sync 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown...后面省略...[ root@vinsent ~ ]#cat -n /etc/passwd | more -4 # 定义屏幕大小为4行,可通过相应操作来上下翻屏 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin[ root@vinsent ~ ]#cat -n /etc/passwd | more +/halt # 从halt的行开始显示...skipping 8 halt:x:7:0:halt:/sbin:/sbin/halt 9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10 operator:x:11:0:operator:/root:/sbin/nologin 11 games:x:12:100:games:/usr/games:/sbin/nologin 12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13 nobody:x:99:99:Nobody:/:/sbin/nologin 14 systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin 15 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin...后面的省略...[ root@vinsent ~ ]#
说明:上述实验中,先通过 " cat -n /etc/passwd "让我们显示的时候添加行号,这样方便说明;在通过管道传给 more 命令。这里只做了一些选项的实验,有兴趣的可以把每个选项的都做做。
3、less命令
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。 在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按 键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
格式:
less [ OPTIONS ] FILE...
选项:
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
常见操作:和man命令中的操作一致;其实man命令的操作都来自less
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
实例
[ root@vinsent ~ ]#ps -ef | less -N # -N 显示行号;这里表示显示进程信息是加行号显示 1 UID PID PPID C STIME TTY TIME CMD 2 root 1 0 0 12:30 ? 00:00:00 /usr/lib/systemd/systemd --switche 3 root 2 0 0 12:30 ? 00:00:00 [kthreadd] 4 root 3 2 0 12:30 ? 00:00:00 [ksoftirqd/0] 5 root 6 2 0 12:30 ? 00:00:00 [kworker/u256:0] 6 root 7 2 0 12:30 ? 00:00:00 [migration/0] 7 root 8 2 0 12:30 ? 00:00:00 [rcu_bh] 8 root 9 2 0 12:30 ? 00:00:00 [rcu_sched] 9 root 10 2 0 12:30 ? 00:00:00 [watchdog/0] 10 root 12 2 0 12:30 ? 00:00:00 [khelper] 11 root 13 2 0 12:30 ? 00:00:00 [kdevtmpfs] 12 root 14 2 0 12:30 ? 00:00:00 [netns] 13 root 15 2 0 12:30 ? 00:00:00 [khungtaskd] 14 root 16 2 0 12:30 ? 00:00:00 [writeback] 15 root 17 2 0 12:30 ? 00:00:00 [kintegrityd]...后面省略...[ root@vinsent ~ ]#touch 1.txt # 先创建两个文件并写入内容 ,[ root@vinsent ~ ]#touch 2.txt[ root@vinsent ~ ]#vim 1.txt [ root@vinsent ~ ]#vim 2.txt [ root@vinsent ~ ]#less 1.txt 2.txt # less 浏览多个文件dhgfaskhsdfkjasdhfi1.txt (file 1 of 2) (END) - Next: 2.txt # 显示了第一个文件的内容,并提示下一个文件Next: 2.txt
说明:
输入 :n 后,切换到 2.txt
输入 :p 后,切换到 1.txt
其他用法
ctrl + F : 向前移动一屏
ctrl + B :向后移动一屏
ctrl + D:向前移动半屏
ctrl + U: 向后移动半屏
j : 向前移动一行
k : 向后移动一行
v : 使用配置的编辑器编辑当前文件
h : 显示 less 的帮助文档
&pattern : 仅显示匹配模式的行,而不是整个文件
4、tail 和 head :
tail查看文件尾部;head用于查看文件头部,默认为前10行,也可认为指定显示的行数。
格式:
head [ OPTIONS ] FILE
tail [ OPTIONS ] FILE
选项:
head的选项:
-c :打印每个文件的第一个K字节; 使用前导“ - ”,打印每个文件的最后一个K字节
-n:打印第一个K行而不是前10个; 以' - '为首,打印每个文件的最后K行
-q:从不打印头文件名
-v:始终打印头文件名
tail 的选项:
-c:打印每个文件的第一个K字节; 使用前导“ - ”,打印每个文件的最后一个K字节
-f:当文件增长时输出附加数据;缺少的选项参数表示“描述符”
-F:与--follow = name --retry一样
-n:打印第一个K行而不是前10个; 以' - '为首,打印每个文件的最后K行
-s:与-f,休息大概N秒(默认1.0)之间; 与inotify和--pid = P,检查过程P至少每N秒一次
-q:从不打印头文件名
实例:
[ root@vinsent ~ ]#head -n 5 /etc/passwd # 查看前5行内容root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin[ root@vinsent ~ ]#tail -n 5 /etc/passwd # 查看后5行postfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinvinsent:x:1000:1000:vinsent:/home/vinsent:/bin/bashmage:x:1001:1001::/home/mage:/bin/bashquagga:x:92:92:Quagga routing suite:/var/run/quagga:/sbin/nologin[ root@vinsent ~ ]#[ root@vinsent ~ ]#head -n 5 /etc/passwd | tail -1 # 只显示第5行lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin[ root@vinsent ~ ]#