#### hostname
hostname [OPTION] [HOSTNAME]
默認選項:修改主機名為[HOSTNAME]
備注:臨時生效如果想永久生效則需要修改文件/etc/sysconfig/network文件
選項
-I :取出本機上所有的非回環地址
示例
“`
[root@zhangxiao network-scripts]#hostname -I
172.20.110.6 172.10.87.1 172.20.110.229
“`
### ?LINUX 進程及管理
內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能
進程:運行中的程序的一個副本:
? ? ? 進程是有生命周期的
進程的創建:init|systemd 是由內核創建的
其下所有的進程都是它一級級按照父子進程關系進行創建的
對于linux而言,把進程劃分優先級
0-139
? ? ? 1-99 :實時優先級(數字越大優先級越高)
? ? ? 進程處理,一般不人為干預
? ? ? 100-139:靜態優先級 ? ? 數字越小,優先級越高
?nice值:-20,19 ?(其中-20對應于100,19對應于139)
?進程內存
“`
Page Frame :頁筐,用來存儲頁面數據用來存儲page 每個page frame大小是4K
同一主機上兩個進程的通信
1、信號
2、使用共享內存
不同主機上的
1、RPC機制:遠程過程調用
2、SOCKET:套接字
“`
LINUX內核模式:搶占式多任務
? ?進程的類型
“`
守護進程:daemon(在系統引導過程中啟動的進程)
? ? ?前臺進程:用戶通過終端打開的進程
? ? ? ? 我們也可以把從前臺啟動的進程送往后臺,以守護模式運行
“`
進程的狀態
“`
運行態:running
? ?就緒態:ready
? ?睡眠態:
? ? ? ? ?可中斷的睡眠態
? ? ? ? ?不可中斷的睡眠態
? ? 停止態:暫停于內存中,但不會被調度,除非手動調度stoped
? ? 僵死態:zombie
“`
進程的分類:
“`
CPU-bound:一般非交互型的進程多用cpu密集型
? ? IO-bound:交互式的一般用IO密集型
“`
Linux進程查看及管理工具
1、pstree:顯示進程樹
ps :process stat 進程狀態查看
“`
ps :以快照形式把當前進程狀態顯示出來,并且退出
/proc/:LINUX系統中進程的相關信息都保存在這個文件中 目錄中每一個編號映射著一個進程
常用組合:aux:以用戶為中心顯示主機上所有的進程
? ? ? ? ? ? u:以用戶為中心組織狀態信息顯示
? ? ? ? ? ? x:與終端無關的進程
? ? ? ? ? ? a:所有與終端相關關的進程
詳解
PID:進程編號
PPID:父進程編號
TTY:終端號
STAT:狀態
? ? ? ? ?R:running
? ? ? ? ?S:可中斷睡眠
? ? ? ? ?D:不可中斷睡眠
? ? ? ? ?T:stoped
? ? ? ? ?Z: 僵尸態
? ? ? ? ?+ :前臺進程
? ? ? ? ?l :多線進程
? ? ? ? ?N :低優先級進程
? ? ? ? ?< : 高優先級進程
? ? ? ? ?s : 進程領導者
START:啟動時間
TIME:占用CPU時長
CMD:哪個命令調用的此進程(加了中括號的是內核線程)
C:運行在哪塊CPU上
USER:進程屬主
CPU%:占用的CPU時間的百分比
MEM%: 占用MEM時間的百分比
VSZ : 虛擬內存大?。ㄌ摂M內存集)
RSS : 常駐內存集(不能放在交換分區中的)
“`
aux:以用戶為中心顯示主機上所有的進程
? ? ? ? ? ? u:以用戶為中心組織狀態信息顯示
? ? ? ? ? ? x:與終端無關的進程
? ? ? ? ? ? a:所有與終端相關關的進進程
示例
“`
[root@zhangxiao ~]#ps aux |head -5
USER ? ? ? ?PID %CPU %MEM ? ?VSZ ? RSS TTY ? ? ?STAT START ? TIME COMMAND
root ? ? ? ? ?1 ?0.0 ?0.1 ?19352 ?1560 ? ? ? ? ?Ss ? 03:39 ? 0:02 /sbin/init
root ? ? ? ? ?2 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?03:39 ? 0:00 [kthreadd]
root ? ? ? ? ?3 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?03:39 ? 0:00 [migration/0]
root ? ? ? ? ?4 ?0.0 ?0.0 ? ? ?0 ? ? 0 ? ? ? ? ?S ? ?03:39 ? 0:00 [ksoftirqd/0]
[root@zhangxiao ~]#^C
“`
-ef:顯示所有進程的詳細信息
? ? ? ? -e:所有進程
? ? ? ? -f:顯示完整格式的進程信息
示例
“`
[root@zhangxiao ~]#ps -ef |head -5
UID ? ? ? ? PID ? PPID ?C STIME TTY ? ? ? ? ?TIME CMD
root ? ? ? ? ?1 ? ? ?0 ?0 03:39 ? ? ? ? ?00:00:02 /sbin/init
root ? ? ? ? ?2 ? ? ?0 ?0 03:39 ? ? ? ? ?00:00:00 [kthreadd]
root ? ? ? ? ?3 ? ? ?2 ?0 03:39 ? ? ? ? ?00:00:00 [migration/0]
root ? ? ? ? ?4 ? ? ?2 ?0 03:39 ? ? ? ? ?00:00:00 [ksoftirqd/0]
[root@zhangxiao ~]#
“`
-eFH:完整格式以層級格式顯示相關信息
? ? ? ? -F:顯示完整格式的進程信息
? ? ? ? -H:以進程層級格式顯示進程相關信息
示例
“`
[root@zhangxiao ~]#ps -eFH |head -5
UID ? ? ? ? PID ? PPID ?C ? ?SZ ? RSS PSR STIME TTY ? ? ? ? ?TIME CMD
root ? ? ? ? ?2 ? ? ?0 ?0 ? ? 0 ? ? 0 ? 2 03:39 ? ? ? ? ?00:00:00 [kthreadd]
root ? ? ? ? ?3 ? ? ?2 ?0 ? ? 0 ? ? 0 ? 0 03:39 ? ? ? ? ?00:00:00 ? [migration/0]
root ? ? ? ? ?4 ? ? ?2 ?0 ? ? 0 ? ? 0 ? 0 03:39 ? ? ? ? ?00:00:00 ? [ksoftirqd/0]
root ? ? ? ? ?5 ? ? ?2 ?0 ? ? 0 ? ? 0 ? 0 03:39 ? ? ? ? ?00:00:00 ? [stopper/0]
[root@zhangxiao ~]#
“`
o 表示制定顯示哪些字段,o后邊跟想要顯示的字段 ,隔開
? ? 可以用-eo 或者axo
? ? ? ? ? ? ? ? ni:nice值
? ? ? ? ? ? ? ? pri:優先級
? ? ? ? ? ? ? ? psr:哪顆CPU上
? ? ? ? ? ? ? ? rtprio:實時優先級
示例
“`
[root@zhangxiao ~]#ps -eo cmd,pid,user | head -5
CMD ? ? ? ? ? ? ? ? ? ? ? ? ? ?PID USER
/sbin/init ? ? ? ? ? ? ? ? ? ? ? 1 root
[kthreadd] ? ? ? ? ? ? ? ? ? ? ? 2 root
[migration/0] ? ? ? ? ? ? ? ? ? ?3 root
[ksoftirqd/0] ? ? ? ? ? ? ? ? ? ?4 root
[root@zhangxiao ~]#
“`
#### pgrep命令
pgrep [OPTION] ? pattern
“`
-U:實際用戶
? ? -u:有效用戶
? ? -t terminal ? :與terminal相關的
? ? -l :顯示進程名字
? ? -a :完整格式顯示進程名
? ? -P:顯示其以此處進程為父進程的進程列表
“`
pidof 進程名字
? ? ?根據進程名字獲取進程的ID號
### top命令
? ? 實時顯示本機中的終端信息
? ? 默認占用CPU的大小進行排序(從大到小)
切換排序方式
? ? ? ? ? ? M:按照內存大小排序
? ? ? ? ? ? T:累計占用CPU時間排序
? ? ? ? ? ? P:占據的CPU百分比排序(此次刷新時間內)
定義顯示內容
? ? ? ? ? ? l:命令 ? ?顯示或隱藏此行信息
? ? ? ? ? ? 第一行內容:當前系統時間;運行時長;用戶數;平均負載值(過去一分鐘、五分鐘、15分鐘的) 備注:用uptime
? ? ? ? ? ? 命令可以單獨顯示此行
? ? ? ? ? ? t:命令 ?顯示或隱藏第二三行信息
? ? ? ? ? ? 第二行內容:進程數;運行狀態進程數;睡眠狀態的;停止狀態的;僵尸狀態的
? ? ? ? ? ? 第三行內容:cpu信息
? ? ? ? ? ? ? ? ? ? ? ?命令 :1 顯示多顆cpu信息
? ? ? ? ? ? ? ? ? ? ? ?us:用戶空間程序占用的寶粉幣
? ? ? ? ? ? ? ? ? ? ? ?sy:系統空間
? ? ? ? ? ? ? ? ? ? ? ?ni:nice值
? ? ? ? ? ? ? ? ? ? ? ?id:空閑的比例
? ? ? ? ? ? ? ? ? ? ? ?wi:等待IO完成時間
? ? ? ? ? ? ? ? ? ? ? ?hi:CPU處理硬中斷所占的百分比
? ? ? ? ? ? ? ? ? ? ? ?si:處理軟中斷占得
? ? ? ? ? ? ? ? ? ? ? ?st:偷走的時間
? ? ? ? ? ? m命令顯示
? ? ? ? ? ? 第四行內容:物理內存大?。↘B為單位) 總體空間;已用空間;空閑空間
退出top 命令 q 命令
修改刷新時間 s 命令修改
終止制定內容 k 命令
選項
? ? ? ? -d:指明刷新時間間隔后加數字默認是3秒
? ? ? ? -b:以批次模式顯示
? ? ? ? -n:通常和-b配合使用。后面加數字,顯示幾批
htop命令
“`
選項
? ? ? ?-d :制定延遲時間
? ? ? ?-u username:顯示指定用戶的進程
? ? ? ?-s:以指定字段進行排序
s :跟蹤選定進程的系統調用
l :跟蹤選定進程打開的文件列表
a :將選定的進程綁定值cpu核心
“`
vmstat命令:
“`
[root@zhangxiao ~]#vmstat
procs ———–memory———- —swap– —–io—- –system– —–cpu—–
?r ?b ? swpd ? free ? buff ?cache ? si ? so ? ?bi ? ?bo ? in ? cs us sy id wa st
?1 ?0 ? ? ?0 368472 ?59076 223112 ? ?0 ? ?0 ? ? 5 ? ? 1 ? 32 ? 56 ?0 ?0 99 ?0 ?0
[root@zhangxiao ~]#
“`
各個顯示字段的意思
“`
procs:
? ? r:等待運行的進程的個數
? ? b:處于不可中斷睡眠狀態進程個數
memory
? ? swpd:交換內存的使用總量
? ? free:物理內存的空閑總量
? ? buffer:用于buffer的內存總量
? ? catch:用于catch的內存總量
swap ?(從內存角度看)
? ? si:數據進入交換內存的速率(kb/s)
? ? so:數據離開交換內存的速率
io ? ?(從系統角度看)
? ? bi:從塊設備讀入數據到系統的速率(kb/s)
? ? bo:從系統保存至塊設備的速率
system
? ? in :中斷速率
? ? cs :進程切換速率
cpu
? ? us:用戶空間程序占用的寶粉幣
? ? sy:系統空間
? ? id:空閑的比例
? ? wi:等待IO完成時間
? ? st:偷走的時間
“`
pmap :
“`
格式:一般pmap [option] ?pid
? ? 查看pid所代表的進程
? ? -x :顯示詳細格式信息
這個命令可以用cat/proc/pid/maps
查看
“`
glances
“`
常用選項
? ? ? -b :以字節為單位顯示網卡數據速率
? ? ? -d:關閉磁盤IO模塊
? ? ? -f /PATH/TO/SOMEFILE ?:設定輸出文件位置
? ? ? -o:{HTML|CVS}:輸出模式
? ? ? -m:禁用mount模塊
? ? ? -n:禁用網絡模塊
? ? ? -t # :延遲時間間隔
? ? ? -1:每個cpu相關數據單獨顯示
C/S 模式下運行glances 命令
? ? ?服務模式
? ? ? ? ? ? glances -s -B IPADDR
? ? 客戶端模式
? ? ? ? ? ? glances -c ?IPADDR
“`
dstat 命令
“`
? ? -c:查看cup的信息(默認就帶-c)
? ? -C 【0,1,2,total】:查看指定CPU的信息
? ? -d:顯示磁盤的讀寫速率
? ? -D DISK[total]:顯示DISK的讀寫數據
? ? -g:顯示page相關統計數據
? ? -I:顯示終端的統計數據
? ? -l:顯示平均負載
? ? -m:顯示內存相關數據
? ? -n:顯示網絡相關統計數據
? ? -p:顯示進程統計數據
? ? -r:顯示IO相關的統計數據
? ? -s:顯示交換空間的統計數據
? ? –top-mem:占內存最大的
? ? –top-io:占IO最大的
? ? –top-cpu:占cpu最大的
? “`
kill命令
“`
向進程發送控制信號,實現對進程的管理
? ? ? -l :查看所有的信號
常用信號
? ? ? ? 1、重讀配置文件(不關閉進程) ? SINGHUP
? ? ? ? 2、終止信號(相當于ctrl+c) ? ? SINGINT
? ? ? ? 9、殺死正在運行的進程 ? ? ? ? ? SINGKILL
? ? ? ? 15、終止正在運行的進程(讓程序可以處理正在運行的數據) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SINGTERM
? ? ? ? 18、使停止的狀態的程序繼續運行 ?SINGCONT
? ? ? ? 19、讓其處于停止狀態 ? ? ? ? ? ?SINGSTOP
“`
?指定信號的方法
“`
(1)使用信號的數字標識
? ? ? ? ? ? (2)信號的完整名
? ? ? ? ? ? (3)信號的簡寫名
“`
? ? ? ? 向進程發送信號:
? ? ? ? ? ? ?kill ?[-SIGNAL] ?PID …
終止“名稱”之下的所有程序
“`
killall -SIGNAL ?PROGRAM
“`
LINUX的作業控制
“`
前臺作業:運行時占據了命令行提示行的作業
? ? 后臺作業:可以通過前臺啟動,但啟動后就轉入后臺運行
已經啟動的進程轉入后臺模式
? ?ctrl+z
未啟動的進程轉入后臺
? ?CMD &
“`
? ?此類作業雖然被送往后臺運行,但是依然與終端相關,如果希望送往后臺剝離與終端的關系則用
? ? nohup CMD &
()此時如果終端被殺掉,進程不收影響
jobs 命令查看所有作業
? ? ?作業控制
? ? ? ? ? ? ?fg [%JOB_NUM] 把(制定的)后臺作也調回前臺
? ? ? ? ? ? ?bg [%JOB_NUM] 讓送往后臺的作業繼續在后臺運
? ? ? ? ? ? ?kill [%JOB_NUM] 殺死送往后臺的作業
進程優先級調整
? ? ? 靜態優先級:100-139
? ? ? ? ?nice -n # CMD nice:啟動進程時按照#優先級運行
? ? ? ? ?renice -n # PID :調整運行的程序的優先級
查看ps axo pid,comm.ni
未涉及的命令:star,tstar,iostat,iftop
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97585