1. Linux命令行基础认知
第一次接触Linux终端时,那个闪烁的光标和黑底白字的界面总让人望而生畏。但就像老司机熟悉方向盘一样,命令行其实是与系统对话的最高效方式。我在运维岗位的这些年,每天有80%的工作都是在终端完成的——从简单的文件查看到复杂的服务部署,命令行就像瑞士军刀,总能精准解决问题。
与图形界面相比,命令行有三个不可替代的优势:首先,它消耗资源极少,在服务器环境尤为关键;其次,支持脚本化批量操作,效率提升不止十倍;最重要的是,几乎所有系统配置的底层控制权都通过命令行暴露。这也是为什么无论是运维、开发还是数据分析岗位,Linux命令都是必备技能树的第一块拼图。
提示:初学者常见误区是试图记忆所有命令参数。实际上掌握核心命令的20%常用功能就能应对80%日常需求,其余完全可以通过
--help或man手册实时查询。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件系统操作指令精要
2.1 目录导航与查看
pwd命令会告诉你当前所处的绝对路径,就像GPS定位。而ls则是查看目录内容的显微镜,配合参数使用效果更佳:
bash复制ls -l # 显示详细信息包括权限、大小
ls -a # 显示隐藏文件(以点开头)
ls -t # 按修改时间排序
cd命令的快捷用法能极大提升效率:
bash复制cd ~ # 返回用户主目录
cd - # 返回上一个工作目录
cd .. # 进入上级目录
2.2 文件操作四件套
创建、复制、移动、删除是文件管理的四大基础动作:
bash复制touch filename # 创建空文件
cp -r dir1 dir2 # 递归复制目录
mv oldname newname # 重命名或移动文件
rm -i *.log # 交互式删除日志文件
警告:
rm -rf /是著名的"自杀命令",递归强制删除根目录所有文件。生产环境操作前务必双重确认路径。
2.3 文件内容处理
查看文件内容有多种工具,各有所长:
bash复制cat file | head -n 20 # 查看前20行
less file # 交互式浏览(支持搜索)
tail -f /var/log/syslog # 实时追踪日志更新
grep "error" *.log # 在所有日志中搜索error关键词
3. 系统监控与进程管理
3.1 资源监控三板斧
top命令是系统监控的仪表盘,实时显示CPU、内存占用。其增强版htop更直观(需安装):
bash复制top -u mysql # 只监控mysql用户进程
htop --sort=PERCENT_CPU # 按CPU占用排序
free -h以人类可读格式显示内存使用,df -h则展示磁盘空间情况。我曾用这两个命令快速定位过多次线上故障:
bash复制watch -n 1 free -h # 每秒刷新内存信息
df -h | grep -v tmpfs # 排除临时文件系统
3.2 进程管理实战
bash复制ps aux | grep nginx # 查找nginx相关进程
kill -9 1234 # 强制终止PID为1234的进程
nice -n 10 command # 以低优先级运行程序
遇到僵尸进程时,正确的处理流程是:
- 用
ps -efl确认进程状态标记为"Z" - 找到其父进程ID
- 先终止父进程
- 最后清理僵尸进程
4. 网络配置与排错
4.1 网络状态诊断
bash复制ifconfig eth0 | grep "inet " # 查看IP地址(新版用ip addr)
netstat -tulnp # 查看监听端口及对应程序
traceroute www.example.com # 追踪网络路径
4.2 连接测试工具
ping是网络连通性测试的听诊器,而curl则是万能的HTTP瑞士军刀:
bash复制ping -c 4 8.8.8.8 # 发送4个测试包
curl -I https://example.com # 仅获取HTTP头信息
wget --limit-rate=200k http://example.com/file.iso # 限速下载
5. 权限管理与用户控制
5.1 文件权限体系
Linux权限系统采用三组rwx(读/写/执行)标志:
bash复制chmod 755 script.sh # 所有者rwx,同组和其他用户rx
chown user:group file # 修改文件所有者和所属组
umask 0022 # 设置新建文件默认权限
5.2 用户账户管理
bash复制sudo useradd -m -s /bin/bash newuser # 创建用户并生成家目录
passwd newuser # 设置密码
usermod -aG sudo newuser # 添加到sudo组
6. 文本处理三剑客
6.1 grep文本搜索
bash复制grep -rin "panic" /var/log/ # 递归忽略大小写搜索
grep --color=auto "TODO" *.py # 高亮显示匹配项
6.2 sed流编辑器
bash复制sed -i 's/old/new/g' file.txt # 批量替换文本
sed -n '10,20p' access.log # 提取10-20行
6.3 awk数据处理
bash复制awk '{print $1,$4}' access.log # 打印特定列
awk -F: '{print $1}' /etc/passwd # 以冒号分隔
awk '$3 > 100 {print $0}' data.csv # 条件过滤
7. 压缩打包与软件管理
7.1 压缩解压大全
bash复制tar -czvf archive.tar.gz dir/ # 创建gzip压缩包
tar -xzvf archive.tar.gz -C /target # 解压到指定目录
unzip -l package.zip # 查看zip包内容
7.2 软件包管理
不同发行版命令不同,但逻辑相通:
bash复制# Debian/Ubuntu
apt update && apt install nginx
dpkg -i package.deb
# RHEL/CentOS
yum install httpd
rpm -qa | grep python
8. 环境变量与Shell技巧
8.1 环境变量配置
bash复制echo $PATH # 查看当前PATH
export PATH=$PATH:/new/path # 临时添加路径
vim ~/.bashrc # 永久生效的配置位置
8.2 Shell高效技巧
bash复制!! # 重复上条命令
!$ # 上条命令的最后一个参数
ctrl+r # 反向搜索命令历史
alias ll='ls -alF' # 创建命令别名
9. 系统服务管理
9.1 systemd服务控制
bash复制systemctl start nginx # 启动服务
systemctl enable docker # 设置开机自启
journalctl -u sshd -f # 查看服务日志
9.2 定时任务配置
bash复制crontab -e # 编辑当前用户计划任务
*/5 * * * * /path/to/script.sh # 每5分钟执行
10. 高级组合应用实例
10.1 日志分析实战
统计Nginx日志中访问量前10的IP:
bash复制awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
10.2 批量重命名技巧
将所有.jpg文件添加日期前缀:
bash复制for file in *.jpg; do mv "$file" "$(date +%Y%m%d)_$file"; done
10.3 内存泄漏排查
监控进程内存增长:
bash复制watch -n 1 'ps -eo pid,user,%mem,command --sort=-%mem | head -n 10'
命令行真正的力量在于组合使用。比如这个监控网络连接的组合命令:
bash复制watch -n 1 "netstat -an | awk '/^tcp/ {++S[\$NF]} END {for(a in S) print a, S[a]}'"
掌握这些命令后,你会发现很多图形界面操作反而显得笨拙。就像我常对新同事说的:命令行不是洪水猛兽,而是你最忠实的效率伙伴。刚开始可能需要多查手册,但三个月后你会惊讶于自己处理问题的速度变化。
