看板 Knuckles_note
作者 標題 [Linux] 使用screen讓ssh登入可多工執行
時間 2014年04月23日 Wed. AM 02:47:28
參考:
http://sealmemory.blogspot.tw/2013/11/screen-command-examples-to-manage-linux-terminals.html
使用 Screen 指令操控 UNIX/Linux 終端機的教學與範例
使用 ssh 登入 Linux 主機時,若要執行跑很久的指令
必需一直保持連線,若關閉ssh的話執行的程式也會中斷
此時可以利用 screen 的指令開啟多工模式
◎ 安裝 screen
$ yum install screen
◎ 使用方法
只要執行 screen
$ screen
就會開啟一個新的 shell
要離開就按 exit 即可
$ exit
◎ 卸離(Detach)與重新連接(Re-attach)
想要離開 screen,但要裡面執行的程式不被中斷的話
可使用 ctrl+a 再按 d 來卸離(detach)
之後就算中斷了ssh的連線,也不會中斷screen裡的程式
要重新連接這個 shell 的話就執行
$ screen -r
即可
◎ 開啟多個 screen
若是開了多個 screen 的話
可用 screen -ls 顯示目前開啟的 screen 列表
$ screen -ls
There are screens on:
24621.pts-0.host1 (Detached)
24633.pts-0.host1 (Detached)
2 Sockets in /var/run/screen/S-root.
使用 screen -r 加上前面的數字,即可選擇要重新連結哪一個 screen
$ screen -r 24621
◎ 修改 screen 設定
在 ~/.screenrc 加上以下設定
=========================================================
# 關閉畫面閃爍 (可用 ^a ^g 切換)
vbell off
# 在 screen 最下面一行顯示分頁狀態列
caption always "%{kw}%-w%{wb} %n %t %{-}%+w %-= $USER@%H %Y-%m-%d %0c"
# 將預設編碼設為 UTF-8
defutf8 on
# 避免screen下進入vim再離開後,檔案的內容留在螢幕上
# Refresh the display when exiting programs
altscreen on
#避免進入 screen 時視窗寬度被改變
# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
# in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
=========================================================
◎ 在同一個 screen 下開啟多個分頁
在同一個 screen 下開多個分頁會比較方便切換
進入screen後預設是分頁編號 0
ctrl+a 再按 c ,可開新的分頁
ctrl+a 再按數字x,來切換至編號x的分頁
ctrl+a, A 可更改分頁名稱
ctrl+a, k 關閉目前分頁
ctrl+a, \ 關閉所有分頁,離開screen
按 ctrl+a 再按 ? 可查詢 screen 的按鍵功能列表
◎ 修改快速鍵
在 ~/.screenrc 加上自訂的快速鍵設定
==============================================
# 自訂熱鍵
# Ctrl + t : 開新分頁(C-a c)
bindkey "^t" screen
# Ctrl + w : 關閉當前視窗(C-a k)
bindkey "^w" kill
# Ctrl + n : 下個分頁(C-a n)
bindkey "^n" next
# Ctrl + p : 上個分頁(C-a p)
bindkey "^p" prev
==============================================
◎ 複製模式 (copy mode)
當顯示的資料超過一頁時,原本可以使用捲軸捲上去看
但用 screen 後就不能用捲軸了
要改用 screen 的複製模式
按 ctrl+a 再按 [
或 ctrl+a 再按 Esc,進入複製模式
此時可以像vim一樣用方向鍵、PageUp、PageDn來翻頁
或用 / 來搜尋
按 [ 或 Esc 即可離開複製模式
在複製模式時按下空白鍵可以開始選取要複製的內容
選取完成後再按下第二次空白鍵,即可複製內容並離開複製模式
接著使用 ctrl+a 再按 ] 可貼上複製的內容。
--
※ 作者: Knuckles 時間: 2014-04-23 02:47:28
※ 編輯: Knuckles 時間: 2014-04-30 04:03:53
※ 看板: KnucklesNote 文章推薦值: 2 目前人氣: 0 累積人氣: 1862
1樓 時間: 2014-04-23 18:17:43 (台灣)
推
04-23 18:17 TW
在 .screenrc 裡加上 screen -t wintitle 0 可以進入時自動 create window
2樓 時間: 2014-04-23 18:20:36 (台灣)
推
04-23 18:20 TW
^a a 可以送出 ^a ,用來取代原本 console 中被 screen 吃掉的 ^a
3樓 時間: 2014-04-23 18:23:30 (台灣)
推
04-23 18:23 TW
^a [ 可以進入 copy mode,然後就像 vi 一樣操作(只能copy),^a ] 離開
回列表(←)
分享