THAM KHẢO NHANH GNU SCREEN
Session, cửa sổ, chia đôi, chế độ sao chép và chia sẻ
Quản Lý Session
Tạo & Liệt Kê Session
screen # new unnamed session
screen -S work # new session named "work"
screen -ls # list all sessions
screen -list # same as -ls
Lệnh Session
| screen -S name | Bắt đầu session mới có tên |
| screen -r name | Kết nối lại session đã tách |
| screen -x name | Gắn vào session đang dùng (chia sẻ) |
| screen -d name | Tách session từ xa |
| screen -d -r name | Tách ở nơi khác, kết nối lại ở đây |
| screen -D -RR | Buộc tách và kết nối lại (mạnh) |
| screen -ls | Liệt kê tất cả session kèm PID |
| screen -wipe | Dọn dẹp session đã chết |
Cửa Sổ
Cơ Bản về Cửa Sổ
| Ctrl-a c | Tạo cửa sổ mới |
| Ctrl-a n | Cửa sổ tiếp theo |
| Ctrl-a p | Cửa sổ trước đó |
| Ctrl-a 0-9 | Chuyển sang cửa sổ theo số |
| Ctrl-a " | Liệt kê tất cả cửa sổ (tương tác) |
| Ctrl-a ' | Chuyển sang cửa sổ theo tên/số |
| Ctrl-a A | Đổi tên cửa sổ hiện tại |
| Ctrl-a k | Đóng cửa sổ hiện tại |
Quản Lý Cửa Sổ
| Ctrl-a w | Hiển thị danh sách cửa sổ trên thanh trạng thái |
| Ctrl-a Ctrl-a | Chuyển đổi giữa hai cửa sổ gần nhất |
| Ctrl-a N | Hiển thị số và tên cửa sổ |
| exit / Ctrl-d | Đóng cửa sổ (thoát shell) |
Chia Đôi & Vùng
Lệnh Chia Đôi
| Ctrl-a S | Chia ngang (trên/dưới) |
| Ctrl-a | | Chia dọc (trái/phải) |
| Ctrl-a Tab | Chuyển focus đến vùng tiếp theo |
| Ctrl-a X | Đóng vùng hiện tại |
| Ctrl-a Q | Đóng tất cả vùng trừ vùng hiện tại |
Quy Trình Làm Việc với Vùng
Ctrl-a S # split horizontal
Ctrl-a Tab # move to new region
Ctrl-a c # create window in region
Ctrl-a :resize 20 # set region to 20 lines
Chế Độ Sao Chép
Cuộn Lại & Sao Chép
| Ctrl-a [ | Vào chế độ sao chép/cuộn lại |
| Space | Bắt đầu/kết thúc chọn (trong chế độ sao chép) |
| Enter | Sao chép vùng chọn và thoát chế độ sao chép |
| Ctrl-a ] | Dán văn bản đã sao chép |
| h/j/k/l | Di chuyển con trỏ (phím vi trong chế độ sao chép) |
| Ctrl-u / Ctrl-d | Cuộn lên/xuống nửa trang |
| / or ? | Tìm kiếm tiến/lùi |
| Esc | Thoát chế độ sao chép |
Quy Trình Sao Chép
Ctrl-a [ # enter copy mode
Space # mark start (navigate first)
Space # mark end + copy (navigate first)
Ctrl-a ] # paste into current window
Tách & Kết Nối Lại
Tách
| Ctrl-a d | Tách session hiện tại |
| Ctrl-a D D | Tách và đăng xuất |
| Ctrl-a z | Tạm dừng screen (như Ctrl-Z) |
| screen -d PID | Tách session từ xa theo PID |
Kết Nối Lại
screen -r # reattach (if only one session)
screen -r work # reattach by name
screen -r 12345 # reattach by PID
screen -d -r work # steal session from other terminal
Quy Trình Làm Việc Liên Tục
# Start long-running task, detach, reconnect later
screen -S build
make -j4 all # start build
Ctrl-a d # detach, go home
screen -r build # reattach later
Chia Sẻ
Chế Độ Nhiều Người Dùng
# Host enables multiuser
Ctrl-a :multiuser on
Ctrl-a :acladd alice # grant access to user alice
# Alice attaches
screen -x hostuser/sessionname
Kiểm Soát Truy Cập
| :multiuser on | Bật chế độ nhiều người dùng |
| :acladd user | Cấp quyền truy cập đầy đủ cho người dùng |
| :aclchg user -w '#' | Đặt người dùng chỉ đọc (tất cả cửa sổ) |
| :acldel user | Xóa quyền truy cập của người dùng |
| screen -x user/sess | Gắn vào session chia sẻ |
Cấu Hình
Thiết Yếu trong ~/.screenrc
startup_message off # skip splash screen
defscrollback 10000 # scrollback buffer lines
hardstatus alwayslastline
hardstatus string '%{gk}%H %{wk}%?%-Lw%?%{bw}%n*%f %t%{wk}%?%+Lw%?'
shell -$SHELL # use login shell
Cài Đặt Hữu Ích
| startup_message off | Ẩn thông báo khởi động |
| defscrollback N | Đặt buffer cuộn (mặc định 100) |
| escape ^Bb | Đổi phím prefix thành Ctrl-b |
| shelltitle '$ |bash' | Tự đặt tiêu đề cửa sổ |
| caption always '%n %t' | Luôn hiển thị caption kèm thông tin cửa sổ |
| autodetach on | Tự tách khi mất kết nối (mặc định bật) |
| vbell on | Dùng chuông hình ảnh thay chuông âm thanh |
Mẫu Phổ Biến
Thiết Lập Phát Triển
# Auto-create windows in .screenrc
screen -t editor 0 vim
screen -t server 1 python -m http.server
screen -t shell 2 bash
select 0 # start on editor window
Ghi Log & Giám Sát
Ctrl-a H # toggle logging to screenlog.N
Ctrl-a M # monitor window for activity
Ctrl-a _ # monitor window for silence
Tham Khảo Nhanh
| Ctrl-a ? | Hiển thị tất cả phím tắt |
| Ctrl-a :help | Trợ giúp có sẵn |
| Ctrl-a :source file | Nạp file cấu hình |
| Ctrl-a :screen cmd | Chạy lệnh trong cửa sổ mới |
| Ctrl-a :quit | Đóng tất cả cửa sổ và thoát session |