標題: [轉錄]screen 的用法
時間: Thu Apr 3 01:34:49 2003
※ [本文轉錄自 Ygay 看板]
作者: sshower (crashing world) 看板: Ygay
標題: [轉錄]screen 的用法
時間: Thu Apr 3 01:04:39 2003
Screen 簡介
[1;31m[使用 screen][m
在命令列下打 screen 就會進入 screen 的天地:
% [1;36mscreen[m
注意,所有 screen 的指令都是以 Ctrl 鍵加上 a 鍵開始的,在之後以 C-a 代表,
C-a c代表按住 Ctrl 鍵不放再按 a 鍵,然後放開按 c 鍵;而 C-a C-c 代表按住
Ctrl 鍵不放再按 a 鍵,然後放開後再按住 Ctrl 鍵不放按 c 鍵。
[1;31m[開啟,關閉,切換][m
[1;36mC-a c[m 或 [1;36mC-a C-c[m 開啟新的視窗,並同時切換到這個新的視窗
[1;36mC-a n[m 或 [1;36mC-a C-n[m 或 C-a (space) 切換到下一個視窗(0->1 1->2 ...)
[1;36mC-a p[m 或 [1;36mC-a C-p[m 切換到上一個視窗(1->0 2->1 ...)
[1;36mC-a C-a[m 切換到上一個顯示過的視窗(不是照順序切換)
[1;36mC-a 0[m 切換到第 0 個視窗
[1;36mC-a (1..9)[m 切換到第 (1..9) 個視窗
[1;36mC-a w[m 或 [1;36mC-a C-w[m 會列出目前所開啟的視窗
列出來像這樣 => 0$ tcsh 1$ tcsh 2[1;33m*[m$ tcsh 3$ tcsh
有星號 "[1;33m*[m" 的表示目前顯示中的視窗,之後的 tcsh 代表
這個視窗的 title ,預設是以開啟時的 shell 名稱
[1;36mC-a '[m 會出現 "Switch to window:" 字樣,輸入號碼後就可切到該視窗
[1;36mC-a "[m 會跳到一個選單畫面,上面會列出所有視窗的號碼以及名字,你可以用
上下來選擇你要切換到的視窗(感覺是C-a '的豪華版)
[1;36mC-a K[m 關閉目前的視窗
[1;36mC-a \[m 關閉所有的視窗並退出 screen
[1;36mC-a '[m 會出現 "Switch to window:" 字樣,輸入號碼後就可切到該視窗
[1;36mC-a "[m 會跳到一個選單畫面,上面會列出所有視窗的號碼以及名字,你可以用
上下來選擇你要切換到的視窗(感覺是C-a '的豪華版)
[1;31m[單一視窗使用中的指令][m
[1;36mC-a C[m 清除目前的視窗內容
[1;36mC-a d[m 或 [1;36mC-a C-d[m 脫離(detach)目前的 screen ,並放到背景執行(不管開了幾
個視窗),下面會再提到
[1;36mC-a D D[m 強力脫離,除了放到背景執行外,並自動 logout
[1;36mC-a C-g[m 虛擬嗶聲(visual bell)的切換,可以在畫面上顯示訊息代表一般的嗶聲
[1;36mC-a H[m 紀錄目前視窗所有顯示過的東西(檔名為 screenlog.n n 為視窗號碼)
[1;36mC-a i[m 或 [1;36mC-a C-i[m 在視窗底下顯示目前視窗的資訊
就像這樣 => [30;47m(24,9)/(80,24)+100 +flow Big5 G0^X[B^XBB] 0(tcsh)[m
[1;36mC-a l[m 或 [1;36mC-a C-l[m 重繪視窗,如果有字顯示亂掉了可以用這個指令
[1;36mC-a m[m 或 [1;36mC-a C-m[m 或 [1;36mC-a (enter)[m 可以顯示最近一次顯示過的訊息
[1;36mC-a t[m 或 [1;36mC-a C-t[m 顯示系統的時間及主機名稱還有負載
[1;36mC-a v[m 顯示版本資訊
[1;36mC-a x[m 或 [1;36mC-a C-x[m 如果你要暫時離開目前位置又不想先 logout ,那可以用這個
來鎖住 screen
[1;36mC-a ?[m 線上求助畫面
[1;31m複製/卷軸 模式[m
按下 [1;36mC-a [[m 就可以進入 複製/卷軸 模式(只有在目前視窗才算,其他視窗照常)
基本上跟 vi 很像:
[1;36mh[m, [1;36mj[m, [1;36mk[m, [1;36ml[m 分別為向左,向下,向上,向右移動一格
(我試的結果 ↑↓← → 鍵好像都可以用)
[1;36m0[m 移到該行最左邊
[1;36m^[m 移到該行最左邊的非空白字元
[1;36m$[m 移到該行最右邊的非空白字元
[1;36mb[m 以字為單位往前(往左)移動並移到字首
[1;36mw[m 以字為單位往後(往右)移動並移到字首
[1;36me[m 以字為單位往後(往右)移動並移到[1;33m字尾[m
[1;36mC-b[m 向上捲一頁
[1;36mC-f[m 向下捲一頁
[1;36mC-u[m 向上捲半頁
[1;36mC-d[m 向下捲半頁
[1;36m/[m 與 [1;36m?[m 向下或向上尋找字串
[1;36m(space)[m 第一次按下space會產生第一個標示點
第二次按下space會產生第二個標示點
這兩個標示點之間的區域會被複製到暫存區內
複製完會自動跳離 複製/卷軸 模式
接著按下 [1;36mC-a ][m 便可以把剛剛存到暫存區內的內容複製出來。
[1;36m(ESC)[m 離開 複製/卷軸 模式
[1;31m[善用 screen][m
前面提到當按了 C-a d 脫離了 screen 後,會回到沒有執行 screen 時的狀態,
但是同時在之前 screen 裡每個視窗內在跑的 process (不管是前景或背景執
行的)仍然繼續執行,即使 logout 也不會有影響。所以你可能接著離開身邊
的電腦,然後跑出去喝個水,或者另外找個舒服的地方坐下來再接著剛剛的工作。
好,當你重新登入(login)之後,要怎麼接回剛剛的 screen 呢?重打 screen
只會讓電腦另外又開個 screen 給你,你所要做的事就是加些參數:
screen -ls 顯示目前個人所有的 screen
% [1;36mscreen -ls[m
There are screens on:
1188.ttyp4.SungSung (Attached)
76920.ttypq.SungSung ([1;33mDetached[m)
2 Sockets in /tmp/screens/S-AlanSung.
上面的 Attached 表示你現在連接的 screen ,而 [1;33mDetached 則表示沒有連接的[m,
最後則是共有多少個 screen 數量screen -r 就是重新回到(resume)screen 裡,
如果你只有開一個 screen ,那只要簡單地打
% [1;36mscreen -r[m
就沒問題了,但是像上面那個,如果你有了[1;33m兩個以上的 screen[m ,這樣就有問題了
% screen -r
There are several screens on:
[1;33m1188[m.[33mttyp4.SungSung[m (Detached)
76920.ttypq.SungSung (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
如它的訊息所述,你可以加上它的 process id 或是使用的 tty 加上主機名
(上面的例子就是SungSung)來決定要接回那一個 screen 。假設在這裡我們要
接回 process id 為 1188 的那一個,就打
% [1;36mscreen -r [m[1;33m1188[m
或
% [1;36mscreen -r[m [33mttyp4[m
或
% [1;36mscreen -r[m [33mttyp4.SungSung[m
或
% [1;36mscreen -r[m [1;33m1188[m.[33mttyp4.SungSung[m
都可以
screen -d 假設現在自己的電腦突然當機,或是網路突然斷了一時連不上去,等
到好了之後,想要接回來原來的 screen 卻發現
% screen -r
There is a screen on:
1188.ttyp4.SungSung (Attached)
There is no screen to be resumed.
這時候 -d 這個參數就派上用場了,讓你可以控制某個 screen 脫離(detach),
接著再加上 -r 把這個 screen 接手回來
% [1;36mscreen -d[m
[1188.ttyp4.SungSung detached.]
% screen -r
或直接
% [1;36mscreen -d -r[m
若遇到有兩個以上的screen 是detached的話,訣竅同screen -r,就是在後面多加
process id或是tty.主機名,就不贅述了
[1;36mscreen -wipe[m
有時候不小心跳電了,這時候重開機後當然也不會有 screen 留著,
但是由於 screen 會有紀錄所有的 screen (在/tmp/screens/裡面會有記錄),
因為雖然舊的沒有了,可是還是有紀錄在,因此這個指令就是把廢棄不用的
screen 給"擦拭乾淨"(wipe)
% screen -ls
There is a screen on:
1188.ttyp4.SungSung (Dead ???)
Remove dead screens with 'screen -wipe'.
1 Socket in /tmp/screens/S-USER.
% [1;36mscreen -wipe[m
There is a screen on:
1188.ttyp4.SungSung (Removed)
1 socket wiped out.
No Sockets found in /tmp/screens/S-USER.
會用了上面所介紹的功能,你可以現在進入 bbs ,進入聊天室跟人聊天或是在上
面發表文章到一半,發現計中要關門了,你可以從容的 detach ,回家之後再連
回來 attach ,繼續聊天或發表文章,而對方可能根本沒發覺。只要你連線的主機
不當機,那電話線或網路再怎麼不?都不必怕斷線。
如果你需要更多詳細的資料,可以善用線上手冊(manual pages)或是 info 這個指令
% man screen
% info screen
Enjoy it!!
--
※ 發信站: 新批踢踢(ptt2.csie.ntu.edu.tw)
◆ From: 61.224.156.207
[1;31m→ [33mxsonic[m[33m:借轉[m 推 61.64.230.14 04/03
--
※ 發信站: 新批踢踢(ptt2.csie.ntu.edu.tw)
◆ From: 61.70.141.191
No comments:
Post a Comment