tmux 是乙個終端復用器(terminal multiplexer),非常有用,屬於常用的開發工具。
yum install tmux
yum install ./tmux-1.8-4.el7.x86_64.rpm
rpm -ql tmux
場景假設:比如我們需要執行一條命令,清理docker快取映象docker system prune
,這種命令執行前我們已經知道需要執行很久,可能是幾個小時,也可能是幾天,而且這種命令是掛在前台執行的,因此我們需要確保即使終端視窗關掉,服務也不會停止執行
在命令敲tmux
進入tmux模擬終端,如下圖
最下面有一條綠色的標誌帶,清楚的告訴我們當前處在tmux視窗裡,如果我們在開乙個視窗ps aux | grep tmux
也可以看到有相關tmux程序正在執行
我們使用tail -f /tmp/tmp.txt
來模擬乙個在前台執行的並且需要很久時間的命令,如下圖
此時我們不能去ctrl+c
或者說關掉視窗,那樣當前執行的程式就退出了,我們需要用tmux提供的退出tmux視窗的方法,即
ctrl+b d
這個命令跟vim一些操作邏輯相似,輸入的過程中不會有任何提示,先按ctrl+b
,再按d
,即可(都是小寫字母),操作完成之後退出到原本的shell終端
程式還在後台執行著,可以看到這種操作用英文描述是detached,docker裡有attach的操作,功能都類似,簡單理解就是視窗的最小化和最大化,程式本身正常執行無影響
過了一段時間,我們想看看被我們放到後台(也就是最小化)的tmux裡面的程式執行的如何了,我們可以使用
tmux a
重新進去
tmux 視窗有大量的快捷鍵。所有快捷鍵都要通過字首鍵喚起。預設的字首鍵是ctrl+b,即先按下ctrl+b,快捷鍵才會生效
ctrl+b ? 退出幫助是q
man tmux
tmux --help
1. tmux 建立會話,會話編號是0
2. 執行需要長時間執行在前台的命令(不需要nohup、不需要在最後加&)
3. ctrl+b d 退出會話
4. tmux a 進入會話檢視執行效果(進入上乙個剛建立的會話)
如果我們只用乙個會話(這也是最常見的需求),上面的步驟就已經完全足夠了
如果我們需要用到多個會話,可以在建立會話和進入會話的時候加入名稱
tmux new -s 建立會話
tmux attach -t 進入會話
演示
tmux new -s abc
[root@10-222-32-122 ~]# tmux ls
0: 1 windows (created wed nov 18 12:02:35 2020) [204x53]
abc: 1 windows (created wed nov 18 16:10:49 2020) [204x53]
tmux attach -t abc
第乙個啟動的 tmux 視窗,編號是0,第二個視窗的編號是1,以此類推。這些視窗對應的會話,就是 0 號會話、1 號會話。
tmux ls 檢視當前所有的 tmux 會話
tmux attach -t 0 進入會0 (或者 tmux a)
exit 退出當前會話
tmux new -s 新建會話
tmux attach -t 進入會話
nohup 一般的使用方式是nohup linux-command &> /tmp/tmp.log &
如果執行的程式有大量輸出,不要輸出到螢幕上,放到檔案裡 linux scp放後台執行方法
使用scp放後台跑完成相關的檔案傳輸 scp r phper 192.168.210.41 mnt cze baseline data cze vma gfsysques vma 1 scp remote username remote ip remote file local folder 2 輸...
linux scp放後台執行方法
客戶要搭建異地的容災dg,壓縮備份集500g,只能使用scp,前台跑經常超時,使scp放後台跑完成相關的檔案傳輸 scp l 40200 fullbak lfcxjmyb 20190507 6448 1.dbfile 10.40.56.2 oradata ybbak 注 l 為限制scp占用的寬頻,...
python flask專案放後台持續執行
1.搭建uwsgi伺服器 用uwsgi對flask應用進行部署 1 既然uwsgi是乙個伺服器,使用前就一定要安裝,在python下,可以直接使用命令pip install uwsgi安裝即可。在linux上安裝命令為 yum install uwsgi 2 先配置,再在ssh終端執行以下2個命令。...