Linux程序知識及常用命令

2021-10-12 16:25:09 字數 2908 閱讀 5884

1  linux主要有兩種程序:

在 linux 中有兩種常規方式建立程序

2 後台執行程序命令:

(1)&命令

功能:加在乙個命令的最後,可以把這個命令放在後台執行如

python3 test.py &
只要在命令的尾部加上符號&,啟動的程序就會成為"後台任務"。如果要讓正在執行的"前台任務"變為"後台任務",可以先按ctrl + z,然後執行bg命令(讓最近乙個暫停的"後台任務"繼續執行)。

"後台任務"有兩個特點。

"後台任務"與"前台任務"的本質區別只有乙個:是否繼承標準輸入。

(2)nohup命令

功能:不結束通話的執行命令

nohup python3 test.py
可以結合&使用:

nohup python3 test.py &
nohup命令對server.js程序做了三件事。

也就是說,nohup命令實際上將子程序與它所在的 session 分離了;

注意,nohup命令不會自動把程序變為」後台任務」,所以必須加上&符號。

用python時有時候會出現out檔案為空的情況

$ nohup python3 test.py &

會自動建立nohup.out檔案,但test.py中print的內容卻沒有被寫入nohup.out中(cat 看一下是空的)

$ cat nohup.out

$1234

原因: 這是因為python的輸出有緩衝,print的內容是先輸出到緩衝區,導致nohup.out並不能夠馬上看到輸出 解決: python有乙個 -u 引數可以禁用緩衝區

$ nohup python3 -u test.py &

這時候cat可以看到nohup.out中已經有內容了

$ cat nohup.out12

3123456

另外幾個常用命令:

只輸出錯誤資訊到日誌檔案

nohup python test.py >/dev/null 2>log &
什麼資訊也不要

nohup python test.py >/dev/null 2>&1 &
1. >/dev/null這條命令的作用是將標準輸出1重定向到/dev/null中。/dev/null代表linux的空裝置檔案,所有往這個檔案裡面寫入的內容都會丟失,俗稱「黑洞」。那麼執行了>/dev/null之後,標準輸出就會不再存在,沒有任何地方能夠找到輸出的內容。

2. 2>&1

這條命令用到了重定向繫結,採用&可以將兩個輸出繫結在一起。這條命令的作用是錯誤輸出將和標準輸出同用乙個檔案描述符,說人話就是錯誤輸出將會和標準輸出輸出到同乙個地方。

linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令,所以>/dev/null 2>&1的作用就是讓標準輸出重定向到/dev/null中(丟棄標準輸出),然後錯誤輸出由於重用了標準輸出的描述符,所以錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了。執行了這條命令之後,該條shell命令將不會輸出任何資訊到控制台,也不會有任何資訊輸出到檔案中。

以下命令在後台執行 root 目錄下的 runoob.sh 指令碼,並重定向輸入到 runoob.log 檔案:

nohup /root/runoob.sh > runoob.log 2>&1 &
2>&1解釋:

將標準錯誤 2 重定向到標準輸出 &1 ,標準輸出 &1 再被重定向輸入到 runoob.log 檔案中。

拓展:檔案描述符

當執行shell命令時,會預設開啟3個檔案,每個檔案有對應的檔案描述符來方便我們使用:

所以我們平時在執行shell命令中,都預設是從鍵盤獲得輸入,並且將結果輸出到控制台上。但是我們可以通過更改檔案描述符預設的指向,從而實現輸入輸出的重定向。比如我們將1指向檔案,那麼標準的輸出就會輸出到檔案中。

輸出重定向

輸出重定向的使用方式很簡單,基本的一些命令如下:

檢視後端程序命令:

ps -aux | grep test

ps -ef | grep test

關閉程序命令:

kill -9 [pid]
檢視磁碟空間:

df -h
檢視記憶體空間:

free -h

Linux常用命令(程序命令)

linux中所有的程序都是相互聯絡的,除了初始化程序 init程序,程序號為1,無父程序 所有的程序都有乙個父程序。新的程序不是被建立的,而是被複製的,或者從以前的程序複製而來。使用者使用at命令在指定時刻執行指定的命令。例 指定凌晨1 00執行命令,在哪天的凌晨1 00執行那?如果是在頭一天22 ...

Linux程序管理常用命令

引數注釋 pid程序標誌號 user 啟動程序使用者 pr優先順序 ninice值,負值表示高優先順序,正值表示低優先順序 virt 程序使用的虛擬記憶體總量,單位為kb res程序使用的,未被換出的物理記憶體大小,單位為kb shr共享記憶體大小,單位為kb s程序狀態。d 不可中斷的睡眠狀態 r...

linux檢視程序常用命令

top 顯示當前系統中耗費資源最多的程序 ps 顯示瞬間的程序狀態 ps ef程序的乙個快照 e a 顯示所有程序,環境變數 f 全格式 a 顯示所有使用者的所有程序 包括其它使用者 u 按使用者名稱和啟動時間的順序來顯示程序 x 顯示無控制終端的程序 kill 殺死乙個程序 kill 9 pid ...