摘要:整理 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 | 
系統資訊和性能查看#
| 常用命令 | 作用 | 
|---|---|
| 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 -d 1 10 | 查詢磁碟性能 | 
磁碟和分區#
| 常用命令 | 作用 | 
|---|---|
| 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 文件 | 
| umount -v /dev/sda1 | 透過設備名卸載 | 
| umount -v /mnt/mymnt | 透過掛載點卸載 | 
| fuser -km /mnt/hda1 | 強制卸載 (慎用) | 
用戶和用戶組#
| 常用命令 | 作用 | 
|---|---|
| useradd legalgeek | 創建用戶 | 
| userdel -r legalgeek | 刪除用戶 | 
| usermod -g group_name user_name | 修改用戶的組 | 
| usermod -aG group_name user_name | 將用戶添加到組 | 
| usermod -s /bin/ksh -d /home/codepig –g dev legalgeek | 修改用戶 legalgeek 的登錄 Shell、主目錄以及用戶組 | 
| groups test | 查看 test 用戶所在的組 | 
| groupadd group_name | 創建用戶組 | 
| groupdel group_name | 刪除用戶組 | 
| groupmod -n new_name old_name | 重命名用戶組 | 
| su - user_name | 切換到 user_name 用戶 | 
| passwd | 修改口令 | 
| passwd legalgeek | 修改某用戶的口令 | 
| w | 查看活動用戶 | 
| id legalgeek | 查看指定用戶 legalgeek 資訊 | 
| last | 查看用戶登錄日誌 | 
| crontab -l | 查看當前用戶的計劃任務 | 
| cut -d: -f1 /etc/passwd | 查看系統所有用戶 | 
| cut -d: -f1 /etc/group | 查看系統所有組 | 
網路和進程管理#
| 常用命令 | 作用 | 
|---|---|
| ifconfig | 查看網路介面屬性 | 
| ifconfig eth0 | 查看某網卡的配置 | 
| route -n | 查看路由表 | 
| netstat -lntp | 查看所有監聽端口 | 
| netstat -antp | 查看已建立的 TCP 連接 | 
| 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' | 
| route del 0/0 gw Gateway_IP | 刪除靜態路由 | 
| hostname | 查看主機名 | 
| host www.baidu.com | 解析主機名 | 
| nslookup www.baidu.com | 查詢 DNS 記錄,查看域名解析是否正常 | 
| ps -ef | 查看所有進程 | 
| ps -ef | grep legalgeek | 過濾出你需要的進程 | 
| kill -s name | kill 指定名稱的進程 | 
| kill -s pid | kill 指定 pid 的進程 | 
| top | 實時顯示進程狀態 | 
| vmstat 1 20 | 每 1 秒採集一次系統狀態,採 20 次 | 
| iostat | iostat | 
| sar -u 1 10 | 查詢 cpu 使用情況(1 秒一次,共 10 次) | 
| sar -d 1 10 | 查詢磁碟性能 | 
常見系統服務命令#
| 常用命令 | 作用 | 
|---|---|
| chkconfig --list | 列出系統服務 | 
| service <服務名> status | 查看某個服務 | 
| service <服務名> start | 啟動某個服務 | 
| service <服務名> stop | 終止某個服務 | 
| service <服務名> restart | 重啟某個服務 | 
| systemctl status <服務名> | 查看某個服務 | 
| systemctl start <服務名> | 啟動某個服務 | 
| systemctl stop <服務名> | 終止某個服務 | 
| systemctl restart <服務名> | 重啟某個服務 | 
| systemctl enable <服務名> | 關閉自啟動 | 
| systemctl disable <服務名> | 關閉自啟動 | 
文件和目錄操作#
| 常用命令 | 作用 | 
|---|---|
| cd <目錄名> | 進入某個目錄 | 
| cd .. | 回上級目錄 | 
| cd ../.. | 回上兩級目錄 | 
| cd | 進入個人主目錄 | 
| cd - | 回上一步所在目錄 | 
| pwd | 顯示當前路徑 | 
| ls | 查看文件目錄列表 | 
| ls -F | 查看目錄中內容(顯示是文件還是目錄) | 
| ls -l | 查看文件和目錄的詳情列表 | 
| ls -a | 查看隱藏文件 | 
| ls -lh | 查看文件和目錄的詳情列表(增強文件大小易讀性) | 
| ls -lSr | 查看文件和目錄列表(以文件大小升序查看) | 
| 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 <關鍵詞> | 顯示某二進制文件 / 可執行文件的路徑 | 
| which <關鍵詞> | 查找系統目錄下某的二進制文件 | 
| 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 file1 | 改變文件的所有人和群組 | 
文件查看和處理#
| 常用命令 | 作用 | 
|---|---|
| cat file1 | 查看文件內容 | 
| cat -n file1 | 查看內容並標示行數 | 
| tac file1 | 從最後一行開始反看文件內容 | 
| more file1 | more file1 | 
| less file1 | 類似 more 命令,但允許反向操作 | 
| head -2 file1 | 查看文件前兩行 | 
| tail -2 file1 | 查看文件後兩行 | 
| tail -f /log/msg | 實時查看添加到文件中的內容 | 
| grep legalgeek hello.txt | 在文件 hello.txt 中查找關鍵詞 legalgeek | 
| 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 | 排序兩個文件的內容 | 
| 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 | 最大程度壓縮 | 
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 | 清理快取 |