Linux
如何在不停止多個互動作業的情況下使用一個終端?
我有兩個 shell 腳本,比如說
client.sh
andserver.sh
,它們必須同時工作並以 - 方式提供一些有用的輸出watch
。而且我只能使用一個終端。所以我應該在它們之間切換以查看發生了什麼,但不要停止它們(
Ctrl
+Z
)。我不知道該怎麼做。
當我跑
./server.sh &
然後輸入
Enter
終端(在啟動client.sh之前),但它顯示[1]+ Stopped ./server.sh
是否有一種方便的方法可以在終端中的作業之間切換以查看它們的輸出(內部狀態)而不停止它們?
使用
screen
:$ screen -S my-job
這將啟動一個
screen
名為“my-job”的新會話並連接到它。$ ./server.sh
這將
server.sh
在附加到screen
會話的第一個(預設)終端上啟動您的腳本。現在按Ctrl
-A
然後按Ctrl
-C
。這將創建一個新終端並切換到它。現在你可以執行:$ ./client.sh
並觀察其輸出。要來回切換,請按
Ctrl
-A
再按Ctrl
-A
。要在程序仍在執行的同時斷開連接
screen
,請按Ctrl
- ,A
然後按d
D etach。要重新連接並再次查看輸出,請使用:$ screen -x my-job
您還可以通過執行以下操作同時查看兩個腳本的輸出:
- 按
Ctrl
-A
後按s
S分割您的視圖。- 按
Ctrl
-A
然後Tab
向下移動到下分割Ctrl
-A
隨後"
打開活動終端列表,並選擇第 1 個終端(第 0 個預設連接到頂部拆分)。