保存終端打印信息
先要說(shuō)明為什么要記錄終端會(huì)話,因?yàn)槌?huì)遇到這樣的情況,終端是有緩存大小限制的,當(dāng)在終端打印的消息超出緩存范圍,它前面的打印消息就自動(dòng)丟失了,這對(duì)于我們調(diào)試程序會(huì)造成障礙,所以有記錄完整終端打印消息的必要!
1使用script記錄Linux終端會(huì)話
script是大多數(shù)Linux產(chǎn)品util-linux軟件包的一部分。
script記錄會(huì)話的一切內(nèi)容:你輸入的內(nèi)容和你看到的內(nèi)容。它甚至記錄顏色;因此如果你的命令提示符或程序輸出中包含顏色,script將記錄它。
要使用script,簡(jiǎn)單執(zhí)行以下命令:
$ script
默認(rèn)情況下,它向當(dāng)前目錄的typescript文件中寫(xiě)入內(nèi)容。然后,你輸入的一切內(nèi)容都被記錄到那個(gè)文件中。要往另一個(gè)文件中記錄日志,只需使用script/path/to/file命令。
完成記錄后,輸入exit退出。這個(gè)命令將關(guān)閉script會(huì)話并保存文件。現(xiàn)在你可以使用cat或其它任何程序來(lái)檢查日志文件。
在ubuntu/或者其他linux下運(yùn)行,
script screen.log
開(kāi)始記錄,
記錄屏幕信息到screen.log里,一直記錄到你exit為止,記錄屏幕log的好方法…
結(jié)束記錄:
exit
使用實(shí)例
- aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$ sudo script screen.log //?aê?????
- [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 //í?3?????
- exit
- Script done, file is screen.log
- aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$
已經(jīng)找到了解決方法,異常退出也沒(méi)有問(wèn)題,仍然記錄log,需要加上參數(shù),script -f ido.log,如果在一個(gè)終端上使用mkfifo ido.log;script -f ido.log 然后在另一個(gè)終端登錄,找到這個(gè)ido.log文件,你tail -f 就會(huì)滾動(dòng)輸出你操作的內(nèi)容..這個(gè)非常方便…
2.使用script的缺點(diǎn)在于,它記錄所有特殊的字符;因此你輸入的文件中將充滿控制字符和ANSI轉(zhuǎn)義序列。你可以在script中使用一個(gè)非常簡(jiǎn)單的shell來(lái)解決這個(gè)問(wèn)題:
SHELL=/bin/bash PS1=”$ ” script
使用script時(shí),不要使用交互式程序或處理窗口的程序,如vior top。它們會(huì)破壞會(huì)話的輸出結(jié)果。另外,日志文件會(huì)記錄你使用的任何命令行程序和你完成一項(xiàng)任務(wù)所采取的步驟。如果你需要在腳本中編輯一個(gè)文件,考慮退出script會(huì)話,然后用script –a(它在舊會(huì)話后添加新會(huì)話)對(duì)文件進(jìn)行編輯后再重新啟動(dòng)會(huì)話。

浙公網(wǎng)安備 33010602011771號(hào)