欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

包含linux命令開啟pts的詞條

linux主機(jī)ftp服務(wù)開啟方法

1、連接上相應(yīng)的linux主機(jī),進(jìn)入到等待輸入shell指令的linux命令行狀態(tài)下。

成都創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)十余年來致力于為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站、高端網(wǎng)站設(shè)計(jì)營(yíng)銷型網(wǎng)站、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了超過千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

2、在linux命令行下輸入shell指令:ps -ef | grep ftp。

3、最后,按下回車鍵執(zhí)行shell指令,此時(shí)會(huì)看到ftp進(jìn)程被成功查詢到,說明ftp功能是開啟狀態(tài)。

linux如何設(shè)置程序開機(jī)啟動(dòng)后臺(tái)運(yùn)行?

有些時(shí)候,我們需要在終端啟動(dòng)一個(gè)程序,并使之運(yùn)行——但是如果關(guān)閉終端,那么這個(gè)程序也就隨著關(guān)閉了。那么有沒有什么方法在關(guān)閉終端后,讓已經(jīng)從這個(gè)終端啟動(dòng)的程序繼續(xù)運(yùn)行呢?有以下方法

1.讓linux忽略終端的hung up 信號(hào),不關(guān)閉進(jìn)程;

2.讓此進(jìn)程變?yōu)榻K端的非子進(jìn)程。

方法一:

在終端輸入命令:

# ./pso pso.file 21

解釋:將pso直接放在后臺(tái)運(yùn)行,并把終端輸出存放在當(dāng)前目錄下的pso.file文件中。

當(dāng)客戶端關(guān)機(jī)后重新登陸服務(wù)器后,直接查看pso.file文件就可看執(zhí)行結(jié)果(命

令:#cat pso.file )。

或者 在終端輸入命令:

# nohup ./pso pso.file 21

解釋:nohup就是不掛起的意思,將pso直接放在后臺(tái)運(yùn)行,并把終端輸出存放在當(dāng)前

目錄下的pso.file文件中。當(dāng)客戶端關(guān)機(jī)后重新登陸服務(wù)器后,直接查看pso.file

文件就可看執(zhí)行結(jié)果(命令:#cat pso.file )。

方法二:

實(shí)現(xiàn)方案就是nohup命令。

例如要啟動(dòng)jboss,可以nohup ./run.sh 。這樣就可以了,結(jié)尾的“”符號(hào)表示后臺(tái)啟動(dòng)jboss,從而不影響繼續(xù)運(yùn)行其他命令。

但這樣有一個(gè)問題,nohup命令雖然可以讓linux“放過”這個(gè)進(jìn)程,但是nohup會(huì)同時(shí)把進(jìn)程的控制臺(tái)輸出重定向到nohup.txt下(默認(rèn)是這個(gè)文件),當(dāng)然可以重定向?yàn)槠渌奈募禽敵隹倳?huì)有的。

如果jboss運(yùn)行很長(zhǎng)時(shí)間,而且如果有很多控制臺(tái)輸出的話,nohup.txt文件就會(huì)變的很大很大。

通常項(xiàng)目中的日志都會(huì)輸出到特定的日志文件或者輸出到 數(shù)據(jù)庫 中,也就是說控制臺(tái)的輸出對(duì)于程序的意義不大,那么可不可以拋棄掉這些輸出呢?答案是肯定的。

這里講解一下linux的重定向(注意,是linux的重定向,不是針對(duì)nohup)。

0、1和2分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤信息輸出,可以用來指定需要重定向的標(biāo)準(zhǔn)輸入或輸出。

在一般使用時(shí),默認(rèn)的是標(biāo)準(zhǔn)輸出,既1.當(dāng)我們需要特殊用途時(shí),可以使用其他標(biāo)號(hào)。例如,將某個(gè)程序的錯(cuò)誤信息輸出到log文件中:./program 2log。這樣標(biāo)準(zhǔn)輸出還是在屏幕上,但是錯(cuò)誤信息會(huì)輸出到log文件中。

另外,也可以實(shí)現(xiàn)0,1,2之間的重定向。21:將錯(cuò)誤信息重定向到標(biāo)準(zhǔn)輸出。

Linux下還有一個(gè)特殊的文件/dev/null,它就像一個(gè)無底洞,所有重定向到它的信息都會(huì)消失得無影無蹤。

結(jié)合nohup,我們可以這樣 nohup ./run.sh /dev/null

這是最簡(jiǎn)單的一種方式,既保證了程序能夠一直后臺(tái)執(zhí)行,又能保證不會(huì)產(chǎn)生太大的nohup.txt文件。

方法三:

利用的linux的一個(gè)機(jī)制,讓程序在subshell中執(zhí)行,方法很簡(jiǎn)單,將命令用括號(hào)() 括起來即可。

ps -ef | grep test

可以看到run.sh的父進(jìn)程為1,不是當(dāng)前終端了,這樣就能忽略hung up信號(hào)。

當(dāng)然linux還可以動(dòng)態(tài)的讓程序后臺(tái)運(yùn)行或不被hung up 信號(hào)關(guān)閉,例如disown命令,setid命令等。

方法四:

如果是使用Ubuntu的話,你可以利用CTRL+ALT+T組合鍵打開終端。當(dāng)然你也可以使用超級(jí)鍵(Windows鍵)打開Dash,搜索“TERM”,然后點(diǎn)擊“Term”圖標(biāo)來打開終端窗口。

對(duì)于其他的桌面環(huán)境來說,例如XFCE、KDE、LXDE、Cinnamon以及MATE,你可以在菜單中找到終端。有些環(huán)境會(huì)在停靠欄或者面板上面包含終端圖標(biāo)。

通常情況下,你可以在終端里面直接輸入應(yīng)用程序名來啟動(dòng)一個(gè)應(yīng)用程序。比如說,你可以通過輸入“firefox”來啟動(dòng)Firefox。

在終端啟動(dòng)應(yīng)用程序的好處是,你可以包含一些額外的參數(shù)。

例如,你可以通過下列命令來打開一個(gè)Firefox瀏覽窗口,然后利用默認(rèn)的搜索引擎搜索相關(guān)信息:

firefox -search "linux.cn"

你可能會(huì)注意到,如果你啟動(dòng)Firefox,程序打開以后,回到了終端窗口控制,這就意味著你可以繼續(xù)在終端進(jìn)行工作。

通常情況下,如果你在終端啟動(dòng)了應(yīng)用程序,控制會(huì)切換到新啟動(dòng)的應(yīng)用程序,只有程序被關(guān)閉以后才會(huì)重新切換到終端控制。這是因?yàn)槟阍谇芭_(tái)啟動(dòng)了這個(gè)程序。

如果要在Linux終端打開應(yīng)用程序并且返回終端控制,那么你需要將應(yīng)用程序啟動(dòng)為后臺(tái)進(jìn)程。

和下面所列的命令一樣,我們可以通過增加一個(gè)()符號(hào),將應(yīng)用程序在后臺(tái)啟動(dòng)。

libreoffice

譯者注:如果需要加參數(shù)的話,記得把符號(hào)放在最后。

譯者注:一般情況下,關(guān)閉終端時(shí),在這個(gè)終端啟動(dòng)的后臺(tái)程序也會(huì)被終止,要使終端關(guān)閉以后,后臺(tái)程序依然保持執(zhí)行可以使用下列命令

nohup command [arg...]

如果應(yīng)用程序目錄沒有安裝在PATH變量包含的目錄里面的話,我們就沒有辦法直接通過應(yīng)用程序名來啟動(dòng)程序,必須輸入應(yīng)用程序的整個(gè)路徑來啟動(dòng)它。

/path/to/yourprogram

如果你不確定程序輸入哪個(gè)Linux目錄結(jié)構(gòu)的話,可以使用find或者location命令來定位它。

可以輸入下列符號(hào)來找到一個(gè)文件:

find /path/to/start/from -name programname

例如,你可以輸入下列命令來找到Firefox:

find / -name firefox

命令運(yùn)行的結(jié)果會(huì)嗖的一下輸出一大堆,別擔(dān)心,你也可以通過less或者more來進(jìn)行分頁查看。

find / -name firefox | more find / -name firefox | less

當(dāng)find命令查找到?jīng)]有權(quán)限訪問的文件夾時(shí),會(huì)報(bào)出一條拒絕訪問錯(cuò)誤,

你可以通過sudo命令來提示權(quán)限。當(dāng)然,如果你沒有安裝sudo的話,就只能切換到一個(gè)擁有權(quán)限的用戶了。

sudo find / -name firefox | more

如果你知道你要查找的文件在你的當(dāng)前目錄結(jié)構(gòu)中,那么你可以使用點(diǎn)來代替斜杠:

sudo find . -name firefox | more

你可能需要sudo來提升權(quán)限,也可能根本就不需要,如果這個(gè)文件在你的主目錄里面,那么就不需要使用sudo。

有些應(yīng)用程序則必須要提升權(quán)限才能運(yùn)行,否則你就會(huì)得到一大堆拒絕訪問錯(cuò)誤,除非你使用一個(gè)具有權(quán)限的用戶或者使用sudo提升權(quán)限。

這里有個(gè)小竅門。如果你運(yùn)行了一個(gè)程序,但是它需要提升權(quán)限來操作,輸入下面命令試試:

sudo !!

方法五:

在Unix/Linux下如果想讓程序獨(dú)立終端運(yùn)行,一般都是使用 在命令結(jié)尾來讓程序自動(dòng)運(yùn)行。(命令后可以不追加空格)

打開gnome-terminal,執(zhí)行如下命令:

delectate@delectate:~$ totem [1] 8510delectate@delectate:~$ 有幾點(diǎn)需要注意:

已經(jīng)啟動(dòng)的程序依然attach于當(dāng)前pts,只有當(dāng)前終端模擬器關(guān)閉(使用exit命令退出),進(jìn)程自動(dòng)被tty繼承。delectate@delectate:~$ ps -e | grep totem //程序已被以totem 形式啟動(dòng),當(dāng)前附在pts0上8819 pts/0 00:00:00 totemdelectate@delectate:~$ ps -e | grep totem //pts0的模擬終端被exit命令關(guān)閉,totem自動(dòng)附在tty8819 ? 00:00:00 totemdelectate@delectate:~$

具有debug輸出的進(jìn)程,需要按enter鍵進(jìn)行中斷當(dāng)前debug輸出。但是如果程序持續(xù)進(jìn)行printf,你將無法輸入任何命令。delectate@delectate:~$ vlc [1] 8850delectate@delectate:~$ VLC media player 1.0.6 Goldeneye[0x8b998b0] main libvlc: Running vlc with the default interface. Use ‘cvlc’ to use vlc without interface. //enter presseddelectate@delectate:~$ //show a clean terminal now** (:8850): CRITICAL **: giop_thread_request_push: assertion `tdata != NULL’ failed //仍然在輸出數(shù)據(jù)…… //關(guān)閉程序[1]+ Done vlcdelectate@delectate:~$

你無法記錄程序的debug輸出結(jié)果。

只有當(dāng)虛擬終端是 $ 或者 # 時(shí)候,才可以關(guān)閉此終端,否則可能導(dǎo)致已經(jīng)啟動(dòng)的進(jìn)程被關(guān)閉(按enter——如果程序持續(xù)輸出信息而沒有出現(xiàn) $ 或 #)

使用nohup命令:

nohup描述:Run COMMAND, ignoring hangup signals.(忽略任何中斷/掛起信號(hào),使命令繼續(xù)執(zhí)行)

但是當(dāng)你嘗試使用命令:

1nohup command

時(shí)候卻會(huì)遇到不大不小的麻煩……

delectate@delectate:~$ nohup vlcnohup: ignoring input and appending output to `nohup.out’

是的,雖然它自動(dòng)把debug信息記錄到nohup.out文件,但是你卻無法使用這個(gè)終端進(jìn)行任何操作。

所以你需要和第一個(gè)方法混用,即

nohupcommand {option}

混用后,它會(huì)自動(dòng)把你執(zhí)行的命令輸出結(jié)果記錄到權(quán)限為-rw——-,名為nohup.out的文件中。

但是你仍然需要

delectate@delectate:~$ nohup vlc [1] 9045delectate@delectate:~$ nohup: ignoring input and appending output to `nohup.out’ //在這里按一下回車或以ctrl+c以 //show a clean terminal delectate@delectate:~$

與使用 “” 性質(zhì)相同,當(dāng)前啟動(dòng)程序的終端如果沒有被關(guān)閉,已經(jīng)啟動(dòng)的程序附在pst上;如果終端被關(guān)閉,則自動(dòng)附在tty。

如果當(dāng)前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out。默認(rèn)狀態(tài)下,nohup默認(rèn)輸出到nohup.out文件,你也可以利用重定向來指定輸出文件:

nohupcommand {option} myout.file 21

只有當(dāng)虛擬終端是 $ 或者 # 時(shí)候,才可以關(guān)閉此終端,否則可能導(dǎo)致已經(jīng)啟動(dòng)的進(jìn)程被關(guān)閉(按enter——如果程序持續(xù)輸出信息而沒有出現(xiàn) $ 或 #)

其他相關(guān)命令:

jobs:查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令

fg:將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行。如果后臺(tái)中有多個(gè)命令,可以用 fg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺(tái)正在執(zhí)行的命令的序號(hào)(不是pid)

bg:將一個(gè)在后臺(tái)暫停的命令,變成繼續(xù)執(zhí)行。如果后臺(tái)中有多個(gè)命令,可以用bg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺(tái)正在執(zhí)行的命令的序號(hào)(不是pid)

殺死進(jìn)程

殺死已經(jīng)啟動(dòng)的程序和普通方式一樣:

pkill -9 name

killall name

kill pid

命令應(yīng)用:

linux服務(wù)器掛機(jī)下載;啟動(dòng)相關(guān)服務(wù);linux服務(wù)器啟動(dòng)進(jìn)程(尤其是ssh登錄)

我就曾經(jīng)用 1nohup aria2c -i downloadlist -m 0 -j 1

linux中who命令顯示的pts/0和(:0)(:0.0)是什么意思

先說pts/0吧,man里面是這樣說的:ptmx

and

pts

-

pseudo-terminal

master

and

slave,pts是所謂的偽終端或虛擬終端,具體表現(xiàn)就是你打開一個(gè)終端,這個(gè)終端就叫pts/0,如果你再打開一個(gè)終端,這個(gè)新的終端就叫pts

/1。比如用who命令查詢當(dāng)前登錄的用戶,可以看到每個(gè)用戶的TTY設(shè)備(簡(jiǎn)單來說就是用戶輸入命令還有顯示信息的設(shè)備,比如終端),下面是我機(jī)器上的顯示:

calabash

tty7

2009-12-09

20:04

(:0)

calabash

pts/0

2009-12-09

20:20

(:0.0)

calabash

pts/1

2009-12-09

20:27

(:0.0)

有一個(gè)tty7是表示圖形界面,我當(dāng)前登錄的是GNOME,當(dāng)然就是圖形界面了。還有tty1-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切換,+F7就是切換回圖形界面。下面兩行說明我當(dāng)前打開了兩個(gè)終端窗口,所以就有pts/0和pts/1

再說一下SSH吧,要把本機(jī)當(dāng)做一個(gè)遠(yuǎn)程SSH服務(wù)器用,要先裝個(gè)openssh-server,裝完之后會(huì)自動(dòng)啟動(dòng)sshd服務(wù)監(jiān)聽ssh連接,Ubuntu應(yīng)該是預(yù)裝了openssh-client的,所以啟動(dòng)sshd后,可以自己連接自己,最簡(jiǎn)單的命令:ssh

user@localhost

至于Windows下面可以用putty用作ssh連接客戶端。然后突然想起很久以前小龔?fù)扑]我注冊(cè)的一個(gè)unix-

center的賬號(hào)可以登錄上面的主機(jī),就是SSH連接的。今天在公司就一直掛在unix-

center的Ubuntu上面,發(fā)現(xiàn)上面登錄的用戶還真不少:

USER

TTY

FROM

LOGIN@

IDLE

JCPU

PCPU

WHAT

k418675

pts/2

202.108.140.161

08:32

3:42

0.08s

0.06s

sshd:

k418675

[

wateran_

pts/3

222.92.112.66

08:41

8:06

0.06s

0.06s

-bash

xiaoshe

pts/4

129.192.196.5

14:17

11:17m

0.08s

0.08s

-bash

lfly

pts/5

211.144.118.166

09:33

0.00s

0.24s

0.06s

sshd:

lfly

[pri

steed.de

pts/6

119.145.41.2

11:58

4:49

0.06s

0.06s

-bash

topojuly

pts/7

218.30.165.69

15:46

10:55m

0.10s

0.10s

-bash

nwpumabi

pts/8

222.92.112.66

15:12

1:35

0.08s

0.08s

-bash

ilylm

pts/9

113.96.216.247

16:26

1:15m

0.08s

0.08s

-bash

niugao

pts/10

:1.0

09:10

7:36

0.06s

0.06s

-bash

niugao

pts/11

:2.0

09:11

7:36

0.08s

0.08s

-bash

cu911

pts/12

221.215.10.154

16:38

0.00s

0.10s

0.02s

vi

./newhead.sh

wendao4

pts/13

113.9.75.218

16:47

3.00s

0.08s

0.08s

-bash

clyet

pts/15

218.247.11.196

14:12

2:07

0.08s

0.02s

sshd:

clyet

[pr

bigarmy

pts/17

124.207.17.24

10:46

4:22m

0.10s

0.10s

-bash

tonylu

pts/16

218.18.214.166

14:19

2:13m

0.08s

0.08s

-bash

nwpumabi

pts/19

222.92.112.66

11:08

5:38

0.08s

0.08s

-bash

vector09

pts/23

:8.0

11:18

5:26

0.38s

0.10s

-bash

vector09

pts/24

:9.0

11:18

5:29

0.08s

0.08s

-bash

vector09

pts/21

:8.0

11:23

5:24

0.08s

0.08s

bash

fishruby

pts/26

118.229.195.133

15:04

1:03

0.08s

0.08s

-bash

jy016492

pts/28

218.17.152.141

15:17

7:56m

0.08s

0.00s

sshd:

jy0164921

xingzj01

pts/29

222.92.112.66

12:46

4:00

0.08s

0.08s

-bash

ls87

pts/30

192.168.1.18

13:39

4:43m

0.20s

0.04s

vim

可以看到有很多pts,就是代表每個(gè)用戶用來輸入輸出的終端了

Linux常用命令總結(jié)

ps 命令的作用是顯示進(jìn)程信息的;

| 符號(hào),是個(gè)管道符號(hào),表示ps 和 grep 命令同時(shí)執(zhí)行;

grep 命令是查找(Global Regular Expression Print),能使用正則表達(dá)式搜索文本,然后把匹配的行顯示出來;

ps命令有一些參數(shù):

-e : 顯示所有進(jìn)程

-f : 全格式

-h : 不顯示標(biāo)題

-l : 長(zhǎng)格式

-w : 寬輸出

a :顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程。

r :只顯示正在運(yùn)行的進(jìn)程。

u :以用戶為主的格式來顯示程序狀況。

x :顯示所有程序,不以終端機(jī)來區(qū)分。

結(jié)果信息從前到后依次是:

UID PID PPID C STIME TTY TIME CMD

zzw 14124 13991 0 00:38 pts/0 00:00:00 grep –color=auto dae

Linux中的top命令顯示系統(tǒng)上正在運(yùn)行的進(jìn)程。它是系統(tǒng)管理員最重要的工具之一。被廣泛用于監(jiān)視服務(wù)器的負(fù)載。top命令是一個(gè)交互命令。在運(yùn)行top的時(shí)候還可以運(yùn)行很多命令。

N – 以 PID 的大小的順序排列表示進(jìn)程列表

P – 以 CPU 占用率大小的順序排列進(jìn)程列表

M – 以內(nèi)存占用率大小的順序排列進(jìn)程列表

q – 退出 top

h – 幫助

1 系統(tǒng)運(yùn)行時(shí)間和平均負(fù)載

這些字段顯示:當(dāng)前時(shí)間、系統(tǒng)已運(yùn)行的時(shí)間、當(dāng)前登錄用戶的數(shù)量、相應(yīng)最近5、10和15分鐘內(nèi)的平均負(fù)載。

2 任務(wù)

第二行顯示的是任務(wù)或者進(jìn)程的總結(jié)。進(jìn)程可以處于不同的狀態(tài)。這里顯示了全部進(jìn)程的數(shù)量。除此之外,還有正在運(yùn)行、睡眠、停止、僵尸進(jìn)程的數(shù)量(僵尸是一種進(jìn)程的狀態(tài))。這些進(jìn)程概括信息可以用’t’切換顯示。

3 CPU 狀態(tài)

下一行顯示的是CPU狀態(tài)。 這里顯示了不同模式下的所占CPU時(shí)間的百分比。這些不同的CPU時(shí)間表示:

us, user: 運(yùn)行(未調(diào)整優(yōu)先級(jí)的) 用戶進(jìn)程的CPU時(shí)間

sy,system: 運(yùn)行內(nèi)核進(jìn)程的CPU時(shí)間

ni,niced:運(yùn)行已調(diào)整優(yōu)先級(jí)的用戶進(jìn)程的CPU時(shí)間

wa,IO wait: 用于等待IO完成的CPU時(shí)間

hi:處理硬件中斷的CPU時(shí)間

si: 處理軟件中斷的CPU時(shí)間

st:這個(gè)虛擬機(jī)被hypervisor偷去的CPU時(shí)間(譯注:如果當(dāng)前處于一個(gè)hypervisor下的vm,實(shí)際上hypervisor也是要消耗一部分CPU處理時(shí)間的)。

4 內(nèi)存使用

接下來兩行顯示內(nèi)存使用率,有點(diǎn)像’free’命令。第一行是物理內(nèi)存使用,第二行是虛擬內(nèi)存使用(交換空間)。

物理內(nèi)存顯示如下:全部可用內(nèi)存、已使用內(nèi)存、空閑內(nèi)存、緩沖內(nèi)存。相似地:交換部分顯示的是:全部、已使用、空閑和緩沖交換空間。

5 各列的意思

PID 進(jìn)程ID,進(jìn)程的唯一標(biāo)識(shí)符

USER 進(jìn)程所有者的實(shí)際用戶名。

PR 進(jìn)程的調(diào)度優(yōu)先級(jí)。這個(gè)字段的一些值是’rt’。這意味這這些進(jìn)程運(yùn)行在實(shí)時(shí)態(tài)。

NI 進(jìn)程的nice值(優(yōu)先級(jí))。越小的值意味著越高的優(yōu)先級(jí)。

VIRT 進(jìn)程使用的虛擬內(nèi)存。

RES 駐留內(nèi)存大小。駐留內(nèi)存是任務(wù)使用的非交換物理內(nèi)存大小。

SHR SHR是進(jìn)程使用的共享內(nèi)存。

S 這個(gè)是進(jìn)程的狀態(tài)。它有以下不同的值:

D – 不可中斷的睡眠態(tài)。

R – 運(yùn)行態(tài)

S – 睡眠態(tài)

T – 被跟蹤或已停止

Z – 僵尸態(tài)

%CPU 自從上一次更新時(shí)到現(xiàn)在任務(wù)所使用的CPU時(shí)間百分比。

%MEM 進(jìn)程使用的可用物理內(nèi)存百分比。

TIME+ 任務(wù)啟動(dòng)后到現(xiàn)在所使用的全部CPU時(shí)間,精確到百分之一秒。

COMMAND 運(yùn)行進(jìn)程所使用的命令。

注意 :不同發(fā)行版的top命令在各種細(xì)節(jié)有不同,如果發(fā)現(xiàn)不同時(shí),請(qǐng)讀你的幫助手冊(cè)和命令內(nèi)的幫助。)

kill、kill-15、kill-9區(qū)別:

執(zhí)行kill(默認(rèn)kill -15)命令,系統(tǒng)會(huì)發(fā)送一個(gè)SIGTERM信號(hào)給對(duì)應(yīng)的程序,大部分程序接收到SIGTERM信號(hào)后,會(huì)先釋放自己的資源,然后再停止。用法kill pid。

kill -15 pid。

kill -9命令,系統(tǒng)給對(duì)應(yīng)程序發(fā)送的信號(hào)是SIGKILL,即exit。exit信號(hào)不會(huì)被系統(tǒng)阻塞,所以kill -9能順利殺掉進(jìn)程。用法kill -9 pid。

tail -n 1000:顯示最后1000行

tail -n +1000:從1000行開始顯示,顯示1000行以后的

head -n 1000:顯示前面1000行

cat a.txt 顯示文件

vim xx.conf 編輯文件

打開文件后,按insert鍵進(jìn)入編輯模式;編輯完后,按esc建退出編輯模式;按shift+冒號(hào)后,輸入wq保存退出,wq!保存強(qiáng)制退出,q不保存退出

在根目錄模糊查找名字含java的文件

服務(wù)器端常有很多壓縮過的日志文件,當(dāng)需要查找日志中某些特定信息的時(shí)候,為了避免解壓文件,可以使用zgrep,zcat等命令查找、查看壓縮文件中的信息

zgrep ' 輸入你要查找的東東' /目錄 /文件 .gz 或者.log (當(dāng)日)

grep ' 輸入你要查找的東東' /目錄 /文件 .gz 或者.log (非當(dāng)日的壓縮文件)

例如: zgrep 'callMktCamLoad' app.log.2019-12-03-*.gz

rpm包安裝的,可以用 rpm -qa 看到,如果要查找某軟件包是否安裝,用 rpm -qa | grep "軟件或者包的名字"

以deb包安裝的,可以用 dpkg -l 看到。如果是查找指定軟件包,用 dpkg -l | grep "軟件或者包的名字"

yum方法安裝的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "軟件名或者包名"

linux系統(tǒng)的tty,pts等終端概念

ttyS0~ ttyS3 (串行端口終端)指的是電腦的各個(gè)物理接口(這些都是串口,不是并口),外部的終端通過這些物理接口與電腦連接 ,從而實(shí)現(xiàn)和電腦進(jìn)行交互。

?例如:dmesg |grep tty可以查看開啟的接口(串口)

? ? ?目前連接遠(yuǎn)程服務(wù)器或者直接在服務(wù)器上面操作等都是通過創(chuàng)建虛擬終端的形式。比如pts/1 和tty1虛擬終端,其中tty表示直接登錄機(jī)器生成的而pts表示遠(yuǎn)程連接生成的。其中遠(yuǎn)程連接是通過sshd服務(wù)進(jìn)行創(chuàng)建session會(huì)話和bash進(jìn)程(所以可以看到有sshd進(jìn)程,同時(shí)虛擬終端可以創(chuàng)建多個(gè),這是依賴ptmx功能,sshd通過與ptmx通訊,ptmx在和相對(duì)應(yīng)的pts通訊從而達(dá)到多個(gè)虛擬終端的效果)。

? ? 例如:在centos系統(tǒng)中的圖像界面中打開的terminal就是一個(gè)pts但是整個(gè)圖形界面是一個(gè)tty,centos切換到命令行界面后 輸入tty命令時(shí)輸出就是tty1或ttyn了,這時(shí)候的命令行界面與圖形界面的運(yùn)行級(jí)別是一樣的,通過命令行創(chuàng)建的所有進(jìn)程都是屬于tty1終端的。

? ? 注意: tty就是ttyS的虛擬版本,只是不需要通過外部線路進(jìn)行連接了。遠(yuǎn)程連接服務(wù)器需要sshd服務(wù),sshd和tty沒有聯(lián)系,遠(yuǎn)程連接是因?yàn)楸镜赜薪K端模擬器,本機(jī)連接就需要內(nèi)核直接模擬一個(gè)模擬器了,所有遠(yuǎn)程是pts,本機(jī)是tty 。

?從上面的流程中可以看出來對(duì)用戶空間的程序來說它們沒有區(qū)別,都是一樣的;從內(nèi)核角度來看pts的另一端連接的是ptmx,而tty的另一端連接的是內(nèi)核的終端模擬器,ptmx和終端模擬器都只是負(fù)責(zé)維護(hù)會(huì)話和轉(zhuǎn)發(fā)數(shù)據(jù)包;再看看ptmx和內(nèi)核終端模擬器的另一端,ptmx的另一端連接的是用戶空間的應(yīng)用程序,如sshd、tmux等,而內(nèi)核終端模擬器的另一端連接的是具體的硬件,如鍵盤和顯示器。

SSH遠(yuǎn)程訪問---重點(diǎn)

這里的Terminal可能是任何地方的程序,比如windows上的putty,所以不討論客戶端的Terminal程序是怎么和鍵盤、顯示器交互的。由于Terminal要和ssh服務(wù)器打交道,所以肯定要實(shí)現(xiàn)ssh的客戶端功能。這里將建立連接和收發(fā)數(shù)據(jù)分兩條線路解釋,為了描述簡(jiǎn)潔,這里以sshd代替ssh服務(wù)器程序:

建立連接:

1.Terminal請(qǐng)求和sshd建立連接。

2.如果驗(yàn)證通過,sshd將創(chuàng)建一個(gè)新的session。

3.調(diào)用API(posix_openpt())請(qǐng)求ptmx創(chuàng)建一個(gè)pts,創(chuàng)建成功后,sshd將得到和ptmx關(guān)聯(lián)的fd,并將該fd和session關(guān)聯(lián)起來。

4.同時(shí)sshd創(chuàng)建shell進(jìn)程,將新創(chuàng)建的pts和shell綁定。

收發(fā)消息:

1.Terminal收到鍵盤的輸入,Terminal通過ssh協(xié)議將數(shù)據(jù)發(fā)往sshd。

2.sshd收到客戶端的數(shù)據(jù)后,根據(jù)它自己管理的session,找到該客戶端對(duì)應(yīng)的關(guān)聯(lián)到ptmx上的fd。

3.往找到的fd上寫入客戶端發(fā)過來的數(shù)據(jù)。

4.ptmx收到數(shù)據(jù)后,根據(jù)fd找到對(duì)應(yīng)的pts(該對(duì)應(yīng)關(guān)系由ptmx自動(dòng)維護(hù)),將數(shù)據(jù)包轉(zhuǎn)發(fā)給對(duì)應(yīng)的pts。

5.pts收到數(shù)據(jù)包后,檢查綁定到自己上面的當(dāng)前前端進(jìn)程組,將數(shù)據(jù)包發(fā)給該進(jìn)程組的leader。

6.由于pts上只有shell,所以shell的read函數(shù)就收到了該數(shù)據(jù)包。

7.shell對(duì)收到的數(shù)據(jù)包進(jìn)行處理,然后輸出處理結(jié)果(也可能沒有輸出)。

8.shell通過write函數(shù)將結(jié)果寫入pts。

9.pts將結(jié)果轉(zhuǎn)發(fā)給ptmx。

10.ptmx根據(jù)pts找到對(duì)應(yīng)的fd,往該fd寫入結(jié)果。

11.sshd收到該fd的結(jié)果后,找到對(duì)應(yīng)的session,然后將結(jié)果發(fā)給對(duì)應(yīng)的客戶端。

SSH + Screen/Tmux

? 常用Linux的同學(xué)應(yīng)該對(duì)screen和tmux不陌生,通過它們啟動(dòng)的進(jìn)程,就算網(wǎng)絡(luò)斷開了,也不會(huì)受到影響繼續(xù)執(zhí)行,下次連上去時(shí)還能看到進(jìn)程的所有輸出,還能繼續(xù)接著干活。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這種情況要稍微復(fù)雜一點(diǎn),不過原理都是一樣的,前半部分和普通ssh的方式是一樣的,只是pts/0關(guān)聯(lián)的前端進(jìn)程不是shell了,而是變成了tmux客戶端,所以ssh客戶端發(fā)過來的數(shù)據(jù)包都會(huì)被tmux客戶端收到,然后由tmux客戶端轉(zhuǎn)發(fā)給tmux服務(wù)器,而tmux服務(wù)器干的活和ssh的類似,也是維護(hù)一堆的session,為每個(gè)session創(chuàng)建一個(gè)pts,然后將tmux客戶端發(fā)過來的數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的pts。由于tmux服務(wù)器只和tmux客戶端打交道,和sshd沒有關(guān)系,當(dāng)終端和sshd的連接斷開時(shí),雖然pts/0會(huì)被關(guān)閉,和它相關(guān)的shell和tmux客戶端也將被kill掉,但不會(huì)影響tmux服務(wù)器,當(dāng)下次再用tmux客戶端連上tmux服務(wù)器時(shí),看到的還是上次的內(nèi)容。

分享文章:包含linux命令開啟pts的詞條
當(dāng)前鏈接:http://chinadenli.net/article8/hcjoip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)網(wǎng)站維護(hù)商城網(wǎng)站微信公眾號(hào)網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)