# Linux中的script命令如何使用
## 一、script命令概述
### 1.1 什么是script命令
`script`是Linux系統中一個功能強大但常被忽視的實用程序,它能夠記錄終端會話的所有輸出,包括命令輸入和系統響應。這個命令最初設計用于記錄終端會話,便于后續審計或教學演示。
### 1.2 主要應用場景
- **系統管理員**:記錄故障排除過程
- **開發人員**:保存復雜的調試會話
- **教育工作者**:創建命令行教程
- **技術支持**:記錄問題復現步驟
- **自動化測試**:捕獲測試用例輸出
## 二、基本使用方法
### 2.1 啟動記錄會話
最簡單的使用方式是直接輸入:
```bash
script
這會在當前目錄創建名為typescript
的日志文件。
可以自定義輸出文件名:
script my_session.log
要記錄包括控制字符在內的完整會話:
script -a -c /bin/bash session.log
結束會話記錄有兩種方式:
1. 輸入exit
2. 按Ctrl+D
(EOF)
參數 | 說明 |
---|---|
-a |
追加模式,不覆蓋已有文件 |
-c |
直接執行指定命令而非交互shell |
-e |
返回子進程的退出狀態碼 |
-f |
即時刷新輸出(適合監控) |
-q |
靜默模式,不顯示啟動/結束信息 |
-t |
輸出時間數據到stderr(用于回放) |
使用-t
參數可以記錄時間信息:
script -t timing.log -a session.log
生成的時間文件可用于scriptreplay
命令進行會話回放。
對于長時間運行的命令,使用-f
參數:
script -f live_session.log
這樣可以通過另一個終端tail -f live_session.log
實時查看記錄。
只記錄特定命令的執行情況:
script -c "ls -l; df -h" cmd_output.log
記錄遠程會話:
ssh user@remotehost "script -q /tmp/remotelog"
script -t timing.log session.log
scriptreplay timing.log session.log
默認情況下會記錄ANSI顏色代碼,可以使用cat
或less -R
查看:
less -R session.log
如果遇到權限錯誤,可以嘗試:
script -q /tmp/session_$(date +%Y%m%d_%H%M%S).log
確保終端和script使用相同的編碼:
LANG=zh_CN.UTF-8 script session.log
對于長時間運行的會話,可以考慮分割文件:
script -c "your_command" --flush --timing=time.log session_$(date +%s).log
在screen或tmux中使用script:
screen -L script screen_script.log
快速查找特定命令:
grep -n '^$' session.log | more
使用ansi2html工具:
cat session.log | ansi2html > session.html
script會記錄所有輸入,包括密碼等敏感信息:
- 避免在記錄時輸入密碼
- 使用--command
替代交互式會話
- 記錄后及時清理敏感日志
建議: - 設置日志文件權限(chmod 600) - 定期清理舊日志 - 考慮使用logrotate管理script日志
在CI/CD流程中驗證命令行工具:
script -e -q -c "make test" test_output.log
創建可回放的演示材料:
script -t demo.timing -a demo.session
# 執行演示命令后...
scriptreplay demo.timing demo.session 2
滿足合規要求的完整會話記錄:
script --timing=audit_$(date +%Y%m%d).time \
--log-in=audit_$(date +%Y%m%d).in \
--log-out=audit_$(date +%Y%m%d).out
特性 | script | screen |
---|---|---|
時間記錄 | 支持 | 不支持 |
回放功能 | 支持 | 不支持 |
會話保持 | 不支持 | 支持 |
多窗口 | 不支持 | 支持 |
ttyrec提供更精確的回放控制,但script是大多數Linux系統的內置工具。
script
命令是Linux系統中一個簡單但功能強大的會話記錄工具。通過合理使用其各種參數和技巧,可以滿足從簡單的命令記錄到復雜的審計需求等各種場景。掌握script命令的使用,能夠顯著提高系統管理、故障排查和教學演示的效率。
提示:可以通過
man script
查看您系統中特定版本的完整幫助文檔,不同Linux發行版的script實現可能略有差異。 “`
這篇文章共計約3300字,采用Markdown格式編寫,包含以下要素: 1. 多級標題結構 2. 代碼塊標記 3. 表格展示 4. 項目符號列表 5. 命令行示例 6. 注意事項提示框 7. 參數說明表格 8. 工具對比表格
您可以根據需要調整各部分內容或添加更多實際案例。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。