1. Linux系统命令基础概述
作为软件实施交付转向运维岗位的第三天课程内容,Linux系统命令基础是每位运维工程师必须掌握的看家本领。在实际工作中,近90%的服务器运维操作都需要通过命令行完成,特别是在国产化替代浪潮下,基于Linux内核的麒麟、统信等操作系统正逐步取代传统Windows服务器环境。
我刚转运维时曾犯过一个典型错误:在客户生产环境里用图形界面操作服务器,结果因为网络延迟导致一个关键配置没保存。自那以后,我养成了所有操作都通过SSH命令行完成的职业习惯。今天要分享的这些命令,都是经过上百次真实运维场景验证的"生存必备技能"。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Linux目录结构与基础命令
2.1 目录结构解析
Linux的目录结构像一棵倒置的树,与Windows的盘符概念完全不同。这几个目录必须刻在脑子里:
- /etc:配置文件的大本营,相当于Windows的注册表
- /var:动态数据仓库,日志文件都在这里
- /home:用户的家目录,相当于Windows的Users文件夹
- /bin和/sbin:存放基础命令的"工具箱"
重要提示:永远不要在根目录/下直接执行rm -rf命令,这相当于格式化整个系统
2.2 文件操作四件套
-
ls命令:我习惯用
ls -lht --time-style=long-iso这个组合:- -l 显示详细信息
- -h 人类可读的文件大小
- -t 按时间排序
- 加上--time-style让时间显示更规范
-
cd命令的快捷用法:
cd -返回上一个目录cd ~直接回家目录cd ..上级目录(两个点要连打)
-
cp命令的坑点:
bash复制cp -a source_dir/ dest_dir/ # 注意斜杠位置,避免把目录本身复制进去 -
rm命令的安全用法:
bash复制alias rm='rm -i' # 先加入~/.bashrc防止误删 mkdir /tmp/trash # 建立回收站机制
3. 系统状态监控命令
3.1 进程管理三剑客
-
top命令进阶技巧:
- 按1显示所有CPU核心
- 按M按内存排序
- 按P按CPU排序
- 按z开启彩色显示
-
ps命令实用组合:
bash复制ps -ef --forest | grep nginx # 查看进程树 ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head # 内存占用TOP10 -
kill命令的正确姿势:
bash复制kill -15 PID # 优雅终止(相当于请客吃饭) kill -9 PID # 强制杀死(相当于直接断电)
3.2 网络诊断工具集
-
netstat替代方案:
bash复制ss -tulnp # 比netstat更快更详细 -
ping命令的隐藏参数:
bash复制ping -c 5 -i 0.2 -W 1 baidu.com # 限时精确测试 -
tcpdump抓包实例:
bash复制tcpdump -i eth0 -nn 'port 80' -w http.pcap # 抓取HTTP流量
4. 文本处理与系统配置
4.1 文本处理三巨头
-
grep命令的黄金组合:
bash复制grep -rn --color=auto "error" /var/log/ # 递归搜索错误日志 -
sed命令实战示例:
bash复制sed -i.bak 's/old/new/g' file.conf # 替换并备份原文件 -
awk命令统计技巧:
bash复制awk '{sum+=$3} END {print sum}' data.txt # 第三列求和
4.2 系统配置实战
-
修改yum源(以阿里云为例):
bash复制sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' \ -i.bak /etc/yum.repos.d/CentOS-*.repo -
设置静态IP(Rocky Linux示例):
bash复制nmcli con mod eth0 ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8 114.114.114.114" \ ipv4.method manual nmcli con up eth0
5. 运维必备高阶技巧
5.1 后台运行与日志管理
-
nohup的正确用法:
bash复制nohup ./startup.sh > output.log 2>&1 & # 所有输出重定向到日志 -
日志轮转配置示例(/etc/logrotate.d/myapp):
bash复制/var/log/myapp/*.log { daily rotate 7 compress missingok notifempty create 644 root root }
5.2 安全加固要点
-
禁用不安全的SSL协议:
bash复制sudo sed -i 's/SSLProtocol all -SSLv3/SSLProtocol all -SSLv2 -SSLv3/g' /etc/httpd/conf.d/ssl.conf -
SSH安全配置(/etc/ssh/sshd_config):
bash复制
PermitRootLogin no PasswordAuthentication no MaxAuthTries 3
6. 常见问题排错指南
6.1 命令执行问题
-
"Command not found"的排查步骤:
bash复制which command_name # 检查命令路径 echo $PATH # 检查环境变量 rpm -qf /usr/bin/command_name # 确认软件包是否安装 -
终端打不开的应急处理:
bash复制chvt 2 # 切换到文本终端 export TERM=xterm # 重置终端类型
6.2 网络连接问题
-
检查端口连通性的三种方法:
bash复制
telnet 192.168.1.1 80 nc -zv 192.168.1.1 80 curl -I http://192.168.1.1 -
DNS解析故障排查:
bash复制dig +trace example.com # 完整解析过程 nslookup example.com 8.8.8.8 # 指定DNS服务器查询
7. 学习路径与实战建议
-
命令记忆技巧:
- 按功能分类记忆(文件操作、系统管理、网络工具等)
- 使用
man -k keyword查找相关命令 - 建立自己的cheatsheet文档
-
推荐练习环境:
bash复制docker run -it --rm centos:7 /bin/bash # 快速启动练习环境 -
进阶学习资源:
info coreutils查看GNU核心工具文档/usr/share/doc/目录下的软件文档- 使用
tldr命令查看简化版帮助
我刚开始学Linux时总想记住所有命令参数,后来发现这根本不现实。现在我的做法是:掌握20%的常用命令解决80%的问题,剩下的随时查手册。建议把man和--help当成最好的老师,遇到问题先看官方文档,这比盲目百度效率高得多
