telnet客戶端怎么退出全屏 linux顯示網(wǎng)絡(luò)會(huì)話方向?
linux顯示網(wǎng)絡(luò)會(huì)話方向?在Linux/Unix中,有幾個(gè)概念:過(guò)程組:一個(gè)或多個(gè)過(guò)程的集合,每個(gè)過(guò)程組都有一個(gè)唯一的過(guò)程組ID,即過(guò)程負(fù)責(zé)人的ID。會(huì)話:一個(gè)或多個(gè)過(guò)程組的集合,具有唯一的會(huì)話領(lǐng)導(dǎo)
linux顯示網(wǎng)絡(luò)會(huì)話方向?
在Linux/Unix中,有幾個(gè)概念:
過(guò)程組:一個(gè)或多個(gè)過(guò)程的集合,每個(gè)過(guò)程組都有一個(gè)唯一的過(guò)程組ID,即過(guò)程負(fù)責(zé)人的ID。
會(huì)話:一個(gè)或多個(gè)過(guò)程組的集合,具有唯一的會(huì)話領(lǐng)導(dǎo)者。會(huì)話ID是第一個(gè)進(jìn)程的ID。
一個(gè)會(huì)話可以有一個(gè)單獨(dú)的控制終端。與控制終端連接的第一個(gè)會(huì)話進(jìn)程稱為控制進(jìn)程。當(dāng)前與終端交互的進(jìn)程稱為前臺(tái)進(jìn)程組。其余的進(jìn)程組稱為后臺(tái)進(jìn)程組。
根據(jù)POSIX.1的定義:
SIGHUP信號(hào)的默認(rèn)動(dòng)作是終止程序。
當(dāng)終端接口檢測(cè)到網(wǎng)絡(luò)連接斷開(kāi)時(shí),它向控制進(jìn)程(會(huì)話頭進(jìn)程)發(fā)送掛斷信號(hào)。
如果會(huì)話頭進(jìn)程終止,信號(hào)被發(fā)送到會(huì)話前臺(tái)進(jìn)程組。
當(dāng)進(jìn)程退出并生成孤立進(jìn)程組時(shí),如果任何孤立進(jìn)程組進(jìn)程處于停止?fàn)顟B(tài),則向該進(jìn)程組中的所有進(jìn)程發(fā)送SIGHUP和SIGCONT信號(hào)。
因此,當(dāng)網(wǎng)絡(luò)斷開(kāi)或終端窗口關(guān)閉時(shí),控制進(jìn)程接收SIGHUP信號(hào)退出,這將導(dǎo)致其他進(jìn)程在會(huì)話期間退出。
讓 讓我們看一個(gè)例子。打開(kāi)兩個(gè)SSH終端窗口,并在其中一個(gè)窗口中運(yùn)行top命令。
[ root]# top
在另一個(gè)終端窗口中,找到top的進(jìn)程ID為5180,其父進(jìn)程ID為5128,即登錄sh: 03 pts/0 00 : 00 : 02 top
root 5857 3672 0 01 : 12 pts/2 00 : 00 : 00 grep top
使用pstree命令可以更清楚地看到這種關(guān)系:
[root]# p tree-H 5180 | grep top
|-sshd- -sshd - bash - top
使用ps-xj命令,我們可以看到登錄shell(PID 5128)和top在同一個(gè)會(huì)話中,shell是會(huì)話的第一個(gè)進(jìn)程,進(jìn)程組PGID是5128,top的進(jìn)程組PGID是5180,是前臺(tái)進(jìn)程組。
[ root]# ps -xj|grep 5128
5126 5128 51285128分/0
如果可以忽略SIGHUP信號(hào),關(guān)閉窗口應(yīng)該不會(huì)影響程序的運(yùn)行。Nohup命令可以實(shí)現(xiàn)這個(gè)目標(biāo)。如果程序的標(biāo)準(zhǔn)輸出/標(biāo)準(zhǔn)錯(cuò)誤是終端,默認(rèn)情況下nohup會(huì)將其重定向到nohup.out文件。值得注意的是,nohup命令只是讓程序忽略SIGHUP信號(hào),需要用tag amp在后臺(tái)運(yùn)行。
nohup lt command gt[參數(shù)…] amp
雖然nohup很容易使用,但它仍然是 "原油和天然氣。它可以處理簡(jiǎn)單的命令,但對(duì)于需要人機(jī)交互的復(fù)雜任務(wù)就比較麻煩。
其實(shí)我們可以用一個(gè)更強(qiáng)大的實(shí)用工具,screen。流行的Linux發(fā)行版(如Red Hat Enterprise Linux 4)通常都帶有screen實(shí)用程序。如果沒(méi)有,可以從GNU screen官網(wǎng)下載。
[ ~]# rpm -qa|grep屏幕
xscreensaver-4.18-5.rhel4.11
屏幕-4.0.2-5
開(kāi)始使用屏幕
簡(jiǎn)單來(lái)說(shuō),Screen就是一個(gè)窗口管理器,可以在多個(gè)進(jìn)程之間復(fù)用一個(gè)物理終端。屏幕中有一個(gè)會(huì)話的概念。用戶可以在一個(gè)屏幕會(huì)話中創(chuàng)建多個(gè)屏幕窗口,每個(gè)屏幕窗口就像操作一個(gè)真實(shí)的telnet/SSH連接窗口一樣。在screen中創(chuàng)建新窗口有幾種方法:
1.直接在命令行中鍵入screen命令。
[ ~]#屏幕
Screen將創(chuàng)建一個(gè)執(zhí)行shell的全屏窗口。您可以執(zhí)行任何shell程序,就像在ssh窗口中一樣。在此窗口中鍵入exit退出此窗口。如果這是該屏幕會(huì)話的唯一窗口,屏幕會(huì)話將退出,否則屏幕將自動(dòng)切換到前一個(gè)窗口。
2.2號(hào)。屏幕命令后面是您要執(zhí)行的程序。
[ ~]#屏幕vi測(cè)試. c
屏幕創(chuàng)建執(zhí)行Vitest.c的單窗口會(huì)話。退出vi將退出窗口/會(huì)話。
3.以上兩種方法都創(chuàng)建了一個(gè)新的屏幕會(huì)話。我們還可以在現(xiàn)有的屏幕會(huì)話中創(chuàng)建新窗口。在當(dāng)前的screen窗口中鍵入C-a c,即Ctrl鍵A,然后按C,screen將在這個(gè)會(huì)話中生成一個(gè)新窗口并切換到這個(gè)窗口。
屏幕有更高級(jí)的功能。你不能在屏幕窗口中中斷程序的運(yùn)行。
半小時(shí)后回來(lái),發(fā)現(xiàn)屏幕會(huì)話:[ ~]# scr:
(分離)
/tmp/screens/S-root中的1個(gè)插槽。
重新連接會(huì)話:
[ ~]# screen -r 16582
看看發(fā)生了什么。太好了。一切都在這里。去做吧。
你可能已經(jīng)注意到,特殊的組合鍵C-a是用來(lái)向屏幕發(fā)送命令的。這是因?yàn)槲覀冊(cè)阪I盤上輸入的信息是直接發(fā)送到當(dāng)前的紗窗的,我們必須通過(guò)其他向紗窗管理器發(fā)送命令。默認(rèn)情況下,screen接收以C-A開(kāi)頭的命令..這種命令形式稱為屏幕中的鍵綁定,C-a稱為命令字符。
開(kāi)發(fā)軟件的工具有哪些?
軟件開(kāi)發(fā)工具很多,但實(shí)用的只有幾個(gè)。以下是一些常用的開(kāi)發(fā)工具:
IDEA可以說(shuō)是目前最智能的編譯器,可以提示一些基本但致命的代碼錯(cuò)誤,尤其是對(duì)于寫Java代碼。其他衍生應(yīng)用如Webstorm、Pycharm、CLion可以更好的分別用來(lái)寫JavaScript、Python、C代碼。
Studio Codevscode,原本是一個(gè)非常強(qiáng)大和流行的前端編譯器,就像Vue框架的作者尤雨溪一樣,是用來(lái)在公共場(chǎng)合寫代碼的編譯器。但作者主要從事Java開(kāi)發(fā),使用IDEA開(kāi)發(fā)的頻率較高。之所以用vscode,更多的是作為一個(gè)文本編輯器,支持各種編程語(yǔ)言的語(yǔ)法高亮。例如,如果你只是看一些開(kāi)源代碼或編輯一些腳本,如nginx,但不要 如果不想占用內(nèi)存,輕量級(jí)的vscode是最好的選擇。
3.我們開(kāi)發(fā)的交換機(jī)主機(jī),經(jīng)常做一些域名映射。如何簡(jiǎn)單快速批量切換域名就夠了。這個(gè)應(yīng)用,很多開(kāi)發(fā)者可能不知道,可以在GitHub上免費(fèi)下載使用。
我有這樣一個(gè)常見(jiàn)的場(chǎng)景,就是登錄一個(gè)Linux服務(wù)器,在里面做一些配置和應(yīng)用部署,而且是這樣一個(gè)方便我們操作的工具。支持高亮顯示,可以清楚的看到里面的各種類型。文件有圖形界面,方便上傳文件和打開(kāi)文本進(jìn)行編輯。
主要用的,就那么幾個(gè),這些用好了,可以做很多開(kāi)發(fā)工作。