Linux運維是保障系統穩定運行的關鍵,以下100項核心技能,從基礎命令到高級運維,提供詳細解釋與實用場景,助你全面掌握Linux運維。

一、基礎命令與操作(20項)

  1. 文件系統操作:熟練使用ls -lha查看文件詳細信息,包含權限、大小、時間;mkdir -p /path/to/dir創建多級目錄;rm -rf /path刪除目錄及內容(需謹慎使用,避免誤刪系統文件)。
  2. 文件處理:使用cp -r /src /dest複製目錄;mv -i /old /new移動文件並提示覆蓋;find / -name "*.log" -mtime +7 -exec rm {} \;查找並刪除7天前的日誌文件。
  3. 文本處理:grep -i "error" /var/log/syslog忽略大小寫查找錯誤;sed -i 's/old/new/g' file.txt替換文件中所有"old"為"new";awk '{print $1,$3}' file.txt打印文件第1、3列。
  4. 權限管理:chmod 755 file設置文件權限為rwxr-xr-x;chown user:group file更改文件所有者和組;chmod u+x script.sh給當前用户添加執行權限。
  5. 進程管理:ps aux查看所有進程;top -c查看CPU使用率高的進程;kill -9 PID強制終止進程;systemctl status nginx查看服務狀態。
  6. 系統信息:uname -a查看系統內核信息;free -h查看內存使用情況;df -h查看磁盤空間;du -sh /var查看目錄大小。
  7. 文本編輯:vim編輯器中,:wq保存退出;/pattern搜索;:%s/old/new/g全局替換;i插入模式;Esc退出插入模式。
  8. 壓縮解壓:tar -czvf archive.tar.gz /dir/創建gzip壓縮包;tar -xzvf archive.tar.gz解壓;zip -r archive.zip /dir/壓縮目錄。
  9. 網絡基礎:ifconfig查看網絡接口信息;ip addr show查看IP地址;ping 8.8.8.8測試網絡連通性;traceroute google.com追蹤路由。
  10. 用户管理:useradd -m -s /bin/bash username添加新用户並創建家目錄;passwd username修改密碼;usermod -aG sudo username添加用户到sudo組。
  11. 系統日誌:tail -f /var/log/syslog實時查看系統日誌;journalctl -u nginx查看Nginx服務日誌;grep "error" /var/log/auth.log查找認證錯誤。
  12. 軟件包管理:apt-get update更新軟件包列表;apt-get install nginx安裝Nginx;yum install httpd安裝Apache。
  13. 系統啓動:systemctl enable nginx設置開機自啓;runlevel查看當前運行級別;init 0關機;init 6重啓。
  14. 環境變量:export PATH=$PATH:/new/bin添加路徑到PATH;echo $PATH查看當前PATH;source ~/.bashrc使環境變量立即生效。
  15. 文件查找:which command查找命令位置;whereis command查找命令及其文檔;locate filename快速查找文件。
  16. 時間管理:date顯示當前時間;date -s "2023-10-01 12:00:00"設置系統時間;ntpdate pool.ntp.org同步網絡時間。
  17. 磁盤管理:fdisk -l列出所有磁盤;mkfs.ext4 /dev/sdb1格式化分區;mount /dev/sdb1 /mnt掛載分區。
  18. 資源監控:vmstat 1 5每秒輸出5次系統狀態;iostat -x 2 3查看磁盤I/O;netstat -tuln查看所有監聽端口。
  19. 文件傳輸:scp user@remote:/path/file /local/path遠程複製文件;rsync -avz /local/ user@remote:/remote/同步目錄。
  20. 歷史命令:history查看命令歷史;!n執行第n條歷史命令;!!執行上一條命令。

二、系統管理(20項)

  1. LVM管理:pvcreate /dev/sdb創建物理卷;vgcreate vg0 /dev/sdb創建卷組;lvcreate -L 10G -n lv0 vg0創建邏輯卷。
  2. RAID配置:mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1創建RAID 1;mdadm --detail /dev/md0查看RAID詳情。
  3. 磁盤配額:edquota -u username設置用户磁盤配額;quota -u username查看配額使用情況。
  4. 系統加固:禁用root遠程登錄:在/etc/ssh/sshd_config中設置PermitRootLogin no;更改SSH端口:Port 2222。
  5. SELinux配置:setenforce 0切換到寬容模式;getenforce查看當前模式;semanage port -a -t http_port_t -p tcp 8080添加自定義端口。
  6. 防火牆配置:firewall-cmd --permanent --add-port=80/tcp永久開放80端口;firewall-cmd --reload重新加載防火牆。
  7. 定時任務:crontab -e編輯定時任務;0 2 * * * /backup/script.sh每天凌晨2點執行備份腳本。
  8. 系統備份:rsync -avz --delete /source/ /backup/實現增量備份;tar -czvf backup.tar.gz /etc/備份配置文件。
  9. 內核參數調優:sysctl -a查看所有參數;sysctl -w net.ipv4.tcp_tw_reuse=1調整TCP參數;echo "net.ipv4.tcp_tw_reuse=1" >> /etc/sysctl.conf永久生效。
  10. 系統升級:apt-get upgrade升級已安裝軟件;apt-get dist-upgrade升級系統;yum update升級所有軟件包。
  11. 系統日誌管理:logrotate /etc/logrotate.conf配置日誌輪轉;編輯/etc/rsyslog.conf配置日誌存儲位置。
  12. 服務管理:systemctl restart network重啓網絡服務;systemctl disable firewalld禁用防火牆;systemctl list-unit-files | grep enabled查看所有啓用的服務。
  13. 用户權限:sudo -i切換到root;sudo -u user command以特定用户身份執行命令;visudo編輯sudoers文件。
  14. 文件系統檢查:fsck /dev/sda1檢查並修復文件系統;e2fsck -y /dev/sda1自動修復。
  15. 內存管理:free -m查看內存;vmstat 1 5查看內存使用;swapoff -a關閉所有交換空間。
  16. CPU監控:mpstat -P ALL 1 5查看所有CPU使用情況;pidstat -u 2 3查看進程CPU使用。
  17. 磁盤I/O監控:iotop -o查看實時I/O使用;iostat -x 2 3查看磁盤I/O詳細信息。
  18. 系統安全加固:安裝fail2ban防止暴力;配置SSH密鑰登錄;定期更新系統補丁。
  19. 系統初始化:設置主機名:hostnamectl set-hostname newname;配置DNS:編輯/etc/resolv.conf。
  20. 系統資源限制:ulimit -n 65535增加文件描述符限制;編輯/etc/security/limits.conf設置用户限制。

三、網絡與安全(20項)

  1. 網絡配置:編輯/etc/network/interfaces配置靜態IP;ifup eth0激活網絡接口。
  2. DNS配置:編輯/etc/resolv.conf配置DNS服務器;nslookup example.com查詢DNS。
  3. 網絡故障排查:mtr google.com連續追蹤路由;tcpdump -i eth0 port 80捕獲HTTP流量。
  4. SSH安全:禁止root登錄:PermitRootLogin no;使用密鑰認證;更改SSH端口。
  5. 防火牆規則:firewall-cmd --list-all查看防火牆規則;firewall-cmd --remove-service=http移除HTTP服務。
  6. 網絡服務:配置Nginx反向代理;配置Apache虛擬主機。
  7. 網絡監控:nmap -sV 192.168.1.0/24掃描網絡;netstat -tuln查看監聽端口。
  8. 端口轉發:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080。
  9. SSL/TLS配置:使用openssl生成證書;配置Nginx啓用HTTPS。
  10. 安全掃描:nmap -sS 192.168.1.0/24進行TCP掃描;lynis審計系統安全。
  11. 安全管理:apt-get install lynis;lynis audit system。
  12. 入侵檢測:安裝fail2ban;配置logwatch監控日誌。
  13. 數據加密:使用gpg加密文件;openssl enc -aes-256-cbc -in file -out file.enc。
  14. 網絡接口配置:ip link set eth0 up啓用接口;ip addr add 192.168.1.10/24 dev eth0添加IP。
  15. 路由管理:ip route add default via 192.168.1.1;route -n查看路由表。
  16. 網絡性能優化:調整TCP參數:sysctl -w net.ipv4.tcp_window_scaling=1。
  17. 網絡診斷:traceroute -I 8.8.8.8使用ICMP進行路由追蹤;mtr -r -c 10 google.com。
  18. 網絡服務監控:使用netdata實時監控網絡流量;使用iftop查看帶寬使用。
  19. 網絡帶寬限制:使用tc命令限制帶寬:tc qdisc add dev eth0 root tbf rate 1mbit burst 10kbit latency 50ms。
  20. 網絡協議分析:wireshark捕獲網絡包;tshark -i eth0 -w capture.pcap。

四、自動化與腳本(20項)

  1. Bash腳本:編寫包含條件判斷的腳本;使用for循環處理文件列表。
  2. Shell腳本:使用$1、$2獲取腳本參數;使用exit 0退出腳本。
  3. Python腳本:使用requests庫發送HTTP請求;使用subprocess模塊執行系統命令。
  4. Ansible:編寫playbook管理多台服務器;使用ansible-galaxy安裝角色。
  5. Puppet:編寫manifest文件配置系統;使用puppet agent -t應用配置。
  6. Cobbler:使用Cobbler自動化安裝系統;配置Kickstart文件。
  7. Jenkins:配置CI/CD流水線;設置構建觸發器。
  8. Git:使用git commit -m "message"提交;git push origin master推送代碼。
  9. Docker:使用Dockerfile構建鏡像;docker run -d -p 80:80 nginx運行容器。
  10. Kubernetes:使用kubectl create deployment創建部署;kubectl get pods查看Pod狀態。
  11. Terraform:使用Terraform編寫基礎設施即代碼;terraform apply應用配置。
  12. Helm:使用Helm安裝Chart;helm install myapp stable/nginx。
  13. Jinja模板:在Ansible中使用Jinja模板;編寫可重用的配置文件。
  14. 自動化備份:使用rsync + cron實現自動化備份;編寫腳本壓縮並傳輸備份文件。
  15. 自動化監控:使用Prometheus + Grafana設置監控;編寫腳本生成自定義指標。
  16. 自動化部署:使用Ansible部署Web應用;使用Jenkins實現自動部署。
  17. 配置管理:使用Puppet管理軟件包;使用Chef管理系統配置。
  18. 持續集成:配置Jenkins構建項目;使用GitLab CI進行自動化測試。
  19. 容器編排:使用Kubernetes部署微服務;使用Helm管理應用。
  20. 自動化測試:編寫Bash腳本進行功能測試;使用Python編寫自動化測試腳本。

五、監控與故障處理(20項)

  1. Zabbix:安裝Zabbix Server;配置監控項和觸發器。
  2. Prometheus:安裝Prometheus;配置exporter收集指標。
  3. Grafana:安裝Grafana;配置數據源和儀表盤。
  4. ELK:安裝Elasticsearch、Logstash、Kibana;配置日誌收集。
  5. 系統性能分析:使用perf分析CPU性能;使用strace跟蹤系統調用。
  6. 內存泄漏檢測:使用valgrind檢測內存泄漏;使用top分析內存使用。
  7. 磁盤性能分析:使用iostat分析磁盤I/O;使用iotop查看進程I/O。
  8. 網絡性能分析:使用iftop查看帶寬使用;使用nethogs查看進程網絡使用。
  9. 日誌分析:使用grep、awk分析日誌;使用Logstash處理日誌。
  10. 故障處理流程:制定故障處理SOP;編寫故障報告模板。
  11. 容災恢復:制定RTO/RPO策略;定期進行災難恢復演練。
  12. 服務降級:實現服務降級策略;編寫降級腳本。
  13. 自動恢復:配置自動恢復腳本;使用Zabbix觸發自動恢復。
  14. 容量規劃:分析歷史數據;預測未來資源需求。
  15. 服務SLA管理:定義SLA指標;監控SLA達成情況。
  16. 性能基準測試:使用sysbench測試CPU;使用fio測試磁盤。
  17. 系統健康檢查:編寫健康檢查腳本;集成到監控系統。
  18. 故障預防:實施預防性維護;定期進行系統健康檢查。
  19. 自動化告警:配置Zabbix告警;編寫告警處理腳本。
  20. 持續改進:定期回顧故障;優化運維流程;記錄經驗教訓。

掌握這100項核心技能,你將具備從基礎操作到高級運維的全面能力,能夠應對各種複雜的Linux運維場景,確保系統穩定、安全、高效運行。運維不僅是技術的積累,更是思維的鍛鍊,持續學習和實踐是運維工程師成長的必經之路。