2014年2月22日 星期六

[linux] screen



screen 是 linux 底下的一個工具,可以讓你在同一個視窗下在不同的 console 間互相切換。

linux 在使用文字模式時,要切換不同console 時只能用ctrl+alt +FX  ,不但不方便,而且數量也有限。這時候就可以方便的使用 screen 的指令切換不同的 console。

另外,就是在執行一些要跑很久的指令時,可以在主機上起一個 screen 。讓你執行的環境可以不會因為你登出,而中斷。
下一次登入主機時,只要再跟已存在的 screen process 連接上就可以了繼續之前的作業。







screen 的指令都是從 ctrl+a開始,當你在 screen 下時,先按一個 ctrl+a  開始的。


登入一台 linux 的機器後,先使用 screen -ls 來確認上面已經有開啟的 screen process
EX:
$ screen -ls
There are screens on:
        4590.pts-6.user       (02/22/2014 01:52:51 AM)        (Detached)
        4442.pts-6.user       (02/22/2014 01:49:22 AM)        (Detached)
2 Sockets in /var/run/screen/S-user

#之後再使用  screen -r -d  接上其中一個已開啟的 process 。(可以只接數字就好)
# 有加 -d 就是會強制踢掉其它有連接在上面的使用者 ( 也有可能是斷線卡死的使用者)
$ screen -r -d 4590



如果上面都沒有已經開啟的 screen ,可以直接打 screen 開啟。




下面是比較常用到的指令整理~~~
一樣都是先按一個 ctrl+a 之後再敲指令。

________________________________________________________
screen 指令
# help
ctrl+a ?                   
# window list
ctrl+a "                   
#直接跳到那個視窗
ctrl+a <window number>   
#開啟新的視窗,並同時切換到這個新的視窗
ctrl+a c 或 ctrl+a ctrl+c   
#脫離(detach)目前的 screen ,並放到背景執行(不管開了幾個視窗),下面會再提到
ctrl+a d 或 ctrl+a ctrl+d   


#強力脫離,除了放到背景執行外,並自動 logout
ctrl+a D D               
#關閉所有的視窗並退出 screen。當下的 console 當掉時,也可以用來跳出
ctrl+a K                   
#取名, 對當下的console 命名做分別。
ctrl+a A                   
#之後就可以對螢幕下  jk 來上下滾動。
ctrl+a Esc               


screen -ls
screen bash -l
#如果在其它連線 attach 的時候,要把attach 搶回來~就下這個
screen -d -r               






沒有留言:

張貼留言