linux linux程序指令

2022-10-09 02:51:09 字數 3388 閱讀 5116

1. linux有哪些程序

linux下的主要程序狀態有:

2.1 r(task_running) -- 可執行狀態

通過將程序的task_struct結構放到cpu的可執行佇列中,使程序變成r態。只有處在該狀態的程序才有可能被程序排程器選中在cpu上執行

2.2 s(task_interruptible)  -- 可中斷的睡眠狀態

當程序需要等待某件事的發生,比如socket連線等待對方輸入時,程序的task_struct結構被放入相應事件的等待佇列中。當事件被觸發時,相應事件的等待佇列中的某些程序就會被喚醒

2.3 d(task_uninterruptible) -- 不可中斷的睡眠狀態

程序此時也是處於睡眠狀態,但是不可以被kill掉。為什麼要設定一種不可中斷的睡眠狀態呢?原來是為了保護核心狀態下的某些流程不被打斷

2.4 t(task_stopped or task_traced) -- 暫停狀態或跟蹤狀態

task_stopped 和task_traced都表示程序被暫停下來,但不同的是task_stopped狀態下,程序可以被sigcont訊號喚醒,而task_traced下程序不能被該訊號喚醒。task_traced狀態通常發生在除錯時,程序在斷電處停下來,此時即被跟蹤,只有當完成除錯時,才能返回task_running狀態

2.5 z(task_dead) -- 退出狀態,也稱殭屍狀態

在這個退出過程中,程序占有的所有資源將被**,除了task_struct結構(以及少數資源)以外。於是程序就只剩下task_struct這麼個空殼,故稱為殭屍。如果父程序不退出,那麼殭屍狀態的子程序就一直存在

2. linux程序管理指令

2.1 ps

ps能列出系統中執行的程序,包括程序號、命令、cpu使用量、記憶體使用量等。下述選項可以得到更多有用的訊息。

#列出所有執行中的程序

ps -a

# 列出***程序資訊

ps -ef | grep

***# 顯示程序資訊,包括無終端(x)和針對使用者(u)的程序:如user, pid, %cpu, %mem

ps -aux

2.2 pstreelinux中,每個程序都是由其父程序建立的。此命令以視覺化的方式顯示程序,通過程序的樹狀圖來展示程序之間的關係

如果指定了pid,那麼樹的根是該pid,不指定pid=1

top可以監視系統中不同的程序所使用的資源。它提供實時的系統狀態資訊,顯示程序的資料報括了:

htop和top很類似,但是htop是互動式的文字模式的程序檢視器,它通過文字圖形化地顯示每乙個程序的cpu和記憶體使用量、swap使用量。

使用上下游標選擇程序,f7和f8改變優先順序,f9殺死程序。

nice可以設定和改變程序的優先順序

預設情況下,程序以0優先順序啟動,程序優先順序可以通過top顯示的ni列檢視

程序優先順序從-20到19,值越低,優先順序越高

nice

《優先順序》 《程序名》

2.6 renicerenice命令類似於nice命令

使用renice可以改變正在執行的程序優先順序

注意,使用者只能改變屬於他們自己的程序的優先順序

# 改變3806程序的優先順序為4

renice -n 4 -p 3806

# 使用者為mint的所有程序優先順序變為-3

renice -3 -u mint

2.7 kill

# 殺死某個程序

kill

# 強制殺死某個程序

kill -9

# 殺死擁有相同名字的程序

killall -9

# 使用程序名殺死程序

pkill

《程序名》

2.8 ulimit該命令用於控制系統資源在shell和程序上的分配量。

可以管理重度使用和存在效能問題的系統,限制資源大小可以確保重要程序持續執行,該程序不會占用過多資源

# 顯示當前使用者關聯的資源限制

ulimit -a

# -f: 最大檔案尺寸大小

# -v: 最大虛擬記憶體大小(kb)

# -n: 增加最大檔案描述符的數量

# -h:改變和報告硬限制

# -s:改變和報告軟限制

2.9 ww提供當前登入使用者及其正在執行的程序資訊。

顯示的資訊頭包含當前時間、系統執行時長、登入使用者數、過去的1,5,15分鐘內的負載均衡數

2.10 pgrep

pgrep的意思是"程序號全域性正則匹配輸出"

該命令掃瞄當前執行程序,然後按照命令匹配條件列出匹配結果到標準輸出。對於通過名字檢索程序號是很有用

# 顯示使用者為『mint』和程序名為『sh

』的程序id

pgrep -u mint sh

2.11 fg, bg有時,命令需要很長的時間才能執行完成。對於這種情況,我們使用『bg』命令可以將任務放在後台執行,而用『fg』可以調到前台來使用

# 使用&開啟乙個後台程序

find . -name *iso > /tmp/res.txt 檢視所有後台程序

jobs

# 將後台程式調到前台執行

fg

2.12 ipcsipcs命令報告程序間通訊設施狀態。(共享記憶體,訊號量和訊息佇列)

# 列出最近訪問了共享記憶體段的程序的建立者的id和程序id

ipcs -p -m

參考:

Linux Linux下基本指令

1 ls指令 功能 ls,對於目錄,用來列出當前目錄下的所有子目錄與檔案 對於檔案,用來列出檔名以及其他資訊。語法 ls 選項 檔案或目錄 選項 2 pwd命令 功能 顯示使用者當前所在的目錄。3 cd指令 功能 改變工作目錄。將當前工作目錄改變到指定的目錄下。舉例 4 touch指令 功能 tou...

linux linux程序記憶體分析

在產品的開發中,通過對當前系統消耗記憶體總量的統計,可以對產品所需記憶體總量進行精確的評估,從而選擇合適的記憶體晶元與大小,降低產品的成本。在遇到記憶體洩露類問題時,經常會對此束手無策,本文通過對proc下程序相關的檔案進行分析,精確評估系統消耗記憶體的大小,還可以對記憶體洩露類問題的解決提供一種定...

Linux linux程序間通訊

程序間通訊是指在不同程序之間傳播或交換資訊 程序間通訊可分為以下幾類 管道 匿名管道和命名管道 system ipc 訊息佇列 用於資料傳輸 共享記憶體 用於資料共享 訊號量 用於事件通知 posix ipc 訊息佇列 共享記憶體 互斥量條件變數 訊號量讀寫鎖 主要介紹常用的如管道 訊息佇列 訊號量...