在大家剛接觸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文件名,便可看見文件中的內容,保留原格式 12 dsf ghjk hadoop [ 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 ghjk dsf 12 [ 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 瀏覽多個文件 dhgfas khsdf kjasdhfi 1.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/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp: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/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin vinsent:x:1000:1000:vinsent:/home/vinsent:/bin/bash mage:x:1001:1001::/home/mage:/bin/bash quagga: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 ~ ]#