Linux常用指令总结二~~
文章目錄
- 1. crond任務調度
- 2. 磁盤分區
- 3. 磁盤情況查詢
- 4. 網絡配置
- 5. 進程管理
- 6. 服務(service)管理
- 7. 動態監控進程
- 8. 監控網絡狀態
- 9. RPM包和YUM包
Linux常用指令總結一~~指路==>
1. crond任務調度
crontab進行定時任務的設置。
a. 任務調度:是指系統在某個時間執行的特定的命令或程序。
b. 任務調度分類:
系統工作:有些工作必須反復進行,如360掃描等;
個別用戶工作:個別用戶希望執行某些程序,如對mysql數據庫的備份。
crontab [選項]
常用選項:
-e : 編輯crontab定時任務;
-l:查詢crontab任務;
-r:刪除當前用戶所有的crontab任務;
特殊符號說明:
" * " 代表任何時間。如第一個代表1h中每分鐘都執行一次;
" , " 代表不連續的時間。如"0,2,8, * * 命令",就代表在每天的2:00,8:00,都執行一次命令;
" - " 代表連續的時間范圍。如"0 5 * * 1-6 命令",代表在周一-周六的陵城5:00執行命令;
" /n " 代表每隔多久執行一次命令。如"/10 * * * * 命令",代表每隔10分鐘執行一次命令。
特定時間任務案例:
eg:
任務要求:
設置任務調度文件:/etc/crontab;
設置個人任務調度。執行crontab-e命令;
輸入任務到調度文件:如"/1***|s -l /etc/ > tmp/to.txt"(每小時的每分鐘執行|s -l /etc/ > tmp/to.txt命令);
5個占位符說明:
第一個* 一小時當中的第幾分鐘 0-59;
第二個* 一天當中的第幾小時 0-23;
第三個* 一月當中的第幾天 1-31;
第四個* 一年當中的第幾月 1-12;
第五個* 一周當中的星期幾 0-7(0/7代表周末);
1.編輯crontab定時任務:crontab -e;
2.輸入文件內容:“/1***|s -l /etc/ > tmp/to.txt”保存并退出;
3.tmp中進行查看,已經存在to.txt,每隔一分鐘就會自動執行調度文件;
4.使用more進行查看to.txt文件內容:more to.txt;
2. 磁盤分區
a. 分區的方式:
1). mbr分區:
2). gtp分區(目前常用):
windows分區:
Linux分區:
1.Linux來說無論有幾個分區,分給哪一個目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構,Linux中每個分區都是用來組成整個文件系統的一部分。
2.Linux采用了一種“載入”的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯系起來。這時要載入的一個分區將使用它的存儲空間在一個目錄下獲得。
b.硬盤說明:
1.Linux硬盤分IDE硬盤和SCSI硬盤,目前基本是SCSI硬盤;
2.對于IDE硬盤,驅動器標識符為“hdx~ ”,其中“hd”表明分區所在設備的類型,這里指IDE硬盤?!皒”為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),“~”代表分區,前四個分區用數字1–4表示,他們是主分區/擴展分區,從5開始就是邏輯分區。
eg:hda3表示為第一個IDE硬盤上的第三個主分區/擴展分區,hdb2表示為第二個IDE硬盤上的第二個主分區/擴展分區。
3.對于SCSI硬盤則標識為“sdx~”,SCSI硬盤是用“sd”來表示分區所在設備的類型的,其余和IDE硬盤的表示方法相同。
c. 使用lsblk / lsblk -f(list block)查看當前系統的分區情況:
1.使用lsblk -f 查看系統的分區和掛載情況;
2.“sda”,“sda1”,“sda2”,“sda3”為分區情況;
3.為分區類型;
4.唯一標示分區的40位不重復的字符串UUID;
5.掛載點;
3. 磁盤情況查詢
a. 查詢系統整體磁盤使用情況:df -h / df -lh;
b. 查詢指定目錄的磁盤占用情況:du -h / 目錄;
查詢指定目錄的磁盤占用情況,默認為當前目錄;
-s 指定目錄占用大小匯總;
-h 帶計量單位;
-a 含文件;
--max-depth=1子目錄深度;
-c 列出明細的同時,增加匯總值;
eg:查詢/opt目錄的磁盤占用情況,深度為1:du -ach --max-depth=1 /opt;
c. 磁盤情況-工作實用指令:
1.統計/home文件夾下文件的個數:ls -l /home |grep “^-” | wc -l;(wc統計個數)
2.統計/home文件夾下目錄的個數:ls -l /home |grep “^d” | wc -l;
3.統計/home文件夾下文件的個數,包括子文件夾里的:ls -lR /home |grep “^-” | wc -l;
4.統計文件夾下目錄的個數,包括子文件夾:ls -lR /home |grep “^d” | wc -l;
5.以樹狀顯示目錄結構:tree 目錄;(若顯示bash:tree: command not found…表明沒有安裝tree指令,先使用yum install tree安裝tree指令,再執行上述操作就好啦~)。
eg:
4. 網絡配置
Linux網絡配置原理圖(含虛擬機):
eg:教室網絡:
查看網絡IP和網關: ifconfig
或centos7在“編輯-虛擬網絡編輯器”中查看/修改IP;
centos7在“編輯-虛擬網絡編輯器-VMnet8-NAT設置”中查看網關;
**ping測試主機之間網絡連通性:**ping 目的主機;
eg:ping百度:ping www.baidu.com;
ping我的windows主機:
Linux網絡環境配置:
指定固定的ip:直接修改配置文件來指定IP,并可以連接到外網,編輯vi/etc/sysconfig/network-scripts/ifcfg-ens33;
配置完成后重啟服務:service network restart;
tips:不同版本配置命令有差異,建議直接百度~
5. 進程管理
1.每個執行的程序都稱為一個進程,每一個進程都分配一個ID號;
2.每一個進程,都對應一個父進程,而這個父進程可以復制多個子進程;如www服務器;
3.每個進程都可能以兩種方式存在:前臺和后臺;
一般系統的服務都是以后臺進程的方式存在,而且都會常駐在系統中,直到關機才結束。
ps(process status)命令是用來查看目前系統中,有哪些正在執行、以及它們執行的狀況;可以不加任何參數。
ps顯示的信息選項:
ps -a:顯示當前終端的所有進程信息;
ps -u:以用戶的格式顯示進程信息;
ps -x:顯示后臺進程運行的參數;
ps指令:
1.ps -aux | grep xxx;
2.指令說明:
System V展示風格;
SUER:用戶名稱;
PID:進程號;
%CPU:進程占用CPU的百分比;
%MEM:進程占用的物理內存百分比;
VSZ:進程占用的虛擬內存大小(kB);
RSS:進程占用的物理內存大小(KB);
TTY:終端名稱,縮寫;
STAT:進程狀態;S睡眠,s表示該進程是會話的先導進程,N表示進程擁有比普通優先級更低的優先級,R正在運行,D短期等待,Z僵死進程,T被跟蹤/被停止等;
TIME:CPU時間,即進程使用CPU的總時間;
COMMAND:啟動進程所用的命令和參數,若過長會被截斷顯示。
eg:查看sshd信息:ps -aux | grep sshd;
以全格式顯示當前所有的進程,查看進程的父進程:ps -ef | less;
ps -ef是以全格式顯示當前所有進程;
-e顯示所有進程,-f全格式;
ps -ef | grep xxx:
UID:用戶ID;
PPID:父進程ID;
C:CPU用于計算執行優先級的因子。數值越大,表明進程是CPU密集型運算,執行優先級會降低;數值越小,表明進程是I/O密集型運算,執行優先級會提高。
終止進程kill/ killall:
若是某個進程執行一半需要停止時,或是已經消耗了很大的系統資源時,此時可以考慮停止該進程。
kill [選項] 進程號 :通過進程號殺死進程;
killall 進程名稱:通過進程名稱殺死進程,也支持通配符(a*,*.txt等),這在系統因負載過大而變慢時很有用;
常用選項:-9:表示強迫進程立即停止;
eg:終止sshd服務:kill 1000;(使用service sshd start可重啟sshd服務)
tips:可使用killall直接殺死父進程達到殺死很多不需要的進程的目的;
eg:終止xiaobai用戶,使用kill 19022系統自動忽略(因本機登錄的是xiaobai),使用kill -9 19022可強制殺死xiaobai(logout);
查看進程樹pstree:
pstree [選項]:更直觀查看進程信息;
常用選項:
-p:顯示進程的PID;
-u:顯示進程的所屬用戶;
eg:pstree -p;(最大的父進程是systemd)
6. 服務(service)管理
服務service本質就是進程,但是運行在后臺,通常都會監聽某個端口,等待其他程序的請求,如sshd,mysqld等,因此我們又稱為守護進程。
service管理指令:
service 服務名 [start | stop | restart | reload | status];
centos7大多命令使用systemctl;
systemctl list-unit-files:列出所有服務;
注;關閉/啟用防火墻后,立即生效;(可用telnet 測試某個端口);
此方式只是臨時生效,當重啟系統后,回歸以前的服務設置;
若希望某個服務自啟動/關閉永久生效,需使用chkconfig指令。
eg:查看防火墻狀態:service firewalld status / systemctl status firewalld;
tips:通過telnet指令檢查linux的某個端口是否在監聽,并且可以訪問;
dos:telnet ip 端口 ;
服務的運行級別(runlevel):
查看/修改默認級別:vi/etc/inittab;
Linux系統有7中運行級別,常用級別3/5;
運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動;
運行級別1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登錄;
運行級別2:多用戶狀態(沒有NFS),不支持網絡;
運行級別3:完全的多用戶狀態(有NFS),登錄后進入控制臺命令行模式;
運行級別4:系統未使用,保留;
運行級別5:X11控制臺,登錄后進入圖形GUI模式;
運行級別6:系統正常關閉/重啟,默認運行級別不能設為6,否則不能正常啟動;
開機流程:開機–>BIOS–>/boot–>init進程–>運行級別–>運行級別對應的服務;
chkconfig指令:
通過chkconfig指令可以給每個服務的各個運行級別設置自啟動/關閉。
查看所有服務:systemctl list-unit-files
查看服務的運行狀態:chkconfig 服務名 --list; / chkconfig --list | grep xxx;
centos7:systemctl status 服務名;
給某個服務的運行級別設置自啟動/關閉:chkconfig --level 5 服務名 on/off;
systemctl list-dependencies [運行級別名稱];
systemctl disable sshd.service;
eg:
tips:chkconfig只能查看非系統級別的服務運行級別。
7. 動態監控進程
top命令:top與ps很相似,都是用來顯示正在執行的進程。but top在執行一段時間可以更新正在運行的進程。
top [選項]:
選項:
-d 秒數 指定top命令每隔幾秒更新,默認是3秒在top命令的交互模式中可以執行命令;
-i 使top不顯示任何閑置/僵死進程;
-p 通過指定監控進程ID來僅僅監控某個進程的狀態。
交互操作:
P 以CPU使用率排序,默認此項;
M 以內存的使用率排序;
N 以PID排序;
q 退出top。
eg1:監視特定用戶:
1.輸入top查看執行的進程:
-22:04:42為當前時間;up 22:21為運行時間;1 user 為當前登錄系統用戶數;CPU%:0.0us為用戶使用,0.3sy為系統使用,99.7id為空閑;Mem:內存使用情況(每隔3s自動刷新)。
2.輸入“u”,再輸入用戶名:root/其他想監控的用戶;
3.q退出。
eg2:終止指定的進程:
1.輸入top,查看執行的進程;
2.輸入“k”,再輸入要結束的進程ID號;
3.q退出。
eg3:指定系統狀態更新的時間為1s:top -d 1;
8. 監控網絡狀態
查看系統網絡情況netstat:
netstat [選項]
選項:
-an 按一定順序排列輸出;
-p 顯示哪個進程在調用;
netstat -anp:查看系統所有的網絡服務,可用 | less 或 | more分頁;
查看服務名為sshd的信息:netstat -anp | grep sshd;
9. RPM包和YUM包
RPM包的管理:
RPM包是一種用于互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.RPM擴展名的文件。RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫。
Linux的分發版本都有采用(suse,redhat,centos等)。
a. rpm包的簡單查詢指令:
查詢已安裝的RPM列表:rpm -qa | grep xx;(qa=query all)
eg:查詢Linux是否安裝firefox:rpm -qa | grep firefox;
b. rpm包名基本格式:
一個rpm包名:firefox-78.8.0-1.el7.centos.x86_64;
名稱:firefox;
版本號:-78.8.0-1;
使用操作系統:el7.centos.x86_64;
表示centos7.x的64位系統,若是i686、i386表示32位系統,noarch表示通用。
c. rpm包的其他查詢指令:
rpm -qa:查詢所安裝的所有rpm軟件包;
rpm -qa | more;
rpm -qa | grep X[rpm -qa | grep firefox];
rpm -q 軟件包名:查詢軟件包是否安裝;
rpm -qi 軟件包名:查詢軟件包信息;
rpm -ql 軟件包名:查詢軟件包中的文件;
rpm -qf 文件全路徑名:查詢某個文件所屬的軟件包;
rpm -qf /etc/passwd;
rpm -qf /root/install.log;
卸載rpm包:
卸載rpm包:rpm -e RPM包的名稱;
1.刪除firefox 軟件包:
2.如果其他軟件包依賴于要卸載的軟件包,卸載時會產生錯誤信息;
如 $ rpm -e foo;
如果非要刪除foo這個rpm包,可以增加參數--nodeps,可以強制刪除,一般不推薦~~,依賴于這個軟件包的程序可能會無法運行。
eg:$ rpm -e --nodeps foo;
安裝rpm包:
安裝rpm包:rpm -ivh RPM包全路徑名稱;
i=install 安裝;
v=verbose 提示;
h=hash 進度條;
YUM包:
yum是一個Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包。
yum基本指令:
查詢yum服務器是否有需要安裝的軟件:yum list | grep xx軟件列表;
安裝指定的yum包:yum install xxx;
總結
以上是生活随笔為你收集整理的Linux常用指令总结二~~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 2155 Matrix 二维线段
- 下一篇: XCode调试错误