Linux 系統基礎操作完整指南
一、文件與目錄操作
1. 導航與查看
pwd (Print Working Directory)
- 作用:顯示當前所在目錄的完整路徑
- 示例:
pwd
→ 輸出/home/user/documents
- 使用場景:當你在多層目錄中迷失時快速定位當前位置
ls (List)
- 常用選項:
-l
:長格式顯示(包含權限、所有者、大小等信息)-a
:顯示所有文件(包括隱藏文件)-h
:人類可讀的文件大小(如KB、MB)
- 示例:
ls -lah /home
→ 詳細列出/home目錄下所有文件
- 常用選項:
cd (Change Directory)
- 特殊路徑:
cd ~
:返回用戶主目錄cd ..
:返回上級目錄cd -
:返回上次所在的目錄
- 示例:
cd /var/log/nginx
→ 進入nginx日志目錄
- 特殊路徑:
tree
- 安裝:
sudo apt install tree
(Debian/Ubuntu) - 常用選項:
-L
:限制顯示層級深度-d
:只顯示目錄
- 示例:
tree -L 2 /etc
→ 顯示/etc目錄下兩層結構
- 安裝:
2. 文件操作
cp (Copy)
- 常用選項:
-r
:遞歸復制目錄-i
:覆蓋前提示-v
:顯示復制進度
- 示例:
cp -riv source_dir/ dest_dir/
→ 安全復制目錄
- 常用選項:
mv (Move)
- 重命名示例:
mv old_filename new_filename
- 移動示例:
mv *.jpg /path/to/images/
- 重命名示例:
rm (Remove)
- 危險操作警告:
rm -rf /
→ 系統毀滅性命令(絕對不要嘗試)- 建議使用
-i
選項進行交互式刪除
- 安全示例:
rm -i important_file.txt
- 危險操作警告:
文件查看工具對比:
cat
:快速查看小文件內容less
:支持上下翻頁查看大文件(推薦)more
:基本分頁查看(功能少于less)head/tail
:查看文件開頭/結尾部分
3. 文件查找
find 高級用法:
# 查找7天內修改過的.log文件 find /var/log -name "*.log" -mtime -7# 查找大于10MB的文件 find / -size +10M# 查找并刪除舊備份文件 find /backups -name "*.tar.gz" -mtime +30 -delete
grep 文本搜索:
# 遞歸搜索目錄中包含"error"的行 grep -r "error" /var/log/# 顯示匹配行及前后3行內容 grep -A 3 -B 3 "critical" system.log# 使用正則表達式搜索 grep -E "[0-9]{3}-[0-9]{4}" contacts.txt
locate 使用注意:
- 需要先更新數據庫:
sudo updatedb
- 查找速度快但不實時(適合查找不變的系統文件)
- 需要先更新數據庫:
二、權限與用戶管理
1. 權限控制詳解
權限表示法:
- 字母表示:
rwx r-x r-x
- 數字表示:
755
(對應rwxr-xr-x) - 特殊權限:
- SUID(4):
chmod u+s file
- SGID(2):
chmod g+s dir
- Sticky(1):
chmod +t /tmp
- SUID(4):
- 字母表示:
chmod 實例:
# 給腳本添加執行權限 chmod +x backup.sh# 設置目錄權限(目錄通常需要執行權限才能進入) chmod 755 public_dir/# 遞歸修改目錄下所有文件權限 chmod -R 644 /var/www/html/
chown 高級用法:
# 同時修改所有者和組 chown user:group file.txt# 遞歸修改目錄所有權 chown -R www-data:www-data /var/www/# 只修改組而不改變所有者 chown :developers project/
2. 用戶管理實踐
用戶創建選項:
# 創建用戶并指定主目錄 sudo useradd -m -d /home/newuser -s /bin/bash newuser# 創建系統用戶(無登錄權限) sudo useradd -r -s /usr/sbin/nologin service_user# 設置用戶密碼策略 sudo passwd -e newuser # 強制下次登錄修改密碼
用戶組管理:
# 創建新組 sudo groupadd developers# 將用戶添加到附加組 sudo usermod -aG sudo,developers newuser# 查看用戶所屬組 groups username
sudo配置:
- 配置文件:
/etc/sudoers
(使用visudo
命令編輯) - 示例配置:
# 允許用戶無需密碼執行特定命令 username ALL=(ALL) NOPASSWD: /usr/bin/apt update
- 配置文件:
三、進程管理
1. 進程監控工具
ps 輸出解讀:
USER
:進程所有者PID
:進程ID%CPU
:CPU使用率%MEM
:內存使用率COMMAND
:啟動命令
top 使用技巧:
- 交互命令:
M
:按內存排序P
:按CPU排序k
:終止進程q
:退出
- 批處理模式:
top -b -n 1 > processes.txt
- 交互命令:
htop 增強功能:
- 鼠標支持
- 樹狀視圖(F5)
- 進程搜索(F3)
- 自定義顯示列(F2)
2. 信號管理
信號編號 | 信號名 | 作用 | 示例 |
---|---|---|---|
1 | SIGHUP | 重新加載配置 | kill -1 1234 |
9 | SIGKILL | 強制終止(不可捕獲) | kill -9 1234 |
15 | SIGTERM | 優雅終止(默認信號) | kill 1234 |
19 | SIGSTOP | 暫停進程(不可捕獲) | kill -19 1234 |
四、網絡操作
1. 網絡診斷工具
ping 高級用法:
# 指定次數和間隔 ping -c 5 -i 2 google.com# 測試MTU大小 ping -M do -s 1472 example.com
traceroute 替代方案:
mtr
:實時路由跟蹤工具tracepath
:不需要root權限
ss 現代替代netstat:
# 查看所有TCP連接 ss -t# 查看監聽端口和進程 ss -tulnp# 顯示socket統計 ss -s
2. 安全文件傳輸
scp 安全復制:
# 指定端口復制 scp -P 2222 file.txt user@remote:/path/# 保留文件屬性 scp -p backup.tar.gz user@backup-server:/backups/
rsync 高效同步:
# 增量備份(排除臨時文件) rsync -avz --exclude='tmp/' --delete /data/ user@remote:/backups/# 帶寬限制(100KB/s) rsync --bwlimit=100 -avz large_file user@remote:/destination/# 遠程到本地恢復 rsync -avz user@remote:/backups/ /local/restore/
五、系統管理
1. 磁盤管理進階
df 實用選項:
# 顯示inode使用情況 df -i# 只顯示特定文件系統類型 df -t ext4
du 深度分析:
# 找出最大的10個目錄 du -h / | sort -rh | head -n 10# 排除特定目錄 du -h --exclude=".cache" /home/user
2. systemd 服務管理
服務狀態檢查:
# 詳細服務狀態 systemctl status nginx --no-pager# 驗證服務是否啟用 systemctl is-enabled nginx# 列出所有失敗的服務 systemctl --failed
journalctl 日志查詢:
# 跟蹤最新日志 journalctl -f -u nginx# 按時間范圍查詢 journalctl -u mysql --since "2023-01-01" --until "2023-01-02"# 顯示內核日志 journalctl -k
六、實用技巧進階
1. 高效命令行
歷史命令:
# 搜索歷史命令 history | grep "apt install"# 快速執行歷史命令 !123 # 執行第123條歷史命令 !ssh # 執行最近的ssh開頭的命令
命令組合:
# 統計當前目錄文件數 ls | wc -l# 查找并替換多個文件內容 grep -rl "oldtext" . | xargs sed -i 's/oldtext/newtext/g'
2. 環境變量管理
持久化配置:
- 用戶級:
~/.bashrc
或~/.bash_profile
- 系統級:
/etc/environment
或/etc/profile.d/
- 用戶級:
PATH管理示例:
# 添加多個路徑 export PATH=$PATH:/new/path1:/new/path2# 永久添加到bashrc echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc source ~/.bashrc
七、學習路徑建議
1. 漸進式學習
基礎階段:
- 每天掌握5個常用命令
- 在虛擬機中練習文件操作
- 記錄常用命令到備忘單
中級階段:
- 學習shell腳本基礎
- 理解管道和重定向
- 配置簡單的cron任務
高級階段:
- 編寫復雜shell腳本
- 學習sed/awk文本處理
- 理解系統啟動過程
2. 推薦資源
在線學習:
- Linux Journey (https://linuxjourney.com/)
- OverTheWire Bandit (實戰游戲)
書籍推薦:
- 《Linux命令行與shell腳本編程大全》
- 《鳥哥的Linux私房菜》
社區支持:
- Stack Overflow
- Linux中國論壇
- 官方文檔和man pages
Linux 系統基礎操作完整指南
一、文件與目錄操作
1. 導航與查看
pwd (Print Working Directory)
- 作用:顯示當前所在目錄的完整路徑
- 示例:
pwd
→ 輸出/home/user/documents
- 使用場景:當你在多層目錄中迷失時快速定位當前位置
ls (List)
- 常用選項:
-l
:長格式顯示(包含權限、所有者、大小等信息)-a
:顯示所有文件(包括隱藏文件)-h
:人類可讀的文件大小(如KB、MB)
- 示例:
ls -lah /home
→ 詳細列出/home目錄下所有文件
- 常用選項:
cd (Change Directory)
- 特殊路徑:
cd ~
:返回用戶主目錄cd ..
:返回上級目錄cd -
:返回上次所在的目錄
- 示例:
cd /var/log/nginx
→ 進入nginx日志目錄
- 特殊路徑:
tree
- 安裝:
sudo apt install tree
(Debian/Ubuntu) - 常用選項:
-L
:限制顯示層級深度-d
:只顯示目錄
- 示例:
tree -L 2 /etc
→ 顯示/etc目錄下兩層結構
- 安裝:
2. 文件操作
cp (Copy)
- 常用選項:
-r
:遞歸復制目錄-i
:覆蓋前提示-v
:顯示復制進度
- 示例:
cp -riv source_dir/ dest_dir/
→ 安全復制目錄
- 常用選項:
mv (Move)
- 重命名示例:
mv old_filename new_filename
- 移動示例:
mv *.jpg /path/to/images/
- 重命名示例:
rm (Remove)
- 危險操作警告:
rm -rf /
→ 系統毀滅性命令(絕對不要嘗試)- 建議使用
-i
選項進行交互式刪除
- 安全示例:
rm -i important_file.txt
- 危險操作警告:
文件查看工具對比:
cat
:快速查看小文件內容less
:支持上下翻頁查看大文件(推薦)more
:基本分頁查看(功能少于less)head/tail
:查看文件開頭/結尾部分
3. 文件查找
find 高級用法:
# 查找7天內修改過的.log文件 find /var/log -name "*.log" -mtime -7# 查找大于10MB的文件 find / -size +10M# 查找并刪除舊備份文件 find /backups -name "*.tar.gz" -mtime +30 -delete
grep 文本搜索:
# 遞歸搜索目錄中包含"error"的行 grep -r "error" /var/log/# 顯示匹配行及前后3行內容 grep -A 3 -B 3 "critical" system.log# 使用正則表達式搜索 grep -E "[0-9]{3}-[0-9]{4}" contacts.txt
locate 使用注意:
- 需要先更新數據庫:
sudo updatedb
- 查找速度快但不實時(適合查找不變的系統文件)
- 需要先更新數據庫:
二、權限與用戶管理
1. 權限控制詳解
權限表示法:
- 字母表示:
rwx r-x r-x
- 數字表示:
755
(對應rwxr-xr-x) - 特殊權限:
- SUID(4):
chmod u+s file
- SGID(2):
chmod g+s dir
- Sticky(1):
chmod +t /tmp
- SUID(4):
- 字母表示:
chmod 實例:
# 給腳本添加執行權限 chmod +x backup.sh# 設置目錄權限(目錄通常需要執行權限才能進入) chmod 755 public_dir/# 遞歸修改目錄下所有文件權限 chmod -R 644 /var/www/html/
chown 高級用法:
# 同時修改所有者和組 chown user:group file.txt# 遞歸修改目錄所有權 chown -R www-data:www-data /var/www/# 只修改組而不改變所有者 chown :developers project/
2. 用戶管理實踐
用戶創建選項:
# 創建用戶并指定主目錄 sudo useradd -m -d /home/newuser -s /bin/bash newuser# 創建系統用戶(無登錄權限) sudo useradd -r -s /usr/sbin/nologin service_user# 設置用戶密碼策略 sudo passwd -e newuser # 強制下次登錄修改密碼
用戶組管理:
# 創建新組 sudo groupadd developers# 將用戶添加到附加組 sudo usermod -aG sudo,developers newuser# 查看用戶所屬組 groups username
sudo配置:
- 配置文件:
/etc/sudoers
(使用visudo
命令編輯) - 示例配置:
# 允許用戶無需密碼執行特定命令 username ALL=(ALL) NOPASSWD: /usr/bin/apt update
- 配置文件:
三、進程管理
1. 進程監控工具
ps 輸出解讀:
USER
:進程所有者PID
:進程ID%CPU
:CPU使用率%MEM
:內存使用率COMMAND
:啟動命令
top 使用技巧:
- 交互命令:
M
:按內存排序P
:按CPU排序k
:終止進程q
:退出
- 批處理模式:
top -b -n 1 > processes.txt
- 交互命令:
htop 增強功能:
- 鼠標支持
- 樹狀視圖(F5)
- 進程搜索(F3)
- 自定義顯示列(F2)
2. 信號管理
信號編號 | 信號名 | 作用 | 示例 |
---|---|---|---|
1 | SIGHUP | 重新加載配置 | kill -1 1234 |
9 | SIGKILL | 強制終止(不可捕獲) | kill -9 1234 |
15 | SIGTERM | 優雅終止(默認信號) | kill 1234 |
19 | SIGSTOP | 暫停進程(不可捕獲) | kill -19 1234 |
四、網絡操作
1. 網絡診斷工具
ping 高級用法:
# 指定次數和間隔 ping -c 5 -i 2 google.com# 測試MTU大小 ping -M do -s 1472 example.com
traceroute 替代方案:
mtr
:實時路由跟蹤工具tracepath
:不需要root權限
ss 現代替代netstat:
# 查看所有TCP連接 ss -t# 查看監聽端口和進程 ss -tulnp# 顯示socket統計 ss -s
2. 安全文件傳輸
scp 安全復制:
# 指定端口復制 scp -P 2222 file.txt user@remote:/path/# 保留文件屬性 scp -p backup.tar.gz user@backup-server:/backups/
rsync 高效同步:
# 增量備份(排除臨時文件) rsync -avz --exclude='tmp/' --delete /data/ user@remote:/backups/# 帶寬限制(100KB/s) rsync --bwlimit=100 -avz large_file user@remote:/destination/# 遠程到本地恢復 rsync -avz user@remote:/backups/ /local/restore/
五、系統管理
1. 磁盤管理進階
df 實用選項:
# 顯示inode使用情況 df -i# 只顯示特定文件系統類型 df -t ext4
du 深度分析:
# 找出最大的10個目錄 du -h / | sort -rh | head -n 10# 排除特定目錄 du -h --exclude=".cache" /home/user
2. systemd 服務管理
服務狀態檢查:
# 詳細服務狀態 systemctl status nginx --no-pager# 驗證服務是否啟用 systemctl is-enabled nginx# 列出所有失敗的服務 systemctl --failed
journalctl 日志查詢:
# 跟蹤最新日志 journalctl -f -u nginx# 按時間范圍查詢 journalctl -u mysql --since "2023-01-01" --until "2023-01-02"# 顯示內核日志 journalctl -k
六、實用技巧進階
1. 高效命令行
歷史命令:
# 搜索歷史命令 history | grep "apt install"# 快速執行歷史命令 !123 # 執行第123條歷史命令 !ssh # 執行最近的ssh開頭的命令
命令組合:
# 統計當前目錄文件數 ls | wc -l# 查找并替換多個文件內容 grep -rl "oldtext" . | xargs sed -i 's/oldtext/newtext/g'
2. 環境變量管理
持久化配置:
- 用戶級:
~/.bashrc
或~/.bash_profile
- 系統級:
/etc/environment
或/etc/profile.d/
- 用戶級:
PATH管理示例:
# 添加多個路徑 export PATH=$PATH:/new/path1:/new/path2# 永久添加到bashrc echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc source ~/.bashrc