2015年9月20日 星期日

Linux - 終端機開發好物:多重視窗工具 screen 教學

 

Screen的全名叫做(full-screen window manager),是在Linux or BSD上一個很好用的工具,可以讓你在一個terminal下開啟多重視窗執行,並且有保留當前狀態的功能,有點像瀏覽器的「分頁」!






一、screen操作簡易教學


下面列出最簡單可以使用screen的快速鍵,方便快速上手學習。


1. 進入與脫離screen指令
  • screen : 第一次執行screen
  • Ctrl a+d : 關閉screen至背景(detached)
  • screen -rd : 重新回到剛剛的screen 裡(resume detached)
  • exit : 關閉視窗


2. 進入screen後的使用(熱鍵都是以Ctrl+a開始)
  • Ctrl-a c : 開啟新的視窗,並同時切換到這個新的視窗
  • Ctrl-a n : 切換到下一個視窗(0->1 1->2 ...)
  • Ctrl-a p : 切換到上一個視窗(1->0 2->1 ...)
  • Ctrl-a " : 開啟所有視窗選單
  • Ctrl-a C : 清除目前的視窗內容
  • Ctrl-a d : detach目前的screen,並放到背景執行
  • Ctrl-a ? : 熱鍵查詢


3. 分割視窗相關功能
  • Ctrl-a S : 分割視窗(split),採水平分割
  • Ctrl-a Tab : 切換視窗
  • Ctrl-a, Q : 離開分割視窗(Quit),分割的N個視窗通通消失,只剩下你目前focus的那一個
  • Ctrl-a [、Ctrl-a ] : 跨視窗複製貼上,進入screen版的visual mode,之後就照著熟悉的vim方法操作!


4. 螢幕鎖定
  • 鎖住螢幕 : Ctrl-a s, Ctrl-a X
  • 解除鎖定螢幕 : Ctrl-a q




二、 .screenrc設定檔教學


在.screenrc中加上下面的設定檔,讓使用screen更加方便!


# Start message
startup_message off

# Set hardstatus always on
hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=| %M %d %0c:%s "

# Set default encoding using utf8
defutf8 on

# Refresh the display when exiting programs
altscreen on

# Dynamic title
shelltitle '$ |bash'

# Disable vbell
vbell off

# Keboard binding
# bind F11 to move to previous window
bindkey -k F1 prev
# bind F12 to move to next window
bindkey -k F2 next 
# bind Alt`~= to screen0~12
bindkey "^[`" select 0
bindkey "^[1" select 1
bindkey "^[2" select 2
bindkey "^[3" select 3
bindkey "^[4" select 4
bindkey "^[5" select 5
bindkey "^[6" select 6
bindkey "^[7" select 7
bindkey "^[8" select 8
bindkey "^[9" select 9
bindkey "^[0" select 10
bindkey "^[-" select 11
bindkey "^[=" select 12
# bind F7 to detach screen session (to background)
bindkey -k k7 detach
# bind F8 to kill current screen window
bindkey -k k8 kill
# bind F9 to create a new screen
bindkey -k k9 screen
# bind F10 to rename current screen window
bindkey -k k; title
hardstatus alwayslastline "%{= wk} %{by} %H %{wk} | %-Lw%{kw}◣%{= g}%n%f* %t%{wk}◤%{wk}%+Lw%< %= %{kw}◣%{= R} [%m/%d %c] %{-}"

# remove some stupid / dangerous key bindings
bind s
bind k
bind W
bind ^k
bind .
bind ^\
bind \\
bind ^h
bind h




References


雅砌工坊
http://archerworks.blogspot.tw/2010/05/linuxscreenbindkey.html





技術提供:Blogger.