使用Linux screen命令,您可以將正在執行的終端應用程式推到後臺,並在希望看到它們時將它們向前拉。它還支援分屏顯示,並透過SSH連線工作,即使在斷開和重新連線之後也是如此!
screen命令是一個終端多路複用器,它包含了很多選項。說它能做很多事情是輕描淡寫的。手冊頁長達4100多行。
以下是使用screen命令的最常見情況,我們將在本文中進一步介紹這些情況:
要在ubuntu上安裝screen,請使用以下命令:
sudo apt-get install screen要在Manjaro上安裝screen,請使用以下命令:
sudo pacman -Sy screen在Fedora上,鍵入以下內容:
sudo dnf install screen要啟動螢幕,只需按如下所示鍵入並按Enter鍵:
screen您將看到一頁許可證資訊。可以按空格鍵讀取第二頁,也可以按Enter鍵返回命令提示。
你被留在命令提示符下,似乎什麼也沒發生。但是,您現在正在多路複用終端模擬器中執行shell。為什麼這是件好事?好吧,讓我們開始一個需要很長時間才能完成的過程。我們將下載最新Linux核心的原始碼,並將其重定向到名為latest的檔案中_核心.zip.
為此,我們鍵入以下內容:
curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip我們的下載開始了,curl輸出向我們展示了這個過程。
我們無法顯示下一位的影象,因為這是一個擊鍵序列。鍵入Ctrl+A,釋放這些鍵,然後按d分離螢幕。
下載程序仍在執行,但顯示下載的視窗已刪除。您將返回到啟動螢幕會話的終端視窗。一條訊息告訴您,一個標記為23167.pts-0.howtogeek的螢幕視窗已被分離。
您需要從視窗名稱開始的數字來重新附加它。如果您忘記了它,則始終可以使用-ls(list)選項(如下所示)來獲取分離視窗的列表:
screen -ls準備好後,可以使用-r(重新連線)選項和會話的編號重新連線它,如下所示:
screen -r 23167一直在後臺工作的視窗現在被帶回終端視窗,就好像它從未離開過一樣。
如果這是一個過程,將貫穿到它的結論,它最終將完成。如果這是一個持續的過程,你最終會想要終止它。無論哪種方式,當程序結束時,您都可以鍵入exit退出螢幕。或者,可以按Ctrl+A,然後按K強制關閉視窗。
鍵入以下命令:
exit您將返回到以前的終端視窗,該視窗仍將顯示用於重新附加視窗的命令。因為我們關閉了我們唯一分離的視窗,我們得到一個訊息,螢幕正在終止。
相關:如何使用curl從Linux命令列下載檔案
您可以使用-S(會話名稱)選項來命名螢幕會話。如果您使用一個值得記憶的名稱而不是會話的數字標識,那麼重新連線到會話會更方便。我們鍵入以下內容將會話命名為“bigfile”:
screen -S bigfile當螢幕啟動會話時,我們看到一個空白視窗,其中包含命令提示。我們將下載一個大檔案,因此我們可以使用一個長期執行的過程作為示例。
我們鍵入以下內容:
curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip下載開始時,我們按Ctrl+A,然後按D分離會話。我們鍵入以下命令以使用-ls(list)選項和screen來檢視分離會話的詳細資訊:
screen -ls在數字識別符號(23266)後面,我們可以看到會話的名稱(bigfile)。我們鍵入以下內容(包括會話名稱)以重新附加它:
screen -r bigfile我們重新連線到下載視窗,看到長時間的下載仍在進行中。
下載完成後,我們鍵入exit關閉會話視窗。
到目前為止,我們已經使用螢幕將一個程序放在一個獨立的視窗中的背景中。然而,螢幕能夠做的遠遠不止這些。接下來,我們將執行一些程序,這些程序允許我們監視計算機的某些方面。
我們鍵入以下命令以啟動名為“監視器”的螢幕會話:
screen -S monitor在新視窗會話的命令提示符下,我們將啟動dmesg並使用-H(人類可讀)和-w(等待新訊息)選項。這將顯示核心緩衝區訊息;新訊息出現時將出現。
我們鍵入以下內容:
dmesg -H -w將顯示現有訊息。我們沒有返回到命令提示符,因為dmseg正在等待新訊息,並將在訊息到達時顯示它們。
相關:如何在Linux上使用dmesg命令
我們想執行另一個應用程式,所以我們需要一個新的螢幕視窗。我們按Ctrl+A,然後按C來建立一個新視窗。我們將使用watch來反覆執行vmstat,因此我們可以得到計算機上虛擬記憶體使用情況的頻繁更新顯示。
在新命令提示符下,鍵入以下命令:
watch vmstatvmstat輸出將顯示並每兩秒鐘更新一次。
我們的兩個程序正在執行。要在螢幕視窗之間跳,請按Ctrl+A和視窗的數量。我們建立的第一個是視窗0(0),下一個是視窗1,依此類推。要跳到第一個視窗(dmesg視窗),我們按Ctrl+A和0。
如果我們按Ctrl+A和1,它會將我們帶回vmstat視窗。
真漂亮!我們可以按Ctrl+A,然後按D從會話中分離;稍後可以重新連線。兩個會話仍將執行。同樣,要在視窗之間切換,請按Ctrl+A和要切換到的視窗的編號(0或1)。
讓我們進入下一步,在一個視窗中檢視兩個螢幕。當您這樣做時,您將把終端視窗拉伸到一個使此步驟有用的大小。我們的例子受限於螢幕截圖的大小,所以我們的視窗看起來有點狹窄。
為此,我們按Ctrl+A,然後按Shift+S(需要大寫“S”)。
視窗分成兩個“區域”
頂部區域仍然顯示vmstat,底部區域為空。游標在下面的螢幕截圖中高亮顯示。要將其移動到較低的區域,請按Ctrl+A,然後按Tab。
游標移到較低的區域,實際上這只是一個空白。它不是一個shell,所以我們不能在其中鍵入任何內容。為了得到一個有用的顯示,我們按Ctrl+a,然後按“0”在這個區域顯示dmesg視窗。
這將在一個分割視窗中提供兩個實時輸出。如果按Ctrl+A和D來分離視窗,然後重新連線它,則會丟失“拆分窗格”檢視。但是,我們可以使用以下鍵盤快捷鍵還原它:
我們可以更進一步。現在我們將垂直拆分下窗格,並向顯示中新增第三個程序。當游標位於下方區域時,我們按Ctrl+A和C來建立一個包含shell的新視窗。下面的區域顯示新視窗並給出命令提示。
接下來,我們執行df命令來檢查檔案系統的使用情況:
df當我們看到df執行時,我們點選Ctrl+A和管道字元(|)。這將垂直分割較低的區域。我們按Ctrl+A和Tab移動到新區域。接下來,按Ctrl+A和0顯示dmesg視窗。
您也可以從區域移動到區域,並新增更多垂直或水平拆分。以下是一些更有用的鍵組合:
使用screen,您可以啟動一個視窗會話,將其分離,使其仍在後臺執行,登出或重新登入,然後重新連線會話。
讓我們用SSH命令從另一臺計算機建立一個SSH連線。我們必須提供要連線的帳戶的名稱和遠端計算機的地址。
在我們的示例中,我們鍵入以下內容:
ssh [email protected]在遠端計算機上進行身份驗證並登入後,我們鍵入以下命令以啟動名為“ssh geek”的螢幕會話:
screen -S ssh-geek出於演示目的,我們將在螢幕視窗中執行top,但您可以啟動任何長時間執行或無休止的程序。
我們鍵入以下內容:
top一旦top在視窗中執行,我們按Ctrl+A,然後按D來分離視窗。
我們回到原來的遠端終端視窗。
如果我們鍵入exit,如下所示,它將斷開SSH會話,然後我們回到本地計算機上:
exit我們鍵入以下內容以重新連線:
ssh [email protected]重新連線並登入後,可以鍵入以下內容重新連線螢幕會話:
screen -r ssh-geek我們現在重新連線到仍在執行的top例項。
如果你想在一臺機器上啟動一個過程,然後在你離開另一臺機器的地方,這是非常好的。
相關:如何從Linux Shell建立和安裝SSH金鑰
您還可以使用螢幕會話來允許兩個人檢視同一個視窗並與之互動。假設有人在他的電腦上執行Fedora想要連線到我們的Ubuntu伺服器。
他會鍵入以下內容:
ssh [email protected]連線之後,他使用-s(會話名稱)選項啟動一個名為“ssh geek”的螢幕會話。他還使用-d(分離)和-m(強制建立)選項來建立已經分離的新螢幕會話。
他鍵入以下內容:
screen -d -m -S ssh-geek他使用-X(多螢幕模式)選項連線會話,鍵入以下內容:
screen -X ssh-geek在Manjaro計算機上,另一個人使用相同的帳戶憑據連線到Ubuntu計算機,如下所示:
ssh [email protected]連線後,她鍵入screen命令並使用-X(多螢幕模式)選項加入同一個視窗會話,如下所示:
screen -X ssh-geek現在,任何一個人鍵入的內容,另一個人都會看到。例如,當一個人發出date命令時,他們都會看到它的輸入和輸出。
兩人現在共享一個執行在遠端Ubuntu計算機上的螢幕會話。
對於一款1987年第一次見到曙光的軟體來說,screen仍然具有很好的生產力衝擊力。熟悉它將是一段值得花費的時間!
相關:您應該知道的37條重要的Linux命令
... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...
... 如何在windows10上安裝linux bash shell ...
要在Linux中重新命名檔案嗎?如果您知道如何在Windows、macOS或Chrome作業系統中完成這項工作,那麼您就知道如何在這裡完成這項工作。在大多數版本的Linux上,您只需右鍵單擊一個檔案並選擇Rename選項。 ...
想在Linux系統上新增使用者但不知道如何新增?在Linux上使用命令列介面管理使用者無疑是一項複雜的工作。而對於初學者來說,即使新增新使用者也是一場噩夢。 ...
...。 這一次,我們將專注於tmux。接下來,我們將介紹screen如何處理相同的特性或功能。 關於螢幕,只有一件事讓我們惱火。我們到了以後再談,看看tmux是否更好。 相關:如何使用Linux的screen命令 安裝tmux 雖然screen通常在流行的Li...
...視窗推到後臺(稱為“分離”)。當你想看到你的程序是如何進行的,你可以把視窗拉到前臺(“重新連線”)並再次使用它。這對於您不希望透過關閉終端視窗意外終止的長程序來說非常有用。 一旦運行了螢幕會話,就可以...
需要識別Linux計算機中的圖形處理單元(GPU)嗎?下面是如何從命令列和GNOME中識別圖形卡。 第一步 你可能去過那裡。你被徵召來為一個非技術性的親戚或同事提供支援,有些事情告訴你這不是無痛的。不過,你還是加入了!...
...ell函式、內建命令或保留字。使用type可以發現Linux命令是如何執行的,並更好地理解系統。 照我的吩咐做 當我們開啟一個終端視窗並開始向我們的Linux計算機發出命令時,我們很少停下來思考作業系統中的哪些軟體元件正在對...
...些指南匯總到一個大列表中。 windows上linux入門 相關:如何在windows10上安裝和使用Linux Bash Shell 您可以在任何版本的windows10(包括windows10home)上安裝Linux環境和bashshell。但是,它確實需要64位版本的Windows10。您只需啟用Windows Subs...