使用 GNU Screen 的小技巧
學(xué)習(xí)基本的 GNU Screen 終端復(fù)用技術(shù),然后下載我們的終端命令備忘錄,以便你能夠熟悉常用的快捷方式。
對于一般用戶而言,命令行終端窗口可能是令人困惑和神秘的。但隨著你對 Linux 終端的進一步了解,你很快就會意識到它的高效和強大。不過,也不需要很長時間,你就會想讓終端變得更加高效,除了將更多的終端放到你的終端,還有什么高好的方法能夠提升你的終端效率呢?
終端復(fù)用
終端的許多優(yōu)點之一是它是一個集中控制的界面。它是一個能讓你訪問數(shù)百個應(yīng)用程序的窗口,而你與每一個應(yīng)用程序進行交互所需要的只是一個鍵盤。但是,現(xiàn)代計算機幾乎總是有多余的處理能力,而且現(xiàn)代計算機專家喜歡多任務(wù)處理,導(dǎo)致一個窗口處理數(shù)百個應(yīng)用程序的能力是相當有限的。
解決這一問題的常見答案是終端復(fù)用:即將虛擬終端疊放在一起,然后在它們之間移動的能力。通過終端復(fù)用器,你保持了集中控制,但是當你進行多任務(wù)時,你能夠進行終端切換。更好的是,你能夠在終端中拆分屏幕,使得在同一時間顯示多個屏幕窗口。
選擇合適的復(fù)用器
一些終端提供類似的功能,有標簽式界面和分割式視圖,但也有細微的差別。首先,這些終端的功能依賴于圖形化的桌面環(huán)境。其次,許多圖形化的終端功能需要鼠標交互或使用不方便的鍵盤快捷鍵。終端復(fù)用器的功能在文本控制臺上和在圖形桌面上一樣好用,而且鍵位綁定是針對常見的終端序列設(shè)計的,很方便。
現(xiàn)有兩種流行的復(fù)用器:tmux 和 GNU Screen。盡管你與它們互動的方式略有不同,但它們做同樣的事情,而且大多具有相同的功能。這篇文章是 GNU Screen 的入門指南。關(guān)于 tmux 的相關(guān)介紹,請閱讀 Kevin Sonney 的 tmux 介紹。
使用 GNU Screen
GNU Screen 的基本用法很簡單,通過 screen
命令啟動,你將進入 Screen 會話的第 0 個窗口。在你決定需要一個新的終端提示符前,你可能很難注意到有什么變化。
當一個終端窗口被某項活動占用(比如,你啟動了文本編輯器 Vim 或 Jove 或者你在處理音視頻,或運行批處理任務(wù)),你可以新建一個窗口。要打開一個新的窗口,按 Ctrl+A
,釋放,然后按 c
。這將在你現(xiàn)有窗口的基礎(chǔ)上創(chuàng)建一個新的窗口。
你會知道當前你是在一個新的窗口中,因為你的終端除了默認的提示符外,似乎沒有任何東西。當然,你的另一個終端仍然存在,它只是躲在新窗口的后面。要遍歷打開的窗口,按 Ctrl+A
,釋放,然后按 n
(表示下一個)或按 p
(表示上一個)。在只打開兩個窗口的情況下, n
和 p
的功能是一樣的,但你可以隨時打開更多的窗口(Ctrl+A
,然后 c
),并在它們之間切換。
分屏
GNU Screen 的默認行為更像移動設(shè)備的屏幕,而不是桌面:你一次只能看到一個窗口。如果你因為喜歡多任務(wù)而使用 GNU Screen ,那么只關(guān)注一個窗口可能看起來是一種退步。幸運的是,GNU Screen 可以讓你把終端分成窗口中的窗口。
要創(chuàng)建一個水平分割窗口,按 Ctrl+A
,然后按 s
。這將把一個窗口置于另一個窗口之上,就像窗格一樣。然而,在你告訴它要顯示什么之前,分割的空間是沒有用途的。因此,在創(chuàng)建一個分割窗后,你可以用 Ctrl+A
,然后用 Tab
移動到分割窗中。一旦進入,使用 Ctrl+A
然后 n
瀏覽所有可用的窗口,直到你想顯示的內(nèi)容出現(xiàn)在分割窗格中。
你也可以按 Ctrl+A
然后按 |
(這是一個管道字符,在大多數(shù)鍵盤上通過按下 shift
鍵加上 \
)創(chuàng)建垂直分割窗口。
自定義 GNU Screen
GNU Screen 使用基于 Ctrl+A
的快捷鍵。根據(jù)你的習(xí)慣,這可能會讓你感覺非常自然,也可能非常不方便,因為你可能會用 Ctrl+A
來移動到一行的開頭。無論怎樣,GNU Screen 允許通過 .screenrc
配置文件進行各種定制。你可以用這個來改變觸發(fā)鍵的綁定(稱為 “轉(zhuǎn)義” 鍵綁定)。
escape ^jJ
你還可以添加一個狀態(tài)行,以幫助你在 Screen 會話中保持自己不迷失。
# status bar, with current window highlighted
hardstatus alwayslastline
hardstatus string '%{= kG}[%{G}%H%? %1`%?%{g}][%= %{= kw}%-w%{+b yk} %n*%t%?(%u)%? %{-}%+w %=%{g}][%{B}%m/%d %{W}%C%A%{g}]'
# enable 256 colors
attrcolor b ".I"
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
defbce on
在有多個窗口打開的會話中,有一個時刻提醒哪些窗口具有焦點活動,哪些窗口有后臺活動的提醒器特別有用。它類似一種終端的任務(wù)管理器。
下載備忘單
當你學(xué)習(xí) GNU Screen 的使用方法時,需要記住很多新的鍵盤命令。有些命令你馬上就能記住,但那些你不常使用的命令可能就很難記住了。你可以按 Ctrl+A
然后再按 ?
來訪問 GNU Screen 的幫助界面,但如果你更喜歡一些可以打印出來并放在鍵盤邊的東西,請 下載我們的 GNU Screen 備忘單。
學(xué)習(xí) GNU Screen 是提高你使用你最喜歡的 終端模擬器 的效率和敏捷性的一個好方法。請試一試吧!