您所在的位置:读书频道 > 操作系统 > Linux > 7.3.1 直接查看文件内容

7.3.1 直接查看文件内容

2007-09-27 10:34 鸟哥 人民邮电出版社 字号:T | T
一键收藏,随时查看,分享好友!

《鸟哥的Linux私房菜》一书全面而详细地介绍了Linux操作系统,第六章介绍的是Linux的文件属性与目录配置,本节是直接查看文件内容。

AD:

7.3.1  直接查看文件内容
直接查看一个文件的内容可以使用cat/tac/nl这几个命令。
cat(concatenate)

[root@linux ~]# cat [-AEnTv]
参数:
-A : 相当于 -vET的整合参数,可列出一些特殊字符。
-E : 将结尾的换行符 $ 显示出来。
-n : 显示行号。
-T : 将 [tab] 按键以 ^I显示出来。
-v : 列出一些看不出来的特殊字符
范例:
范例一:查看 /etc/issue这个文件的内容
[root@linux ~]# cat /etc/issue
Fedora Core release 4 (Stentz)
Kernel \r on an \m

范例二:承上题,顺便显示出行号时。
[root@linux ~]# cat -n /etc/issue
1  Fedora Core release 4 (Stentz)
2  Kernel \r on an \m
3
# 看到了。可以显示行号。对于要在大文件中找某行时,有点用处。

范例三:将 /etc/xinetd.conf的内容完整地显示出来(包含特殊字符)。
[root@linux ~]# cat -A /etc/xinetd.conf
#$
# Simple configuration file for xinetd$
#$
# Some defaults, and include /etc/xinetd.d/$
$
defaults$
{$
^Iinstances               = 60$
log_type                = SYSLOG authpriv$
log_on_success^I^I= HOST PID$
log_on_failure^I^I= HOST$
^Icps^I^I^I= 25 30$
}$
$
includedir /etc/xinetd.d$
# 在一般环境中,显示出来的结果有 [tab] 与空格键,其实看不出来,
# 那么,使用cat -A时,会将 [tab] 按键以 ^I显示,而换行符也会显示出来。
# 最特殊的当然就是换行符了。换行符在Linux与Windows是不一样的。
# Linux是以 $ 为换行符,而在Windows则是以 ^M$ 为换行符。
# 这部分会在第10章再次说明。

cat是Concatenate(连续)的简写,主要的功能是将一个文件的内容连续显示在屏幕上面。例如,上面的例子中,我们将 /etc/issue显示来。如果加上 -n的话,则每一行前面还会加上行号。笔者很少用cat。毕竟当文件内容行数超过40行以上,根本来不及看。所以,配合稍候介绍的more或者是less比较好。此外,如果是一般的DOS文件,就需要特别注意一些奇怪的符号了,例如换行符与 [tab] 等,要显示出来,就要加入 -A之类的参数了。

tac(反向显示)

[root@linux ~]# tac /etc/issue

Kernel \r on an \m
Fedora Core release 4 (Stentz)
# 与刚刚上面的范例一比较,是最后一行先显示。


仔细看一下cat与tac,tac刚好是将cat反写过来,所以它的功能就与cat相反,cat是由“第一行到最后一行连续显示在屏幕上”,而tac则是“由最后一行到第一行反向在屏幕上显示出来”。
 
nl(显示时添加行号)

[root@linux ~]# nl [-bnw] 文件
参数:
-b : 指定行号指定的方式,主要有两种:
-b a : 表示不论是否为空行,也同样列出行号。
-b t : 如果有空行,空行不要列出行号。
-n : 列出行号表示的方法,主要有三种:
-n ln : 行号在屏幕的最左方显示。
-n rn : 行号在字段的最右方显示,且不加0。
-n rz : 行号在字段的最右方显示,且加0。
-w :行号字段占用的位数。
范例:
范例一:列出 /etc/issue的内容。
[root@linux ~]# nl /etc/issue
1  Fedora Core release 4 (Stentz)
2  Kernel \r on an \m

# 注意,这个文件其实有三行,第三行为空白(没有任何字符),
# 因为它是空白行,所以nl不会加上行号。如果确定要加上行号,可以这样做:

[root@linux ~]# nl -b a /etc/issue
1  Fedora Core release 4 (Stentz)
2  Kernel \r on an \m
3
# 行号加上来。如果要让行号前面自动补上0呢?可这样

[root@linux ~]# nl -b a -n rz /etc/issue
000001  Fedora Core release 4 (Stentz)
000002  Kernel \r on an \m
000003
# 自动在字段的地方补上0了。默认字段是6位数,如果想要改成3位数:

[root@linux ~]# nl -b a -n rz -w 3 /etc/issue
001     Fedora Core release 4 (Stentz)
002     Kernel \r on an \m
003
# 变成仅有3位数。

nl可以将输出的文件内容自动加上行号。其结果与cat -n不太一样,nl可以对行号做较多的设置,包括位数与是否自动补齐0等。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

关于cat  tac  nl  查看  操作系统  shell  鸟哥  鸟哥的Linux私房菜的更多文章

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

网管员必读——网络安全(第2版)
本书是在《网管员必读—网络安全》第1版的基础上修改而成的。新版在保留第1版实用内容的基础上增加了大量新的实用内容,同时删除

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院