精華區beta FreeBSD 關於我們 聯絡資訊
◇ [簡介] screen -------------------------------------------------------------------------------- << screen 簡介 >> 前言 screen 已成為不少 unix 玩家必用的工具,screen 的種種「特異功能」 讓 UNIX 的使用更加便利。除了 scroll/copy/paste/switching... 外, screen 的 detatch/re-attach 更是讓前景程式享有背景執行的效果。 使用 打 screen 就進入一個 screen session 裏,在 screen session 下, 所有命令都以 C-a(^A) 開頭: C-a c -> Create,開出新的 window C-a n -> Next,切換到下個 window C-a p -> Previous,前一個 window C-a C-a -> Other,在兩個 window 間切換 C-a w -> Windows,列出已開啟的 windows 有那些 C-a 0 -> 切換到第 0 個 window C-a 1..9 -> 切換到第 1..9 個 window C-a a -> 送出 C-a,在 emacs, ve, bash, tcsh 下可移到行首 C-a t -> Time,顯示目前的時間,與系統的 load C-a K(大寫) -> kill window,強制關掉目前的 window C-a [ -> 進入 copy mode,在 copy mode 下可以回捲、搜尋、拷貝 就像用 vi 一樣 C-b Backward,PageUp C-f Forward,PageDown H(大寫) High,將游標移至左上角 L Low,將游標移至左下角 0 移到行首 $ 行末 w forward one word,以字為單位往前移 b backward one word,以字為單位往後移 Space 第一次按為標記區起點,第二次按為終點 Esc 結束 copy mode C-a ] -> Paste,把剛在 copy mode 選定的內容貼上 C-a ? -> Help,顯示簡單說明 C-a d -> detach,將目前的 screen session (可能含有多個 windows) 丟到背景執行,這招就是 screen 的「特異功能」 當按了 C-a d 把 screen session detach 掉後,會回到還沒進 screen 時 的狀態,此時在 screen session 裏每個 window 內跑的 process (無論是 前景/背景)都在繼續執行,即使 logout 也不影響。 下次 login 進來時: screen -ls -> 顯示所有的 screen sessions screen -r [keyword] -> 挑個 screen session 回來 (撿回來) 若 screen -ls 裏有 Attached sessions: screen -d [keyword] -> 強制 detach,以便「接手」過來 screen 的 detach 這項「特異功能」除了適合跑「背景性質」的前景程式, 另一種常見的用法是: 用 dos ncsa (或其它極不穩定的 client,或網路狀況極差)連上穩定的 screen server,執行 screen 後就可享有 server 的穩定性,比如說, 用 modem 連上某 FreeBSD account,再連到 bbs talk/post,當玩得正 起興時自己的電腦突然當機(或電話突然斷線),趕快再次連上 FreeBSD: screen -ls -> 看看有那些 screen sessions screen -d -> 意外斷線的 screen 通常仍在 Attached 狀態, 所以用 screen -d 強制 detach screen -r -> 把剛斷線的狀況「撿回來」,繼續 talk,對方 根本不知自己斷線再重連 :) 更多的參考資料 C-a ? man screen /usr/ports/misc/screen 吳 慶 鴻,[email protected] | 台大電機,http://bbs.ee.ntu.edu.tw