2011年1月18日 星期二
[Linux] screen教學與bindkey設定用法
來源: http://archerworks.blogspot.com/2010/05/linuxscreenbindkey.html screen 的全名叫做(full-screen window manager),是在Linux or BSD上一個很好用的工具,可以讓你在一個terminal下開啟多重視窗執行,讓你只要靠一個putty/pietty視窗就可以同步地處理很多的事情,視窗彼此的切換又很方便迅速,有點像瀏覽器的「分頁」功能一樣。 例如說你可以開一個視窗正在compile程式,另開一個視窗開vim看code,再開第三個視窗連ftp抓一個大檔,最後再開一個視窗用偷偷telnet連BBS逛PTT這樣(最後一個上班不要亂用,雖然screen也是超級好用的BBS「掛站」利器),視窗間可以隨時用熱鍵切換,彼此卻又運作順暢互不干擾。 我覺得screen對我來說最無可取代的強大好處有三點: 提供多視窗工作 提供離線繼續工作 提供終端機編碼轉換 第一點剛剛講了,第二點是說,你在screen模式下的每個視窗畫面和進度都會被存起來,離開時只要用「detach」不要真正exit,所有process就會都還在背景執行中,你甚至可以logout帳號,下次再登入再把screen「叫起來」(正式點的動詞叫做resume session),就可以繼續剛剛的工作,例如你在公司執行上述的四個視窗,累了就按Ctrl+a+d 「detech」收工回家,回家再putty連到主機輸入screen -rd,剛剛vim看到哪一行,BBS和妹聊到哪一句,通通輕鬆回覆原來的樣子!至於第三點後面會提到...... screen的下載及安裝: 這部份省略,Linux版本眾多族繁不及備載,官方網站在 這裡 ,請查明自己的OS後自行去ftp安裝相對應的版本,安裝指令不外乎打rpm或者tar解壓縮後make、make install之類的那幾招。(如果不會這些,你大概也不可能是會用Linux的人,更不需要這工具了...) screen操作簡易教學: 進入與脫離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-? #熱鍵查詢 其實只要知道上面這些,實際再按個兩三下感覺一下,馬上就上手,可以使用愉快了。當然還有很多很多熱鍵,不過光上面的那些我都覺得很難按了,什麼Ctrl+a放掉再按這麼彆扭的按法,又不是在格鬥遊戲輸入豪華連續技。好在他有提供bindkey的功能,也就是可以自定義熱鍵,這需要動到screen的設定檔,也就是你的安裝目錄下的.screenrc那個檔案,如果你要讓你的screen使用上更加順手和個人化,請接著看下去...... screenrc設定檔教學:(進階設定) 請vim .screenrc修改裡頭的檔案,以下是我的配置,大家可以參考一下: .screenrc # 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 "^ %t @ %H %{-} %= %{= KR} %l %{-} | %{= KG} %Y-%m-%d %{-} " hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=| %0c:%s " 第二種 caption always "%{=u .G} %-w%<%{=ub .y}%n %t%{=u .G}%+w " hardstatus alwaysignore hardstatus alwayslastline "%{= .K} %<%=%{= .W}@%H %=%{= .y} %Y/%m/%d%{= .m} %0c:%s " 第三種 caption always "%{=u .G} %-w%<%{=ub .y}%n %t%{=u .G}%+w " hardstatus alwaysignore hardstatus alwayslastline "%{= .K} %<%=%{= .W}@%H %=%{= .y} %Y/%m/%d%{= .m} %C %A" 第四種 caption always "%{=u .G} %-w%<%{=ub .y}%n %t%{=u .G}%+w " #hardstatus alwayslastline "%{= wk} %{by} %H %{wk} | %-Lw%{kw}◣%{= g}%n%f* %t%{wk}◤%{wk}%+Lw%< %= %{kw}◣%{= R} %{-}" 顏色那些參數可以看 這篇教學 (或者man screen),請自行更換調整囉! 註2: 這個也就是上述提到的第3個好處,你也可以default設成big5,端看你的終端機是什麼格式的,或者你也可以big5 的 terminal裡看utf8,或在utf8的terminal裡看big5,(好像在念rap...),可以設個熱鍵如下: terminal使用big5的: # C-a b --(switch to)--> view big5 data bind b encoding big5 big5 # C-a u --(switch to)--> view utf8 data bind u encoding utf8 big5 terminal使用utf8的: # C-a b --(switch to)--> view big5 data bind b encoding big5 utf8 # C-a u --(switch to)--> view utf8 data bind u encoding utf8 utf8 註3: 關於動態支援標題名稱的設定(例如開VIM編輯wtf.c檔案,標題就自動換成wtf.c),這是進階中的進階用法,小弟我也還在參透中,有興趣的可以看 這一篇教學文 和 這一篇教學文 ,在此就不敢掠美了。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言