2013年10月9日 星期三

screen教學(linux終端機有多個分頁)

先介紹基本sceen的command

進入與脫離screen的指令是:

  • screen //第一次執行screen
  • Ctrl a+d //關閉screen(至背景),也就是detached
  • screen -rd //重新回到(resume)剛剛的screen 裡
  • exit //關閉視窗(若只剩一個視窗則為關閉screen)
在進入screen的世界後,都是以熱鍵來做操控,他的原生熱鍵都是以Ctrl+a開始的
(以C-a 代表,C-a c 代表按住 Ctrl 鍵不放再按 a 鍵,然後放開按 c 鍵)最基本必會的幾個熱鍵是:
  • C-a c 或 C-a C-c #開啟新的視窗,並同時切換到這個新的視窗
  • C-a n 或 C-a C-n 或 C-a (space) #切換到下一個視窗(0->1 1->2 ...)
  • C-a p 或 C-a C-p #切換到上一個視窗(1->0 2->1 ...)
  • C-a C #清除目前的視窗內容
  • C-a d 或 C-a C-d #脫離(detach)目前的 screen ,並放到背景執行
  • C-a ? 或 C-a C-? #熱鍵查詢



1.先安裝screen

# yum install screen    ==>  Cent OS

# sudo apt-get install screen   ==>  Ubuntu

2.在自己的家目錄下 create 一個 .screenrc 的檔案(含快捷鍵)

並將下面綠色部分的內容加入.screenrc中

# cd ~
# vim .screenrc

#把惱人的screen開啟訊息關掉
# Start message
startup_message off

#在視窗底下新增一個很好用的狀態列(這很方便!一定要加這行,分別是cent_OS還有ubuntu的設定)
# Set hardstatus always on

 # for  Cent OS
#hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=| %M %d %0c:%s "    

#for  Ubuntu
hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=| %Y/%m/%d%{= .m} %0c:%s " 


#強制終端機編碼為utf8 (這樣就能正常看中文字囉!)
# Set default encoding using utf8
defutf8 on


#離開視窗時自動refresh一下螢幕
# Refresh the display when exiting programs
altscreen on


#支援動態顯示視窗的「標題名稱」
# Dynamic title
shelltitle '$ |bash'


#熱鍵操作錯誤時的逼逼聲給關掉
# Disable vbell
vbell off

#接下來重點來了,就是Keboard bindkey,也就是自行定義熱鍵
# Keboard binding

#F11 往前切換視窗 (相當於C-a p)
# bind F11 to move to previous window
bindkey -k F1 prev

#F12 往後切換視窗 (相當於C-a n)
# bind F12 to move to next window
bindkey -k F2 next


# bind Alt`~= to screen0~12

#Alt+` 切換至screen 0
bindkey "^[`" select 0

#Alt+1 切換至screen 1
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

#Alt+- 切換至screen 11
bindkey "^[-" select 11

#Alt+= 切換至screen 12
bindkey "^[=" select 12

#F7 關閉screen(至背景) (相當於C-a d )
# bind F7 to detach screen session (to background)
bindkey -k k7 detach

#F8 kill目前screen視窗
# bind F8 to kill current screen window
bindkey -k k8 kill

#F9 開一個新的screen視窗 (相當於C-a c)
# bind F9 to create a new screen
bindkey -k k9 screen

#F10 將目前screen視窗「標題名稱」重新命名
# bind F10 to rename current screen window
bindkey -k k; title



你看懂後也可以自行變化對應按鈕,總之自己按的順手就好!

最後我再分享一個screen應用的最終密技,那就是——「分割視窗」!熱鍵是「Ctrl + a  S 」(大寫的 S唷,也就是Split的意思),螢幕就會切成兩半了,此時再按「Ctrl + a  tab」就可以切換focus的視窗,接著再「Ctrl + a  c」 建立新視窗,或著以號碼跳選其它視窗。(恕沒有圖解教學,請自行操作領會)分割視窗有啥好處呢?相信常在trace code的人都能感受,有時常看某個.c檔就想開著他refer 到 header include 的檔案去查找macro定義或struct宣告之類的,或者是兩個檔案做diff比對,此時若能分割視窗就方便多啦!(雖說VIM也支援分割視窗啦!)


3.完成後只要打指令screen就可以入screen了,接下來只要了解如果新screen的新增刪除分頁就可以上手了

# screen



沒有留言:

張貼留言