我在終端機中運行一些命令,輸出它們所做的一切,這很棒,但我不需要整個視窗充滿數千行輸入。有沒有辦法讓輸出的最後 x 行顯示,其餘的都被刪除?
答案1
您可以使用 tail 命令。它將僅列出使用者指定的文件的最後幾行。如果需要的話,還會即時列出最後幾行。 tail -n 5 將列印最後 5 行。只需做 man tail 即可獲得其他選擇。
答案2
在不知道您看到哪些命令的大量輸出的情況下,我可以說您可以透過使用「管道」將第一個命令的輸出發送到第二個命令來限制使用tail 命令在終端上輸出的行數。一個例子是:
ls | tail -n 5
ls 指令的輸出不是傳送到螢幕,而是傳送(或透過管道)到 tail 指令。由於指定了“-n 5”,此處的 tail 命令將列印 ls 輸出的最後 5 行。
答案3
控制台輸出只是一行一行地寫入輸出流(標準輸出或標準錯誤)。控制台視窗和終端應用程式僅顯示這些內容,並向上捲動先前的內容。他們無法擦除任何已列印的行。您需要:
- 控制台/終端應用程序,具有省略除最後一個之外的所有內容的內建功能n收到新線後重繪時的線;這也許是可能的,但我不知道怎麼做。
- 可以執行此操作的附加應用程序,從控制台啟動作為應用程式的包裝器;
screen
也許tmux
可以做到,但我不知道該如何做到。 一個可以執行此操作的應用程序,您可以將應用程式的控制台輸出透過管道傳輸到該應用程式;
multitail
適合這裡,例如:find | env LINES=10 multitail -j
將顯示 的輸出
find
,但一次不會顯示超過 10 行。
您尚未說明您所使用的作業系統,但multitail
可用於 Linux,例如作為 Ubuntu 軟體包。