一天乙個shell命令 好管家 程序 ps

2021-09-21 12:34:54 字數 4454 閱讀 3564

小知識(以ps為例):

檢視命令路徑  which ps 

命令幫助 ps --help

命令完全手冊: man ps

說明

ps全稱是:process status (程序狀態),他就是提供程序資訊的。

附知識說明

我們經常見到shell命令有三種型別的引數,最初我還琢磨 單劃線和雙劃線有什麼特殊的含義,原來是乙個版本演變留下的問題。

linux系統中常見的3種命令列引數(以ps為例):

unix型別的引數,前面有一短劃線如:ps -e

bsd型別的引數,前面沒有短劃線  如:ps  a

gnu長引數,前面有雙劃線 如:ps --deselect

所以,ps –a 和 ps  a查詢結果會不同

常見例項

$ps 

如圖:解釋:預設情況,ps命令只顯示屬於當前使用者並正在當前終端中執行的程序。預設ps的話,只執行了bash 和 ps

$ps –ef 

如圖:解釋:

uid 擁有程序的使用者

pid 程序的id

ppid 父程序pid

c 程序存續期的處理利用率

stime 程序啟動時的系統時間

tty 程序所屬的終端

time  執行程序累計cpu時間

cmd 啟動程序的名稱

幫助文件

這回我用的是redhat的--help, 得到ps的help被分為五類:

****** selection  簡易選項

********* ****** selection ********* 

-a all processes    所有執行緒              

-n negate selection   忽略選擇            

-a all w/ tty except session leaders 顯示乙個終端的所有程序,除了會話引線 

-d all except session leaders     顯示所有程序,但省略所有的會話引線(utility)  

-e all processes               

t  all processes on this terminal   

a  all w/ tty, including other users 

g  obsolete -- do not use          

r  only running processes        

x  processes w/o controlling ttys

selection by list  列表選項

********* selection by list ********* 

-c by command name 

-g by real group id (supports names) 

-u by real user id (supports names) 

-g by session or by effective group name 

-p by process id 

-s processes in the sessions given 

-t by tty 

-u by effective user id (supports names) 

u  processes for specified users 

t  by tty

output format  輸出格式化

*********** output format **********  

-o,o user-defined   可以輸入自己的引數

-f full           

-j,j job control  

s  signal          

-o,o preloaded

-o  v  virtual memory  

-l,l long         

u  user-oriented   

-f   extra full   

x  registers   

long options  長操作型別

*********** long options *********** 

--group  --user  --pid  --cols  --ppid 

--group  --user  --sid  --rows  --info 

--cumulative  --format  --deselect 

--sort  --tty  --forest  --version 

--heading  --no-heading  --context

misc options 其他選項

********* misc options *********

-v,v  show version      l  list format codes   f  ascii art forest 

-m,m,-l,-t,h  threads   s  children in sum    -y change -l format 

-m,z  security data     c  true command name  -c scheduling class 

-w,w  wide output       n  numeric wchan,uid  -h process hierarchy

例項(來自man ps)

1. 檢視系統每個程序的標準引數(to see every process on the system using standard syntax)

$ps -e     

$ps -ef   

$ps -ef   

$ps –ely 

2. 檢視系統每個程序的bsd(系統名)引數(to see every process on the system using bsd syntax)

$ps ax   

$ps axu 

3. 列印程序樹(to print a process tree)

$ps -ejh   

$ps axjf 

4. 列印執行緒的有關資訊

$ps -elf   

$ps axms 

5. 獲取安全資訊

$ps -eo euser,ruser,suser,fuser,f,comm,label   

$ps axz   

$ps –em 

6. 要檢視每個程序執行在使用者根目錄(真實的和有效的id)格式

$ps -u root -u root u 

7. 檢視使用者自定義的格式(to see every process with a user-defined format)

$ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm   

$ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm   

$ps -eopid,tt,user,fname,tmout,f,wchan 

8. 僅僅列印系統日誌的程序id(print only the process ids of syslogd)

$ps -c syslogd -o 

pid= 

9. 僅僅列印pid=42的name(print only the name of pid 42)

$ps -p 42 -o comm=

10. 實用  以(7)為例,按照自定義格式看cpu資訊

$ps -eo comm,pcpu | head 

附: -0的引數目錄

引數描述

pcpu

cpu佔用率

pid程序id

ppid

父程序id

pmem

記憶體使用率

comm

可執行檔案

cmd簡單命令(****** command)

user

啟動程序的使用者

nice

優先順序(niceness)

time

累計的cpu時間

etime

程序啟動後累計時間

tty當前終端程序

euid

有效使用者id

stat

程序狀態

一天乙個shell命令 好管家 記憶體 free

說明 free 命令顯示系統中剩餘和已用的記憶體資訊 入門例項 free m 解釋 b,k,m,g 顯示的輸出分別是 bytes,kb,mb,or gb free l 幫助檔案 free b k m g l o t s delay c count v 說明 b,k,m,g show output i...

一天乙個shell命令 cut

1.命令簡介 cut根據指定的定界符,切分檔案,並將選中的列輸出到標準輸出。2.用法 cut 選項 檔案 列印輸入行的選中的parts 到標準輸出 3.選項 4.示例 以密碼 etc passwd為例 root xqzt tail n 5 etc passwd nfsnobody x 65534 6...

一天乙個shell命令 文字系列 file

file 官方解釋 determine type of files.判定檔案的型別。小知識 在unix linux系統中,檔案型別並不是由副檔名決定的 windows是的 開篇例子 1.file file.txt 輸出 file.txt ascii english text 注 file.txt是我...