Screen極簡指南
Terminal Multiplex
終端多路復(fù)用器主要特性:
-
Persistent
可以持久化保存當(dāng)前的session的進(jìn)程,而不用受到SIGHUP
的影響桃焕,session可以進(jìn)行恢復(fù)箫柳,使工作具有連續(xù)性 -
Multiple Windows
多窗口機(jī)制跺撼,允許在屏幕上打開多個(gè)窗口進(jìn)行編輯操作 -
Session Shareing
會(huì)話共享核行,允許多用戶共享一個(gè)會(huì)話進(jìn)行協(xié)作
使用場景介紹
現(xiàn)在的ssh終端比較強(qiáng)大枕荞,如securectr/xshell/iterm等线欲,可以滿足一般的需求造烁,但是有一些情況我們只能使用一個(gè)Terminal時(shí)否过,就需要使用到類似screen的能力了,這些場景有:
- 機(jī)房中惭蟋,直連服務(wù)器時(shí)苗桂,想要同時(shí)執(zhí)行多個(gè)命令操作
- 如登錄目的機(jī)器要經(jīng)過很多跳時(shí)
- 如先跳板機(jī)、登錄目的服務(wù)器
- 如通過ssh tunnel技術(shù)登錄目的服務(wù)器告组,中間可能有很多跳
- 有時(shí)需要執(zhí)行耗時(shí)很長的命令煤伟,
基本概念
基本概念
-
session
一個(gè)screen的會(huì)話表示,可以在 -
region
表示屏幕的一塊區(qū)域木缝,可以將window放進(jìn)這個(gè)區(qū)域便锨,進(jìn)行命令操作 -
window
一個(gè)命令行窗口
session狀態(tài)解釋
-
attached
表示screen session與terminal進(jìn)程關(guān)聯(lián)上 -
detached
表示沒有terminal進(jìn)程關(guān)聯(lián)上,但是這個(gè)不影響這個(gè)session中運(yùn)行的命令
常用命令
screen session外部命令
screen
啟動(dòng)screen session-
screen -ls
查看screen session列表我碟,如There are screens on: 26206.ttys001 (Detached) 19444.ttys001 (Attached)
screen -r 26206
reattach a detached screen sessionscreen -x -r 219444
Attach to a not detached screen session. (Multi display mode)
screen session內(nèi)部命令
-
ctrl+a, ?
查看幫助 -
ctrl+a, “
查看當(dāng)前screen的window列表 -
ctrl+a, c
新增window放案,并切換到新window -
ctrl+a, tab
跳轉(zhuǎn)到下一個(gè)region -
ctrl+a, 0
跳轉(zhuǎn)到0個(gè)window,編號(hào)從0開始 -
ctrl+a, k
kill掉當(dāng)前window -
ctrl+a, |
增加垂直region -
ctrl+a, s
增加水平region -
ctrl+a, X
刪除當(dāng)前region -
ctrl+a, Q
除了當(dāng)前region矫俺,刪除其他region -
ctrl+a, d
在任意一個(gè)window中執(zhí)行吱殉,將detach當(dāng)前screen -
ctrl+d
退出當(dāng)前region的window,如果是最后一個(gè)window則終止這個(gè)screen session
使用示例
開啟screen恳守,并在一個(gè)session region內(nèi)操作
-
screen
# 開啟screen session考婴,此時(shí)會(huì)啟動(dòng)一個(gè)window -
echo "first window in session"
# -
Ctrl+a, c
# 啟動(dòng)一個(gè)新window -
Ctrl+a, "
# 查看當(dāng)前窗口列表 - 選擇一個(gè)窗口,回車切換當(dāng)前session到該窗口
開啟screen催烘,創(chuàng)建多個(gè)session region
-
screen
# 開啟screen session沥阱,此時(shí)會(huì)啟動(dòng)一個(gè)window -
Ctrl+a, |
# 水平方向增加一個(gè)region -
Ctrl+a, TAB
# 切換到下一個(gè)region中 -
Ctrl+a, c
# 創(chuàng)建window,并在當(dāng)前region中打開
References
- https://en.wikipedia.org/wiki/Terminal_multiplexer
- https://www.gnu.org/software/screen/manual/screen.html
- linux manual screen
- https://www.ibm.com/developerworks/cn/linux/l-cn-screen/index.html
- https://www.youtube.com/watch?v=I4xVn6Io5Nw
- http://wdxtub.com/2016/03/30/tmux-guide/
- http://louiszhai.github.io/2017/09/30/tmux/