Linux命令(8) head tail命令

2021-09-20 18:07:28 字數 4208 閱讀 1372

head與tail都是以行為單位進行資料選取的,head是取出前面,tail是取出後面的。

head(取出前面幾行)

命令格式:

head [引數]... [檔案]...  

命令引數:

-q 隱藏檔名

-v 顯示檔名

-c《位元組》 顯示位元組數

-n《行數》 顯示的行數

示例:

預設情況下,顯示前10行

[root@w zdw]# head 123.log 

顯示前5行

[root@w zdw]# head -n 5 123.log 

檔案有21行,以下操作,只列印前面的6行,後面的15行不會列印出來

[root@w zdw]# head -n -15 123.log   

使用-c引數,看指定大小的內容

#下面message的檔案有1149位元組(12k)

總用量 2392

-rw-r--r--. 1 root root     181 11月 22 17:34 99.sh

-rw-r--r--. 1 root root 1222783 10月 28 12:09 glances-1.7.1.tar.gz

-rw-------. 1 root root   11595 11月 22 14:08 messages

-rw-r--r--. 1 root root    1149 11月 22 15:17 messages2.gz

-rw-r--r--. 1 root root    1202 11月 22 14:36 messages.gz

-rw-r--r--. 1 root root 1196607 10月 11 15:27 nginx-1.2.9.zip

nov 20 04:01:01 c7 systemd: created slice user-0.slice.

nov 20 04:01:01 c7 systemd: starting session 94 of user root.

nov 20 04:01:01 c7 systemd: created slice user-0.slice.

nov 20 04:01:01 c7 systemd: starting session 94 of user root.

nov 20 04:01:01 c7 systemd: started session 94 of user root.

nov 20 05:01:01 c7 systemd: created slice user-0.slice.

nov 20 05:01:01 c7 systemd: starting session 95 of user root.

nov 20 05:01:01 c7 systemd: started session 95 of user root.

nov 20 06:01:01 c7 systemd: created slice user-0.slice.

nov 20 06:01:01 c7 systemd: starting session 96 of user root.

nov 20 06:01:01 c7 systemd: started session 96 of user root.

nov 20 07:01:01 c7 systemd: created slice user-0.slice.

nov 20 07:01:01 c7 systemd: starting session 97 of user root.

nov 20 07:01:01 c7 systemd: started session 97 of user root.

nov 20 08:01:01 c7 systemd: created slice user-0.slice.

nov 20 08:01:01 c7 systemd: starting session 98 of user root.

nov 20 08:01:01 c7 systemd: started session 98 of user root.

nov 20 09:01:01 c7 systemd: created slice user-0.slice.

nov 20 09:01:01 c7 systemd: starting session 99 of user root

tail(取出後面幾行)

命令格式:

tail[必要引數][選擇引數][檔案]   

命令引數:

-f 迴圈讀取

-q 不顯示處理資訊

-v 顯示詳細的處理資訊

-c《數目》 顯示的位元組數

-n《行數》 顯示行數

--pid=pid 與-f合用,表示在程序id,pid死掉之後結束. 

-q, --quiet, --silent 從不輸出給出檔名的首部 

-s, --sleep-interval=s 與-f合用,表示在每次反覆的間隔休眠s秒 

tail -f這個選項特別有用。tail -f命令在按要求的行數列印完之後,不是立即退出,而是等著有新行被追加到檔案末尾,再隨著新行的出現列印新行----對於監視日誌檔案來說很有用。不過要注意,寫檔案的那個程式可能會緩衝它的輸出。即使從邏輯上講,新行是按有規律的時間間隔追加的,但它們可能只按1kib或者4kib的塊來顯示。

鍵入ctrl+c即可停止監視。

示例:

顯示檔案最後5行

[root@w zdw]# tail -n 5 123.log 

只列出15行以後的資料

[root@w zdw]# tail -n +15 123.log  

使用-f引數,迴圈檢視檔案內容

[root@w zdw]# ping www.baidu.com >123.log &           #把ping資訊追加到123.log中

[root@w zdw]# tail -f 123.log 

64 bytes from 220.181.111.188: icmp_seq=32 ttl=55 time=3.50 ms

64 bytes from 220.181.111.188: icmp_seq=33 ttl=55 time=3.67 ms

64 bytes from 220.181.111.188: icmp_seq=34 ttl=55 time=7.14 ms

64 bytes from 220.181.111.188: icmp_seq=47 ttl=55 time=3.54 ms

64 bytes from 220.181.111.188: icmp_seq=48 ttl=55 time=3.33 ms

64 bytes from 220.181.111.188: icmp_seq=49 ttl=55 time=4.24 ms

^c一直顯示,直到按ctrl+c才終止

顯示檔案的第6行到第10行

[root@w zdw]# head -n 10 456.log|tail -n 5             #使用管道來操作

使用-f查詢新增的內容,並顯示時間,%n精確時間

[root@rsync01 shell]# tail -f 6_5.sh | while read; do echo "$(date +%t.%n) $reply"; done    

16:26:33.322562150 ddd

16:26:33.325881031 ddd

16:26:33.330306537 ddd

16:26:33.333555193 ddd

16:27:07.573748236 123232

16:27:12.225703519 12324343^c

學習Linux命令(8)

cp 選項 t 源 目的 或 cp 選項 源 目錄 或 cp 選項 t 目錄 源 將原始檔複製至目標檔案,或將乙個或多個原始檔複製到目錄下 a,archive 等同於 dr 複製全部,但不跟隨鏈結 backup control 複製時如果目標檔案已存在則做備份 b 等同於 backup但是沒有引數 ...

linux命令(8)kill命令

kill命令 linux中的kill命令用來終止指定的程序 terminate a process 的執行,是linux下程序管理的常用命令。通常,終止乙個前台程序可以使用ctrl c鍵,但是,對於乙個後台程序就須用kill命令來終止,我們就需要先使用ps pidof pstree top等工具獲取...

Linux筆記(8) 管線命令

1 管線命令界定符號 1 僅能接受標準輸出的資訊 2 必須能夠接受來自前乙個命令的資料成為標準輸入繼續處理 才行 2 擷取命令,將一段資料經過分析,取出想要的。一行一行分析 1 cut a cut d 分隔字元 f fields,利用分隔字元對輸入的內容進行分割,取fields代表的段數 eg ec...