本篇文章給大家分享,把平時開發(fā)過程中常用的一些Linux系統(tǒng)命令給做了一個大整理,形成一個常用高頻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數(shù)據(jù)同步到磁盤 |
| logout | 退出登錄Shell |
注意點:比如同樣是關機,shutdown、poweroff、halt、init 0有什么區(qū)別呢?這個有興趣可以自己了解一下,它們是有區(qū)別的。
系統(tǒng)信息和性能查看
這里命令其實平時用得是非常之多的,因為一旦系統(tǒng)或者后臺服務除了問題,我們經常要登上去查看,包括很多的系統(tǒng)信息,比如:系統(tǒng)版本、內核版本、處理器架構、計算機名、環(huán)境變量、用戶情況、負載情況、內存用量、磁盤信息、進程、網絡連接…
| 常用命令 | 作用 |
|---|---|
| uname -a | 查看內核/OS/CPU信息 |
| uname -r | 查看內核版本 |
| uname -m | 查看處理器架構 |
| arch | 查看處理器架構 |
| hostname | 查看計算機名 |
| who | 顯示當前登錄系統(tǒng)的用戶 |
| who am i | 顯示登錄時的用戶名 |
| whoami | 顯示當前用戶名 |
| cat /proc/version | 查看linux版本信息 |
| cat /proc/cpuinfo | 查看CPU信息 |
| cat /proc/interrupts | 查看中斷 |
| cat /proc/loadavg | 查看系統(tǒng)負載 |
| uptime | 查看系統(tǒng)運行時間、用戶數(shù)、負載 |
| env | 查看系統(tǒng)的環(huán)境變量 |
| lsusb -tv | 查看系統(tǒng)USB設備信息 |
| lspci -tv | 查看系統(tǒng)PCI設備信息 |
| lsmod | 查看已加載的系統(tǒng)模塊 |
| grep MemTotal /proc/meminfo | 查看內存總量 |
| grep MemFree /proc/meminfo | 查看空閑內存量 |
| free -m | 查看內存用量和交換區(qū)用量 |
| date | 顯示系統(tǒng)日期時間 |
| cal 2021 | 顯示2021日歷表 |
| top | 動態(tài)顯示cpu/內存/進程等情況 |
| vmstat 1 20 | 每1秒采一次系統(tǒng)狀態(tài),采20次 |
| iostat | 查看io讀寫/cpu使用情況 |
| sar -u 1 10 | 查詢cpu使用情況(1秒一次,共10次) |
| sar -d 1 10 | 查詢磁盤性能 |
磁盤和分區(qū)
這是和日常使用息息相關的一些常用命令,在Windows系統(tǒng)里面我們點點鼠標,圖形化界面上就能查看,但是在Linux中我們應該熟練掌握用命令的方式來查看,比如:各種分區(qū)信息查看、磁盤使用情況、文件和目錄大小、各種掛載和卸載…
| 常用命令 | 作用 |
|---|---|
| fdisk -l | 查看所有磁盤分區(qū) |
| swapon -s | 查看所有交換分區(qū) |
| df -h | 查看磁盤使用情況及掛載點 |
| df -hl | 查看磁盤剩余空間 |
| du -sh /dir | 查看指定目錄大小 |
du -sk * | sort -rn |
從高到低依次顯示文件和目錄大小 |
| mount /dev/hda2 /mnt/hda2 | 掛載hda2盤 |
| mount -t ntfs /dev/sdc1 /mnt/usbhd1 | 指定文件系統(tǒng)類型掛載(如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系統(tǒng)里用戶組和用戶本身也是一個非常重要的概念,這部分命令主要就是關于:用戶的CRUD、用戶組的CURD、然后還包括查用戶、切換用戶、改密碼、查用戶登錄日志…
| 常用命令 | 作用 |
|---|---|
| useradd codesheep | 創(chuàng)建用戶 |
| 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 | 創(chuàng)建用戶組 |
| groupdel group_name | 刪除用戶組 |
| groupmod -n new_name old_name | 重命名用戶組 |
| su – user_name | 完整切換到一個用戶環(huán)境 |
| passwd | 修改口令 |
| passwd codesheep | 修改某用戶的口令 |
| w | 查看活動用戶 |
| id codesheep | 查看指定用戶信息 |
| last | 查看用戶登錄日志 |
| crontab -l | 查看當前用戶的計劃任務 |
| cut -d: -f1 /etc/passwd | 查看系統(tǒng)所有用戶 |
| cut -d: -f1 /etc/group | 查看系統(tǒng)所有組 |
網絡和進程管理
我們作為一個后端開發(fā),這些命令平時用到的概率很大,比如:查看網絡、查看連接、查看端口服務、配置網卡/防火墻/路由表/DNS,查看和過濾進程,采集系統(tǒng)狀態(tài),還有一些系統(tǒng)性能的監(jiān)控和排查命令…等等。這些命令,在后端開發(fā)連到公司服務器上去排查問題時就很有用了,用得也很頻繁。
| 常用命令 | 作用 |
|---|---|
| ifconfig | 查看網絡接口屬性 |
| ifconfig eth0 | 查看某網卡的配置 |
| route -n | 查看路由表 |
| netstat -lntp | 查看所有監(jiān)聽端口 |
| netstat -antp | 查看所有已經建立的連接 |
| netstat -lutp | 查看TCP/UDP的狀態(tài)信息 |
| ifup eth0 | 啟用eth0網絡設備 |
| ifdown eth0 | 禁用eth0網絡設備 |
| iptables -L | 查看iptables規(guī)則 |
| 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 | 配置靜態(tài)路由到達網絡’192.168.0.0/16’ |
| route del 0/0 gw Gateway_IP | 刪除靜態(tài)路由 |
| 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 | 實時顯示進程狀態(tài) |
| vmstat 1 20 | 每1秒采一次系統(tǒng)狀態(tài),采20次 |
| iostat | 查看io讀寫/cpu使用情況 |
| sar -u 1 10 | 查詢cpu使用情況(1秒一次,共10次) |
| sar -d 1 10 | 查詢磁盤性能 |
常見系統(tǒng)服務命令
這類命令平時接觸得也很多,比如我們自己在安裝和部署各種各樣的基礎編程環(huán)境和服務時就常用,比如裝JDK、MySQL數(shù)據(jù)庫、redis緩存、nginx服務器…
| 常用命令 | 作用 |
|---|---|
chkconfig --list |
列出系統(tǒng)服務 |
| service <服務名> status | 查看某個服務 |
| service <服務名> start | 啟動某個服務 |
| service <服務名> stop | 終止某個服務 |
| service <服務名> restart | 重啟某個服務 |
| systemctl status <服務名> | 查看某個服務 |
| systemctl start <服務名> | 啟動某個服務 |
| systemctl stop <服務名> | 終止某個服務 |
| systemctl restart <服務名> | 重啟某個服務 |
| systemctl enable <服務名> | 開啟自啟動 |
| systemctl disable <服務名> | 關閉自啟動 |
文件和目錄操作
這類命令全部是Linux系統(tǒng)使用的基本操作,也是平時用到頻率最高的一些命令,關于文件操作的、關于目錄操作的、關于路徑的。比如:對文件和目錄的各種高頻操作,創(chuàng)建、查看、查找、刪除、重命名、復制、軟連接、快速定位和查找… 等等。都是些高頻的實用命令。
| 常用命令 | 作用 |
|---|---|
| cd <目錄名> | 進入某個目錄 |
| cd … | 回上級目錄 |
| cd …/… | 回上兩級目錄 |
| cd | 進個人主目錄 |
| cd – | 回上一步所在目錄 |
| pwd | 顯示當前路徑 |
| ls | 查看文件目錄列表 |
| ls -F | 查看目錄中內容(顯示是文件還是目錄) |
| ls -l | 查看文件和目錄的詳情列表 |
| ls -a | 查看隱藏文件 |
| ls -lh | 顯示權限 |
| ls -lSr | more |
| tree | 查看文件和目錄的樹形結構 |
| mkdir <目錄名> | 創(chuàng)建目錄 |
| mkdir dir1 dir2 | 同時創(chuàng)建兩個目錄 |
| mkdir -p /tmp/dir1/dir2 | 創(chuàng)建目錄樹 |
| 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 | 創(chuàng)建指向文件/目錄的軟鏈接 |
| ln file1 lnk1 | 創(chuàng)建指向文件/目錄的物理鏈接 |
| find / -name file1 | 從跟目錄開始搜索文件/目錄 |
| find / -user user1 | 搜索用戶user1的文件/目錄 |
| find /dir -name *.bin | 在目錄/dir中搜帶有.bin后綴的文件 |
| locate 關鍵詞 | 快速定位文件 |
| locate *.mp4 | 尋找.mp4結尾的文件 |
| whereis halt | 顯示某二進制文件/可執(zhí)行文件的路徑 |
| which halt | 查找系統(tǒng)目錄下的二進制文件 |
| chmod ugo+rwx dir1 | 設置目錄所有者(u)、群組(g)及其他人(o)的讀(r)寫(w)執(zhí)行(x)權限 |
| chmod go-rwx dir1 | 移除群組(g)與其他人(o)對目錄的讀寫執(zhí)行權限 |
| chown user1 file1 | 改變文件的所有者屬性 |
| chown -R user1 dir1 | 改變目錄的所有者屬性 |
| chgrp group1 file1 | 改變文件群組 |
| chown user1:group1 file1 | 改變文件的所有人和群組 |
文件查看和處理
這部分命令主要針對性地關于文件處理或者說文本處理,比如我們作為一個程序員,那操作最多的就是代碼源文件,各種花式查看、比較、增加、刪除、替換、合并… 等等一系列快速操作。
| 常用命令 | 作用 |
|---|---|
| cat file1 | 查看文件內容 |
| cat -n file1 | 查看內容并標示行數(shù) |
| 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文件中所有包含數(shù)字的行 |
| 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 | 合并兩個文件或兩欄的內容,中間用"+"區(qū)分 |
| 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 | 創(chuàng)建非壓縮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 | 創(chuàng)建bz2壓縮包 |
| tar -jxvf xxx.tar.bz2 | 解壓bz2壓縮包 |
| tar -cvfz xxx.tar.gz dir | 創(chuàng)建gzip壓縮包 |
| tar -zxvf xxx.tar.gz | 解壓gzip壓縮包 |
| bunzip2 xxx.bz2 | 解壓bz2壓縮包 |
| bzip2 filename | 壓縮文件 |
| gunzip xxx.gz | 解壓gzip壓縮包 |
| gzip filename | 壓縮文件 |
| gzip -9 filename | 最大程度壓縮 |
然后接下來就是一些常見的包管理器命令。首先什么是包管理器,大家應該都清楚。
這么說吧,如果沒有包管理器這個東西的存在,那估計僅僅是Linux系統(tǒng)上的軟件安裝,怕是就要勸退很多用戶了,因為很多的軟件依賴處理會讓人抓狂。因此簡單來說,我們可以將包管理器理解為,用來為Linux系統(tǒng)上的軟件安裝、卸載、升級、查詢提供支持的組件,所以對于用戶使用來說,一般就是一組工具命令集。
我們平常使用最廣的比如,紅帽子的包結構RPM包管理器,像RedHat、CentOS等系統(tǒng)都在用,典型的命令就是rpm命令、yum命令;然后就是DPKG包管理器,像Debain、Ubuntu等系統(tǒng)都用,典型的命令比如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 | 查看當前系統(tǒng)已安裝包 |
| 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 | 查看系統(tǒng)中已安裝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 | 清理緩存 |
站長資訊網