screen可以只開一個視窗,運用一些組合鍵在不同的視窗間切換
通常我會用一台終端機連一台server,用screen產生許多視窗,之後在內部切換
由於screen會用到許多組合鍵,在此定義組合鍵的表達方式:
- Ctrl-t + c: 同時按住Ctrl與t,放開後再按c
- Ctrl-t + ": 同時按住Ctrl與t,放開後再按"
- Ctrl-t + " + 1: 同時按住Ctrl與t,放開後再按",然後再按1
啟動screen
$ screen -e^Ta一般來說只要輸入screen就可以執行了,但這邊把預設的 Ctrl-a 改成 Ctrl-t
檢查是不是在screen裡面
$ echo $STY
10100.pts-1.hostname
如果有類似上面這種輸出,代表就是在screen裡面,反之代表沒有在screen裡面
10100代表的是這個screen的編號,可以在一台機器上面跑很多個screen
- screen相關指令使用:Ctrl-t + ?
卸離(detach) screen,重新連接(reattach) screen
這是screen最強大的部分,意思就是可以在screen裡面某個視窗跑程式,然後卸離screen。這個時候即使登出server,在跑的程式還是繼續在跑,重新登入之後只要再重新連接screen,就可以去檢查跑的程式,不再需要用到nohup- 卸離screen:Ctrl-t + d
檢查有哪些screen在跑
$ screen -ls
There are screens on:
10208.pts-1.hostname (01/29/2016 11:56:01 AM) (Detached)
10100.pts-1.hostname (01/29/2016 11:29:54 AM) (Attached)
2 Sockets in /var/run/screen/S-username.
這邊可以看到有兩個screen在機器上面跑
重新連接screen
$ screen -r
重新連接編號是10100的screen
$ screen -r 10100
$ echo $STY
10100.pts-1.hostname
經過測試上面這個指令只有在window 0才會出現數字
產生新的視窗,在視窗之間切換
- 產生新的視窗:Ctrl-t + c
- 列出目前有的視窗:Ctrl-t + " 再用上下鍵去選取自己想要的視窗
- 目前視窗的編號:Ctrl-t + N
- 跳到前一個視窗:Ctrl-t + n
- 跳到後一個視窗:Ctrl-t + p
- 直接跳到第7個視窗:Ctrl-t + 7 這個方法可以跳到第1~9的視窗
- 直接跳到第11個視窗:Ctrl-t + ' + 11 這個方法可以跳到10以後的視窗
- 兩個視窗之間來回切換:Ctrl-t + t
- 關掉一個視窗:exit
關閉screen
在視窗裡面輸入 exit,當所有的視窗都關掉後就會關掉screen把編號是10100的screen直接殺掉,參考這篇文章
$ screen -X -S 10100 quit
網路上C. T. Wang寫的"使用 Screen 指令操控 UNIX/Linux 終端機的教學與範例"裡有更多關於screen詳細操作方式
_EOF_
沒有留言:
張貼留言