linux查看文件内容
cat 由第一行开始显示档案内容
tac 从最后一行开始显示,可以看出 tac 是 cat
的倒着写!
nl 显示的时候,顺道输出行号!
more
一页一页的显示档案内容
less 与 more 类似,但是比 more
更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
od 以二进制的方式读取档案内容
cat (concatenate)
[root@www ~]# cat [-AbEnTv]
选项与参数:
-A :相当于 -vET
的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字符 $ 显示出来;
-n :打印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
检阅 /etc/issue 这个档案的内容
[root@www ~]# cat /etc/issue
CentOS release 5.3 (Final)
Kernel \r on an \m
承上题,如果还要加印行号呢?
[root@www ~]# cat -n /etc/issue
1
CentOS release 5.3 (Final)
2
Kernel \r on an \m
3
# 看到了吧!可以印出行号呢!这对于大档案要找某个特定的行时,有点用处!
# 如果不想要编排空白行的行号,可以使用『cat -b /etc/issue』,自己测试看看:
tac (反向列示)
[root@www ~]# tac /etc/issue
nl (添加行号打印)
[root@www ~]# nl [-bnw] 档案
选项与参数:
-b :指定行号指定的方式,主要有两种:
-b a
:表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t
:如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln
:行号在屏幕的最左方显示;
-n rn
:行号在自己字段的最右方显示,且不加 0 ;
-n rz
:行号在自己字段的最右方显示,且加 0 ;
-w :行号字段的占用的位数。
用 nl 列出 /etc/issue 的内容
[root@www ~]# nl /etc/issue
1
CentOS release 5.3 (Final)
2
Kernel \r on an \m
# 注意看,这个档案其实有三行,第三行为空白(没有任何字符),
# 因为他是空白行,所以 nl 不会加上行号喔!如果确定要加上行号,可以这样做:
[root@www ~]# nl -b a /etc/issue
1
CentOS release 5.3 (Final)
2
Kernel \r on an \m
3
# 呵呵!行号加上来啰~那么如果要让行号前面自动补上 0 呢?可这样
[root@www ~]# nl -b a -n rz /etc/issue
000001 CentOS release 5.3 (Final)
000002 Kernel \r on an \m
000003
# 嘿嘿!自动在自己字段的地方补上 0 了~预设字段是六位数,如果想要改成 3 位数?
[root@www ~]# nl -b a -n rz -w 3 /etc/issue
001 CentOS release 5.3
(Final)
002 Kernel \r on an
\m
003
# 变成仅有 3 位数啰~
nl 可以将输出的档案内容自动的加上行号!其预设的结果与 cat -n 有点不太一样, nl
可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能呢。
more (一页一页翻动)
[root@www ~]# more /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%) <==
重点在这一行喔!你的光标也会在这里等待你的指令
• more (一页一页翻动)
[root@www ~]# more /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%) <==
重点在这一行喔!你的光标也会在这里等待你的指令
空格键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该档案内容。
b 或 [ctrl]-b
:代表往回翻页,不过这动作只对档案有用,对管线无用。
less (一页一页翻动)
[root@www ~]# less /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
: <== 这里可以等待你输入指令!
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup]
:向上翻动一页;
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ?
有关!)
N :反向的重复前一个搜寻 (与 / 或 ?
有关!)
q :离开 less 这个程序;
less 的用法比起 more 又更加的有弹性,怎么说呢?在 more 的时候,我们并没有办法向前面翻,
只能往后面看,但若使用了 less 时,呵呵!就可以使用 [pageup] [pagedown]
等按键的功能来往前往后翻看文件,你瞧,是不是更容易使用来观看一个档案的内容了呢!
head (取出前面几行)
[root@www ~]# head [-n number] 档案
选项与参数:
-n :后面接数字,代表显示几行的意思
[root@www ~]# head /etc/man.config
# 默认的情况中,显示前面十行!若要显示前 20 行,就得要这样:
[root@www ~]# head -n 20 /etc/man.config
范例:如果后面100行的数据都不打印,只打印/etc/man.config的前面几行,该如何是好?
[root@www ~]# head -n -100 /etc/man.config
tail (取出后面几行)
[root@www ~]# tail [-n number] 档案
选项与参数:
-n :后面接数字,代表显示几行的意思
-f
:表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
[root@www ~]# tail /etc/man.config
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.config
如果不知道/etc/man.config有几行,却只想列出100行以后的数据时?
[root@www ~]# tail -n +100 /etc/man.config
持续侦测/var/log/messages的内容
[root@www ~]# tail -f /var/log/messages
<==要等到输入[crtl]-c之后才会离开tail这个指令的侦测!
非纯文本档: od
[root@www ~]# od [-t TYPE] 档案
选项或参数:
-t :后面可以接各种『类型 (TYPE)』的输出,例如:
a
:利用默认的字符来输出;
c
:使用 ASCII
字符来输出
d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
f[size] :利用浮点数(floating)来输出数据,每个数占用 size bytes ;
o[size] :利用八进制(octal)来输出数据,每个整数占用 size bytes ;
x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes ;
请将/usr/bin/passwd的内容使用ASCII方式来展现!
[root@www ~]# od -t c /usr/bin/passwd
0000000 177 E L
F 001 001 001 \0
\0 \0 \0
\0 \0 \0
\0 \0
0000020 002 \0 003 \0 001
\0 \0 \0 260
225 004 \b 4
\0 \0
\0
0000040 020 E \0
\0 \0 \0
\0 \0 4
\0 \0 \a \0
( \0
0000060 035 \0 034 \0 006
\0 \0 \0
4 \0 \0
\0 4 200 004
\b
0000100 4 200 004 \b 340
\0 \0 \0 340
\0 \0 \0 005
\0 \0
\0
.....(后面省略)....
# 最左边第一栏是以 8 进位来表示bytes数。以上面范例来说,第二栏0000020代表开头是
# 第 16 个 byes (2x8) 的内容之意。
请将/etc/issue这个档案的内容以8进位列出储存值与ASCII的对照表
[root@www ~]# od -t oCc /etc/issue (oCc o convert
c)
0000000 103 145 156 164 117 123 040 162 145 154 145 141 163
145 040 065
C e
n t O
S r e l
e a s
e 5
0000020 056 062 040 050 106 151 156 141 154 051 012 113 145
162 156 145
. 2
(
F i n
a l )
\n K e
r n e
0000040 154 040 134 162 040 157 156 040 141 156 040 134 155
012 012
l \ r
o
n a n \ m
\n \n
0000057
# 如上所示,可以发现每个字符可以对应到的数值为何!
# 例如e对应的记录数值为145,转成十进制:1x8^2+4x8+5=101。
如果对纯文本文件使用这个指令,你甚至可以发现到 ASCII 与字符的对照表!非常有趣!
例如上述的范例二,你可以发现到每个英文字 e 对照到的数字都是 145,转成十进制你就能够发现那是 101 啰!
如果你有任何程序语言的书,拿出来对照一下 ASCII 的对照表,就能够发现真是正确啊!呵呵!