&背景工作做符
ctrl+ z 暫停
ctrl + c 停止
jobs [-l(list) , r(running jobs) ,-s(stop jobs)] 觀察背景工作的狀態
fg %jobnumber 將背景工作拿到前景執行
bg %jobnumber 讓工作在背景的狀態變成運作中(被ctrl暫停在背景的工作)
=========================================================
kill -l ===>列出q能夠使用的signal有哪些
常用的kill的signal
-1 重新讀取一次參數的排位置文件(類似reload)
-2 與ctrl的的i一樣
-9 立即強制停止一個工作( .filename.swap 文件會被遺在系統中)
-15 正常停止一個工作
kill signal PID或者[%jobnumber] (給該進程發送一天命令)
====================================
上面的求導背景中去的工作都是你登陸是派生出來的子孫進程,在退出登陸後勁不能繼續執行了
脫機管理
如果工作需要很長時間,你不能直到它執行完才下機,可以用at來處理, at是將工作放置到系統背景下,而與終端機無關
====================
程序管理
找出最耗系統的程序
找出內存中又問題的程序
設置程序的優先級
程序的觀察
ps 將某個時間點得進程運作情況獲取下來
ps 不加-a 或者-A參數僅僅列出與自己相關的process信息
aux 觀察系統中所有進程的數據
-A 所有process都顯示出來 與-e一樣
-a 不與terminal有關的所有程序
-u 有效使用者(effective user )的相關process
-l 列出叫詳細的信息,包括pid
===============================================
[root@Sweety /]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 2685 2683 0 80 0 - 27117 wait pts/1 00:00:00 bash
4 S 0 3232 1 0 80 0 - 27050 wait pts/1 00:00:00 mysqld_safe
4 R 0 3647 2685 0 80 0 - 27033 - pts/1 00:00:00 ps
F : 代表這個程序的旗標(flag) ,說明這個程序的總結權限
4代表root
S: 代表程序的狀態
R(Running)
S(sleep)
T(stop)
Z(Zombie)
C: 代表Cup的使用率
ADDR(address) : 是kernel function 指出程序在內存中的那個部分如果是running的程序,一般會顯示 -
SZ (size) : 程序用掉的內存
WCHAN : 表示程序是否在運行中 - 表示正在運行
TIME+: 使用的cpu累加時間
CMD : 觸發進程的命令
RSS : 進程占用固定內存的大小
=================================================
top: 動態觀察程序的變化
-d 數字 動態更新的時間差
-b : 以批次的方式執行top(通常搭配重定向和-n使用)
-n : 與-b一起使用, 意義是需要執行幾次top 輸出的結果
-p 進程的pid : 觀察指定pid的進程
top在執行過程中可以使用按鍵
? : 顯示可以在top中輸入的按鍵指令
P : 以cpu占用率排序(默認)
M: 以Memory的使用排序
N: 以pid來排序
T : 以該process占用的cpu積累時間排序
r : 給PID重新定一個nice值 (按下r 然後輸入要修改的pid號碼)
1 : 切換查看不同cpu的負載率
q : 離開
=====================================================
pstree
-u : 同時列出每個process的PID
-p : 同時列出每個process的所屬賬號
======================================================
priority 和nice
PRI值是有核心動態調整的用戶無法直接調整PRI的值;如果用戶想調整PRI 的值,就得透過nice的值,一般來說,PRI和NI 的相關性如下
PRI(new) = PRI(old) + nice(可以是-20~19之間)
不過,如果原本餓PRI得值是50 ,並不是我們給一個nice=5 就會讓PRI變成55 ,因為PRI是系統動態決定的,nice的值可以影響PRI,但最終的PRI值仍是要經過系統分析後才決定的;(nice的值有正負 鄭表示降低優先級,符表示增加優先級)
一般用戶只可以調整自己的process的nice值,且只能調高nice的值
調整process的優先級就是調整process的nice值
如何調整某個程序的nice值
1一開始執行程序就給予一個特定的nice值: 用nice指令
nice -n 數值 命令(啟動程序的命令)
-n 後面接一個數值 (-20~ 19)
2已經存在的進程的nice重新調整(或者top) : renice
renice 數值(需要調整到餓nice值) PID(調整的process的PID)
==========================================================
我們可以使用top觀察到很多的系統資源和狀態,還有其他的一些工具也可以查看系統資源
free [-m 以M為單位顯示]
===========================================================
uname : 查看系統的核心相關信息
-a : all 所有
-s : 系統核心名(Linux)
-r : 核心版本 ( 2.6.32-358.el6.x86_64 )
-p : cpu類型 ( x86_64 )
-i : 硬件平台 (x86_64)
==========================================================
uptime : 觀察系統啟動時間與負載工作 (其實酒紅色顯示出top命令的第一行)
==========================================================
netstat : 追蹤網絡或插槽文件
-a : 所有
-t : 列出tcp網絡封包的數據
-u : 列出UDP蒸包的數據
-l : 列出目前正在監聽的服務
-p 顯示PID
==========================================================
------第一部分----相關字段意義----------
proto : 網絡封包協議 ,主要為tcp何udp
Recv-Q : 由非遠程主機鏈接到此socket的復制的中bytes數
Send-Q : 非遠程主機傳送過來的acknowledged 總bytes數
Local Address : 本地端的IP:port情況
Foreign Adresses :遠程主機的IP:Port情況
state : 聯機狀態 ,主要有建立(ESTABLISHED) 和監聽(LISTEN)
/proc/* 代表的意義
進程都是在內存中的,而內存當中的數據有都是寫到/proc/*這個目錄下的,所以我們可以直接觀察/proc這個目錄當中的檔案
==========================================================
fuser: 找出正在使用該檔案的程序
有時候我們想知道一個程序在這次啟動過程中到底開啟了多少檔案,可以利用fuser來擦看
example : fuser -uvm /proc ==>查看偶遇多少程序在進行/proc文件系統的存取
===========================================================
lsof : 列出被程序開啟的檔案文件名
===========================================================
pidof : 列出某個正在執行的程序的pid
pidof [-sx] program_name
-s : 僅列出一個PID而不是列出所有
-x : 同時列出program name 可能的PPID 那個程序的PID