儲存終端列印資訊

2021-10-10 11:20:45 字數 2335 閱讀 4901

先要說明為什麼要記錄終端會話,因為常會遇到這樣的情況,終端是有快取大小限制的,當在終端列印的訊息超出快取範圍,它前面的列印訊息就自動丟失了,這對於我們除錯程式會造成障礙,所以有記錄完整終端列印訊息的必要!

1使用script記錄linux終端會話

script是大多數linux產品util-linux軟體包的一部分。

script記錄會話的一切內容:你輸入的內容和你看到的內容。它甚至記錄顏色;因此如果你的命令提示符或程式輸出中包含顏色,script將記錄它。

要使用script,簡單執行以下命令:

$ script
預設情況下,它向當前目錄的typescript檔案中寫入內容。然後,你輸入的一切內容都被記錄到那個檔案中。要往另乙個檔案中記錄日誌,只需使用script/path/to/file命令。

完成記錄後,輸入exit退出。這個命令將關閉script會話並儲存檔案。現在你可以使用cat或其它任何程式來檢查日誌檔案。

在ubuntu/或者其他linux下執行,

script screen.log
開始記錄,

記錄螢幕資訊到screen.log裡,一直記錄到你exit為止,記錄螢幕log的好方法…

結束記錄:

exit
使用例項

aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$ sudo script screen.log //¿ªê¼¼çâ¼

[sudo] password for aulyp:

script started, file is screen.log

root@ubuntu:/home/workspace/android_eclair_smdk6410# sudo make clean

====

====

====

====

====

====

====

====

====

====

====

platform_version_codename=rel

platform_version=2.1

target_product=generic

target_build_variant=eng

target_simulator=

target_build_type=release

target_arch=arm

host_arch=x86

host_os=linux

host_build_type=release

build_id=erd79

====

====

====

====

====

====

====

====

====

====

====

cleaning out/target/product/generic...

cleaning out/target/common...

cleaning out/host/linux-x86...

cleaning out/host/common...

clean.

root@ubuntu:/home/workspace/android_eclair_smdk6410# exit //íë³ö¼çâ¼

exit

script done, file is screen.log

aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$

已經找到了解決方法,異常退出也沒有問題,仍然記錄log,需要加上引數,script -f ido.log,如果在乙個終端上使用mkfifo ido.log;script -f ido.log 然後在另乙個終端登入,找到這個ido.log檔案,你tail -f 就會滾動輸出你操作的內容…這個非常方便…

2.使用script的缺點在於,它記錄所有特殊的字元;因此你輸入的檔案中將充滿控制字元和ansi轉義序列。你可以在script中使用乙個非常簡單的shell來解決這個問題:

shell=/bin/bash ps1=」$ 」 script
使用script時,不要使用互動式程式或處理視窗的程式,如vior top。它們會破壞會話的輸出結果。另外,日誌檔案會記錄你使用的任何命令列程式和你完成一項任務所採取的步驟。如果你需要在指令碼中編輯乙個檔案,考慮退出script會話,然後用script –a(它在舊會話後新增新會話)對檔案進行編輯後再重新啟動會話。

定時列印資訊

class cl time event definition.public section.class methods auto exe for event finished of cl gui timer importing sender.endclass.cl time event defini...

ROS 在終端無法列印資訊的原因

ros 在終端無法列印資訊的原因 ros的啟動節點可以控制程式中的列印訊息是否能在終端輸出 如下所示為一啟動節點,其中的output screen 加上就可以將列印資訊輸出到終端,去掉則在終端不會顯示列印資訊 lidar object detector type lidar object detec...

tomcat 去掉 列印資訊

1.引用 修改startup.bat第42行 call executable start cmd line args 為 call executable run cmd line args logs catalina.txt 然後在此啟動tomcat,再次檢視catalina.txt,預期的資訊果然...