直接檢視檔案内容
1. cat
cat 是concatenate的縮寫,主要功能是将檔案内容連續顯示在輸出裝置上,搭配有效的參數,可以使輸出内容達到自己想要的結果。它的缺點是當檔案内容行數很多時,往往根本來不及看,是以使用時有局限性。
$ cat rainbow
This
is
my
rainbow.
'[-n]參數,用來顯示行号'
$ cat -n rainbow
1 This
2 is
3 my
4 rainbow.
'[-A]參數,用來将檔案内容完整顯示(包含特殊字元)'
$ cat -A rainbow
This $
is $
my $
^Irainbow.$
正常情況下,即使文本内容中有Tab或換行符等特殊字元,輸出結果中也不會展示出來。使用
cat -A
時,輸出結果中會将Tab以
^I
顯示,換行符會顯示為
$
。在Windows系統中,是以
^M$
為換行符,如果你在Windows平台下調試通過的腳本放在Linux系統中卻報錯,vim中檢視代碼也沒有發現任何問題,那就需要考慮是不是換行符引發的問題。
2. tac
從單詞來看,
tac
是上一個指令
cat
的反寫,實際它的功能也和
cat
有類似關系。
cat
是将第一行到最後一行内容連續顯示在輸出裝置上,而
tac
則是将最後一行到第一行内容連續顯示在輸出裝置上。
$ tac rainbow
rainbow.
m y
is
This
3. nl
nl
指令和
cat -n
指令類似,也是會在顯示内容時自動添加行号。但是
nl
指令會自動跳過空白行,而
cat -n
則不會忽略空白行。
$ nl rainbow
1 This
2 is
3 m y
4 rainbow.
$ cat -n rainbow
1 This
2 is
3 m y
4 rainbow.
5
6
補充:
nl
cat -n
相比,還可以對行号做較多的設定,如行号位數設定、自動補零等。
翻頁檢視檔案内容
cat,tac,nl
這三個指令都是一次性全部将檔案内容展示在螢幕上,而
more
和
less
指令則支援翻頁檢視輸出内容,當内容行數很多時會變得非常友善。
1. more
$ more log.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
....省略中間的内容.....
.parent-name {
font-size: 0.7em;
letter-spacing: -0.07em;
--More--(1%)
在
more
指令運作中,有幾個按鍵可以使用:
- 空格鍵:向下翻頁
- Enter: 向下翻一行
- /字元串:向下搜尋字元串内容,按n可以重複搜尋同一内容
-
:顯示檔案名及目前顯示的行數:f
-
: 退出指令q
2. less
less
指令比
more
指令要更加靈活。使用
more
指令的時候,隻能按空格鍵向下翻頁,不支援向上翻頁,而
less
指令就可以使用
[PageUp]
、
[PageDn]
等按鍵自由前後翻看檔案内容。除此之外,
less
指令支援更多的字元串搜尋功能,不僅可以向下搜尋,也可以向上搜尋。
less
- 空格鍵或[PageDn]:向下翻頁
- [PageUp]:向上翻頁
- Enter或向下箭頭: 向下翻一行
- /字元串:向下搜尋字元串内容
- ?字元串:向上搜尋字元串内容
-
:f
-
:重複前一個搜尋(與/或?有關)n
-
:反向重複前一個搜尋(與/或?有關)N
-
更多用法,可以使用q
檢視。man less
除了從上面介紹的幾個指令外,常用的還有
head
tail
指令,用于取出前幾行或後幾行,基本用法為:
'檢視前十行内容'
$ head log .html
'檢視前20行内容'
$ head -n 20 log.html
'實時檢視最新的輸出内容'
$ tail -f -n 100 catalina.out
'檢視第11~20行内容'
$ head -n 20 log.html | tail -n 10