這篇文章給大家分享,把平時開發過程中常用的一些Linux系統指令給做了一個大整理,形成一個常用高頻Linux速查備忘錄。希望對大家有幫助。
關機/重啟/登出
常用指令 | ##作用 |
shutdown -h now | 即時關機 |
shutdown -h 10 | 10分鐘後關機 |
shutdown -h 11:00 | 11:00關機 |
shutdown -h 10 | 預定時間關機(10分鐘後) |
shutdown -c | 取消指定時間關機 |
##shutdown -r now
重啟 |
|
shutdown -r 10
#10分鐘之後重啟 |
| ##shutdown -r 11:00
定時重啟 |
| reboot
重啟 |
##init 6 | ##已重啟
| init 0 | 立刻關機
| #telinit 0 | 關機
| #poweroff | 立刻關機
| halt | 關機
| sync |
|
|
|
|
#buff資料同步到磁碟
logout |
退出登入Shell |
注意點:例如同樣是關機,shutdown、poweroff、halt、init 0有什麼差別呢?這個有興趣可以自己了解一下,它們是有差別的。 |
|
系統資訊和效能查看
| 這裡指令其實平時用得是非常之多的,因為一旦系統或後台服務除了問題,我們常常要登上去查看,包含大量的系統訊息,例如:系統版本、核心版本、處理器架構、電腦名稱、環境變數、使用者狀況、負載狀況、記憶體用量、磁碟資訊、行程、網路連線… |
| 常用指令 | 作用
|
| uname -a
查看內核/OS/CPU訊息 |
| uname -r
查看核心版本 |
| uname -m
檢視處理器架構 |
| arch
檢視處理器架構 |
| #hostname
##看電腦名稱
|
who |
顯示目前登入系統的用戶
|
#who am i | ##顯示登入時的用戶名稱
| whoami | 顯示目前使用者名稱
| #cat /proc/version | 查看linux版本訊息
| cat /proc/cpuinfo | 查看CPU訊息
| cat /proc/interrupts | #查看中斷
| cat /proc/loadavg | 查看系統負載
| uptime | 查看系統運行時間、使用者數、負載
| env | 檢視系統的環境變數
| lsusb -tv | 查看系統USB裝置資訊
| lspci -tv | 檢視系統PCI裝置資訊
| lsmod | 查看已載入的系統模組
| grep MemTotal /proc/meminfo | 查看記憶體總量
| grep MemFree / proc/meminfo | 查看空閒記憶體量
| free -m | 查看記憶體用量與交換區用量
| date | 顯示系統日期時間
| cal 2021 | 顯示2021行事曆表
| top | 動態顯示cpu/記憶體/行程等狀況
| vmstat 1 20 | 每1秒採一次系統狀態,採20次
###iostat######查看io讀寫/cpu使用量############sar -u 1 10######查詢cpu使用情況(1秒一次,共10次)############sar -d 1 10######查詢磁碟效能############
磁碟與分割區
這是和日常使用息息相關的一些常用指令,在Windows系統裡面我們點點滑鼠,圖形化介面上就能查看,但是在Linux中我們應該熟練用命令的方式來查看,例如:各種分割區資訊檢視、磁碟使用情況、檔案和目錄大小、各種掛載和卸載…
|
|
|
|
#常用指令
作用 |
|
fdisk -l |
檢視所有磁碟分割區 |
#fdisk -l | 檢視所有磁碟分割區 |
swapon -s | 查看所有交換分割區 |
#df -h檢視磁碟使用及掛載點 |
| df -hl
查看磁碟剩餘空間 |
| du -sh /dir
查看指定目錄大小 |
|
du -sk * | sort -rn
| #從高到低依序顯示檔案和目錄大小 |
mount /dev/hda2 /mnt/hda2 | 掛載hda2碟 |
mount -t ntfs /dev/sdc1 /mnt/usbhd1 | #指定檔案系統類型掛載(如ntfs) |
mount -o loop xxx.iso /mnt/cdrom | 掛載iso檔案 |
#mount /dev/sda1 /mnt/usbdisk | 掛載usb碟/快閃裝置 |
##umount -v /dev/sda1
透過裝置名稱卸載
umount -v /mnt/mymnt透過掛載點卸載
##fuser -km /mnt/hda1
強制卸載(慎用) |
|
#使用者與使用者群組
| Linux系統裡使用者群組和使用者本身也是一個非常重要的概念,這部分指令主要是關於:使用者的CRUD、使用者群組的CURD、然後還包括查詢使用者、切換使用者、改密碼、查詢使用者登入日誌… |
| 常用指令 | 作用
|
| useradd codesheep
|
|
#useradd codesheep
建立使用者 |
|
userdel -r codesheep
刪除使用者 |
| ##usermod -g group_name user_name
#修改使用者的群組 |
| usermod -aG group_name user_name
將使用者新增至群組 |
##usermod -s /bin/ksh -d /home/codepig –g dev codesheep |
修改用戶codesheep的登入Shell、主目錄以及用戶群組
| ##groups test | #查看test使用者所在的群組
| groupadd group_name | 建立使用者群組
| groupdel group_name | 刪除使用者群組
| groupmod -n new_name old_name | 重命名使用者群組
| su - user_name | #完整切換到一個使用者環境
| passwd | 修改口令
| passwd codesheep | 修改某使用者的口令
| w | 查看活動使用者
| #id codesheep | 查看指定使用者資訊
| last | 查看使用者登入日誌
###crontab -l#######查看目前使用者的排程任務#### ########cut -d: -f1 /etc/passwd######查看系統所有使用者############cut -d: -f1 /etc/group ######查看系統所有群組#############
網路和進程管理
我們作為一個後端開發,這些命令平時用到的機率很大,例如:查看網路、查看連接、查看連接埠服務、設定網路卡/防火牆/路由表/DNS,檢視和過濾進程,採集系統狀態,還有一些系統效能的監控和排查指令…等等。這些指令,在後端開發連到公司伺服器去排查問題時就很有用了,用得也很頻繁。
常用指令 |
作用 |
ifconfig |
|
| ##ifconfig | #查看網路介面屬性
| ifconfig eth0 | 查看某網卡的設定
| route -n | 查看路由表
| netstat -lntp | 查看所有監聽埠
| netstat -antp | 查看所有已經建立的連線
| netstat -lutp | 查看TCP/UDP的狀態資訊
##ifup eth0 |
啟用eth0網路裝置 |
ifdown eth0 |
#停用eth0網路裝置 |
##iptables -L | 檢視iptables規則 |
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 | 設定ip位址 |
dhclient eth0 | 以dhcp模式啟用eth0 |
route add -net 0/0 gw Gateway_IP | 設定預設閘道 |
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 | #設定靜態路由到達網路'192.168.0.0/16' | 設定靜態路由到達網路'192.168.0.0/16'
| ##route del 0/0 gw Gateway_IP | 刪除靜態路由
| #hostname | 看主機名稱
| #host www.codesheep.cn | 解析主機名稱
| nslookup www.codesheep.cn | 查詢DNS記錄,查看網域解析是否正常
#ps -ef | 檢視所有進程 |
#ps -ef | grep codesheep |
|
|
|
#過濾出你需要的程序 |
|
kill -s name
kill指定名稱的程序 |
|
kill -s pid
kill指定pid的程序 |
|
top
#即時顯示進程狀態 |
|
vmstat 1 20
每1秒採一次系統狀態,採20次 |
|
iostat
查看io讀寫/cpu使用情況
sar -u 1 10查詢cpu使用情況(1秒一次,共10次)
sar -d 1 10 | #查詢磁碟效能 |
常見系統服務指令
這類指令平時接觸得也很多,例如我們自己在安裝和部署各種各樣的基礎程式環境和服務時就常用,例如安裝JDK、MySQL資料庫、redis快取、nginx伺服器… |
|
常用指令 |
作用 |
|
| chkconfig --list
列出系統服務 |
|
#service <服務名稱> status
查看某個服務 |
|
#service <服務名稱> start
|
|
#啟動某個服務
|
service <服務名稱> stop |
#終止某個服務
| ##service <服務名> restart | 重啟某個服務
| systemctl status <服務名稱> | 查看某個服務
| #systemctl start <服務名稱> | 啟動某個服務
| systemctl stop <服務名稱> | #終止某個服務
###systemctl restart <服務名稱>######重啟某個服務###########systemctl enable <服務名稱>######開啟自啟動############systemctl disable <服務名稱>#####關閉自啟動######### ####
檔案和目錄操作
這類指令全部是Linux系統使用的基本操作,也是平時用到頻率最高的一些指令,關於檔案操作的、關於目錄操作的、關於路徑的。例如:對檔案和目錄的各種高頻操作,建立、檢視、尋找、刪除、重新命名、複製、軟體連線、快速定位和尋找… 等等。都是些高頻的實用指令。
常用指令 |
作用 |
cd <目錄名> |
進入某個目錄 |
cd … |
#回上級目錄 |
cd …/ … |
回上兩層目錄 |
cd |
#進入個人主目錄 |
cd - |
回上一步所在目錄 |
pwd |
顯示目前路徑 |
ls |
#查看檔案目錄清單 |
ls -F |
檢視目錄中內容(顯示是檔案還是目錄) |
ls - l |
查看檔案和目錄的詳情清單 |
ls -a |
查看隱藏檔案 |
##ls -lh | 顯示權限 |
ls -lSr | more |
tree | 檢視檔案與目錄的樹狀結構 |
mkdir <目錄名稱> | 建立目錄 |
mkdir dir1 dir2 | 同時建立兩個目錄 |
mkdir -p /tmp/dir1/dir2 | #建立目錄樹 |
#rm -f file1 | 刪除'file1'檔案 |
#rmdir dir1 | 刪除'dir1'目錄 |
#rm -rf dir1 | 刪除'dir1'目錄及其內容 |
#rm -rf dir1 dir2 | 同時刪除兩個目錄及其內容 |
mv old_dir new_dir | 重新命名/移動目錄 |
##cp file1 file2
複製檔案 |
|
cp dir/* .
複製某目錄下的所有檔案到目前目錄 |
|
cp -a dir1 dir2
複製目錄 |
|
cp -a /tmp/dir1 .
複製一個目錄到目前目錄 |
|
#ln -s file1 link1
建立指向檔案/目錄的軟連結 |
|
ln file1 lnk1## 建立指向檔案/目錄的實體連結 |
| find / -name file1
從跟目錄開始搜尋檔案/目錄 |
##find / - user user1 |
搜尋使用者user1的檔案/目錄
|
find /dir -name *.bin | ##在目錄/dir中搜尋帶有.bin後綴的檔案
| locate 關鍵字 | 快速定位檔案
| locate *.mp4##尋找.mp4結尾的檔案 |
whereis halt |
顯示某二進位檔案/執行檔的路徑 |
which halt |
尋找系統目錄下的二進位檔案 |
chmod ugo rwx dir1 |
設定目錄擁有者(u)、群組(g)及其他人(o)的讀(r)寫(w)執行(x)權限 |
chmod go-rwx dir1 |
移除群組(g)與其他人(o)對目錄的讀寫執行權限 |
chown user1 file1 |
改變檔案的擁有者屬性 |
##chown -R user1 dir1 | 改變目錄的擁有者屬性 |
#chgrp group1 file1 | 改變檔案群組 |
#chown user1:group1 file1 | 改變檔案的所有人和群組 |
文件檢視與處理
這部分指令主要針對性地關於文件處理或說文字處理,例如我們身為程式設計師,那操作最多的就是程式碼來源文件,各種花式檢視、比較、增加、刪除、替換、合併… 等等一系列快速操作。
常用指令 |
作用 |
cat file1 | 檢視檔案內容 |
cat -n file1 |
檢視內容並標示行數 |
cat xxx.txt |
awk 'NR%2==1' |
tac file1 |
從最後一行開始反看檔案內容 |
more file1 |
查看一個長檔案的內容 |
#less file1 |
類似more指令,但允許反向動作 |
head -2 file1 | ##在檢視檔案前兩行 |
tail -2 file1 | 檢視檔案後兩行 |
tail -f /log/msg | 即時查看新增至檔案中的內容 |
##grep codesheep hello .txt
在檔案hello.txt中尋找關鍵字codesheep |
|
#grep ^sheep hello.txt
在檔案hello.txt中尋找以sheep開頭的內容 |
|
grep [0-9] hello.txt
#選擇hello.txt檔案中所有包含數字的行 |
|
sed 's/s1/s2/g' hello.txt
將hello.txt檔案中的s1替換成s2 |
|
sed '/^ $/d' hello.txt
從hello.txt檔案中刪除所有空白行 |
|
#sed '/ *#/d; /^$/d' hello .txt
從hello.txt檔案中刪除所有註解和空白行 |
|
sed -e '1d' hello.txt
從檔案hello .txt 中排除第一行 |
|
sed -n '/s1/p' hello.txt
查看只包含關鍵字"s1"的行 | |
sed -e 's/ *$//' hello.txt
刪除每一行最後的空白字元 |
| ##sed - e 's/s1//g' hello.txt
從文件中只刪除詞彙s1並保留剩餘全部 |
| sed -n '1,5p;5q ' hello.txt
查看從第一行到第5行內容 |
| sed -n '5p;5q' hello.txt
查看第5行 |
| paste file1 file2
合併兩個檔案或兩個欄位的內容 |
| paste -d ' ' file1 file2
合併兩個檔案或兩個欄位的內容,中間用" "區分 |
| sort file1 file2
排序兩個檔案的內容 |
| sort file1 file2
uniq |
| sort file1 file2
uniq -u |
| sort file1 file2
uniq -d |
| comm -1 file1 file2
比較兩個檔案的內容(移除'file1'所含內容) |
| comm -2 file1 file2
比較兩個檔案的內容(移除'file2'所含內容) | | #comm -3 file1 file2
比較兩個檔案的內容(移除兩個檔案共有部分) |
|
打包和解壓
這部分內容主要關於文件或目錄的打包壓縮和解壓,涉及好幾種壓縮包格式和文件,這部分命令在平時用得也是非常非常頻繁的。
常用指令作用 |
|
zip xxx.zip file
壓縮至zip套件 |
| zip -r xxx.zip file1 file2 dir1
將多個檔案目錄壓成zip套件 |
| unzip xxx.zip
解壓縮zip套件 |
| tar -cvf xxx.tar file
##建立非壓縮tar套件
|
tar -cvf xxx.tar file1 file2 dir1 |
將多個檔案目錄打tar套件
|
#tar - tf xxx.tar |
查看tar包的內容
|
tar -xvf xxx.tar |
解壓縮tar包
|
tar -xvf xxx.tar -C /dir |
將tar包解壓縮至指定目錄
|
tar -cvfj xxx.tar.bz2 dir |
建立bz2壓縮套件
|
tar -jxvf xxx.tar.bz2 |
解壓縮bz2壓縮套件
|
tar -cvfz xxx.tar.gz dir |
創建gzip壓縮包
|
tar -zxvf xxx.tar.gz |
#解壓縮gzip壓縮包
|
bunzip2 xxx.bz2 |
解壓縮bz2壓縮套件
|
bzip2 filename |
#壓縮檔 |
gunzip xxx.gz |
解壓縮gzip壓縮套件
|
gzip filename | ##壓縮檔案
| gzip -9 filename | 最大程度壓縮
|
然後接下來就是一些常見的套件管理器指令。首先什麼是套件管理器,大家應該都很清楚。
這麼說吧,如果沒有套件管理器這個東西的存在,那估計僅僅是Linux系統上的軟體安裝,怕是就要勸退很多用戶了,因為很多的軟體依賴處理會讓人抓狂。因此簡單來說,我們可以將套件管理器理解為,用來為Linux系統上的軟體安裝、卸載、升級、查詢提供支援的元件,所以對於使用者使用來說,一般就是一組工具指令集。
我們平常使用最廣的例如,紅帽子的套件結構RPM套件管理器,像RedHat、CentOS等系統都在用,典型的指令就是rpm指令、yum指令;然後就是DPKG套件管理器,像Debain、Ubuntu等系統都用,典型的指令如dpkg指令、apt軟體工具。
rpm套件管理指令
常用指令 |
|
#rpm -qa |
查看已安裝的rpm包 |
rpm -q pkg_name | ##查詢某個rpm套件 |
rpm -q --whatprovides xxx | 顯示xxx功能是由哪個套件提供的 |
rpm -q --whatrequires xxx | 顯示xxx功能被哪個套件依賴的 |
rpm -q --changelog xxx | 顯示xxx包的變更記錄 |
rpm -qi pkg_name##查看一個套件的詳細資訊 |
|
rpm -qd pkg_name
查詢一個套件所提供的文件 |
|
rpm -qc pkg_name
查看已安裝rpm包提供的設定檔 |
| ##rpm -ql pkg_name
查看一個套件安裝了哪些檔案 |
| rpm -qf filename
檢視某個檔案屬於哪個套件 |
| rpm -qR pkg_name
查詢套件的依賴關係 |
| #rpm -ivh xxx.rpm
安裝rpm套件 |
|
|
|
|
|
| ##rpm -ivh --test xxx.rpm | 測試安裝rpm套件
| rpm -ivh --nodeps xxx.rpm | 安裝rpm套件時忽略依賴關係
| rpm -e xxx | #解除安裝套件
##rpm - Fvh pkg_name |
升級決定已安裝的rpm包 |
rpm -Uvh pkg_name
升級rpm套件(若未安裝則會安裝)
rpm -V pkg_name | RPM套件詳細資料校驗 |
##yum套件管理指令
|
| 常用指令
##作用
|
|
#yum repolist enabled##顯示可用的來源倉庫 |
| yum search pkg_name
搜尋軟體包 |
| yum install pkg_name
#下載並安裝軟體包 |
| yum install --downloadonly pkg_name
只下載不安裝 |
| yum list
顯示所有套件 |
| yum list installed
#查看目前系統已安裝套件 |
##yum list updates |
查看可以更新的套件清單
|
yum check-update |
查看可升級的軟體包
|
yum update |
更新所有軟體包
|
yum update pkg_name |
升級指定軟體包
|
yum deplist pkg_name |
列出軟體包依賴關係
|
yum remove pkg_name |
刪除軟體包
|
yum clean all |
清除快取
|
yum clean packages |
清除快取的軟體包
yum clean headers
清除快取的header
|
| #dpkg套件管理指令
##常用指令 | 作用 |
| dpkg -c xxx.deb | #列出deb套件的內容
| dpkg -i xxx.deb | 安裝/更新deb套件
| dpkg -r pkg_name | 移除deb套件
| dpkg -P pkg_name | 移除deb套件(不保留設定)
| dpkg -l | 查看系統中已安裝deb套件
| dpkg -l pkg_name | 顯示套件的大致資訊
##dpkg -L pkg_name |
查看deb套件安裝的檔案 |
dpkg -s pkg_name |
檢視套件的詳細資訊 |
#dpkg –unpack xxx.deb
解開deb套件的內容
| #apt軟體工具 |
##常用指令
作用 |
|
#apt-cache search pkg_name | #搜尋套件 |
apt-cache show pkg_name | 取得套件的概覽資訊 |
apt-get install pkg_name | #安裝/升級軟體包 |
apt-get purge pkg_name | 解除安裝軟體(包含設定) |
##apt-get remove pkg_name
卸載軟體(不包括配置) |
|
apt-get update
更新套件索引資訊 |
|
apt-get upgrade
更新已安裝軟體包 |
|
#apt-get clean
已清理快取
###相關推薦:《###Linux影片教學###》######
以上是硬派整理高頻Linux指令大總結(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!