linux常用命令大全--非常詳細

功能:查看文件或目錄的信息
命令:ls [-ahld] [文件或目錄]
a:顯示所有文件,包括隱藏文件
l:詳細信息顯示
h:顯示詳細信息後,以m來顯示文件或目錄的大小
d:查看目錄屬性
例子:ls -lh


功能:創建新目錄
命令:mkdir [-p] [目錄名]
p:遞歸創建
例子:mkdir -p /a/b/c
例子(創建多個目錄):mkdir -p /data/redis_data/{7000,7002,7004}


功能:切換到指定的目錄
命令:cd [目錄]
例子:cd /root


功能:顯示當前目錄
命令:pwd
例子:pwd -> /a/b/c


功能:刪除空目錄
命令:rmdir [目錄名]
例子:rmdir	/a/b/c


功能:創建空文件(如果該文件已存在,則取消操作)
命令:touch [文件名]
例子:touch /a/a1.txt


功能:複製文件或目錄
命令:cp [-rp] [原文件或目錄] [目標目錄]
r:複製目錄
p:保留文件屬性
例子:cp -rp /a/a1.txt /b/b1.txt


功能:剪切文件或目錄(改名)
命令:mv [原文件或目錄] [目標目錄]
例子:mv /a/a1.txt /b/b1.txt


功能:刪除文件(或目錄)
命令:rm [-rf] [文件或目錄]
r:刪除目錄
f:強制執行
例子:rm -rf /a/a1.txt


功能:顯示文件內容
命令:cat [-n] [文件名]
n:顯示行號
例子:cat -n /a/a1.txt


功能:顯示文件內容(倒序)
命令:tac [文件名]
例子:tac a1.txt


功能:分頁顯示文件內容
命令:more [文件名]
說明:回車鍵換行,空格鍵翻頁,q鍵退出
例子:more /etc/httpd/conf/httpd.conf


功能:分頁顯示文件內容
命令:less [文件名]
說明:上下鍵換行,左右鍵翻頁,q鍵退出
例子:less /etc/httpd/conf/httpd.conf


功能:顯示文件的前面幾行
命令:head [-n] [文件名]
n:指定行數
例子:head -10 /etc/httpd/conf/httpd.conf


功能:顯示文件的後面幾行
命令:tail [-nf] [文件名]
n:指定行數
f:動態顯示文件末尾的內容
例子:tail -10f /etc/httpd/conf/httpd.conf


功能:生成鏈接文件(快捷方式)
命令:ln [-s] [原文件] [目標文件]
s:創建軟鏈接
說明:軟鏈接可以用於文件或目錄,硬鏈接只能用於文件(不能跨分區)
例子:
軟鏈接:ln -s a1.txt a1.txt.soft
硬鏈接:ln a1.txt a1.txt.hard


功能:改變文件或目錄的權限
命令:chmod [-R] [數字] [文件或目錄]
R:遞歸修改
例子:chmod -R 755 a


功能:改變文件或目錄的所有者
命令:chown [用戶] [文件或目錄]
例子:chown lj01 /a


功能:改變文件或目錄的所屬組
命令:chgrp [用戶] [文件或目錄]
例子:chgrp lj01 /a


功能:顯示當前目錄的默認權限
命令:umask [-S]
S:以rwx形式來顯示權限
例子:
rwx格式:umask -S
數字格式:umask(數字權限=777-該命令的結果數值的後三位)


功能:文件搜索
命令:find [選項] [匹配條件]
name:文件名
iname:文件名(不區分大小寫)
例子:find /a/ -iname a1.txt
size:文件大小(+n:大於,-n:小於,=:等於)
例子:find /a/ -size +1k
user:所有者名稱
group:所屬組名稱
例子:find /a/ -user lj01
amin:創建時間
cmin:文件屬性
mmin:文件內容
例子:find /a/ -amin -3(在當前目錄下查找3分鐘內創建的文件和目錄)
type:文件類型(f:文件,d:目錄,l:軟鏈接)
例子:find /a/ -type l
a:與
o:或
例子:find /a/ -size +3k -a -size -5k
inum:i節點


功能:在文件資料庫中查找文件
命令:locate [文件或目錄]
例子:locate a1.txt


功能:搜索命令所在目錄及其別名信息
命令: which [命令]
例子:which ls
例子:which phpize


功能:搜索命令所在目錄及幫助文檔路徑
命令: whereis [命令]
例子:whereis ls


功能:在文件中搜索字符串匹配的行並輸出
命令:grep [-ivn] [字符串] [文件]
i:不區分大小寫
v:排除指定的字符串
n:顯示行號
例子:grep -ivn ll /a/a1.txt


功能:獲取幫助信息
命令:man [命令或配置文件]
例子:man ls


功能:獲取shell內置命令的幫助信息
命令:help [命令]
例子:help umask


功能:添加新用戶
命令:useradd [用戶名]
例子:useradd lj02


功能:設置用戶的密碼
命令:passwd [用戶名]
例子:passwd lj02


功能:修改用戶的密碼狀態
命令:passwd [-Slu] [--stdin] [用戶名]
S:查看密碼狀態(僅root用戶可用)
l:暫時鎖定用戶(僅root用戶可用)
u:解鎖用戶(僅root用戶可用)
--stdin:把管道符輸出的數據作爲用戶的密碼
例子:echo "hx01" | passwd --stdin hx001


功能:刪除用戶
命令:userdel [-r] [用戶名]
r:刪除用戶的同時刪除其家目錄
例子:
刪除用戶:userdel lj01
刪除用戶及其家目錄:userdel -r lj01


功能:修改用戶的信息
命令:usermod [-ucGLU] [用戶名]
u:修改用戶的id
c:修改用戶的說明
G:修改用戶的附加組
L:臨時鎖定用戶(修改/etc/shadow文件的密碼字段,字段開頭添加了!符號)
U:解鎖用戶(修改/etc/shadow文件的密碼字段,字段開頭刪除了!符號)
例子:usermod -L lj01


功能:修改用戶的密碼狀態
命令:chage [-ldmMWIE] [用戶名]
l:列出用戶的詳細密碼狀態
d:最後一次修改密碼的日期(shadow文件的第三字段)
m:倆次密碼修改的間隔時間(shadow文件的第四字段)
M:密碼的有效期(shadow文件的第五字段)
W:密碼過期前的警告天數(shadow文件的第六字段)
I:密碼過期後的寬限天數(shadow文件的第七字段)
E:帳號過期時間(shadow文件的第八字段)
例子:chage -l lj01


功能:查看用戶的id,初始組id,附加組id
命令:id [-ugG] [用戶名]
u:查看用戶的id
g:查看用戶的初始組id
G:查看用戶的附加組
例子:
查看所有的id信息:id lj01
查看用戶的id:id -u lj01
查看用戶的初始組id:id -g lj01


功能:切換用戶的身份
命令:su [-] [用戶名] [-c]
例子:
只切換賬號:su hx
切換賬號和用戶的環境變量:su - hx
只執行一次命令,而不切換身份:su - root -c "useradd hx001"


功能:查看登錄用戶的基本信息
命令:who
例子:who


功能:查看登錄用戶的詳細信息
命令:w
例子:w


功能:壓縮文件(壓縮後文件格式:.gz),不保留原文件
命令:gzip [文件]
例子:gzip /a/a3.txt


功能:解壓縮.gz格式的壓縮文件,不保留原壓縮文件
命令:gunzip [壓縮文件]
例子:gunzip /a/a3.txt.gz


功能:壓縮目錄,保留原文件
命令:tar [-cvf] [壓縮後的文件名] [目標目錄]
c:打包
v:顯示詳細信息
f:指定文件名
例子:tar -cvf a1.tar a1(要在當前目錄下操作,防止打包錯誤;選項的順序不能錯誤cvf)


功能:解壓縮.tar格式的壓縮文件,保留原壓縮文件
命令:tar [-xvf] [壓縮文件] 
x:解包
v:顯示詳細信息
f:指定文件名
例子:tar -xvf a1.tar(選項的順序不能錯誤xvf)


功能:安裝zip和unzip命令
命令:yum -y install unzip zip


功能:壓縮文件或目錄,保留原文件
命令:zip [-r] [壓縮後的文件名] [文件或目錄]
r:壓縮目錄
例子:zip -r /a/a1.zip /a/a1


功能:解壓縮.zip格式的壓縮文件,保留原壓縮文件
命令:unzip [壓縮文件]
例子:unzip /a/a1.zip


功能:壓縮文件(壓縮後的文件格式:.bz2)
命令:bzip2 [-k] [文件] 
k:產生壓縮文件後保留原文件
例子:bzip2 -k /a/a3.txt


功能:解壓縮.bz2格式的壓縮文件
命令:unzip [壓縮文件]
k:解壓後保留原壓縮文件
例子:bunzip2 -k /a/a3.txt


功能:給在線的用戶發信息,以ctrl+d保存結束
命令:write [用戶名]
例子:write hx


功能:發廣播信息
命令:wall [信息]
例子:wall hello,boy,good luck!


功能:測試網絡連通性
命令:ping [-c] [ip地址]
c: 指定發送的次數
例子:ping -c 3 47.254.130.34


功能:查看和設置網卡信息
命令:ifconfig [網卡名稱] [ip地址]
例子:
查看網卡信息:ifconfig
設置網卡:ifconfig eth0 61.153.188.131;(謹慎設置網卡,會被踢出)


功能:查看或發送郵件
命令:mail [用戶名]
例子:
查看郵件:mail
發送郵件:mail hx


功能:列出目前和過去登錄系統的用戶信息
命令:last
例子:last


功能:修改主機名稱
命令:vi /etc/hostname
例子:
vi /etc/hostname
修改爲hjx2019,保存/etc/hostname文件後,重啓服務器


功能:查看某用戶最近一次的登錄時間
命令:lastlog [-u] [用戶名或用戶id]
例子:
用戶名:lastlog -u lj
用戶id:lastlog -u 1000


功能:測試IP和端口是否能訪問
命令:wget ip:port 
例子:wget 47.103.3.29:3306


功能:顯示數據包到主機的路徑
命令:traceroute [主機的ip地址]
例子:traceroute 61.153.188.131


功能:顯示網絡相關信息
命令:netstat [-tulrn]
a:顯示所有選項,默認不顯示LISTEN相關
t:tcp協議
u:udp協議
l:監聽
r:路由
n:顯示ip地址和端口號
p:顯示建立相關鏈接的程序名
例子:netstat -t


功能:配置網絡
命令:setup
例子:setup


功能:掛載設備
命令:mount [-t] [文件系統] 設備文件名 掛載點
例子:mount -t iso9660 /dev/sr0 /mnt/cdrom


功能:關機和重啓
命令:shutdown [-chr]
c:取消前一個命令
h:關機
r:重啓
例子:shutdown -r now;(立即重啓)


功能:退出系統
命令:logout
例子:logout


RPM包命名規則(查詢未安裝的rpm包要用其包全名httpd-2.2.15-15.e16.centos.1.i686.rpm,已安裝的用其簡稱httpd)
名稱:
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd:軟件包名
2.2.15:軟件版本
15:軟件發佈的次數
e16.centos:適合的linux平臺
i686:適合的硬件平臺
rpm:擴展名
RPM模塊依賴查詢網站:http://www.rpmfind.net


功能:安裝rpm包
命令:rpm -ivh [包全名]
i:安裝
v:顯示詳細信息
h:顯示進度
例子:rpm -ivh httpd-2.2.15-15.e16.centos.1.i686.rpm


功能:升級rpm包
命令:rpm -Uvh [包全名]
U:升級
v:顯示詳細信息
h:顯示進度
例子:rpm -Uvh httpd-2.2.16-15.e16.centos.1.i686.rpm


功能:卸載rpm包
命令:rpm -e [包全名]
e:卸載
例子:rpm -e httpd-2.2.16-15.e16.centos.1.i686.rpm


功能:查詢rpm包的信息
命令:rpm [-qlai] [包名]
q:查詢已安裝的rpm包
p:查詢未安裝的rpm包
l:列表
a:所有
i:詳細信息
例子:
查詢已安裝的rpm包:rpm -qi httpd
查詢已安裝的所有rpm包:rpm -qai
查詢未安裝的rpm包:rpm -pl httpd


功能:查詢文件屬於哪個軟件包
命令:rpm [-qf] [文件名]
q:查詢
f:文件
例子:rpm -qf /etc/httpd/conf/httpd.conf 


功能:查詢軟件包的依賴性
命令:rpm [-qRp] [軟件包名]
q:查詢
R:依賴性
p:未安裝
例子:rpm -qR httpd


功能:檢驗rpm包中的文件
命令:rpm [-V] [包名]
V:檢驗
例子:rpm -V httpd
顯示結果(是否改變):
S:文件大小
M:文件的類型或文件的權限
5:文件的內容
D:從代碼
L:文件路徑
U:文件的所有者
G:文件的所屬組
T:文件的修改時間
文件類型:
c:配置文件
d:普通文件
g:鬼文件(rpm包不應該包含該文件)
l:授權文件
r:描述文件


功能:從rpm包中提取想要的文件
命令:rpm2cpio [包名] | cpio [-idv] [目標目錄]
i:還原
d:還原時自動新建目錄
v:顯示還原過程
例子:rpm2cpio /a/coreutils-8.22-18.el7.x86_64 | cpio -idv /bin/ls


功能:查詢所有可用的軟件包
命令:yum [list]
list:列表
例子:yum list


功能:查詢網上所有和搜索軟件包相關的軟件包
命令:yum [search] [軟件包]
search:查詢
例子:yum search httpd


功能:yum命令操作軟件包
命令:yum -[y] [-install,-update,-remove] [軟件包]
y:自動回答yes
install:安裝
update:升級
remove:卸載
例子:yum -y install gcc


功能:yum操作軟件組
命令:yum [grouplist,groupinstall,groupremove] [組名]
例子:
查詢所有可用的軟件組名:yum grouplist
安裝指定的軟件組:yum groupinstall aKfgpqVcdLilsiv(組名由yum grouplist查詢所得)
卸載指定的軟件組:yum groupremove aKfgpqVcdLilsiv(組名由yum grouplist查詢所得)


功能:查看本機公網ip
命令:curl cip.cc


功能:查看端口開放情況
命令:iptables -L -n


功能:查看端口被什麼程序佔用
命令:ss -lntpd|grep :端口號
例子:ss -lntpd|grep :22


功能:清空文件全部內容
命令:echo > [文件名]
例子:echo > /root/a.txt


功能:查看linux內核的版本		
命令:lsb_release -a


用戶信息文件:/etc/passwd
第一字段:用戶名稱
第二字段:密碼標誌
第三字段:uid(用戶id)
第四字段:gid(用戶初始組id)
第五字段:用戶說明
第六字段:家目錄
第七字段:登錄之後的shell(命令解釋器)


影子文件:/etc/shadow
第一字段:用戶名稱
第二字段:加密的密碼("!!"或"*"則代表沒有密碼,無法登錄)
第三字段:密碼最後一次的修改日期(以1970年1月1日爲標準時間,每過一天時間戳加1)
第四字段:倆次密碼修改的間隔時間(和第三字段相比)
第五字段:密碼有效期(和第三字段相比)
第六字段:密碼修改到期前的警告天數(和第五字段相比)
第七字段:密碼過期後的寬限天數(和第五字段相比.0:密碼過期後馬上失效;-1:密碼永遠不會失效)
第八字段:帳號的失效時間(用時間戳表示)
第九字段:預留(暫無任何功能)


功能:把時間戳換算爲日期:
命令的例子:date -d "1970-01-01 17891 days"


功能:把日期換算爲時間戳
命令的例子:echo $(($(date --date "2018/12/26" +%s)/86400+1))


功能:將日期轉換爲Unix時間戳
例子:
普通格式:date +%s
指定的格式:date -d "2018-5-20 05:20" +%s

功能:將Unix時間戳轉換爲日期
例子:
普通的格式:date -d @1561542596
指定的格式:date -d @1561542596 +"%Y-%m-%d %H:%M:%S";(指定日期格式的轉換)


功能:查看acl權限
命令:getfacl [文件或目錄]
例子:getfacl /a/a4.txt


功能:設置acl權限
命令:setfacl [-mxbk] [-d] [用戶或用戶組] [-R] [文件或目錄]
m:設置acl權限(m也就是mask是指定最大有效權限->最高優先級別的限制)
x:刪除指定的acl權限
b:刪除所有的acl權限
k:刪除默認的acl權限
R:遞歸設置acl權限(當前父目錄的子孫擁有和父目錄一樣的acl權限)
d:設定默認的acl權限(所有新建的子孫和父目錄的acl權限一樣)
例子:
給用戶設置acl權限:setfacl -m u:hx:rwx /a/a4.txt(格式->u:用戶名:權限)
給用戶組設置acl權限:setfacl -m g:hx:rwx /a/a4.txt(格式->g:用戶組名:權限)
設置最大的acl權限:setfacl -m m:rx /a/a4.txt(防止用戶設置的acl權限過高)
刪除指定用戶的acl權限:setfacl -x u:hx /a/a4.txt
刪除指定用戶組的acl權限:setfacl -x g:hx /a/a4.txt
刪除所有的acl權限:setfacl -b /a/a4.txt
遞歸設置的acl權限:setfacl -m u:hx:rx -R  /a/b
設置默認的acl權限:setfacl -m d:u:hx:rx /a/b


功能:命令執行者在執行二進制程序的過程中獲得該程序文件的所屬者的身份
介紹:SetUid權限只用於可執行的二進制程序
命令1:ll /usr/bin/passwd
顯示1:-rwsr-xr-x(擁有SetUid權限,所以普通用戶也可以修改自己的密碼)
命令2:ll /bin/cat
顯示2:-rwx-xr-x(沒有SetUid權限,所以普通用戶不能用cat命令查看/etc/shadow文件)


功能:設置SetUid權限
命令:chmod [權限] [二進制文件]
例子:
數字格式:chmod 4755 /a/b/c1.sh
字母格式:chmod u+s /a/b/c2.sh


功能:取消SetUid權限
命令:chmod [權限] [二進制文件]
例子:
數字格式:chmod 755 /a/b/c1.sh
字母格式:chmod u-s /a/b/c2.sh


功能:命令執行者在執行二進制程序的過程中獲得該程序文件的所屬組的身份
介紹:SetGid權限只用於可執行的二進制程序
命令1:ll /usr/bin/locate
顯示1:-rwx--s-x;
命令2:ll /var/lib/mlocate/mlocate.db
顯示2:-rwx-xr-x;
(執行/usr/bin/locate命令時,組身份升級,所以普通用戶也可以查看mlocate.db數據庫)


功能:設置SetGid權限
命令:chmod [權限] [二進制文件]
例子:
數字格式:chmod 2755 /a/b/c1.sh
字母格式:chmod g+s /a/b/c2.sh


功能:取消SetGid權限
命令:chmod [權限] [二進制文件]
例子:
數字格式:chmod 755 /a/b/c1.sh
字母格式:chmod g-s /a/b/c2.sh


功能:在擁有粘着位的目錄下,除了root用戶,其他用戶只能刪除自己建立的文件
介紹:粘着位sbit只用於目錄


功能:設置粘着位
命令:
數字格式:chmod 1755 /a/b
字母格式:chmod o+t /a/b


功能:取消粘着位
命令:
數字格式:chmod 755 /a/b
字母格式:chmod o-t /a/b


功能:查看文件或目錄的系統屬性
命令:lsattr [-ad] [文件或目錄
a:顯示所有的文件和目錄的屬性
d:如果目標是目錄,則只列出目標自己的屬性
例子:lsattr -d /a/b


功能:設置文件或目錄的系統屬性
命令:chattr [+-=] [-ia] [文件或目錄]
+:增加權限
-:刪除權限
=:等於某權限
i:
文件->無法對文件執行w操作;
目錄->只能修改目錄下的子孫,但不能建立和刪除;
a:
文件->只能添加數據,但不能修改和刪除;
目錄->只能在目錄下建立和修改子孫,但不能刪除;
例子:chattr +i /a/b


介紹:sudo權限的操作對象是系統命令,把root用戶才能執行的命令賦予普通用戶也能執行;
配置sudo必須通過編輯/etc/sudoers文件,該文件只要root用戶才能打開,visudo命令可以打開文件/etc/sudoers


功能:獲取sudo權限(只能通過修改sudo的配置文件來獲取sudo權限)
步驟:
第一步:使用visudo命令打開/etc/sudoers文件(命令:visudo)
第二步:添加上一行你需要的sudo權限
格式說明:
1:用戶	ip地址=(可使用的身份)	授權的命令
2:lj   ALL=(ALL)  ALL
3:用戶組	ip地址=(可使用的身份)	授權的命令
4:%hx	ALL=(ALL)  ALL
例子:
賦予指定的用戶擁有全部命令的權限:hx ALL=(ALL) ALL
賦予指定的用戶擁有部分命令的權限:hx ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel


功能:查看文件系統信息
命令:df [-ahTmk] [掛載點]
a:顯示所有的文件系統信息
h:使用習慣的單位來顯示容量
T:顯示文件系統類型
m:以mb爲單位顯示容量
k:以kb爲單位顯示容量(默認選項)
例子:df -Tm /boot


功能:統計文件或目錄的磁盤佔用量
命令:du [-ahs] [文件或目錄]
a:同時顯示其子孫的磁盤佔用量
s:只統計總的磁盤佔用量(不顯示子孫的)
h:使用習慣單位顯示磁盤佔用量
例子:du -s /boot


解釋:
df命令:面向文件系統的,不僅計算文件或目錄佔用的空間,還計算命令或程序佔用的空間(最常見的就是文件已經刪除,但命令或程序還沒有釋放空間);
du命令:面向文件的,只計算文件或目錄佔用的空間;


功能:修復文件系統
命令:fsck [-ay] [分區設備文件名]
a:自動修復文件系統
y:自動修復文件系統(有些文件系統不支持a選項只支持y選項)
例子:
fsck -y /dev/vda2;
fsck -y devtmpfs;


功能:顯示磁盤狀態
命令:dumpe2fs [分區設備文件名]
例子:dumpe2fs /dev/vda2


功能:掛載使用和卸載光盤
步驟:
第一步:建立掛載點(命令:mkdir /mnt/cdrom/)
第二步:掛載光盤(命令:mount -t iso9660 /dev/cdrom /mnt/cdrom/)
第三步:卸載光盤(命令:umount /mnt/cdrom/)


功能:查看U盤設備文件名
命令:fdisk [-l]
l:詳細信息
例子:fdisk -l

功能:掛載使用和卸載U盤
步驟:
第一步:建立掛載點(命令:mkdir /mnt/usb/)
第二步:掛載U盤(命令:mount -t vfat /dev/sdb1 /mnt/usb/)
第三步:卸載U盤(命令:umount /mnt/usb/)


功能:掛載
命令:mount [-to] [-L] [卷標名]
t:指定文件系統(ext3,ext4,iso9660等文件系統)
o:可以指定掛載的額外選項(exec/noexec,rw/ro,remount等等)
L:掛載指定卷標的分區,而不是掛載設備文件名
例子:mount -o remount,exec /home


功能:支持NTFS文件系統(linux默認不支持NTFS文件系統)
步驟:
第一步:去NTFS-3G網站下載壓縮包
第二步:解壓(tar -zxvf 壓縮包)
第三步:進入解壓出來的目錄(cd 解壓目錄)
第四步:編譯安裝(編譯器準備:./configure;編譯:make;安裝:make intall);
第五步:開始使用(mount -t ntfs-3g 分區設備文件名 掛載點)


功能:查看歷史命令(歷史命令默認最多保存1000條,可以在環境變量配置文件/etc/profile中修改上限條數)
命令:history [-cw] [歷史命令保存文件->~/.bash_history]
c:清空歷史命令
w:把緩存中的歷史命令寫入歷史命令保存文件(不需要重啓服務器)
例子:
清空歷史命令:history -w
把緩存中的歷史命令寫入歷史命令保存文件:history -w ~/.bash_history


功能:查詢命令別名
命令:alias
例子:alias


功能:設置命令的別名(重啓服務器後失效)
命令:alias [別名]=["原命令"]
例子:alias list="ls"


功能:刪除別名
命令:unalias [別名]
例子:unalias list

介紹:想要讓命令的別名永久生效,可以修改配置文件(超級管理員:/root/.bashrc;普通用戶:/home/用戶名/.bashrc,例子:/home/lj/.bashrc)


功能:統計文件的一些信息
c:統計字節數
w:統計單詞數
l:統計行數
命令:wc [-cwl] [文件]
例子:wc -w /etc/profile


功能:對文件內容進行排序
命令:sort [-fnrt] [-k m,n]   [文件]
f:忽略大小寫
n:以數值進行排序(默認使用字母進行排序)
r:反向排序
t:用分隔符(默認是製表符)來分割獲取字段;例如一列的值爲aa:bb:cc,用符號:來分割這一列則字段一爲aa,字段二爲bb,字段三爲cc
-k m,n:按照指定的列範圍進行排序(從第m列開始,第n列結束,沒寫n的話默認是列尾)
例子:sort -n -t ":" -k 3,4 /etc/passwd
sort -n -t $'\t' -k 3,4 a1.txt

功能:搜索文件裏的某個內容
命令:grep [-inv] [--color=auto] ["搜索內容"] [文件]
i:忽略大小寫
n:輸出行號
v:反向搜索
--color=auto:搜索出的關鍵字用顏色顯示(默認已經有的選項,可不加)
例子:grep -i --color=auto "httpd" /etc/httpd/conf/httpd.conf 


功能:提取文件中的列(侷限性:面對製表符tab這種多個空格的時候,無法正確獲取想要的列)
命令:cut [-fd] [文件]
f:提取某些列
d:按照指定的分隔符來分隔列
例子:cut -f 2,3,5 -d ":" /etc/passwd


功能:查看當前系統的運行級別
命令:runlevel
例子:runlevel
解釋:
1:單用戶模式(安全模式)
2:不完全的命令行模式(不含NFS服務)
3:完全的命令行模式(標準模式)
4:系統保留
5:吐血模式
6:重啓


功能:改變當前系統的運行級別
命令:init 運行級別
例子:init 3


功能:執行腳本文件的方法
方法1:命令chmod賦予文件可執行權限(chmod 755 1.sh),執行方式(./1.sh)
方法2:bash 1.sh


功能:查看rsyslogd日誌服務功能是否啓動
例子:ps aux | grep rsyslogd


Bash常用快捷鍵
ctrl+a:光標移動到命令開頭
ctrl+e:光標移動到命令結尾
ctrl+c:終止當前命令
ctrl+l:清屏(相當於clear命令)
ctrl+d:退出服務器
ctrl+r:搜索歷史命令
ctrl+u:剪切光標之前的內容
ctrl+k:剪切光標之後的內容
ctrl+y:粘貼ctrl+u和ctrl+k剪切的內容


RPM包的軟件的默認安裝路徑
/etc/:默認文件
/usr/bin/:可執行命令
/usr/lib/:程序所使用的函數庫
/usr/share/doc/:軟件使用手冊
/usr/share/man/:幫助文件


用vi打開/etc/fstav文件
第一字段:UUID(硬盤通用唯一識別碼)
第二字段:掛載點
第三字段:文件系統名稱
第四字段:掛載參數
第五字段:指定分區是否被dump備份(0:不備份;1:每天備份;2:不定期備份)
第六字段:指定分區是否被fsck檢測(0代表不檢測;其他大於0的數字代表檢測的優先級,數字越小越優先)


功能:多條命令執行
說明:使用分號;或&&
例子:cd /temp/log/;rm -rf *
注意:如果temp/log目錄不存在,並且恰巧當前目錄是根目錄/,則會清空整個根目錄下的文件.
因爲;可以執行多條命令,但是不會因爲前一條命令失敗,而導致後面的不會執行.
使用&&會確保前一條命令執行成功,纔會執行後面一條.
例子:cd /temp/log/ && rm -rf *


功能:查看已經登錄的用戶
命令:w
例子:w


功能:查看系統中所有的進程
命令:
BSD操作系統格式:ps aux
linux標準命令格式:ps -le 
例子:ps aux


功能:查看系統健康狀態
命令:top
例子:top


功能:查看進程樹
命令:pstree [-pu]
p:顯示進程的pid
u:顯示進程的所屬用戶
例子:pstree -p


功能:查看可用的進程信號
命令:kill -l
例子:kill -l


功能:操作進程的常用命令kill
命令:kill [選項] [進程的pid]
選項(信號):自行百度那些數字信號
例子:
重啓進程:kill -1 223345
強制殺死進程: kill -9 223345


功能:操作進程的常用命令killall
命令:killall [-i] [-I] [進程名]
i:會詢問是否要殺死進程
I:忽略進程名的大小寫
例子:killall -i -I HTtpd


功能:殺死進程(例子:踢掉已經登錄的用戶)
命令:pkill [-t] [選項]  [進程名]
t:終端號
選項(信號)
例子:pkill -t 9 pts/1(強制殺死從pts/1虛擬終端登錄的進程,也就是踢出系統)


功能:把進程放入後臺
命令:[命令行] &
備註:腳本的執行會隨着ssh會話的退出而退出 
例子:tar -zcf /b.tar.gz /etc &


功能:不掛斷的運行進程
命令:nohup [命令行] 
備註:永久運行,不會隨着ssh會話的退出而退出
例子:nohup tar -zcf /b.tar.gz /etc


功能:把進程放入後臺,並且不掛斷的運行
命令:nohup [命令行] &
備註:永久運行,不會隨着ssh會話的退出而退出
例子:nohup sh test.sh &


功能:查看後臺的工作
命令:jobs [-l]
l:顯示工作的pid
例子:jobs -l
注意:符號+代表最後一個放入後臺的工作,符號-代表倒數第二個放入後臺的工作


功能:將後臺暫停的工作恢復到前臺執行
命令:fg [工作號]
工作號:後臺運行的工作的id號,不是進程的pid
例子:fg 1


功能:把後臺暫停的工作恢復到後臺執行
命令:bg [工作號]
例子:bg 2
注意:目標工作不能和前臺有交互的(top命令這種在界面顯示的就不行)


功能:監控系統資源
命令:vmstat [刷新延時] [刷新次數]
例子:vmstat 1 3


功能:查看開機時,內核的檢測信息
命令:dmesg
例子:dmesg | grep CPU


功能:查看內存和交換分區swap的使用情況
命令:free [-b|-k|-m|-g]
選項[-b|-k|-m|-g]:以指定的單位來顯示內存使用的大小
例子:free -m


功能:查看cpu信息
命令:cat /proc/cpuinfo 
例子:cat /proc/cpuinfo 


功能:查看cpu的id
命令:dmidecode -t 4 | grep ID
例子:dmidecode -t 4 | grep ID 


功能:查看串口名稱
命令:ls -l /dev/ttyS*
例子:ls -l /dev/ttyS*


功能:查看串口是否可用,可以對串口發送數據
命令:echo 數據 > 串口
例子:echo hjx2019 > /dev/ttyS0


功能:顯示系統的啓動時間和平均負載
命令:uptime
例子:uptime
額外:也就是top命令的第一行,w命令也可以查看到這個信息


功能:查看系統和內核的相關信息
命令:uname [-ars]
a:查看系統的所有信息
r:查看內核版本
s:查看內核名稱
例子:uname -a


功能:判斷當前系統的位數(查看是32位的還是64位)
命令:file /bin/ls
例子:file /bin/ls


功能:查看進程打開或使用的文件信息
命令:lsof [-cup]
c:只列出某個字符串開頭的進程打開的文件
u:只列出某個用戶的進程打開的文件
p:只列出某個pid的進程打開的文件
例子:lsof -u lj


功能:查看rsyslogd日誌服務是否啓動
例子:ps aux | grep rsyslogd


功能:查看rsyslogd日誌服務的配置文件
例子:vi /etc/rsyslog.conf


功能:操作系統定時任務
命令:crontab [-elr]
e:編輯crontab定時任務
l:查詢crontab定時任務
r:刪除當前用戶的所有crontab定時任務
例子:crontab -e(打開定時任務的配置文件)
編輯的內容:* * * * * 命令或程序
第一字段:第幾分鐘(0-59)
第二字段:第幾小時(0-23)
第三字段:第幾天(1-31)
第四字段:第幾月(1-12)
第五字段:星期幾(0-7,其中0和7都代表星期日)
第六字段:命令或程序
特殊符號:
*:任何時間
,:用符號,分隔的幾個時間
-:連續的時間範圍
*/n:每隔多久執行一次
第二步:寫入需要的定時任務(*/1 * * * * /bin/date >> /b/crond1.txt)
第三步:啓動定時任務(命令:systemctl start crond)
例子:
每天凌晨0點執行:0 0 * * * cd /www/wwwroot/netpump && php think year_report


功能:備份
命令:dump [-level] [-uvjw] [-f] [備份之後的文件名] [原文件]
level:備份級別,有0-9十個備份級別(0:完全備份;1:增量備份)
u:備份成功後,把備份時間記錄在/etc/dumpdates文件中
v:顯示備份過程中的詳細信息
j:把備份文件壓縮成.bz2格式
w:查看被dump的分區的備份等級和備份時間
例子:
完全備份根分區:dump -0uj -f /root/gen.bak.bz2 /
增量備份根分區:dump -1uj -f /root/gen.bak1.bz2 /
完全備份boot目錄:dump -0j -f /root/boot.bak.bz2 /boot(備份文件和目錄只能用完全備份0)


功能:操作被dump備份的文件
命令:restore [-Citr] [-f] [備份文件名]
C:比較備份數據和實際數據的變化
i:進入交互模式手工選擇需要恢復的文件
t:查看備份文件中擁有哪些數據
r:還原數據
f:指定備份文件名
例子:
比較備份數據和實際數據的變化:restore -C -f /root/boot.bak.bz2 
查看備份文件中擁有哪些數據:restore -t -f /root/boot.bak.bz2
還原數據:新建一個目錄來存放還原後的文件,然後執行還原數據的命令(restore -r -f /root/boot.bak.bz2)


vi編輯器的使用
一.插入命令
a:在光標所在的字符後插入
A:在光標所在的行尾插入
i:在光標所在的字符前插入
I:在光標所在的行首插入
o:在光標所在的行下插入新行
O:在光標所再的行上插入新行
二.定位命令
0:移至行首
$:移至行尾
:set nu:設置行號
:set nonu:取消行號
gg:到第一行
G:到最後一行
:n:到第n行
三.刪除命令
x:刪除光標所在處的字符
nx:刪除光標所在處後的n個字符
dd:剪切光標所在行
ndd:從當前行開始,剪切n行
D:刪除光標所在處到行尾內容
dG:刪除光標所在行到文件末尾內容
:n1,n2d:刪除指定指定訪問的行,n1到n2
四.複製粘貼命令
yy:複製當前行
nyy:從當前行開始,複製n行
p:粘貼在當前光標所在行的下面
P:粘貼在當前光標所在行的上面
五.替換和取消命令
r:替換光標所在處的字符
R:從光標所在處開始替換字符,按esc鍵結束
u:取消上一步操作
六.搜索和搜索替換命令
/string:搜索指定的字符串
:set ic:搜索時忽略大小寫
n:搜索的指定字符串的下一個出現位置
:%s/old/new/g:全文替換指定的字符串
:n1,n2s/old/new/g:在指定的行範圍內(n1-n2)替換指定的字符串
七.保存和退出命令
:w:保存修改
:w new_fileName:另存爲新文件(新文件名爲new_fileName)
:wq:保存修改並退出
:wq!:強制保存修改並退出(文件所有者和root用戶纔可以使用)
:q:不保存退出
:q!:強制不保存退出
八.常用的小技巧
:r ![命令]:  導入命令執行結果  
:map [快捷鍵] [命令]:  定義快捷鍵(例子:  :map [shift+p] 3x)
:n1,n2s/^/#/g:	連續行註釋(例子:  :2,5s/^/#/g)
:ab str1 str2:	替換顯示(輸入字符串str1會顯示字符串str2)


正則表達式的使用
^:匹配行首
$:匹配行尾
*:前一個字符匹配任意次
.:匹配除了換行符以外的字符
[]:匹配括號中的任意一個字符
[^]:匹配括號中的以外的任意一個字符
\:轉義符
\{n\}:前面的字符出現n次
\{n,\}:前面的字符至少出現n次
\{n,m\}:前面的字符至少出現n次,最多出現m次
例子:
匹配包含連續三個數字的字符串:grep "[0-9]\{3\}" a1.txt
匹配在字符g和字符d之間至少有一個o,最多有3個o:grep "go\{1,3\}d" a1.txt


功能:輸出信息
命令:echo [-n] [-e] [特殊字符+信息]
n:不換行輸出
e:支持反斜槓轉義字符
特殊字符:
\a:發出警告聲
\b:刪除前一個字符
\c:最後不加上換行符號
\f:換行但光標仍舊停留在原來的位置;
\n:換行且光標移至行首
\r:光標移至行首,但不換行
\t:插入tab
\v:與\f相同
\\:插入\字符
\nnn:插入nnn(八進制)所代表的ASCII字符
例子:
不換行輸出:echo -n "123"
使用製表符和換行:echo -e "111\t222\t333\n456"


防火牆操作:
安裝firewall插件:yum install firewalld firewalld-config
配置文件:/etc/firewalld/
查看版本:firewall-cmd --version
查看幫助:firewall-cmd --help
查看區域信息:firewall-cmd --get-active-zones
查看指定接口所屬區域信息:firewall-cmd --get-zone-of-interface=eth0
拒絕所有包:firewall-cmd --panic-on
取消拒絕狀態:firewall-cmd --panic-off
查看是否拒絕:firewall-cmd --query-panic
查看防火牆狀態:firewall-cmd --state
開啓防火牆:systemctl start firewalld 
關閉防火牆:systemctl stop firewalld
設置開機啓動:systemctl enable firewalld
停止並禁用開機啓動:sytemctl disable firewalld
重啓防火牆:firewall-cmd --reload
查看指定區域所有開啓的端口號:firewall-cmd --zone=public --list-ports

參數說明:
–zone	作用域
–add-port=8080/tcp	添加端口,格式爲:端口/通訊協議
–permanent	永久生效,沒有此參數重啓後失效

在指定區域開啓端口(如80端口號)
firewall-cmd --zone=public --add-port=80/tcp --permanent
重啓防火牆
firewall-cmd --reload

在指定區域開啓某個範圍的端口號(如18881~65534)
firewall-cmd --zone=public --add-port=18881:65534/tcp --permanent
重啓防火牆
firewall-cmd --reload


常用的systemctl指令
systemctl enable *.service 	開機運行服務
systemctl disable *.service 	取消開機運行
systemctl start *.service 	啓動服務
systemctl stop *.service	 停止服務
systemctl restart *.service 	重啓服務
systemctl reload *.service	 重新加載服務配置文件
systemctl status *.service	 查詢服務運行狀態
systemctl --failed   	顯示啓動失敗的服務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章