命令到實(shí)戰(zhàn)腳本指南)
1. Linux系統(tǒng)入門從零開始的實(shí)踐指南第一次接觸Linux時(shí)我被那個(gè)黑色的終端窗口嚇到了——沒有熟悉的圖形界面只有閃爍的光標(biāo)和看似神秘的命令。但經(jīng)過多年的使用我發(fā)現(xiàn)Linux才是真正能讓計(jì)算機(jī)聽話的系統(tǒng)。今天我就分享一套經(jīng)過實(shí)戰(zhàn)檢驗(yàn)的Linux學(xué)習(xí)方法特別適合想要系統(tǒng)掌握Linux的新手。提示本文所有操作均基于Ubuntu 22.04 LTS版本但原理適用于大多數(shù)Linux發(fā)行版1.1 為什么選擇Linux作為技能起點(diǎn)在云計(jì)算和DevOps成為標(biāo)配的今天Linux早已不是極客的專屬玩具。根據(jù)2023年的行業(yè)調(diào)查超過90%的云服務(wù)器運(yùn)行Linux系統(tǒng)包括你每天使用的各種互聯(lián)網(wǎng)服務(wù)背后很可能都是Linux在支撐。掌握Linux意味著獲得服務(wù)器管理的基礎(chǔ)能力理解計(jì)算機(jī)系統(tǒng)的工作原理為學(xué)習(xí)編程和自動(dòng)化打下基礎(chǔ)提升故障排查和問題解決能力我建議的學(xué)習(xí)路徑是基礎(chǔ)命令 → 文件系統(tǒng) → 權(quán)限管理 → 軟件安裝 → 系統(tǒng)監(jiān)控 → Shell腳本。這個(gè)順序由淺入深每個(gè)階段都能立即應(yīng)用到實(shí)際工作中。2. 基礎(chǔ)環(huán)境搭建與核心命令2.1 三種最適合新手的實(shí)踐方案方案一Windows子系統(tǒng)(WSL)# 在PowerShell中執(zhí)行 wsl --install -d Ubuntu這是最便捷的方式特別適合只想體驗(yàn)Linux命令行的用戶。安裝后可以直接在Windows開始菜單找到Ubuntu終端。方案二虛擬機(jī)方案推薦使用VirtualBox Ubuntu鏡像下載VirtualBox和Ubuntu ISO新建虛擬機(jī)(建議2核CPU/4GB內(nèi)存/25GB存儲(chǔ))安裝時(shí)勾選安裝OpenSSH服務(wù)器和最小化安裝方案三云服務(wù)器方案各大云平臺(tái)都提供免費(fèi)試用AWS EC2的t2.micro實(shí)例阿里云ECS共享型n1騰訊云輕量應(yīng)用服務(wù)器注意云服務(wù)器記得配置安全組開放22端口(SSH)2.2 必須掌握的20個(gè)核心命令命令作用實(shí)用示例ls列出目錄內(nèi)容ls -lh(人類可讀大小)cd切換目錄cd ~(返回家目錄)pwd顯示當(dāng)前路徑在腳本中確定位置mkdir創(chuàng)建目錄mkdir -p a/b/c(遞歸創(chuàng)建)touch創(chuàng)建文件touch {1..10}.txt(批量創(chuàng)建)cp復(fù)制文件cp -r dir1 dir2(遞歸復(fù)制)mv移動(dòng)/重命名mv old.txt new.txtrm刪除rm -rf dir(強(qiáng)制遞歸刪除)cat查看文件cat filegrep文本搜索grep -r error /var/logfind文件查找find . -name *.log -mtime 7chmod權(quán)限修改chmod 755 script.shchown歸屬修改chown user:group fileps進(jìn)程查看ps auxtop系統(tǒng)監(jiān)控按M按內(nèi)存排序df磁盤空間df -h(人類可讀)du目錄大小du -sh *(匯總顯示)tar打包壓縮tar -czvf archive.tar.gz dirssh遠(yuǎn)程連接ssh -p 2222 userhostsudo提權(quán)執(zhí)行sudo apt update這些命令的組合使用可以完成90%的日常操作。建議先掌握基礎(chǔ)用法再通過--help參數(shù)探索高級(jí)選項(xiàng)。3. 文件系統(tǒng)深度解析3.1 Linux目錄結(jié)構(gòu)精要目錄用途實(shí)操建議/bin基礎(chǔ)命令系統(tǒng)修復(fù)時(shí)關(guān)鍵/etc配置文件修改前記得備份/home用戶目錄個(gè)人文件存放處/var可變數(shù)據(jù)日志文件所在地/tmp臨時(shí)文件重啟自動(dòng)清除/usr用戶程序軟件安裝目錄/opt可選軟件第三方軟件位置/rootroot目錄普通用戶無權(quán)限/proc進(jìn)程信息調(diào)試時(shí)查看/dev設(shè)備文件硬件交互接口理解這個(gè)結(jié)構(gòu)是成為Linux高手的關(guān)鍵。比如當(dāng)磁盤空間不足時(shí)我會(huì)依次檢查/var/log- 日志文件是否過大/tmp- 臨時(shí)文件是否堆積/home- 用戶文件是否超量3.2 權(quán)限系統(tǒng)實(shí)戰(zhàn)技巧Linux權(quán)限系統(tǒng)經(jīng)常讓新手困惑??催@個(gè)典型示例-rwxr-xr-- 1 user group 2048 Jun 1 10:00 script.sh分解說明第一個(gè)字符-表示普通文件(d為目錄)接下來三組rwx分別對(duì)應(yīng)所有者(user)/所屬組(group)/其他用戶(other)數(shù)字表示4(r)2(w)1(x)常用權(quán)限設(shè)置chmod 755 script.sh # 所有者rwx其他人rx chmod 600 secret.txt # 僅所有者可讀寫 chmod x script.sh # 添加執(zhí)行權(quán)限踩坑記錄曾經(jīng)有次誤執(zhí)行chmod -R 777 /導(dǎo)致系統(tǒng)安全機(jī)制崩潰。切記不要隨意全局提權(quán)4. 軟件管理與系統(tǒng)維護(hù)4.1 包管理工具對(duì)比工具適用系統(tǒng)核心命令A(yù)PTDebian/Ubuntusudo apt update sudo apt upgradeYUMRHEL/CentOSsudo yum check-updateDNFFedorasudo dnf upgradePacmanArchsudo pacman -SyuZypperopenSUSEsudo zypper refresh我的軟件安裝流程先搜索官方源apt search keyword查看軟件信息apt show package安裝sudo apt install package清理緩存sudo apt autoremove4.2 系統(tǒng)監(jiān)控三板斧內(nèi)存檢查free -h重點(diǎn)關(guān)注available值這才是真正可用的內(nèi)存。CPU監(jiān)控top -o %CPU # 按CPU排序或使用更直觀的htop(需額外安裝)磁盤I/Oiotop # 需要sudo權(quán)限發(fā)現(xiàn)異常進(jìn)程時(shí)可以用strace跟蹤系統(tǒng)調(diào)用strace -p 進(jìn)程PID5. Shell腳本實(shí)戰(zhàn)入門5.1 第一個(gè)實(shí)用腳本日志清理#!/bin/bash # 清理7天前的日志文件 LOG_DIR/var/log/myapp DAYS_TO_KEEP7 if [ ! -d $LOG_DIR ]; then echo 錯(cuò)誤日志目錄不存在 exit 1 fi find $LOG_DIR -type f -name *.log -mtime $DAYS_TO_KEEP -delete echo 已清理$(date %Y-%m-%d)的舊日志使用技巧第一行#!/bin/bash必須要有給腳本執(zhí)行權(quán)限chmod x cleanup.sh測(cè)試時(shí)先用-print替換-delete確認(rèn)文件添加到cron實(shí)現(xiàn)自動(dòng)化0 3 * * * /path/to/cleanup.sh /var/log/cleanup.log 215.2 腳本調(diào)試技巧語法檢查bash -n script.sh詳細(xì)執(zhí)行日志bash -x script.sh檢查未定義變量bash -u script.sh在VSCode中安裝ShellCheck插件實(shí)時(shí)提示錯(cuò)誤6. 常見問題排錯(cuò)指南6.1 SSH連接失敗排查流程檢查網(wǎng)絡(luò)連通性ping 目標(biāo)IP確認(rèn)端口開放telnet 目標(biāo)IP 22查看服務(wù)狀態(tài)sudo systemctl status sshd檢查防火墻規(guī)則sudo ufw status # Ubuntu sudo firewall-cmd --list-all # CentOS查看日志journalctl -u sshd -n 50 --no-pager6.2 Permission Denied 問題大全場(chǎng)景解決方案執(zhí)行腳本報(bào)錯(cuò)chmod x script.sh修改文件報(bào)錯(cuò)sudo vim file或chown user file安裝軟件報(bào)錯(cuò)使用sudo或切換root訪問目錄報(bào)錯(cuò)ls -ld /path查看權(quán)限SCP傳輸失敗檢查目標(biāo)目錄可寫權(quán)限7. 進(jìn)階學(xué)習(xí)路線建議掌握基礎(chǔ)后可以按這個(gè)路線繼續(xù)提升網(wǎng)絡(luò)管理netstat/ss查看連接tcpdump抓包分析iptables/nftables防火墻服務(wù)管理Systemd單元文件編寫Nginx/Apache配置Docker容器管理自動(dòng)化運(yùn)維Ansible劇本編寫定時(shí)任務(wù)管理(cron)日志分析(ELK棧)性能調(diào)優(yōu)vmstat/iostat監(jiān)控內(nèi)核參數(shù)調(diào)整文件系統(tǒng)優(yōu)化建議每天解決一個(gè)實(shí)際問題比如如何批量重命名文件怎樣找出消耗CPU的進(jìn)程如何設(shè)置開機(jī)自啟動(dòng)服務(wù)這種問題驅(qū)動(dòng)學(xué)習(xí)法效果最好。我在初期就創(chuàng)建了一個(gè)Linux問題解決記錄文檔現(xiàn)在回頭看那些踩過的坑都是最寶貴的學(xué)習(xí)資料。