天天看點

Linux檢視檔案内容指令

直接檢視檔案内容

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

指令運作中,有幾個按鍵可以使用:

  1. 空格鍵:向下翻頁
  2. Enter: 向下翻一行
  3. /字元串:向下搜尋字元串内容,按n可以重複搜尋同一内容
  4. :f

    :顯示檔案名及目前顯示的行數
  5. q

    : 退出指令
2. less

less

指令比

more

指令要更加靈活。使用

more

指令的時候,隻能按空格鍵向下翻頁,不支援向上翻頁,而

less

指令就可以使用

[PageUp]

[PageDn]

等按鍵自由前後翻看檔案内容。除此之外,

less

指令支援更多的字元串搜尋功能,不僅可以向下搜尋,也可以向上搜尋。

less

  1. 空格鍵或[PageDn]:向下翻頁
  2. [PageUp]:向上翻頁
  3. Enter或向下箭頭: 向下翻一行
  4. /字元串:向下搜尋字元串内容
  5. ?字元串:向上搜尋字元串内容
  6. :f

  7. n

    :重複前一個搜尋(與/或?有關)
  8. N

    :反向重複前一個搜尋(與/或?有關)
  9. 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
           

繼續閱讀