Linux 常用命令總結
Linux 命令行是系統管理和開發的核心工具,掌握常用命令可以極大提升效率。本文全面總結 Linux 常用命令,涵蓋文件操作、進程管理、網絡管理、系統監控、用戶管理、軟件安裝等多個方面,適合初學者和高級用戶參考。
1. 文件和目錄操作
這些命令用于管理文件和目錄。
命令 | 功能描述 | 示例 |
---|---|---|
ls | 列出目錄內容 | ls -l (詳細列表), ls -a (顯示隱藏文件) |
cd | 切換目錄 | cd /home/user , cd .. (返回上級目錄) |
pwd | 顯示當前工作目錄 | pwd |
mkdir | 創建目錄 | mkdir myfolder , mkdir -p a/b/c |
rmdir | 刪除空目錄 | rmdir myfolder |
touch | 創建空文件或更新文件時間戳 | touch file.txt |
cp | 復制文件或目錄 | cp file.txt /backup , cp -r dir1 dir2 |
mv | 移動或重命名文件/目錄 | mv file.txt newname.txt , mv dir /tmp |
rm | 刪除文件或目錄 | rm file.txt , rm -r dir (遞歸刪除) |
find | 搜索文件或目錄 | find / -name "file.txt" |
locate | 快速查找文件(基于數據庫) | locate file.txt |
tree | 以樹形結構顯示目錄內容 | tree /home/user |
ln | 創建鏈接(硬鏈接或軟鏈接) | ln -s file.txt link (軟鏈接) |
cat | 查看文件內容或連接文件 | cat file.txt , cat file1 > file2 |
more / less | 分頁查看文件內容 | less file.txt |
head | 查看文件開頭內容 | head -n 10 file.txt (前 10 行) |
tail | 查看文件末尾內容 | tail -n 10 file.txt , tail -f log |
wc | 統計文件的行數、字數、字符數 | wc -l file.txt (行數) |
cut | 提取文件中特定字段 | cut -d',' -f1 file.csv |
sort | 排序文件內容 | sort file.txt , sort -r (逆序) |
uniq | 刪除重復行 | uniq file.txt |
grep | 搜索文件內容 | grep "keyword" file.txt |
sed | 流式編輯文件內容 | sed 's/old/new/g' file.txt |
awk | 文本處理和數據提取 | awk '{print $1}' file.txt |
2. 文件權限管理
Linux 文件權限控制訪問和管理。
命令 | 功能描述 | 示例 |
---|---|---|
chmod | 修改文件或目錄權限 | chmod 755 script.sh , chmod u+x file |
chown | 修改文件或目錄所有者 | chown user file.txt , chown -R user dir |
chgrp | 修改文件或目錄所屬組 | chgrp group file.txt |
umask | 設置默認文件權限 | umask 022 |
getfacl | 查看文件訪問控制列表(ACL) | getfacl file.txt |
setfacl | 設置文件訪問控制列表 | setfacl -m u:user:rw file.txt |
權限說明:
- 權限格式:
rwxr-xr-x
(用戶、組、其他)。 - 數字表示:
r=4
,w=2
,x=1
(例如,755
表示用戶全權,組和其他可讀可執行)。
3. 進程管理
用于監控和控制系統進程。
命令 | 功能描述 | 示例 |
---|---|---|
ps | 顯示當前進程狀態 | ps aux (所有進程) |
top | 實時顯示進程和系統資源 | top |
htop | 增強版 top,交互式界面 | htop |
kill | 終止進程(通過 PID) | kill 1234 , kill -9 1234 (強制終止) |
killall | 按進程名終止進程 | killall firefox |
pkill | 按進程名或模式終止進程 | pkill -u user |
nice | 設置進程優先級 | nice -n 10 command |
renice | 修改運行中進程的優先級 | renice 10 -p 1234 |
jobs | 顯示后臺任務 | jobs |
bg | 將任務放入后臺運行 | bg %1 |
fg | 將后臺任務調回前臺 | fg %1 |
nohup | 使命令在終端關閉后繼續運行 | nohup ./script.sh & |
4. 系統監控
監控系統性能和資源使用情況。
命令 | 功能描述 | 示例 |
---|---|---|
df | 顯示磁盤使用情況 | df -h (人類可讀格式) |
du | 統計目錄或文件大小 | du -sh /home/user |
free | 顯示內存使用情況 | free -m (以 MB 顯示) |
uptime | 顯示系統運行時間和負載 | uptime |
vmstat | 報告虛擬內存統計 | vmstat 1 (每秒更新) |
iostat | 顯示 CPU 和 I/O 統計 | iostat -x 1 |
sar | 系統活動報告(需安裝 sysstat) | sar -u 1 (CPU 統計) |
dstat | 動態系統資源統計 | dstat -cdngy |
lscpu | 顯示 CPU 信息 | lscpu |
lsblk | 列出塊設備信息 | lsblk |
iotop | 實時顯示磁盤 I/O 使用情況 | iotop |
watch | 周期性執行命令并顯示結果 | watch -n 1 'df -h' |
5. 網絡管理
管理網絡連接、流量和服務。
命令 | 功能描述 | 示例 |
---|---|---|
ping | 測試網絡連通性 | ping google.com |
curl | 發送 HTTP 請求,下載文件 | curl -O http://example.com/file |
wget | 下載文件 | wget http://example.com/file |
netstat | 顯示網絡狀態(需安裝 net-tools) | netstat -tuln |
ss | 更現代的網絡狀態查看工具 | ss -tuln |
ifconfig | 顯示和配置網絡接口(需安裝 net-tools) | ifconfig eth0 |
ip | 現代網絡接口管理工具 | ip addr , ip link |
route | 顯示或管理路由表 | route -n |
traceroute | 跟蹤數據包路由路徑 | traceroute google.com |
dig | DNS 查詢 | dig example.com |
nslookup | DNS 查詢(簡單版) | nslookup example.com |
telnet | 測試端口連接 | telnet localhost 80 |
nc | 網絡工具(netcat),用于 TCP/UDP 連接 | nc -l 1234 (監聽端口) |
tcpdump | 捕獲網絡數據包 | tcpdump -i eth0 port 80 |
iftop | 實時顯示網絡流量 | iftop -i eth0 |
nmap | 網絡掃描和端口探測 | nmap localhost |
6. 用戶和權限管理
管理用戶賬戶和權限。
命令 | 功能描述 | 示例 |
---|---|---|
who | 顯示當前登錄用戶 | who |
whoami | 顯示當前用戶 | whoami |
id | 顯示用戶和組信息 | id user |
su | 切換用戶 | su - user |
sudo | 以超級用戶權限執行命令 | sudo apt update |
useradd | 添加新用戶 | useradd -m newuser |
userdel | 刪除用戶 | userdel -r user |
passwd | 修改用戶密碼 | passwd user |
addgroup | 添加用戶組 | addgroup mygroup |
usermod | 修改用戶信息 | usermod -aG sudo user |
visudo | 編輯 sudo 配置文件 | visudo |
7. 軟件安裝與管理
管理軟件包和依賴。
命令 | 功能描述 | 示例 |
---|---|---|
apt | Debian/Ubuntu 包管理工具 | apt install vim , apt update |
yum / dnf | CentOS/RHEL 包管理工具 | dnf install vim , yum update |
zypper | openSUSE 包管理工具 | zypper install vim |
snap | 安裝和管理 Snap 包 | snap install code |
dpkg | 管理 Debian 包 | dpkg -i package.deb |
rpm | 管理 RPM 包 | rpm -ivh package.rpm |
make | 編譯源碼 | make , make install |
8. 壓縮與歸檔
處理壓縮文件和歸檔。
命令 | 功能描述 | 示例 |
---|---|---|
tar | 歸檔和解檔文件 | tar -cvf archive.tar dir , tar -xvf archive.tar |
gzip / gunzip | 壓縮/解壓 .gz 文件 | gzip file.txt , gunzip file.txt.gz |
bzip2 / bunzip2 | 壓縮/解壓 .bz2 文件 | bzip2 file.txt , bunzip2 file.txt.bz2 |
zip / unzip | 壓縮/解壓 .zip 文件 | zip archive.zip file.txt , unzip archive.zip |
xz | 壓縮/解壓 .xz 文件 | xz file.txt , unxz file.txt.xz |
9. 文本編輯器
常用的命令行文本編輯器。
命令 | 功能描述 | 示例 |
---|---|---|
nano | 簡單易用的文本編輯器 | nano file.txt |
vim / vi | 功能強大的文本編輯器 | vim file.txt |
emacs | 高度可定制的文本編輯器 | emacs file.txt |
10. 系統管理
管理系統配置和服務。
命令 | 功能描述 | 示例 |
---|---|---|
systemctl | 管理 systemd 服務 | systemctl start apache2 |
service | 管理服務(兼容舊系統) | service apache2 start |
uname | 顯示系統信息 | uname -a |
hostname | 顯示或設置主機名 | hostname , hostname newname |
dmesg | 顯示內核日志 | `dmesg |
journalctl | 查看 systemd 日志 | journalctl -u apache2 |
reboot | 重啟系統 | reboot |
shutdown | 關機或計劃關機 | shutdown -h now , shutdown -r 10 |
date | 顯示或設置系統時間 | date , date -s "2023-10-01 12:00" |
timedatectl | 管理系統時間和時區 | timedatectl set-timezone UTC |
11. 環境變量與腳本
管理環境變量和 shell 腳本。
命令 | 功能描述 | 示例 |
---|---|---|
env | 顯示環境變量 | env |
export | 設置或導出環境變量 | export PATH=$PATH:/usr/local/bin |
echo | 顯示變量或文本 | echo $PATH |
source | 執行腳本并應用環境變化 | source ~/.bashrc |
bash | 運行 bash 腳本 | bash script.sh |
chmod +x | 使腳本可執行 | chmod +x script.sh |
12. 其他實用命令
一些雜項但常用的命令。
命令 | 功能描述 | 示例 |
---|---|---|
man | 查看命令手冊 | man ls |
info | 查看命令信息 | info ls |
history | 顯示命令歷史 | history , !123 (執行第 123 條命令) |
alias | 設置命令別名 | alias ll='ls -l' |
clear | 清空終端屏幕 | clear |
tee | 將輸出同時寫入文件和終端 | `ls |
xargs | 將標準輸入轉為命令參數 | `find . -name “*.txt” |
13. 命令組合與管道
Linux 命令可以通過管道和重定向組合使用。
符號 | 功能描述 | 示例 |
---|---|---|
` | ` | 管道,將前一命令輸出作為后一命令輸入 |
> | 重定向輸出到文件(覆蓋) | ls > output.txt |
>> | 重定向輸出到文件(追加) | ls >> output.txt |
< | 從文件讀取輸入 | wc -l < file.txt |
&& | 前一命令成功后執行后一命令 | make && make install |
` | ` |
14. 使用技巧與注意事項
- 命令補全:按
Tab
鍵自動補全命令或文件名。 - 歷史命令:使用
Ctrl+R
搜索歷史命令。 - 通配符:
*
:匹配任意字符(如*.txt
)。?
:匹配單個字符(如file?.txt
)。
- sudo 權限:某些命令需超級用戶權限,謹慎使用。
- 備份重要文件:操作前備份,避免數據丟失。