什麼是 screen 嗯,從小歷史就不好,這裡不談 screen 的歷史, screen 是干嘛的?依照它的在線手冊(manual pages),它是個全螢幕的視窗管理員(full-screen window manager),不過別緊張,它跟 X-Window 上面的 GNome,AfterStep 等等視窗管理員一點關系也沒有。 簡單地說,它是個文字界面的 VT100/ANSI 終端模擬器(terminal emulation),如果你玩網絡已有一段時間了,那你一定曾經在某 BBS 站注冊時,會發現它要你輸入你的終端機型別,通常預設就是 VT100 了,所以只要按了 enter 鍵就可以了,而什麼是 terminal ,可以想成是定義你鍵盤上某個鍵按下去之後在螢幕上會顯示出來什麼符號或是字元,以及螢幕上的一行可以容納多少個字元等等,詳細的資料請參考 termcap , FreeBSD 使用者請看 /usr/share/misc/termcap,Linux 使用者(RedHat)請看 /etc/termcap 。至於 Window 的使用者,對不起,找個工作站連上去吧。 好,那麼 screen 到底可以做些什麼呢? 當我們執行 screen 時,會進入 screen 的空間裡,你會發現沒什麼變化,只是好像重新執行了一次 shell ,沒錯,如果你只做一件事,其他都不管,那 screen 對你來說沒什麼做用,但是如果你打算登入到很多 bbs 站(好比來個五個 bbs 站吧),可是又怕在這麼多視窗中切換會不小心跟錯誤的人傳了錯誤的訊息,或是怕視窗開了太多,有人傳給你重要的訊息而你看不到而忽略了,那你就需要它了。 當然,我的意思不是說 screen 是上 bbs 站的利器(當然也是:p),而是可以讓你只要靠一個視窗就可以同步地處理很多的事情,你可以在浏覽某大 bbs 站文章時,同時正有一個 process 在編程明天要交的功課,而另一個 process 正在幫你傳送(FTP)某個大檔案。而你可以不需要再移動你的手放到滑鼠上面去切換視窗,只需要按三個鍵就可以切換到你希望看到的視窗。 中文字是很麻煩的,剛剛說的視窗,實際上是不同的東西,在 X-Window 下或是 Window98/NT/2000 下的視窗就是開出來一個個外面有框框的東西,右上角還會有三個小框框讓你縮放或關掉這個視窗。而經由 screen 所開出來的視窗則只是在原來的視窗裡再生出一個視窗,你一次只能看到一個視窗畫面,但是同時所有的視窗(最多一個 screen session 可以開十個視窗)仍然在運作(好比在背景執行的 process)。 附: screen 功能說明:多重視窗管理程序。 語 法:screen [-AmRvx -ls -wipe][-d <作業名稱>][-h <行數>][-r <作業名稱>][-s ][-S <作業名稱>] 補充說明:screen為多重視窗管理程序。此處所謂的視窗,是指一個全屏幕的文字模式畫面。通常只有在使用telnet登入主機或是使用老式的終端機時,才有可能用到screen程序。 參 數: -A 將所有的視窗都調整為目前終端機的大小。 -d<作業名稱> 將指定的screen作業離線。 -h<行數> 指定視窗的緩沖區行數。 -m 即使目前已在作業中的screen作業,仍強制建立新的screen作業。 -r<作業名稱> 恢復離線的screen作業。 -R 先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。 -s 指定建立新視窗時,所要執行的shell。 -S<作業名稱> 指定screen作業的名稱。 -v 顯示版本信息。 -x 恢復之前離線的screen作業。 -ls或--list 顯示目前所有的screen作業。 -wipe 檢查目前所有的screen作業,並刪除已經無法使用的screen作業。