linux進程命令行參數
『壹』 linux命令
命令格式: 命令 [-選項] [參數]
如:ls -la /usr
**說明: **
大部分命令遵從該格式
多個選項時,可以一起寫 eg:ls –l –a à ls –la
簡化選項與完整選項(註:並非所有選項都可使用完整選項) eg:ls –all à ls –a
作用:切換用戶身份
語法:su [選項] 用戶名
-c 僅執行一次命令,而不切換用戶身份
$ su – root
env
$ su – root –c 「useradd longjing」
文件或目錄的CRUD
英文:change directory 命令路徑:內部命令 執行許可權:所有用戶
作用: 切換目錄
語法:cd [目錄] / 切換到根目錄
.. 回到上一級目錄
. 當前目錄
~ 當前用戶的宿主目錄(eg:# cd ~用戶名 進入某個用戶的家目錄)
英文:list 命令路徑:/bin/ls 執行許可權:所有用戶
作用:顯示目錄文件
語法:ls [-alrRd] [文件或目錄]
-a all 顯示所有文件,注意隱藏文件,特殊目錄.和..
-l(long) 顯示詳細信息
-R(recursive) 遞歸顯示當前目錄下所有目錄
-r (reverse) 逆序排序
-t(time) 按修改時間排序(降序)
英文:print working directory 命令路徑:/bin/pwd 執行許可權:所有用戶
作用:顯示當前工作目錄
語法:pwd [-LP]
-L 顯示鏈接路徑,當前路徑,默認
-P 物理路徑
eg:# cd /etc/init.d
英文:make directories 命令路徑:/bin/mkdir 執行許可權:所有用戶
作用:創建新目錄
語法:mkdir [-p] 目錄名
-p 父目錄不存在情況下先生成父目錄 (parents)
eg: mkdir linux/test 如果目錄linux不存在,則報錯,使用參數-p即可自動創建父目錄。
命令路徑:/bin/touch 執行許可權:所有用戶
作用:創建空文件或更新已存在文件的時間
語法:touch 文件名
eg:touch a.txt b.txt touch {a.txt,b.txt} 同時創建多個文件
創建帶空格的文件 eg:touch "program files" 在查詢和刪除時也必須帶雙引號
注意:生產環境中,文件名,一定不要加空格
英文: 命令路徑:/bin/cp 執行許可權:所有用戶
作用:復制文件或目錄
語法:cp [–rp] 源文件或目錄 目的目錄
-r -R recursive 遞歸處理,復制目錄
-p 保留文件屬性 (原文件的時間不變)
eg:
1,相對路徑 cp –R /etc/* . cp –R ../aaa ../../test/
2,,絕對路徑 cp –R / ect/service /root/test/aa/bb
英文:move 命令路徑:/bin/mv 執行許可權:所有用戶
作用:移動文件或目錄、文件或目錄改名
語法:mv 源文件或目錄 目的目錄
英文:remove 命令路徑:/bin/rm 執行許可權:所有用戶
作用:刪除文件
語法: rm [-rf] 文件或目錄
-r (recursive)刪除目錄,同時刪除該目錄下的所有文件
-f(force) 強制刪除文件或目錄 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認
注意:工作中,謹慎使用rm –rf 命令。
擴展點 :刪除亂碼文件
一些文件亂碼後使用rm -rf 依然無法刪除
此時,使用ll -i 查找到文件的inode節點
然後使用find . -inum 查找到的inode編號 -exec rm {} -rf ;
就能順利刪除了
英文:concatenate 命令路徑:/bin/cat 執行許可權:所有用戶
作用:顯示文件內容
語法:cat [-n] [文件名]
-n 顯示行號
eg:cat /etc/services
命令路徑:/bin/more 執行許可權:所有用戶
作用:分頁顯示文件內容
語法:more [文件名]
空格或f 顯示下一頁
Enter鍵 顯示下一行
q或Q 退出
命令路徑:/usr/bin/head 執行許可權:所有用戶
作用:查看文件前幾行(默認10行)
語法:head [文件名]
-n 指定行數
eg:head -20 /etc/services head –n 3 /etc/services
命令路徑:/usr/bin/tail 執行許可權:所有用戶
作用:查看文件的後幾行
語法:tail [文件名]
-n 指定行數
-f (follow) 動態顯示文件內容
獲取一個大文件的部分文件,可使用head或tail命令
head -n 100 /etc/services >config.log
英文: link 命令路徑:/bin/ln 執行許可權:所有用戶
作用:產生鏈接文件
語法:
ln -s [源文件] [目標文件] 創建軟鏈接 源文件 使用 絕對路徑
ln [源文件] [目標文件] 創建硬鏈接
eg:ln -s /etc/service ./service.soft
創建文件/etc/service的軟鏈接service.soft
eg:/etc/service /service.hard
創建文件/etc/service的硬鏈接/service.hard
軟連接類似於windows下的快捷方式
軟連接文件格式:
lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services
1 硬鏈接數量,如果該文件沒有硬鏈接,就只有本身一個硬鏈接。
13鏈接文件的長度
格式解析(特徵):
1, 軟連接的文件類型是 l(軟連接),軟連接文件的許可權 都是 lrwxrwxrwx
2,-> 箭頭指向到源文件
真正的許可權取決於對源文件的許可權
時間值為創建軟連接的時間
軟連接可以跨文件系統生成
硬鏈接特徵
1,相當於 cp -p +同步更新
2,通過i節點識別,與源文件有相同的inode節點
3,硬鏈接不能跨分區,ln /home/test/issuels /boot/test (錯誤)
4,不能針對目錄使用 ln /tmp/ aa.hard (無法將目錄/tmp 生成硬鏈接)
刪除軟連接
rm -rf symbolic_name
英文:manual 命令路徑:/usr/bin/man 執行許可權:所有用戶
作用:獲取命令或配置文件的幫助信息
語法:man [命令/配置文件]
eg:man ls man services
(查看配置文件時,不需要配置文件的絕對路徑,只需要文件名即可)
調用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,按q退出。
使用/加上關鍵的參數可直接定位搜索, n 查找下一個,shift+n 查找上一個
eg: /-l 直接查看-l的介紹
擴展:man的級別 (幫助文檔的類型, 了解1 5即可)
man man-pages 查看每一種類型代表的含義 man文檔的類型(1~9)
1是命令,5是配置文件 man優先顯示命令,可指定幫助類型
eg:man 5 passwd (5代表配置文件級別)
[圖片上傳失敗...(image-6718d2-1624438708895)]
help 查看shell內置命令的幫助信息
eg:help cd
內置命令,使用whereis,which,man都不能查看
type 命令 查看內部命令還是外部命令
命令名 --help 列舉該命令的常用選項
eg: cp --help
命令路徑:/bin/find 執行許可權:所有用戶
作用:查找文件或目錄
語法:find [搜索路徑] [匹配條件]
如果沒有指定搜索路徑,默認從當前目錄查找
find命令選項
-name 按名稱查找 精準查找
eg:find /etc -name 「init」 在目錄/etc中查找文件init
-iname 按名稱查找
find查找中的字元匹配:
*:匹配所有
?:匹配單個字元
eg:find /etc -name 「init???」 在目錄/etc中查找以init開頭的,且後面有三位的文件
模糊匹配的條件,建議使用單引號或雙引號括起來。如果*被轉義,可使用 單雙引號括住查詢條件,或者使用*。
eg: # find . –name *g
-size ****按文件大小查找
以block為單位,一個block是512B, 1K=2block +大於 -小於 不寫是等於
eg:find /etc -size -204800 在etc目錄下找出大於100MB的文件
100MB=102400KB=204800block
**-type ** 按文件類型查找
f 二進制文件l 軟連接文件 d 目錄 c 字元文件
eg: find /dev -type c
find****查找的基本原則 :
佔用最少的系統資源,即查詢范圍最小,查詢條件最精準
eg:
如果明確知道查找的文件在哪一個目錄,就直接對指定目錄查找,不查找根目錄/
命令路徑:/bin/grep 執行許可權:所有用戶
作用:在文件中搜尋字串匹配的行並輸出
語法:grep [-cinv] '搜尋字元串' filename
選項與參數:
-c :輸出匹配行的次數(是以行為單位,不是以出現次數為單位)
-i :忽略大小寫,所以大小寫視為相同
-n :顯示匹配行及行號
-v :反向選擇,顯示不包含匹配文本的所有行。
eg:grep ftp /etc/services
eg:#grep -v ^# /etc/inittab 去掉文件行首的#號
eg:# grep -n 「init」/etc/inittab 顯示在inittab文件中,init匹配行及行號
eg:# grep -c「init」/etc/inittab 顯示在inittab文件中,init匹配了多少次
命令路徑:/usr/bin/which 執行許可權:所有用戶
作用: 顯示系統命令所在目錄(絕對路徑及別名)
which命令的作用是,在PATH變數指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令
alias ls='ls --color=auto'
/bin/ls
/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)
命令路徑:/usr/bin/whereis 執行許可權:所有用戶
作用:**搜索命令所在目錄 配置文件所在目錄 及幫助文檔路徑 **
eg: which passwd 和 whereis passwd
eg:查看/etc/passwd配置文件的幫助,就用 man 5 passwd
英文:GNU zip 命令路徑:/bin/gzip 執行許可權:所有用戶
gzip只能壓縮文件,不能壓縮目錄;不保留原文件
語法:gzip 文件
-d將壓縮文件解壓(decompress)
解壓使用gzip –d或者 gunzip
命令路徑:/usr/bin/bzip2 執行許可權:所有用戶
作用: 壓縮(解壓)文件,壓縮文件後綴為.bz2
語法:bzip2 [-k] [文件]
-k:產生壓縮文件後保留原文件(壓縮比高)
-d 解壓縮的參數(decompress)
解壓使用bzip2 –d或者 bunzip2
命令路徑:/usr/bin/zip 執行許可權:所有用戶
作用: 壓縮(解壓)文件,壓縮文件後綴為.zip
語法:zip 選項[-r] [壓縮後文件名稱] [文件或目錄]
-r壓縮目錄
eg:zip services.zip /etc/services 壓縮文件;
zip -r test.zip /test 壓縮目錄
如果不加-r選項,壓縮後的文件沒有數據。
解壓使用unzip
命令路徑:/bin/tar 執行許可權:所有用戶
作用:文件、目錄打(解)包
語法:tar [-zcf] 壓縮後文件名 文件或目錄
-c 建立一個壓縮文件的參數指令(create),後綴是.tar
-x 解開一個壓縮文件的參數指令(extract)
-z 以gzip命令壓縮/解壓縮
-j 以bzip2命令壓縮/解壓縮
-v 壓縮的過程中顯示文件(verbose)
-f file 指定文件名,必選項
1, 單獨的打包 ,解包 tar –cf tar –xf
2, 打包之後,進行壓縮 gzip bzip2
3, 一步到位 tar –zcvf tar -zxvf
tar -cf -xf 單獨 壓縮 解壓縮
tar -z 以gzip打包目錄並壓縮 文件格式.tar.gz(.tgz)
tar -j 以bzip2打包目錄並壓縮 文件格式.tar.bz2
eg:tar -zcvf dir1.tar.gzdir1 使用gzip將目錄dir1壓縮成一個打包並壓縮文件dir1.tar.gz
eg: tar -cvf bak.tar . 將當前目錄的文件打包為bak.tar
eg: tar -xvf bak.tar 解壓
eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar使用gzip將打包文件bak.tar壓縮為bak.tar.gz
eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2將打包文件bak.tar壓縮為bak.tar.bz2
eg: tar -rvf bak.tar /etc/password 將/etc/password追加文件到bak.tar中(r)
eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的壓縮文件
eg:tar -xjf test.tar.bz2 解壓
最常用: tar + gzip
tar –zcvf 壓縮
tar –zxvf 解壓
補充:
1,文件路徑, 壓縮包帶文件路徑
2,源文件是保留的,不會被刪除
**shutdown **[選項] 時間
選項: -c: 取消前一個關機命令
-h:關機
-r:重啟
eg:
shutdown -h now 立即關機 shutdown -h 20:30 定時關機
其他關機命令 halt poweroff init 0
其他重啟命令
**reboot **重啟系統 reboot -h now立即重啟
init 6
注意:生產環境中,關機命令和重啟命令謹慎執行。
善於查看man help等幫助文檔
利用好Tab鍵 自動補全
掌握好一些快捷鍵
ctrl + c(停止當前進程)
ctrl + z 掛起當前進程,放後台
ctrl + r(查看命令歷史) history
ctrl + l(清屏,與clear命令作用相同)
方向箭頭 上 下 可以查看執行過的命令
ctrl + a 行首 ctrl + e 行尾
ctrl + k 清除 ctrl+ w 清除單詞
vim/vi是Unix / Linux上最常用的文本編輯器而且功能非常強大。
只有命令,沒有菜單。
《大碗》編輯器版
周圍的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼...什麼插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開著,就是一個字:酷!你說這么牛X的一東西,怎麼著學會也得小半年吧。半年!?入門都遠著呢!能學會移動游標就不錯了,你還別說耗不起,就這還是左右移動!!!
:
[圖片上傳失敗...(image-a08366-1624438708894)]
命令模式:又稱一般模式
編輯模式:又稱底行模式,命令行模式
|
命令
|
作用
|
|
a
|
在游標後附加文本
|
|
A(shift + a)
|
在本行行末附加文本 行尾
|
|
i
|
在游標前插入文本
|
|
I(shift+i)
|
在本行開始插入文本 行首
|
|
o
|
在游標下插入新行
|
|
O(shift+o)
|
在游標上插入新行
|
|
命令
|
作用
|
|
:set nu
|
設置行號
|
|
:set nonu
|
取消行號
|
|
gg
G
|
到第一行
到最後一行
|
|
nG
|
到第n行
|
|
:n
|
到第n行
|
|
命令
|
作用
|
|
:w
|
保存修改
|
|
:w new_filename
|
另存為指定文件
|
|
:w >> a.txt
|
內容追加到a.txt文件中 文件需存在
|
|
:wq
|
保存修改並退出
|
|
shift+zz(ZZ)
|
快捷鍵,保存修改並退出
|
|
:q!
|
不保存修改退出
|
|
:wq!
|
保存修改並退出(文件所有者可忽略文件的只讀屬性)
|
不保存並退出:
1, 有修改,但是修改後的內容是不保存的
2, 有突發情況,導致窗口退出。修改文件之後,直接刪除同名的.swp文件
|
命令
|
作用
|
|
x
|
刪除游標所在處字元 nx 刪除游標所在處後n個字元
|
|
dd
|
刪除游標所在行,ndd刪除n行
|
|
:n1,n2d
|
刪除指定范圍的行(eg :1,3d 刪除了123這三行)
|
|
dG
|
刪除游標所在行到末尾的內容
|
|
D
|
刪除從游標所在處到行尾
|
|
命令
|
作用
|
|
yy、Y
|
復制當前行
|
|
nyy、nY
|
復制當前行以下n行
|
|
dd
|
剪切當前行
|
|
ndd
|
剪切當前行以下n行
|
|
p、P
|
粘貼在當前游標所在行下 或行上
|
|
命令
|
作用
|
|
r
|
取代游標所在處字元
|
|
R(shift + r)
|
從游標所在處開始替換字元,按Esc結束
|
|
u
|
undo,取消上一步操作
|
|
ctrl+r
|
redo,返回到undo之前
|
|
命令
|
作用
|
|
/string
|
向後搜索指定字元串 搜索時忽略大小寫 :set ic
|
|
?string
|
向前搜索指定字元串
|
|
n
|
搜索字元串的下一個出現位置,與搜索順序相同
|
|
N(Shift + n)
|
搜索字元串的上一個出現位置,與搜索順序相反
|
|
:%s/old/new/g
|
全文替換指定字元串
|
|
:n1,n2s/old/new/g
|
在一定范圍內替換指定字元串
|
% 指全文,s 指開始,g 指全局替換
eg: :41,44/yang/lee/c 從41行到44行,把yang替換為lee,詢問是否替換
eg: :41,44/yang/lee/g 同上,不詢問,直接替換
使用替換命令來添加刪除注釋
:% s/^/#/g 來在全部內容的行首添加 # 號注釋
:1,10 s/^/#/g 在1~10 行首添加 # 號注釋
vi裡面怎麼查命令??
:!which cp
vi裡面怎麼導入命令的結果?
:r !which cp
v 可視字元模式
V****(shift+v) 可視行模式,選擇多行操作
**ctrl+v **可視塊模式(列模式),操作列
I或者O進入插入模式。
1,圖形化界面
2,setup 命令虛擬界面
3,修改配置文件(以網路方式為NAT示例)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.2.129
NETMASK=255.255.255.0
GATEWAY=192.168.2. 2 #網段2任意,IP地址2固定,網段為vmnet8的設置的IP網段
DNS1=114.114.114.114
DNS2=8.8.8.8
重啟網路生效:
service network restart
命令路徑:/bin/ping 執行許可權:所有用戶
作用:測試網路的連通性
語法:ping 選項 IP地址
-c 指定發送次數
ping 命令使用的是icmp協議,不佔用埠
eg: # ping -c 3 127.0.0.1
英文:interface configure 命令路徑:/sbin/ifconfig 執行許可權:root
作用:查看和設置網卡網路配置
語法:ifconfig [-a] [網卡設備標識]
-a:顯示所有網卡信息
ifconfig [網卡設備標識] IP地址 修改ip地址
英文:network statistics 命令路徑:/bin/netstat 執行許可權:所有用戶
作用:主要用於檢測主機的網路配置和狀況
-a all顯示所有連接和監聽埠
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 使用數字方式顯示地址和埠號
-l (listening) 顯示監控中的伺服器的socket
eg:# netstat -tlnu 查看本機監聽的埠
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
協議 待收數據包 待發送數據包 本地ip地址:埠 遠程IP地址:埠
netstat –antpl
臨時生效:
hostname 主機名
[圖片上傳失敗...(image-ceed36-1624438708893)]
永久生效:修改配置文件
vi /etc/sysconfig/network
[圖片上傳失敗...(image-2b9d9e-1624438708893)]
修改主機名和ip地址之間的映射關系
vi /etc/hosts
192.168.2.120 node-1.e.cn node-1
可配置別名
[圖片上傳失敗...(image-ec86cf-1624438708893)]
進程和程序的區別:
1、程序是靜態概念,本身作為一種軟體資源長期保存;而進程是程序的執行過程,它是動態概念,有一定的生命期,是動態產生和消亡的。
2、程序和進程無一一對應關系。一個程序可以由多個進程共用;另一方面,一個進程在活動中有可順序地執行若干個程序。
進程和線程的區別:
進程: 就是正在執行的程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,並佔用一定的系統資源。
線程: 輕量級的進程;進程有獨立的地址空間,線程沒有;線程不能獨立存在,它由進程創建;相對講,線程耗費的cpu和內存要小於進程。
進程管理的作用?
判斷伺服器的健康狀態
查看系統所有的進程
殺死進程
作用:查看系統中的進程信息
語法:ps [-auxle]
常用選項
查看系統中所有進程
ps應用實例 # ps -u or ps -l 查看隸屬於自己進程詳細信息
作用: 查看當前進程樹
語法:pstree [選項]
-p 顯示進程PID
-u 顯示進程的所屬用戶
作用:查看系統健康狀態
顯示當前系統中耗費資源最多的進程,以及系統的一些負載情況。
語法:top [選項]
-d 秒數,指定幾秒刷新一次,默認3秒(動態顯示)
作用:關閉進程
語法:kill [-選項] pId
kill -9 進程號(強行關閉) 常用
kill -1 進程號(重啟進程)
添加用戶
語法:useradd [選項] 用戶名
修改密碼命令
語法:passwd [選項] [用戶名]
用戶密碼:生產環境中,用戶密碼長度8位以上,設置大小寫加數字加特殊字元,要定期更換密碼。
ys^h_L9t
刪除用戶
-r 刪除賬號時同時刪除宿主目錄(remove)
作用:用於查看Linux文件系統的狀態信息,顯示各個分區的容量、已使用量、未使用量及掛載點等信息。看剩餘空間
語法:df [-hkam] [掛載點]
-h(human-readable)根據磁碟空間和使用情況 以易讀的方式顯示 KB,MB,GB等 -k 以KB 為單位顯示各分區的信息,默認
-M 以MB為單位顯示信息 -a 顯示所有分區包括大小為0 的分區
作用:用於查看文件或目錄的大小(磁碟使用空間)
語法: [-abhs] [文件名目錄]
-a 顯示子文件的大小
-h以易讀的方式顯示 KB,MB,GB等
-s summarize 統計總佔有量
eg:
-a(all) /home 顯示/home 目錄下每個子文件的大小,默認單位為kb
-b /home 以bytes為單位顯示/home 目錄下各個子目錄的大小
-h /home 以K,M,G為單位顯示/home 文件夾下各個子目錄的大小
-sh /home 以常用單位(K,M,G)為單位顯示/home 目錄的總大小 -s summarize
df命令和命令的區別:
df命令是從文件系統考慮的,不僅考慮文件佔用的空間,還要統計被命令或者程序佔用的空間。
命令面向文件,只計算文件或目錄佔用的空間。
作用:查看內存及交換空間使用狀態
語法: free [-kmg]
選項:
-k: 以KB為單位顯示,默認就是以KB為單位顯示
-m: 以MB為單位顯示
-g: 以GB為單位顯示
清理緩存命令:
echo 1 > /proc/sys/vm/drop_caches
『貳』 Linux進程詳解
ps是Linux 中最基礎的瀏覽系統中的進程的命令。能列出系統中運行的進程,包括進程號、命令、CPU使用量、內存使用量等。接下來解讀一下Linux操作系統的進程和Windows「Ctrl+Alt+delete」直接的差異。
在進行了解進程命令之前需要知道進程的一些狀態
ps工具標識進程的5種狀態碼:
Linux操作系統進程執行的狀態轉換圖如圖所示:
下面來看一下 ps命令
ps --help命令可以查看ps命令的使用說明
或者使用 man ps命令 查詢ps的詳細說明
在 man手冊 關於ps的解讀中,總結了一下幾個參數的含義:
以上的參數是可以拼接使用的,那就了解一些常用的參數組合
ps aux命令
ps -ef命令
查看進程狀態這兩個是命令是最常用的,使用 ps aux 可以查看進程的詳細運行狀態等。使用 ps -ef 不僅可以顯示自身的PID,也可以顯示PPID(父進程)。但是顯示不了進程的運行狀態
top命令
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器
man手冊關於top的解釋
關閉進程,重啟進程
在上一片文章中 linux的目錄結構 裡面說過,在目錄/etc/init.d/目錄下包含許多系統各種服務的啟動和停止腳本。假設進程佔用內存較大或者進程異常,我們是重啟這個進程restart。如下圖所示:
我們重啟了mysqld這個進程,可以看出進程號已經改變(從15743到15964),說明進程已經重啟。
Linux下有3個特殊的進程,idle進程(PID=0), init進程(PID=1)和kthreadd(PID=2)
我們來看一下進程狀態[下面是刪減版,進程數量太多,列舉一部分]
可以看到很多進程的PPID號是1和2。也就是init進程和kthreadd進程。
在使用Windows系統的過程中,都碰到過應用程序卡死的情況。應對此問題,我們一般都是等待失去響應的程序恢復,或者是直接使用任務管理器將其強制關閉,然後再重新打開。
在Linux中,遇到特別耗費資源的進程,當然需要使用 top命令 查看進程佔用率高的進程。或者使用 free -m命令 查看內存剩餘。假設需要強殺進程來釋放空間。我們涉及到Linux中信號📶的知識,在這里簡單的描述一下,信號的詳解會在接下來的文章裡面敘述。
free -m命令查看內存空間
在linux中存在著64種信號
使用 kill -l命令 查看信號列表
在前面說過進程會被這些個信號> (進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號強制停止運行) 那問題就在於如何發信號給這些個進程。
使用kill命令發信號
我們從上面可以看到 mysqld進程被重啟了 。
關於Linux的這一塊進程的知識還有很多,後面的文章跟大家分享僵屍進程,孤兒進程等等知識,以及守護進程(daemon進程).
『叄』 linux 下查看進程用什麼命令
linux 下查看進程可以使用的命令:
1、ps命令查找與進程相關的PID號:
2、ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
3、ps -A 顯示所有程序。
4、ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
5、ps -e 此參數的效果和指定"A"參數相同。
6、ps e 列出程序時,顯示每個程序所使用的環境變數。
7、ps f 用ASCII字元顯示樹狀結構,表達程序間的相互關系。
8、ps -H 顯示樹狀結構,表示程序間的相互關系。
9、ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
10、ps s 採用程序信號的格式顯示程序狀況。
11、ps S 列出程序時,包括已中斷的子程序資料。
12、ps -t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
13、ps u 以用戶為主的格式來顯示程序狀況。
14、ps x 顯示所有程序,不以終端機來區分。
『肆』 linux 進程的查看使用什麼命令
查看進程的命令有ps、pstree、pgrep等
1、ps
顯示進程信息,參數可省略
-aux 以BSD風格顯示進程
常用 -efH 以SystemV風格顯示進程
-e , -A 顯示所有進程
a 顯示終端上所有用戶的進程
x 顯示無終端進程
u顯示詳細信息
f 樹狀顯示
w 完整顯示信息
l 顯示長列表
各列輸出欄位的含義:
USER 進程所有者
PID 進程ID
PPID 父進程
%CPU CPU佔用率
%MEM 內存佔用率
NI 進程優先順序。數值越大,佔用CPU時間越少
VSZ 進程虛擬大小
RSS 頁面文件佔用
TTY 終端ID
STAT 進程狀態
+---D 不可中斷
Uninterruptible sleep (usually IO)
+---R 正在運行,或在隊列中的進程
+---S 處於休眠狀態
+---T 停止或被追蹤
+---Z 僵屍進程
+---W 進入內存交換(從內核2.6開始無效)
+---X 死掉的進程
+---< 高優先順序
+---N 低優先順序
+---L 有些頁被鎖進內存
+---s 包含子進程
+---+ 位於後台的進程組;
+---l 多線程,克隆線程 multi-threaded (using CLONE_THREAD, like
NPTL pthreads do)
PID:進程標識符,系統為每一個進程分配一個識別碼,稱為PID。
ps命令極為常用,其他命令還有:
2.pstree
樹狀顯示進程信息
-a 顯示完整命令及參數
-c 重復進程分別顯示
-c 顯示進程ID、PID
-n 按 PID排列進程
3.pgrep<進程名>
顯示進程的PID
-l 顯示進程名和進程PID
-o 進程起始ID
-n 進程終止ID
『伍』 linux中設計一個shell腳本程序可以接受命令行輸入的參數執行相應的菜單命令
之所以用到命令行參數,關鍵在於shell腳本需要與運行腳本的人員進行交互。
bash shell提供了命令行參數添加在命令後面的數據值)、命令行選項修改命令行為的單字元值)和直接讀取鍵盤輸入。
1、命令行參數
向shell腳本傳遞數據的最基本方式是使用命令行參數。
1)讀取參數
讀取輸入的參數的變數為位置參數,位置參數通過標准數字表示,
其中$0為程序名稱,$1為第一個參數,$2為第二個參數,依次類推,直到$9為第九個參數。
shell腳本自動將命令行參數賦值給各個位置變數。
同時輸入多個參數可以是數值也可以是字元串)時,必須使用空格分隔要想在參數值中包含空格,就必須使用單引號或雙引號)
當參數多於9個後,必須在shell腳本內使用大括弧將變數括起來,如${10}。從而可以使用任意個參數。
2)讀取程序名稱
傳遞給變數$0的字元串實際上是程序的路徑根據調用方法決定是相對還是絕對路徑)。
使用basename命令可以去掉路徑前綴,只獲得程序名稱名字中不 可以有空格)。
3)測試腳本
當腳本認為應該包含參數,卻實際上沒有數據時,就會出錯。
好的方法是對參數進行檢查來保證使用參數前確實存在數據,可以使用-n參數來檢查。
例子:if [ –n 「$1」 ] then .. else .. fi
2、特殊的參數變數
用於跟蹤命令行參數
1)參數計數
使用特殊變數$#測試執行腳本時包含的命令行參數個數。腳本中任何位置都可以 使用$#
例子:if [ $# –ne 2 ] 即可測試參數個數
可以使用${!#}來返回最後一個命令行參數當無參數時,$#為0,而${!#}為程序名)
2)獲取所有數據
變數$*將命令行中提供的所有參數作為一個單詞處理,它將多個參數看成 一個參數。
變數$@將命令行中提供的所有參數作為同一個字元串中的多個單詞處理。 允許對其中的值進行迭代一般使用for),分隔開不同參數
3、移位
shift命令能夠改變命令行參數的相對位置。默 認將每個參數變數左移一個位置變數$0不變,把$1丟棄,注意不可以恢復了!)
在不清楚參數數目情況下,這是一個迭代參數的好辦法。
可以為shift提供一個參數,來實現多位移變化。
4、處理選項
選項是由破折號引導的單個字母,用於更改命令的行為。
1,找出選項
1)處理簡單選項
可以使用處理命令行參數相同的方法處理選項,抽取時使用case語句進行判斷是否符合選項格式。
2)從參數中分離選項
同時使用選項和參數時,可以使用--指示選項列表的結束。發現--後,shell就知道後面的是普通參數了,停止使用case處理選項。
3)處理帶值的選項
選項後緊跟參數值,一種方法是在case中對應選項後使用shift和讀後一位參數的方法處理。更好的方法如 下:
2,使用getopt命令
getopt命令在處理選項和參數時非常方便。它對參數進行重新組 織,以便於解析
1)命令格式
getopt可以接受任意形式的選項和參數列表,並自動將它們轉換為適當的格式。
命令格式為: getopt options optstring parameters
選項字元串(opstring)用於定義命令行中的有效選項字母,以及哪些選項字母需要參數值。
2)腳本中使用getopt
需要使用set命令將現有的命令行選項和參數替換為getopt命令生成的 格式化形式。
需要將原始腳本命令行參數送給getopt命令,然後將getopt命令輸出送給set命令,如下:set – `getopts –q ab:cd 「$@」`
但是getopt命令不能很好的處理帶有空格的參數值,它將空格解析為參數分隔符,而不是將雙引號引起來的兩個 值合並成一個參數。解決辦法如下:
3)更高級的getopts命令
getopts命令順序的對現有的shell參數變數進行處理,每調用一次,只處理命令中檢測到的參數中的一個。處理完所有參數後,以大於0的退出 狀態退出。
非常適宜於在循環中解析所有命令行參數
格式為: getopts optstring variable
$optarg包含需要參數值的選項要使用的值,$optind包含getopts停止處理時在參數列表中的位置。
注意:當getopts處理時,會將選項前的-去掉,所以對應的case中不需要破折號。
好的特性:
1)可以在參數值中包含空格
2)選項字母和參數值中間可以沒有空格
3)將在命令行中找到的未定義的選項都綁定為單一的輸出——問號
5、標准化選項
有一些字母選項具有標准含義。最好按照標准含義定義選項意義
-a –c –d –e –f –h –i –l –n –o –q –r –s –v- x –y
6、獲取用戶輸入
當需要在執行過程中獲得執行腳本人員的輸入,使用read命令
1)基本讀取
read命令接受標准輸入或其他文件描述符輸入。讀入後將數據放入 一個標准變數中。
-p 允許在read命令行中直接指定一個提示。
可以指定多個變數,也可以不指定將放置在reply環境變數中)
2)計時
使用-t指定一個計時器,計時數滿還未輸入,read返回一個非0的退出狀態。
使用-n指定輸入的字元個數,輸入達到預定數目時,就自動結束輸入
3)默讀
使用-s使輸入不顯示在終端例如輸入密碼)
4)讀取文件
最常用的方法是使用cat命令,並通過管道傳給包含read的while語句。
『陸』 Linux查看進程運行的完整路徑及參數的方法
Linux在啟動一個進程時,系統會在/proc下創建一個以PID命名的文件夾,鍵褲改在該文件夾下會有我們的進程的信息.
這些信息,有的是軟鏈接,有的是文本,有的是目錄.
查看這些信息需要對應的許可權.
其中部分常用信息如下.
cwd 符號鏈接, 是進程運行目錄. sudo ls -al /proc/PID/cwd
exe 符號連接, 是執稿判行程序的絕對路徑. sudo ls -al /proc/PID/exe
cmdline 文本, 是程序運行時輸入的命令行命令. sudo cat /proc/PID/cmdline
environ 文本, 記錄了進程運行時的環境變數. sudo cat /proc/PID/environ
fd 目錄, 裡面是進程打開純飢或使用的文件的符號連接. sudo ls -al /proc/PID/fd