qwidget多个窗口同步_Linux命令screen—终端切换,工作环境保存,画面同步,防断网...
Screen基礎
Screen是一款由GNU計劃開發的用于命令行終端切換的自由軟件。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,并在其間自由切換。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。
創建一個新的窗口
一般Linux默認安裝,直接敲命令screen就可以啟動它。但是這樣啟動的screen會話沒有名字,實踐中推薦為每個screen會話取一個名字,方便管理:
# 創建一個名為adam的新終端screen -S adam
screen啟動后,會創建第一個窗口,也就是窗口No. 0,并在其中打開一個系統默認的shell,一般都會是bash。所以你敲入命令screen之后,會立刻又返回到命令提示符,仿佛什么也沒有發生似的,其實你已經進入Screen的世界了。
注意:當前在環境其實已經與你原來的終端進程無關,在這里運行的程序,無論是斷網,還是關閉終端程序可不受影響繼續運行。可且可以在別的窗口中恢復之前的工作界面。
當然,也可以在screen命令之后加入你喜歡的參數,使之直接打開你指定的程序,例如:
screen vi david.txt會話分離與恢復
可以不中斷screen窗口中程序的運行而暫時斷開(detach)screen會話,并在隨后時間重新連接(attach)該會話,重新控制各窗口中運行的程序。例如,我們打開一個screen窗口編輯/tmp/david.txt文件:
screen -S adamvi /tmp/david.txt
之后我們想暫時退出做點別的事情,比如出去散散步,那么在screen窗口鍵入Ctrl(C)+a, 再按d,Screen會給出detached提示:暫時中斷會話
[detached from 71928.adam]半個小時之后回來了,找到該screen會話:
screen -ls重新連接會話:
screen -r adam一切都在。
當然,如果你在另一臺機器上沒有分離一個Screen會話,就無從恢復會話了。這時可以使用下面命令強制將這個會話從它所在的終端分離,轉移到新的終端上來:
screen -d -r test清除dead 會話
如果由于某種原因其中一個會話死掉了(例如人為殺掉該會話),這時screen -list會顯示該會話為dead狀態。使用screen -wipe命令清除該會話:
關閉或殺死窗口
正常情況下,當你退出一個窗口中最后一個程序(通常是bash)后,這個窗口就關閉了。另一個關閉窗口的方法是使用Ctrl + a, k,這個快捷鍵殺死當前的窗口,同時也將殺死這個窗口中正在運行的進程(請謹慎使用)。
如果一個Screen會話中最后一個窗口被關閉了,那么整個Screen會話也就退出了,screen進程會被終止。
除了依次退出/殺死當前Screen會話中所有窗口這種方法之外,還可以使用快捷鍵Ctrl + a,然后輸入quit命令退出Screen會話。需要注意的是,這樣退出會殺死所有窗口并退出其中運行的所有程序。其實Ctrl + a這個快捷鍵允許用戶直接輸入的命令有很多,包括分屏可以輸入split等,這也是實現Screen功能的一個途徑,不過個人認為還是快捷鍵比較方便些。
screen 高級應用
會話共享
還有一種比較好玩的會話恢復,可以實現會話共享。假設你在和朋友在不同地點以相同用戶登錄一臺機器,然后你創建一個screen會話,你朋友可以在他的終端上命令:
screen -x adam這個命令會將你朋友的終端Attach到你的Screen會話上,并且你的終端不會被Detach。這樣你就可以和朋友共享同一個會話了,如果你們當前又處于同一個窗口,那就相當于坐在同一個顯示器前面,你的操作會同步演示給你朋友,你朋友的操作也會同步演示給你。當然,如果你們切換到這個會話的不同窗口中去,那還是可以分別進行不同的操作的。
這種模式非常適合獲得幫助,讓你的朋友或老師在命令行現場直播解決問題。
會話鎖定與解鎖
Screen允許使用快捷鍵Ctrl + a, 再按s鎖定會話。鎖定以后,再進行任何輸入屏幕都不會再有反應了。但是要注意雖然屏幕上看不到反應,但你的輸入都會被Screen中的進程接收到。快捷鍵Ctrl + a, q可以解鎖一個會話。
也可以使用Ctrl + a, x鎖定會話,不同的是這樣鎖定之后,會話會被Screen所屬用戶的密碼保護,需要輸入密碼才能繼續訪問這個會話。
Screen used by Public on biocloud.Password:
發送命令到screen會話
在Screen會話之外,可以通過screen命令操作一個Screen會話,這也為使用Screen作為腳本程序增加了便利。關于Screen在腳本中的應用超出了入門的范圍,這里只看一個例子,體會一下在會話之外對Screen的操作:
screen -S test -X screen ping www.baidu.com這個命令在一個叫做test的screen會話中創建一個新窗口,并在其中運行ping命令。
體驗一下效果,在一個窗口中往另外的窗口中提交命令,是不是很酷。
屏幕分割
現在顯示器那么大,將一個屏幕分割成不同區域顯示不同的Screen窗口顯然是個很酷的事情。可以使用快捷鍵Ctrl + a, S將顯示器水平分割,Screen 4.00.03版本以后,也支持垂直分屏,快捷鍵是Ctrl + a, |。分屏以后,可以使用Ctrl + a,
可以用Ctrl + a, X快捷鍵關閉當前焦點所在的屏幕區塊,也可以用Ctrl + a, Q關閉除當前區塊之外其他的所有區塊。關閉的區塊中的窗口并不會關閉,還可以通過窗口切換找到它。
Reference
screen命令 http://man.linuxde.net/screen
猜你喜歡
10000+:菌群分析寶寶與貓狗 梅毒狂想曲 提DNA發Nature Cell專刊 腸道指揮大腦
系列教程:微生物組入門 Biostar 微生物組 宏基因組
專業技能:學術圖表高分文章生信寶典 不可或缺的人
一文讀懂:宏基因組 寄生蟲益處 進化樹
必備技能:提問 搜索 Endnote
文獻閱讀 熱心腸 SemanticScholar Geenmedical
擴增子分析:圖表解讀 分析流程 統計繪圖
16S功能預測 PICRUSt FAPROTAX Bugbase Tax4Fun
在線工具:16S預測培養基 生信繪圖
科研經驗:云筆記 云協作 公眾號
編程模板: Shell R Perl
生物科普: 腸道細菌人體上的生命生命大躍進 細胞暗戰 人體奧秘
寫在后面
為鼓勵讀者交流、快速解決科研困難,我們建立了“宏基因組”專業討論群,目前己有國內外5000+ 一線科研人員加入。參與討論,獲得專業解答,歡迎分享此文至朋友圈,并掃碼加主編好友帶你入群,務必備注“姓名-單位-研究方向-職稱/年級”。PI請明示身份,另有海內外微生物相關PI群供大佬合作交流。技術問題尋求幫助,首先閱讀《如何優雅的提問》學習解決問題思路,仍末解決群內討論,問題不私聊,幫助同行。
學習16S擴增子、宏基因組科研思路和分析實戰,關注“宏基因組”
點擊閱讀原文,跳轉最新文章目錄閱讀
總結
以上是生活随笔為你收集整理的qwidget多个窗口同步_Linux命令screen—终端切换,工作环境保存,画面同步,防断网...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Plc通讯控制三菱FX3U与台达VFD变
- 下一篇: 操作系统:高响应比优先调度算法(HRRN