有冇試過 SSH 連緊去 server 跑緊 AI 訓練,突然網絡斷咗,成個 process 冇咗?Screen 就係嚟解決呢個問題!呢篇文章會教你點樣用 Screen 令你嘅程式喺背景繼續跑,就算斷線都唔使驚。
TL;DR
核心重點:
- 🎯 Screen 係乜:Terminal multiplexer,俾你喺 SSH 斷線後 process 繼續跑
- 🚀 5 分鐘上手:3 個核心命令就夠用 (create、detach、attach)
- 💡 實戰場景:訓練 AI model、跑長時間 script、遠程工作
- ⚖️ Screen vs tmux:Screen 簡單易用,tmux 功能更強
- 🛠️ 進階技巧:Split windows、.screenrc 配置、logging
- 📊 生產環境:命名規範、監控、自動化
目錄
- 點解需要 Screen?
- 5 分鐘快速上手
- 核心命令詳解
- 實戰場景
- Screen vs tmux 對比
- 進階功能
- 常見問題
- 總結
點解需要 Screen?
問題場景
想像你喺本地 MacBook SSH 去 AWS server 訓練緊一個 13B 模型:
ssh user@aws-server
python train_llama.py --epochs 100 # 預計要跑 3 日
突然 WiFi 斷咗!❌
你嘅 training process 會發生咩事?
→ **全部冇晒!**😱
點解會咁?
當你 SSH 去一個 server,你嘅 shell session 係依賴住呢個連接。一旦連接斷咗:
- Shell 會收到 SIGHUP (hangup signal)
- 所有由呢個 shell 啟動嘅 processes 都會被 kill
- 你嘅 training、download、compilation... 全部停咗
我第一次遇到呢個問題嗰陣,我喺公司 server 度 compile 緊一個大型 C++ project,預計要 2 個鐘。啱啱去咗食 lunch,返嚟發現 WiFi 斷過,成個 compilation 要由頭嚟過。之後我就開始用 Screen。
Screen 嘅解決方法
Screen 係一個 terminal multiplexer,佢會創建一個獨立於你 SSH session 嘅虛擬終端。
用 Screen 跑同一個任務:
ssh user@aws-server
screen -S training # 開個 screen session
python train_llama.py # 喺 screen 入面跑
# 按 Ctrl+A D 離開 (detach)
# WiFi 斷咗都冇問題!
就算你:
- ❌ Close 埋個 laptop
- ❌ 斷咗 WiFi
- ❌ SSH connection timeout
Training 都會繼續跑!🎉
之後你可以:
ssh user@aws-server # 重新連接
screen -r training # 返返去個 session
# 見到你嘅 training 仍然跑緊!
💡 Screen 嘅核心概念
Screen 創建咗一個虛擬終端 (virtual terminal),呢個終端係運行喺 server 上面,唔係你本地機。
你嘅 SSH 只係「連接」去呢個虛擬終端
當你 detach,虛擬終端繼續運行
你可以隨時 re-attach 返去
就好似你去咗朋友屋企打機,走嘅時候可以 pause,下次返嚟繼續玩。個 game 一直都喺度,只係你暫時唔喺度而已。
5 分鐘快速上手
3 個核心命令
你只需要記住呢 3 個命令,就已經可以應付 90% 嘅使用場景:
1️⃣ 開新 session
screen -S my-session
-S係 "Session name" 嘅意思my-session係你俾個 session 嘅名(可以自己改)
2️⃣ 離開 session (Detach)
Ctrl+A D
- 按住
Ctrl同時按A,然後放開,再按D - Session 會繼續跑,但你返咗去原本嘅 shell
3️⃣ 返返去 session (Attach)
screen -r my-session
-r係 "reattach" 嘅意思
就係咁簡單!✅
第一個實戰例子
我哋嚟實際試下。假設你要喺 server 度下載一個大 file:
Step 1: SSH 去你嘅 server
ssh user@your-server.com
Step 2: 開個 Screen session
screen -S download
你會見到畫面閃一閃,然後返回正常嘅 shell。呢個就係 screen session。
Step 3: 開始下載
wget https://example.com/large-file.zip
# 或者
curl -O https://example.com/large-file.zip
Step 4: Detach
按 Ctrl+A,然後按 D
你會見到:
[detached from 12345.download]
而家你返咗去原本嘅 shell,但 download 仍然喺背景跑緊!
Step 5: 檢查 session list
screen -ls
輸出:
There is a screen on:
12345.download (Detached)
1 Socket in /run/screen/S-user.
Step 6: 隨時 re-attach
screen -r download
你會返返去個 download session,見到進度!
就算你而家 logout,download 都會繼續:
exit # 離開 SSH
# 過咗一陣,重新 SSH
ssh user@your-server.com
screen -r download # 見到 download 仍然跑緊
核心命令詳解
Session 管理
創建 Session
# 有名 session(推薦)
screen -S session-name
# 無名 session(唔建議)
screen
點解要俾名? 當你有多個 sessions,冇名好難記邊個係邊個。
列出所有 Sessions
screen -ls
輸出例子:
There are screens on:
12345.training (Detached)
12346.download (Attached)
12347.monitoring (Detached)
3 Sockets in /run/screen/S-billy.
- Detached:session 跑緊,但冇人 attach
- Attached:有人正在使用呢個 session
Attach 去 Session
# Attach 去指定 session
screen -r session-name
# 如果只有一個 detached session
screen -r
# 強制 attach(即使有人用緊)
screen -x session-name
Detach Session
喺 screen 入面:
Ctrl+A D
由外面 detach:
screen -d session-name
結束 Session
喺 session 入面:
exit
# 或者
Ctrl+D
# 或者
Ctrl+A K # Kill
由外面 kill:
screen -S session-name -X quit
Screen 快捷鍵
Screen 嘅所有快捷鍵都係 Ctrl+A 開頭,然後跟住另一個鍵。
| 快捷鍵 | 功能 | 說明 |
|---|---|---|
Ctrl+A D | Detach | 離開 session,保持運行 |
Ctrl+A C | Create window | 喺同一個 session 開新 window |
Ctrl+A N | Next window | 切換去下一個 window |
Ctrl+A P | Previous window | 切換去上一個 window |
Ctrl+A 0-9 | Switch to window N | 直接跳去第 N 個 window |
Ctrl+A " | Window list | 顯示所有 windows,用方向鍵選擇 |
Ctrl+A A | Rename window | 改當前 window 嘅名 |
Ctrl+A K | Kill window | 關閉當前 window |
Ctrl+A [ | Copy mode | 進入 scroll/copy 模式 |
Ctrl+A ] | Paste | 貼上之前 copy 嘅內容 |
Ctrl+A ? | Help | 顯示所有快捷鍵 |
⌨️ 記快捷鍵嘅技巧
我一開始都記唔晒咁多快捷鍵。其實你只需要記住最常用嘅幾個:
Ctrl+A D→ Detach
Ctrl+A C→ Create window
Ctrl+A N→ Next window
Ctrl+A K→ Kill window其他嘅可以用
Ctrl+A ?睇返。
Windows 管理
Screen 唔止可以 detach,仲可以喺同一個 session 入面開多個 windows(就好似 browser tabs 咁)。
點解要用 Windows?
想像你喺 server 度同時做緊幾樣嘢:
- Window 0:跑緊 training
- Window 1:monitor GPU usage (
nvidia-smi) - Window 2:睇 logs (
tail -f train.log) - Window 3:寫 code
全部都喺同一個 screen session,切換好方便!
實戰例子
# 開個 screen session
screen -S dev
# Window 0:開始 training
python train.py
# 開新 window (Ctrl+A C)
Ctrl+A C
# Window 1:monitor GPU
watch -n 1 nvidia-smi
# 再開新 window (Ctrl+A C)
Ctrl+A C
# Window 2:睇 logs
tail -f train.log
# 切換返 Window 0
Ctrl+A 0
# 或者用 Ctrl+A N (next) / Ctrl+A P (previous)
Window List
想睇有幾多個 windows?
Ctrl+A "
會見到:
Num Name
0 training
1 gpu-monitor
2 logs
用方向鍵選擇,按 Enter 跳去個 window。
實戰場景
場景 1:訓練 AI 模型
呢個係我最常用 Screen 嘅場景。AI 訓練通常要跑好耐(幾個鐘到幾日),你唔可能坐喺度等。
# SSH 去 GPU server
ssh gpu-server
# 開 screen session
screen -S llama-training
# 啟動訓練
python train_llama.py \
--model_size 7B \
--epochs 100 \
--batch_size 32 \
--output_dir ./checkpoints
# Detach (Ctrl+A D)
# 而家你可以 close laptop,訓練繼續跑
# 第二日返嚟 check 進度
ssh gpu-server
screen -r llama-training
# 見到訓練仍然跑緊!
進階:多 window 監控
screen -S training
# Window 0: Training process
python train.py 2>&1 | tee train.log
# Window 1: GPU monitoring (Ctrl+A C)
watch -n 1 nvidia-smi
# Window 2: CPU/Memory monitoring (Ctrl+A C)
htop
# Window 3: Log analysis (Ctrl+A C)
tail -f train.log | grep "loss:"
而家你可以隨時切換 windows check 唔同嘅 metrics!
場景 2:長時間 Data Processing
處理大量數據(例如 data preprocessing、ETL pipeline)都好啱用 Screen。
screen -S data-pipeline
# 處理 1TB 嘅數據
python process_data.py \
--input /data/raw/ \
--output /data/processed/ \
--workers 32
# Detach
Ctrl+A D
# 過咗幾個鐘 check 返
screen -r data-pipeline
自動化 + Logging
screen -S pipeline
# 加埋 logging 同 notification
python process_data.py 2>&1 | tee pipeline.log && \
echo "Pipeline completed!" | mail -s "Data Pipeline Done" your@email.com
Ctrl+A D
場景 3:遠程工作 / 多地點接力
我成日會喺公司開始寫 code,返到屋企想繼續。用 Screen 就唔使 git commit 未完成嘅 code。
喺公司:
ssh work-server
screen -S dev
vim my_project.py
# 寫緊 code...
# 要走啦,Detach
Ctrl+A D
exit
喺屋企:
ssh work-server
screen -r dev
# 見到啱啱寫到一半嘅 code,繼續寫!
場景 4:Server 維護 / 系統升級
做緊 system upgrade 或者 package installation,過程可能好長,用 Screen 可以避免中途斷線搞到 system 唔一致。
screen -S system-upgrade
# 系統升級(可能要 30 分鐘)
sudo apt update && sudo apt upgrade -y
# 或者 compile 大型 software
./configure && make -j8 && sudo make install
Ctrl+A D
⚠️ 生產環境注意事項
喺 production server 做維護嗰陣,我一定會用 Screen 或 tmux。點解?有次我 SSH 去 production server 做緊 database migration,諗住好快搞掂。點知 migration script 行到一半,公司 VPN 斷咗。我個心一沉,因為 migration 可能已經改咗一半 schema,而家唔知係咩狀態。
之後我定咗 rule:任何可能超過 5 分鐘嘅操作,一定要喺 Screen/tmux 入面做。
Screen vs tmux 對比
Screen 同 tmux 都係 terminal multiplexers,功能好似,但有啲重要分別。
核心差異
| 特性 | Screen | tmux |
|---|---|---|
| 發布年份 | 1987(古老但穩定) | 2007(較新) |
| 學習曲線 | ⭐⭐ 簡單 | ⭐⭐⭐ 稍難 |
| 預設快捷鍵 | Ctrl+A | Ctrl+B |
| Split panes | ⭐⭐ 基本(較難用) | ⭐⭐⭐⭐⭐ 強大 |
| 配置 | .screenrc(較簡單) | .tmux.conf(更靈活) |
| Plugin 生態 | ❌ 幾乎冇 | ✅ 豐富(tmux-resurrect, tmux-continuum) |
| Session sharing | ⭐⭐⭐ 支援 | ⭐⭐⭐⭐ 更易用 |
| Status bar | ⭐⭐ 基本 | ⭐⭐⭐⭐⭐ 高度自定義 |
| 記憶體使用 | ⭐⭐⭐⭐ 較少 | ⭐⭐⭐ 稍多 |
| 預裝率 | ✅ 大部分 Linux 預裝 | ❌ 通常要自己裝 |
視覺化比較
快捷鍵對比
| 功能 | Screen | tmux |
|---|---|---|
| Prefix key | Ctrl+A | Ctrl+B |
| Detach | Ctrl+A D | Ctrl+B D |
| Create window | Ctrl+A C | Ctrl+B C |
| Next window | Ctrl+A N | Ctrl+B N |
| Split horizontal | Ctrl+A S | Ctrl+B " |
| Split vertical | `Ctrl+A | `(要配置) |
| Switch pane | Ctrl+A Tab | Ctrl+B 方向鍵 |
我嘅選擇建議
揀 Screen 如果:
✅ 你係新手,想快速上手
✅ Server 已經預裝 Screen
✅ 你只需要基本 detach/attach 功能
✅ 你唔需要複雜嘅 split windows
✅ 你想要最穩定、最少依賴
揀 tmux 如果:
✅ 你需要經常 split panes
✅ 你想要高度自定義 status bar
✅ 你想用 plugins(例如自動保存 sessions)
✅ 你做緊 pair programming
✅ 你願意花時間學習同配置
我自己嘅用法
我兩個都用:
- Server 上用 Screen:因為大部分 server 預裝,我只係想 detach long-running tasks
- 本地開發用 tmux:因為我鍾意 split panes 嘅方式,而且有好多 plugins 幫到手
💡 唔使二揀一!
Screen 同 tmux 唔係競爭關係。好多人(包括我)都係兩個都用,視乎情況。如果你而家用緊 Screen 用得好好,其實冇必要特登轉 tmux。但如果你發現 Screen 嘅功能唔夠,咁就可以試下 tmux。
進階功能
Split Windows(分割畫面)
Screen 都支援 split panes,雖然冇 tmux 咁好用,但都夠用。
Horizontal Split(上下分割)
Ctrl+A S
你會見到畫面分咗兩半(上下)。但係新嘅 pane 係空白!你需要:
Ctrl+A Tab # 跳去下面個 pane
Ctrl+A C # 喺新 pane 開個 window
Vertical Split(左右分割)
Screen 預設冇垂直分割。你需要喺 .screenrc 加:
# ~/.screenrc
bind | split -v
之後就可以用 Ctrl+A | 做垂直分割。
Switch Between Panes
Ctrl+A Tab
Remove Split
Ctrl+A X # 移除當前 pane
Ctrl+A Q # 移除所有 panes 除咗當前
實戰例子:上下分割睇 logs
screen -S monitor
# 頂部:跑 training
python train.py
# Split (Ctrl+A S)
Ctrl+A S
# 跳去下面 (Ctrl+A Tab)
Ctrl+A Tab
# 開 window (Ctrl+A C)
Ctrl+A C
# 下面:睇 logs
tail -f train.log
# 而家可以同時睇到 training output 同 logs!
💡 Split 嘅限制
老實講,Screen 嘅 split 功能比較雞肋。如果你經常需要 split panes,我會建議你用 tmux。Screen 嘅 split 主要問題:
Detach 之後 split layout 會唔見咗
操作唔夠直觀
冇辦法調整 pane size
我自己用 Screen 都好少 split,通常只係開多幾個 windows。
Logging(記錄輸出)
Screen 可以將所有輸出自動記錄落 file,對 debugging 好有用。
手動開始 logging
Ctrl+A H
你會見到:
Creating logfile "screenlog.0".
之後所有嘅輸出都會寫入 screenlog.0。
停止 logging
Ctrl+A H # 再按一次
自動 logging(喺 .screenrc)
# ~/.screenrc
deflog on
logfile /tmp/screenlog_%t.log
%t會被替換成 window number- 每個 window 有獨立嘅 log file
.screenrc 配置
你可以喺 ~/.screenrc 自定義 Screen 嘅行為。
我嘅推薦配置
# ~/.screenrc
# 關閉啟動訊息
startup_message off
# 增加 scrollback buffer(預設只有 100 行)
defscrollback 10000
# Status line 顯示喺底部
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
# 自動 logging
deflog on
logfile /tmp/screenlog_%t.log
# Vertical split
bind | split -v
# 方便 resize
bind = resize =
bind + resize +1
bind - resize -1
# 快速切換 window(用 F11/F12)
bindkey -k F1 prev
bindkey -k F2 next
# 256 色支援
term screen-256color
# 自動 detach on hangup
autodetach on
# UTF-8 支援
defutf8 on
配置解釋
Status line:底部會顯示:
[ hostname ][ 0 bash 1 vim* 2 htop ][ 02-04 14:32 ]
- 左邊:hostname
- 中間:所有 windows(當前 window 有
*) - 右邊:日期時間
Scrollback buffer:預設只有 100 行,改成 10000 行可以 scroll 返好遠。
Vertical split:Ctrl+A | 做垂直分割。
Copy Mode(複製文字)
喺 terminal 入面複製文字有時好麻煩,Screen 提供咗 copy mode。
進入 Copy Mode
Ctrl+A [
操作
- 移動 cursor:方向鍵 或
h/j/k/l(vim style) - 開始選擇:
Space - 結束選擇:
Space(會自動 copy) - 貼上:
Ctrl+A ] - 離開 copy mode:
Esc
搜尋
喺 copy mode 入面可以搜尋:
/search-term # 向下搜尋
?search-term # 向上搜尋
n # 下一個 match
N # 上一個 match
Multi-User Sessions(共享 session)
Screen 可以俾多個人同時 attach 去同一個 session,適合 pair programming 或者 debugging。
啟用 multi-user mode
User A(session owner):
screen -S shared
# 啟用 multi-user
Ctrl+A :multiuser on
# 俾 user B 權限(假設 username 係 bob)
Ctrl+A :acladd bob
User B:
# Attach 去 user A 嘅 session
screen -x userA/shared
而家兩個人見到同一個畫面,任何一個人打字,另一個都會即刻見到!
實戰應用
我試過用呢個功能 remote debug production issue:
- 我喺香港,同事喺倫敦
- 我哋 attach 去同一個 screen session
- 一齊睇 logs、一齊試 commands
- 好似兩個人共用一個 terminal 咁
比起 screen sharing 軟件快好多!
常見問題 (FAQ)
Q1: Screen 同 nohup 有咩分別?
A: 兩個都可以令 process 喺背景跑,但用法好唔同:
nohup:
nohup python train.py &
- ✅ 簡單:一個 command 搞掂
- ❌ 冇交互:你唔可以返去睇 output 或者控制佢
- ❌ 要睇 output 只能睇
nohup.outfile
Screen:
screen -S training python train.py Ctrl+A D
- ✅ 可以返去交互:隨時 attach 返去睇 output
- ✅ 可以 send commands、stop process 等等
- ❌ 稍為複雜少少
我嘅建議:
- 如果你只係想 "fire and forget",用
nohup - 如果你想隨時返去 check 或者控制,用
screen
Q2: 可唔可以同時 attach 多次?
A: 可以!有兩種模式:
Read-only attach(screen -x):
# Terminal 1
screen -S demo
# Terminal 2(同時)
screen -x demo
兩個 terminals 會 mirror 同一個 session。一個打字,另一個即刻見到。
用途:
- Pair programming
- 教學 / demo
- Remote debugging
Q3: Screen 會唔會用好多資源?
A: 唔會!Screen 非常輕量:
- 每個 session:~1-2 MB RAM
- CPU usage:幾乎零(除非你跑嘅 program 本身用好多)
我試過同時開 10+ screen sessions 都冇問題。
Q4: Screen session 會唔會因為 server reboot 而消失?
A: **會!**Screen sessions 係 process,server reboot 會 kill 晒所有 processes。
Screen 唔係用嚟:
- ❌ 抵抗 server reboot
- ❌ Persist across reboots
Screen 係用嚟:
- ✅ 抵抗 SSH 斷線
- ✅ 抵抗 network 問題
- ✅ 俾你 close laptop
如果你想 process 喺 reboot 後自動重啟,你需要用:
systemdservicecron @rebootsupervisor/pm2
Q5: 點樣知道有幾多個 screen sessions 跑緊?
A:
screen -ls
如果冇任何 sessions:
No Sockets found in /run/screen/S-user.
如果有 sessions:
There are screens on:
12345.training (Detached)
12346.download (Attached)
2 Sockets in /run/screen/S-user.
Q6: 可唔可以 rename 一個 session?
A: 可以!有兩種方法:
方法 1:Detach 再用新名 attach
# 假設你有個 session 叫 12345.old-name
screen -r old-name
Ctrl+A D
# 用新名 attach
screen -r old-name -S new-name
方法 2:喺 session 入面 rename
# 喺 session 入面
Ctrl+A :sessionname new-name
Q7: Screen 有冇 security 問題?
A: Screen sessions 係 user-specific。即係話:
- User A 嘅 sessions,User B 睇唔到(除非 User A explicitly share)
- 要 attach 去其他人嘅 session 需要 permission
但係要注意:
- ⚠️ Root sessions 好危險:如果你開個 screen session as root,任何有 root access 嘅人都可以 attach
- ⚠️ 唔好 run sensitive commands:Screen logs 可能會 capture passwords
Q8: 點樣自動啟動 screen sessions?
A: 你可以喺 ~/.bashrc 或者 ~/.bash_profile 加:
# ~/.bashrc
# 如果唔係喺 screen 入面,而且係 SSH 連接
if [[ -z "$STY" ]] && [[ -n "$SSH_CONNECTION" ]]; then
# 試 attach 去 default session,冇就 create
screen -DR default
fi
呢個會:
- 每次 SSH 連接都自動 attach 去
defaultsession - 如果
default唔存在,就 create - 如果已經 attached,就 detach 再 attach(force)
注意:呢個可能會令某啲操作(例如 scp)有問題,小心使用。
生產環境最佳實踐
命名規範
用有意義嘅名,唔好用 screen 或者 test:
❌ 唔好:
screen
screen -S test
screen -S s
✅ 好:
screen -S llama-training-v2 screen -S api-server-prod screen -S data-pipeline-2024-02-04
我自己嘅命名習慣:
screen -S <project>-<task>-<version/date>
# 例子
screen -S smartquest-training-v1.2
screen -S analytics-etl-2024-02-04
加 Logging
一定要加 logging,特別係 production tasks:
screen -S training
# 方法 1:用 tee(推薦)
python train.py 2>&1 | tee train-$(date +%Y%m%d-%H%M%S).log
# 方法 2:用 screen logging
Ctrl+A H
python train.py
點解要 logging?
- 🔍 方便 debug
- 📊 可以事後分析
- 🚨 出錯嗰陣可以追返 root cause
監控 Screen Sessions
寫個 script 定期 check screen sessions 嘅狀態:
#!/bin/bash
# check_screens.sh
SESSIONS=$(screen -ls | grep -c "Detached")
if [ $SESSIONS -eq 0 ]; then
echo "WARNING: No detached screen sessions found!" | \
mail -s "Screen Monitor Alert" admin@example.com
fi
加入 crontab:
crontab -e
# 每個鐘 check 一次
0 * * * * /path/to/check_screens.sh
文檔化你嘅 Sessions
喺 team 環境,要 document 有咩 sessions 跑緊:
# /home/shared/screen_sessions.md
## Production Screen Sessions
- `api-server-prod`: Main API server (started 2024-02-01)
- Owner: billy@example.com
- Command: `gunicorn app:app --workers 4`
- Logs: `/var/log/api/server.log`
- `data-pipeline`: Daily ETL pipeline (started 2024-02-03)
- Owner: alice@example.com
- Command: `python etl.py --daily`
- Logs: `/var/log/etl/daily.log`
定期 Cleanup
Screen sessions 會一直存在,直到你手動 kill。定期 cleanup 避免 orphan sessions:
# 列出所有 dead sessions
screen -ls | grep Dead
# 清理 dead sessions
screen -wipe
寫個 cleanup script:
#!/bin/bash
# cleanup_old_screens.sh
# Kill all screen sessions older than 7 days
for session in $(screen -ls | grep Detached | awk '{print $1}'); do
# Get session creation time
# (呢度需要 parse screen socket files 嘅 mtime)
# 如果超過 7 日,就 kill
screen -S $session -X quit
done
總結
核心重點回顧
Screen 解決咗咩問題?
- ✅ SSH 斷線後 processes 繼續運行
- ✅ 可以隨時 detach/attach
- ✅ 多個 windows 管理
- ✅ Session 持久化(直到 server reboot)
3 個必學命令:
screen -S name # Create
Ctrl+A D # Detach
screen -r name # Attach
常用場景:
- 🤖 訓練 AI 模型
- 📦 處理大量數據
- 🔧 系統維護
- 💻 遠程開發
Screen vs tmux:
- Screen:簡單、預裝、穩定
- tmux:強大、靈活、現代
最佳實踐:
- 📝 用有意義嘅 session names
- 📊 加 logging
- 📚 Document 你嘅 sessions
- 🧹 定期 cleanup
下一步學習
如果你想深入了解 terminal multiplexers:
- 試下 tmux:如果 Screen 唔夠用,學下 tmux
- 學 vim:Screen + vim 係絕配
- 研究 .screenrc:客製化你嘅 Screen 體驗
- 探索 session management:例如 tmuxinator、byobu
相關資源
官方文檔:
教學資源:
替代方案:
相關工具:
- 🖥️ mosh - Mobile shell,對付網絡唔穩定
- 📡 eternal terminal - 自動 reconnect 嘅 SSH
希望呢篇文章幫到你掌握 Screen!如果你有任何問題或者想分享你嘅使用經驗,歡迎留言討論。記住:任何可能超過 5 分鐘嘅 SSH 操作,都應該喺 Screen 入面做! 🚀