baicai

白菜

一个勤奋的代码搬运工!

Linux/Mac 使用 GNU Screen 的小技巧

學習基本的 GNU Screen 終端複用技術,然後下載我們的終端命令備忘錄,以便你能夠熟悉常用的快捷方式。

對於一般使用者而言,命令行終端視窗可能是令人困惑和神秘的。但隨著你對 Linux 終端的進一步了解,你很快就會意識到它的高效和強大。不過,也不需要很長時間,你就會想讓終端變得更加高效,除了將更多的終端放到你的終端,還有什麼高好的方法能夠提升你的終端效率呢?

終端複用#

終端的許多優點之一是它是一個集中控制的界面。它是一個能讓你訪問數百個應用程序的視窗,而你與每一個應用程序進行交互所需要的只是一個鍵盤。但是,現代計算機幾乎總是有多餘的處理能力,而且現代計算機專家喜歡多任務處理,導致一個視窗處理數百個應用程序的能力是相當有限的。

解決這一問題的常見答案是終端複用:即將虛擬終端疊放在一起,然後在它們之間移動的能力。通過終端複用器,你保持了集中控制,但是當你進行多任務時,你能夠進行終端切換。更好的是,你能夠在終端中拆分螢幕,使得在同一時間顯示多個螢幕視窗。

選擇合適的複用器#

一些終端提供類似的功能,有標籤式界面和分割式視圖,但也有細微的差別。首先,這些終端的功能依賴於圖形化的桌面環境。其次,許多圖形化的終端功能需要滑鼠交互或使用不方便的鍵盤快捷鍵。終端複用器的功能在文字控制台上和在圖形桌面上一樣好用,而且鍵位綁定是針對常見的終端序列設計的,很方便。

現有兩種流行的複用器:tmux 和 GNU Screen。儘管你與它們互動的方式略有不同,但它們做同樣的事情,而且大多具有相同的功能。這篇文章是 GNU Screen 的入門指南。關於 tmux 的相關介紹,請閱讀 Kevin Sonney 的 tmux 介紹。

使用 GNU Screen#

GNU Screen 的基本用法很簡單,通過 screen 命令啟動,你將進入 Screen 會話的第 0 個視窗。在你決定需要一個新的終端提示符前,你可能很難注意到有什麼變化。

當一個終端視窗被某項活動佔用(比如,你啟動了文本編輯器 VimJove 或者你在處理音視頻,或運行批處理任務),你可以新建一個視窗。要打開一個新的視窗,按 Ctrl+A,釋放,然後按 c。這將在你現有視窗的基礎上創建一個新的視窗。

你會知道當前你是在一個新的視窗中,因為你的終端除了默認的提示符外,似乎沒有任何東西。當然,你的另一個終端仍然存在,它只是躲在新視窗的後面。要遍歷打開的視窗,按 Ctrl+A,釋放,然後按 n(表示下一個)或按 p(表示上一個)。在只打開兩個視窗的情況下, np 的功能是一樣的,但你可以隨時打開更多的視窗(Ctrl+A,然後 c ),並在它們之間切換。

分屏#

GNU Screen 的默認行為更像移動設備的螢幕,而不是桌面:你一次只能看到一個視窗。如果你因為喜歡多任務而使用 GNU Screen ,那麼只關注一個視窗可能看起來是一種退步。幸運的是,GNU Screen 可以讓你把終端分成視窗中的視窗。

要創建一個水平分割視窗,按 Ctrl+A,然後按 s 。這將把一個視窗置於另一個視窗之上,就像窗格一樣。然而,在你告訴它要顯示什麼之前,分割的空間是沒有用途的。因此,在創建一個分割視窗後,你可以用 Ctrl+A ,然後用 Tab 移動到分割視窗中。一旦進入,使用 Ctrl+A 然後 n 瀏覽所有可用的視窗,直到你想顯示的內容出現在分割窗格中。

你也可以按 Ctrl+A 然後按 | (這是一個管道字符,在大多數鍵盤上通過按下 shift 鍵加上 \)創建垂直分割視窗。

自定義 GNU Screen#

GNU Screen 使用基於 Ctrl+A 的快捷鍵。根據你的習慣,這可能會讓你感覺非常自然,也可能非常不方便,因為你可能會用 Ctrl+A 來移動到一行的開頭。無論怎樣,GNU Screen 允許通過 .screenrc 配置文件進行各種定制。你可以用這個來改變觸發鍵的綁定(稱為 “轉義” 鍵綁定)。

escape ^jJ

你還可以添加一個狀態行,以幫助你在 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

在有多個視窗打開的會話中,有一個時刻提醒哪些視窗具有焦點活動,哪些視窗有後台活動的提醒器特別有用。它類似一種終端的任務管理器。

備忘單#

當你學習 GNU Screen 的使用方法時,需要記住很多新的鍵盤命令。有些命令你馬上就能記住,但那些你不常使用的命令可能就很難記住了。你可以按 Ctrl+A 然後再按 ? 來訪問 GNU Screen 的幫助界面。

學習 GNU Screen 是提高你使用你最喜歡的 終端模擬器 的效率和敏捷性的一個好方法。請試一試吧!

參考#

Linux tips for using GNU Screen [1]

使用 GNU Screen 的小技巧 [2]

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。