SSH (Secure Shell) 是 Linux 服務器遠程管理的標準協議,通過加密傳輸、壓縮數據、防止 DNS/IP 欺騙保障安全。本文整理網站開發運維中高頻使用的 SSH 端命令,涵蓋壓縮解壓、文件操作、目錄瀏覽、遠程下載、MySQL 備份恢復,附帶參數詳解與避坑指南。
# 壓縮目錄/文件
tar -czvf archive.tar.gz /path/to/source
# 解壓到當前目錄
tar -zxvf archive.tar.gz
# 解壓到指定目錄
tar -zxvf archive.tar.gz -C /target/path
# 僅查看不解壓
tar -ztvf archive.tar.gz
參數:c創建 x解壓 zgzip v顯示過程 f文件名 C切換目錄。
gzip file.txt # 壓縮(源文件消失)
gunzip file.txt.gz # 解壓
zcat file.txt.gz # 查看內容不解壓
# 壓縮目錄遞歸
zip -r archive.zip /path/to/dir
# 解壓
unzip archive.zip
# 解壓到指定目錄
unzip archive.zip -d /target/path
# CentOS/RHEL 安裝
wget https://dag.wieers.com/rpm/packages/unrar/unrar-3.6.8-1.el5.rf.i386.rpm
rpm -Uvh unrar-3.6.8-1.el5.rf.i386.rpm
# 解壓
unrar x archive.rar /target/path/
# 分卷解壓(首卷為 .rar 或 .r00)
unrar x archive.r00 /target/path/
| 操作 | 命令 | 關鍵參數 |
|---|---|---|
| 複製 | cp src dst | -a保留屬性 -f強制覆蓋 -r遞歸 |
| 遠程複製 | scp -r src user@host:/dst | -P port指定端口 -i key密鑰 |
| 移動/重命名 | mv src dst | -f強制 -i交互確認 |
| 刪除 | rm file | -r目錄 -f無提示 -i確認 |
| 修改權限 | chmod 755 file | 目錄 755,文件 644;-R遞歸 |
| 修改所有者 | chown user:group file | -R遞歸 |
r=4 w=2 x=1 → 7=4+2+1(全權限)700 僅擁有者可讀寫執行。ls -alh # 詳細列表,人類可讀大小,含隱藏文件
ls -l file # 文件屬性
ls -ld dir # 目錄自身屬性
ls -alh dir # 目錄下所有文件屬性
cd /absolute/path
cd relative/path
cd ~ # 家目錄
cd - # 上一個目錄
wget https://example.com/file.tar.gz
wget -c https://example.com/large.iso # 斷點續傳
wget -O custom_name https://example.com/f # 重命名保存
wget --limit-rate=1M https://example.com/f # 限速
wget -r -np -k https://example.com/dir/ # 鏡像整站
優勢:服務器直連公網下載,速度極快,適用 CMS 更新、鏡像獲取。
# 單庫備份
mysqldump -h localhost -u root -p dbname > backup_$(date +%F).sql
# 多庫備份
mysqldump -h localhost -u root -p --databases db1 db2 > multi.sql
# 全庫備份(含系統庫)
mysqldump -h localhost -u root -p --all-databases > full.sql
# 僅結構不含數據
mysqldump -h localhost -u root -p -d dbname > schema.sql
# 壓縮備份
mysqldump -h localhost -u root -p dbname | gzip > backup.sql.gz
# 登錄 MySQL 再執行
mysql -h localhost -u root -p dbname < backup.sql
# 或直接管道
gunzip < backup.sql.gz | mysql -h localhost -u root -p dbname
# 遠程備份/恢復(-h 指定遠程主機)
mysqldump -h remote_ip -u user -p dbname | mysql -h localhost -u user -p dbname
--single-transaction:InnoDB 熱備份不鎖表。--quick:流式讀取不緩存全表。--extended-insert:多行合並 INSERT(默認開啟)。ALTER TABLE t DISABLE KEYS → 導入 → ENABLE KEYS。cmd --help 或 man cmd。ssh-copy-id user@host 分發公鑰,配合 ssh-agent 管理密鑰。screen、tmux 防止網絡斷開任務中斷。/etc/ssh/sshd_config 設置 PasswordAuthentication no、PermitRootLogin prohibit-password。ssh -L 8080:localhost:80 user@server 將遠程 80 映射到本地 8080。