1. 程式人生 > >Linux學習10_linux程序檢視連載之:PS命令及ps -ef | grep java的含義

Linux學習10_linux程序檢視連載之:PS命令及ps -ef | grep java的含義

關於ps -ef | grep java的含義:

[[email protected] hadoop]# ps -ef|grep java
root      99582  96423  0 19:31 pts/1    00:00:00 grep java
[[email protected] hadoop]# 
分別代表著:

使用者名稱 PIDSID 程序的cpu佔用率 程序啟動時間和日期 與程序關聯的終端(tty) 程序使用的總cpu時間 正在執行的命令列命令

命令的含義是:

顯示所有包含java的程序。

平時linux程序檢視還是比較常用的,於是我研究了一下linux ps命令的使用方式,在這裡拿出來和大家分享一下,希望對大家有用。

1. ps簡介前面介紹的兩個命令(who、w命令)都是用於檢視當前系統使用者的情況,下面就來看看程序的情況,這也是本章的主題。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而ps命令就是最基本同時也是非常強大的linux程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序佔用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

2. ps命令及其引數

ps命令最常用的還是用於監控後臺程序的工作情況,因為後臺程序是不和螢幕鍵盤這些標準輸入/輸出裝置進行通訊的,所以如果需要檢測其情況,便可以使用ps命令了。

該命令語法格式如下:ps [選項]

下面對命令選項進行說明:

◆-e 顯示所有程序。

◆-f 全格式。

◆-h 不顯示標題。

◆-l 長格式。

◆-w 寬輸出。

◆a 顯示終端上的所有程序,包括其他使用者的程序。

◆r 只顯示正在執行的程序。

◆x 顯示沒有控制終端的程序。

O[+|-] k1 [,[+|-] k2 [,…]] 根據SHORT KEYS、k1、k2中快捷鍵指定的多級排序順序顯示程序列表。對於ps的不同格式都存在著預設的順序指定。這些預設順序可以被使用者的指定所覆蓋。其中 “+”字元是可選的,“-”字元是倒轉指定鍵的方向。

pids 只列出指定程序的情況。各程序ID之間使用逗號分隔。該程序列表必須在命令列引數的最後一個選項後面緊接著給出,中間不能插入空格。比如:ps -f1,4,5。

以下介紹長命令列選項,這些選項都使用“--”開頭:

◆--sort X[+|-] key [,[+|-] key [,…]] 從SORT KEYS段中選一個多字母鍵。“+”字元是可選的,因為預設的方向就是按數字升序或者詞典淥承頡1熱紓?ps -jax -sort=uid,-ppid,+pid。

◆--help 顯示幫助資訊。

◆--version 顯示該命令的版本資訊。

在前面的選項說明中提到了排序鍵,接下來對排序鍵作進一步說明。需要注意的是排序中使用的值是ps使用的內部值,並非僅用於某些輸出格式的偽值。

排序鍵列表

短格式

長格式

說 明

◆c-cmd可執行的簡單名稱

◆C-cmdline完整命令列

◆f-flags長模式標誌

◆g-pgrp程序的組ID

◆G-tpgid控制tty程序組ID

◆j-cutime累計使用者時間

◆J-cstime累計系統時間

◆k-utime使用者時間

◆K-stime系統時間

◆m-min_flt次要頁錯誤的數量

◆M-maj_flt主要頁錯誤的數量

◆n-cmin_flt累計次要頁錯誤

◆N-cmaj_flt累計主要頁錯誤

◆o-session對話ID

◆p-pid程序ID

◆P-ppid父程序ID

◆r-rss駐留大小

◆R-resident駐留頁

◆s-size記憶體大小(千位元組)

◆S-share共享頁的數量

◆t-ttytty次要裝置號

◆T-start_time程序啟動的時間

◆U-uid-UID

◆u-user使用者名稱

◆v-vsize總的虛擬記憶體數量(位元組)

◆y-priority核心排程優先順序

3. 常用ps命令引數

前面兩節介紹的引數可能讓讀者覺得有些可怕,實際上這是一個非常容易使用的命令,一般的使用者只需掌握一些最常用的命令引數就可以了。 最常用的三個引數是u、a、x,下面將通過例子來說明其具體用法。

以root身份登入系統,檢視當前程序狀況

$ ps

PID TTY TIME COMMAND

5800 ttyp0 00:00:00 bash

5835 ttyp0 00:00:00 ps

可以看到,顯示的專案共分為四項,依次為PID(程序ID)、TTY(終端名稱)、TIME(程序執行時間)、COMMAND(該程序的命令列輸入)。

使用u選項來檢視程序所有者及其他一些詳細資訊,如下所示:

$ ps u

USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND

test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash

test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u

在bash程序前面有條橫線,意味著該程序便是使用者的登入shell,所以對於一個登入使用者來說帶短橫線的程序只有一個。還可以看到%CPU、%MEM兩個選項,前者指該程序佔用的CPU時間和總時間的百分比;後者指該程序佔用的記憶體和總記憶體的百分比。

在這種情況下看到了所有控制終端的程序;但是對於其他那些沒有控制終端的程序還是沒有觀察到,所以這時就需要使用x選項。使用x選項可以觀察到所有的程序情況。

下面是使用x選項的例子:

$ ps x

PID TTY STAT TIME COMMAND

5800 ttyp0 S 0:00 -bash

5813 ttyp1 S 0:00 -bash

5921 ttyp0 S 0:00 man ps

5922 ttyp0 S 0:00 sh -c /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz | /

5923 ttyp0 S 0:00 /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz

5924 ttyp0 S 0:00 /usr/bin/less -is

5941 ttyp1 R 0:00 ps x

可以發現突然一下子就多出了那麼多的程序。這些多出來的程序就是沒有控制終端的程序。

前面看到的所有程序都是test使用者自己的。其實還有許多其他使用者在使用著系統,自然也就對應著其他的很多程序。如果想對這些程序有所瞭解,可以使用a選項來檢視當前系統所有使用者的所有程序。經常使用的是aux組合選項,這可以顯示最詳細的程序情況。

$ ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.0 1136 64 ? S Nov25 0:02 init [3]

root 2 0.0 0.0 0 0 ? SW Nov25 0:00 [kflushd]

root 3 0.0 0.0 0 0 ? SW Nov25 0:03 [kupdate]

root 4 0.0 0.0 0 0 ? SW Nov25 0:00 [kpiod]

root 5 0.0 0.0 0 0 ? SW Nov25 0:00 [kswapd]

root 163 0.0 0.1 1628 332 ? S Nov25 0:02 sshd

root 173 0.0 0.0 1324 200 ? S Nov25 0:00 syslogd

root 181 0.0 0.0 1420 0 ? SW Nov25 0:00 [klogd]

daemon 191 0.0 0.1 1160 312 ? S Nov25 0:00 /usr/sbin/atd

root 201 0.0 0.1 1348 492 ? S Nov25 0:00 crond

root 212 0.0 0.0 1292 68 ? S Nov25 0:00 inetd

……

在顯示的最前面是其他使用者的程序情況,可以看到有root、daemon等使用者以及他們所啟動的程序。 在上面的例子中,介紹了ps命令最常見的一些選項和選項組合,使用者可以根據自己的需要選用。

以上給大家講解了linux程序檢視中的ps命令的使用,接下來將會講解檢視系統使用者情況的命令who。

原文來自:http://os.51cto.com/art/200910/158897.htm


相關推薦

Linux學習10_linux程序檢視連載PS命令ps -ef | grep java含義

關於ps -ef | grep java的含義: [[email protected] hadoop]# ps -ef|grep java root 99582 96423 0 19:31 pts/1 00:00:00 grep java [[

學習路(一)淺談基礎命令linux工作原理

linux命令 看了視頻,它系統的講解了linux從硬件到操作系統的工作過程,以及常用的基礎命令的詳細參數及用法。 我也在這裏整理之後加強記憶一次基本概念,及linux文件樹目錄的基本知識結構。 硬件——>操作系統OS——>l

Linux 學習筆記—程序通訊 訊號

2.4訊號 2.4.1 訊號的概念和機制 訊號是UNIX/Linux系統響應某些條件而產生的一個事件,接收到該訊號的程序會相應地採取一些行動。通常訊號是由一個錯誤產生的。但它們還可以作為程序間通訊或修改行為的一種方式,明確地由一個程序傳送給另一個程序。一個訊

Linux 學習筆記—程序通訊 訊息佇列、訊號量、共享記憶體的概念區別聯絡

2.5 訊息佇列(Message queues) 訊息佇列是核心地址空間中的內部連結串列,通過linux核心在各個程序直接傳遞內容,訊息順序地傳送到訊息佇列中,並以幾種不同的方式從佇列中獲得,每個訊息佇列可以用IPC識別符號唯一地進行識別。核心中的訊息佇列是通過

linux學習筆記--程序與進程管理

ref monitor vim 子進程 free task 排序 image ctrl 、工作管理 1、前臺程序放後臺程序 命令後 加 & 2、任務執行時將前臺任務任務放到後臺中並【暫停】 ctr + z 3、jobs 觀察後臺工作狀態 及多少任務

Linux學習_程序管理

基本介紹 1.在LINUX中,每個執行的程式(程式碼)都稱為一個程序。每一個程序都分配一個ID號。 2. 每一個程序,都會對應一個父程序,而這個父程序可以複製多個子程序。例如www伺服器。 3.每個程序都可能以兩種方式存在的。前臺與後臺,所謂前臺程序就是使用者

Linux學習31-運維自動化自制啟動程式

系統安裝過程 安裝程式 1. CentOS系統安裝 名稱解釋 anaconda: CentOS圖形介面安裝嚮導程式 gui:圖形視窗 tui: 基於圖形庫curses的文字視窗 1.1 安裝程式啟動過程 啟動介面選擇 預設啟動GUI介面 若是顯式指

Linux 學習筆記—執行緒同步互斥量與條件變數

執行緒同步(同步的意思是協同步調) 執行緒同步機制包括互斥,讀寫鎖以及條件變數等 3.2.1 互斥量(互斥鎖) **互斥量本質是一把鎖,在訪問公共資源前對互斥量設定(加鎖),確保同一時間只有一個執行緒訪問資料,在訪問完成後再釋放(解鎖)互斥量。**在互斥量加鎖之

Linux 學習筆記—執行緒同步讀寫鎖、自旋鎖、屏障

3.2.1 讀寫鎖 讀寫鎖和互斥體類似,不過讀寫鎖有更高的並行性,互斥體要麼是鎖住狀態,要麼是不加鎖狀態,而且一次只有一個執行緒可以對其加鎖。而讀寫鎖可以有3個狀態,讀模式下鎖住狀態,寫模式下鎖住狀態,不加鎖狀態。一次只有一個執行緒可以佔有寫模式的讀寫鎖,但是多

Linux學習筆記——學會檢視幫助文件

man 命令用於檢視幫助文件,其格式為:man  [命令] 示例如下: [[email protected] ~]# man ls LS(1)

Linux伺服器的程序檢視命令詳解

Linux 伺服器正常啟動後,提供服務時會呼叫程式,佔用程序。這時候我們如何檢視系統中有哪些程序在被呼叫呢?我們可以通過以下命令來檢視。 一、ps 命令 ps 命令是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和它所執行的狀態、程序是否結束、程序有沒有僵死、哪些程序

程序間通訊共享記憶體

  8.5.1  共享記憶體概述   可以說,共享記憶體是一種最為高效的程序間通訊方式。因為程序可以直接讀寫記憶體,不需要任何資料的複製。為了在多個程序間交換資訊,核心專門留出了一塊記憶體區。這段記憶體區可以由需要訪問的程序將其對映到自己的私有地址空間。因此,程序就可以直接讀寫這一記憶體區而不需要進行資料的

Linux學習記錄--程序控制相關係統呼叫

系統呼叫:程序控制 fork系統呼叫 函式作用:建立一個子程序 形式:pid_tfork(void);              pid_t vfork(void); 說明:    使用vfork創子程序時,不會程序父程序的上下文 返回值:[返回值=-1]子程序建立失敗

linux中的程序檢視與管理

程序就是cpu還沒有完成的工作,掌握程序的檢視與管理方法,有助於我們更好的辦公學習,在linux系統中用ps命令對程序進行檢視,下面介紹一些ps相關命令: 1.ps a 指檢視當前環境中所有的程序:

Linux 學習一 搭建環境系列二 安裝 python3.6、setuptools、pip

如果本機安裝了python2,儘量不要管他,使用python3執行python指令碼就好,因為可能有程式依賴目前的python2環境,比如yum!!!!!不要動現有的python2環境!一、安裝python3.61. 安裝依賴環境  # yum -y install zlib-devel bzip2-deve

Linux 學習一 搭建環境系列linux搭建django 以及搭建django時遇到的各種問題

防火牆的方法為:一、service方式檢視防火牆狀態:[[email protected] ~]# service iptables statusiptables:未執行防火牆。開啟防火牆:[[email protected] ~]# service iptables start關閉防火牆

Linux學習——守護程序(daemon)

建立守護程序的步驟: 1)父程序中執行fork後,執行exit退出; 2)在子程序中呼叫setsid;(脫離控制檯) 3)讓根目錄“/”成為子程序的工作目錄; 4)把子程序的umask變為0; 5)關閉任何不需要的檔案描述符。 其中,setsid函式建立一個新會話和一個新程

Linux下的程序間通訊管道

在Linux下,每個程序各自有不同的使用者地址空間,任何一個程序的全域性變數在另一個程序中都看不到所以進 程之間要交換資料必須通過核心,在核心中開闢一塊緩衝區,程序1把資料從使用者空間拷到核心緩衝區,程序2再從核心緩衝區把資料讀走,核心提供的這種機制稱為程序間通

linux學習34-運維自動化ANSIBLE

運維自動化之ANSIBLE 1. 應用概述 1.1 一些術語 雲端計算的三個分層 基礎設施在最下端,平臺在中間,軟體在頂端,分別是分別是Infrastructure-as-a-Service(IaaS),Platform-as-a-Service(PaaS

Linux學習筆記_系統分割槽資訊,磁碟空間inode佔用檢視(df,fdisk)

環境:centos7 需求:檢視系統分割槽表資訊,磁碟空間及inode佔用 方法: df 命令 fdisk命令 [[email protected]_PC ~]# which df /u