Linux【实操篇】—— 进程管理、服务管理、软件包管理(rpm、yum)
目錄???????
一、進程管理
1. 查看進程信息
2. 查看父進程信息
3. 終止進程
4. 查看進程樹
5. 動態監控進程
二、服務管理
1. 服務管理
2. 服務的運行級別
3. 服務管理指令 systemctl(CentOS 7.0之后)
4. 打開/關閉指定端口
三、軟件包管理(rpm、yum)
1. rpm?包的管理
2. yum 包的管理
一、進程管理
????????在 Linux 操作系統中,每一個執行的程序都是被稱之為進程,且每個進程都有它專屬的進程號 pid;每個進程可能都以前臺和后臺兩種方式存在,前臺進程就是用戶直接可在屏幕上操作的部分,與用戶直接交互;后臺進程則無法在屏幕看到,只在后臺運行(一般系統服務都是以后臺進程的方式存在,常駐于 系統,只有關機才會結束)。
程序 是靜態的實體;
進程 則是動態的實體,可以理解為運行著的程序;
1. 查看進程信息
使用指令 ps 可以查看當前系統正在運行的進程以及它們執行的狀態;
- ps -a? //顯示當前終端所有的進程信息
- ps -u? //以用戶的格式顯示進程信息
- ps -x? //顯示后臺進程運行的參數
- ps -aux | more? //分頁查看所有進程信息
如下分頁查看所有進程信息:
各字段含義如下:
2. 查看父進程信息
除進程本身外,進程也可以創建多個子進程,進而就有了父進程和子進程的概念;
查看父進程的信息需要先知道父進程的 pid,此時需要使用指令 ps -ef 以全格式顯示當前的所有進程。例如我們查看進程 sshd(遠程登錄) 的父進程信息(結果只需看第一條即可);
可以看到,進程 sshd 的 id 為 1478,它的父進程 id 為 1;此時再全格式查看進程信息就可以找到 id 為 1 的進程是哪個了;
以全格式查看進程信息時新增了 PPID 字段,代表此進程的父進程 pid;PPID 為 0 表示該進程沒有父進程。
3. 終止進程
需要停止某進程時,可以使用指令 kill 進程號 或者 killall 進程名 分別通過進程號或進程名終止該進程;需要注意的是,如果一個進程下有子進程,該進程被終止后它的所有子進程也將被終止。
終止進程指令常用選項:
- -9? //強制進程立即停止
4. 查看進程樹
查看進程樹使用指令 pstree,相較于使用 ps 指令它可以更加直觀;
- pstree -p? //顯示進程的pid
- pstree -u? //顯示進程的所屬用戶
5. 動態監控進程
動態監控進程使用指令 top,功能與 ps 指令相似,區別在于 top 是動態的監控進程,可以查看進程的更新過程。
- top -d 秒數? //指定top命令每隔幾秒更新一次當前進程的執行情況(默認3s)
- top -i? //top指令不再顯示任何僵死或者閑置的進程
- top -p? //通過進程號pid指定監控某個進程執行情況
在使用 top 指令動態查看進程的過程中,我們也可以進行一些交互操作:
- 按下 “P” 使進程按照? CPU 的使用率進行排序(默認)
- 按下 “M” 按照內存占用率排序
- 按下 “N” 按照 pid 進行排序
- 按下 “u” 再輸入用戶名,監控指定用戶的進程
- 按下 “k” 再輸入進程號,終止指定的進程
- 按下 “q” 退出 top 指令
二、服務管理
? ? ? ? 服務管理中的服務本質上就是一個后臺的進程。服務運行在后臺,監聽某個端口等待某個程序的請求,如 sshd、mysqld、防火墻?等都屬于服務,服務又被稱為守護進程。
1. 服務管理
服務管理使用的指令為 service 服務名 選項(注意在 CentOS 7.0 之后不再使用 service 指令,由 systemctl 指令代替);
常用選項有:
- start? //啟動服務
- stop? //關閉服務
- restart? //重啟
- reload? //重載
- status? //狀態
當然,service 指令依舊可以管理若干服務,具體存儲在 /etc/init.d 目錄下。如下是 7.0 版本之后 services 指令所管理的服務:
使用指令 setup 可以查看 Linux 操作系統的所有服務;如下為所有系統服務,前面帶 [*] 的代表此服務會隨著操作系統的啟動而自動啟動,我們可以使用空格鍵來選擇它是否選中。
2. 服務的運行級別
之前已經有介紹,Linux 操作系統中一共有七種運行級別;
- 0 - 系統停機狀態,系統默認運行級別不能設置為0,否則無法正常啟動(基本不用)
- 1 - 單用戶工作狀態,常用于系統維護,沒有遠程登陸功能(基本不用)
- 2 - 多用戶工作狀態,不支持網絡服務
- 3 - 多用戶狀態,無界面,登陸后進入控制臺命令行模式(最常用)
- 4 - 系統未使用
- 5 - 圖形界面模式(常用)
- 6 - 系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動
通過指令 chkconfig 可以為服務的各個運行級別設置自啟動或關閉自啟動(注意該命令在 CentO S 7.0 之后也不再使用,由 systemctl 代替);
- chkconfig --list? //查看 chkconfig 命令管理的服務
- chkconfig --level 運行級別?服務名 on/off? //設置某個服務在某個運行級別為自啟動或者關閉自啟動
舉例:關閉 network 服務在運行級別 3 的自啟動服務,再使用 --list 指令可以看到,network 服務的自啟動功能已關閉。
打開自啟動功能只需把 off 改為 on 即可;
使用 chkconfig 指令設置服務的自啟動功能后,需要重啟系統才能生效。
3. 服務管理指令 systemctl(CentOS 7.0之后)
基本語法:systemctl 選項 服務名
- 常用選項與 service 相同
- systemctl list-unit-files? //查看當前各個服務的自啟動狀態,可使用管道過濾
- systemctl enable 服務名? //設置服務開機自啟動
- systemctl disable 服務名? //關閉服務開機自啟動
- systemctl is-enabled 服務名? //查看某服務是否為自啟動狀態
systemctl 指令設置的自啟動服務默認在運行級別 3 和 5 。
systemctl 指令所管理的服務存儲于 /usr/lib/systemd/system 目錄下;
4. 打開/關閉指定端口
打開或關閉指定端口主要是針對防火墻服務。在平常的工作中,防 火墻都是打開狀態,但是打開防火墻服務就會造成一個問題,那就是外部請求數據包無法再與服務器所監聽的端口進行通訊。這時候我們就需要打開某個指定的端口。打開/關閉指定端口使用指令 firewall;
- firewall-cmd --permanent --add-port=端口號/協議? //打開端口
- firewall-cmd --permanent --remove-port=端口號/協議? //關閉端口
- firewall-cmd --reload? //重新載入(必須重新載入新設置才會生效)
- firewall-cmd --query-port=端口/協議? //查詢端口是否開放
查詢端口和協議使用指令 netstat -anp;
三、軟件包管理(rpm、yum)
1. rpm?包的管理
rpm(RedHat Package Manage)是用于網絡下載包的打包及安裝工具,包含于某些 Linux 分發版本中,它會生成以 .rpm 為擴展名的文件。
查詢已安裝的 rpm 包列表使用指令?rpm -qa,必要時可以使用管道進行過濾。
- rpm -qa? //查詢所安裝的所有軟件包
- rpm -q 軟件包名? //查詢某軟件包是否安裝
- rpm -qi 軟件包名? //查詢軟件包信息
- rpm -ql 軟件包名? //查詢軟件包中的文件
- rpm -qf 文件全路徑名? //查詢文件所屬的軟件包
如下使用 rpm 指令查看系統是否安裝了 Firefox;
卸載 rpm 包使用指令?rpm -e 包名稱;
(??????刪除包的時候需要注意,如果有其他軟件依賴于所要刪除的包,卸載會產生錯誤信息,如果想要強制刪除可以增加 --nodeps 選項如: rpm -e --nodeps 包名,但不建議此做法)
安裝 rpm 包使用指令 rpm -ivh 包全路徑名稱(i 安裝,v 提示信息,h 進度條)。
2. yum 包的管理
yum 是 shell 前端軟件包管理器,基于 rpm 包管理,能夠從指定的服務器自動下載 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。yum 基本指令如下:
- yum list? //查詢yum服務器上可以安裝的軟件和已安裝的軟件
- yum install 包名? //安裝指定的軟件包
總結
以上是生活随笔為你收集整理的Linux【实操篇】—— 进程管理、服务管理、软件包管理(rpm、yum)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载]只因写了一段爬虫,公司200多人
- 下一篇: HCIA第一天