1. Linux指令高效操作指南
作为在Linux环境下摸爬滚打多年的老运维,我深知命令行操作效率直接决定工作产出。今天分享的这些指令都是经过实战检验的"生存必备技能",每个指令背后都藏着无数个加班夜的血泪教训。
2. 文件系统操作精要
2.1 目录导航与查看
cd - 快速返回上一个工作目录,比反复敲完整路径高效得多。实测在多层目录跳转时能节省40%以上的时间。
tree -L 2 以树状结构显示目录,-L参数控制显示层级。建议配合-d参数只显示目录结构,处理复杂项目时特别有用。
重要提示:在生成环境慎用
rm -rf,建议先执行ls确认目标路径,再替换为删除命令。我习惯设置alias rm='rm -i'强制交互确认。
2.2 文件操作四件套
bash复制# 复制时保留权限和时间戳
cp -a source_dir/ dest_dir/
# 移动文件时显示进度
pv bigfile.iso > /mnt/backup/bigfile.iso
# 批量重命名神器
rename 's/.jpg/.png/' *.jpg
统计文件数量时,find . -type f | wc -l比图形界面快10倍不止。加上-name "*.log"可以过滤特定类型文件。
3. 文本处理三板斧
3.1 grep的进阶用法
bash复制# 显示匹配行及前后3行上下文
grep -A3 -B3 "error" system.log
# 排除注释行和空行
grep -vE '^#|^$' config.conf
# 递归搜索时忽略二进制文件
grep -rI "TODO" ~/projects/
3.2 sed流式编辑
替换文本时先用-n p模式预览修改结果:
bash复制sed -n 's/old/new/gp' file.txt
批量处理文件时配合find使用:
bash复制find . -name "*.conf" -exec sed -i 's/#Port 22/Port 2222/' {} +
3.3 awk数据提取
提取nginx日志中的IP和访问量:
bash复制awk '{print $1}' access.log | sort | uniq -c | sort -nr
计算CSV文件第三列总和:
bash复制awk -F',' '{sum+=$3} END {print sum}' data.csv
4. 系统监控与进程管理
4.1 实时监控组合拳
htop比传统top更直观,支持鼠标操作和颜色区分。安装后建议配置~/.config/htop/htoprc调整显示列。
nethogs按进程显示实时流量,排查带宽占用问题时比iftop更精准:
bash复制nethogs eth0 -d 5 # 每5秒刷新
4.2 进程调试技巧
strace -p <PID>跟踪进程系统调用,调试卡死问题时特别有用。加上-f参数可以跟踪子进程。
lsof -i :8080查看占用8080端口的进程,比netstat输出更清晰。常用组合:
bash复制lsof -u username # 查看用户打开的文件
lsof +D /var/log # 查看目录被哪些进程使用
5. 网络诊断黄金指令
5.1 连通性测试
mtr结合了traceroute和ping的功能,能持续监测路由状况:
bash复制mtr -o "LSDR NBAW JMXI" 8.8.8.8
telnet快速测试端口连通性(比nc更普遍):
bash复制telnet example.com 443
5.2 高级curl技巧
调试API时这样用:
bash复制curl -v -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com
下载文件时显示进度条:
bash复制curl -# -O http://example.com/bigfile.zip
6. 权限管理核心操作
6.1 特殊权限设置
设置SUID权限使普通用户临时获得所有者权限:
bash复制chmod u+s /usr/bin/special_cmd
目录设置SGID后,新建文件自动继承组权限:
bash复制chmod g+s /shared_dir
6.2 ACL精细控制
给特定用户添加写权限:
bash复制setfacl -m u:username:rwx /project/
查看现有ACL规则:
bash复制getfacl /path/to/file
7. 压缩解压极简方案
7.1 常用压缩格式
bash复制# 最高压缩率
tar -cvzf backup.tgz --exclude='*.tmp' /data/
# 分卷压缩(每个分卷100M)
tar -cvzf - /bigdata/ | split -b 100M - bigdata.tar.gz.
7.2 快速解压技巧
不解压直接查看内容:
bash复制tar -tzf archive.tgz | grep "pattern"
解压到指定目录:
bash复制unzip -d target_dir file.zip
8. 实用alias推荐
把这些加入~/.bashrc能显著提升效率:
bash复制alias ll='ls -alhF --color=auto'
alias grep='grep --color=auto'
alias df='df -h'
alias du='du -h --max-depth=1'
alias mkdir='mkdir -pv'
alias ports='netstat -tulanp'
重载配置不用注销:
bash复制source ~/.bashrc
9. 系统信息速查
9.1 硬件信息
bash复制lscpu # CPU详情
lsblk # 磁盘分区
dmidecode -t memory # 内存信息
9.2 系统状态
bash复制# 查看启动时间和服务
uptime
systemctl list-units --type=service
# 内核日志筛选
dmesg | grep -i error
10. 安全操作红线
10.1 敏感操作保护
修改重要文件前先备份:
bash复制cp /etc/ssh/sshd_config{,.bak}
批量操作前先dry run:
bash复制find /tmp -name "*.log" -print # 确认无误后再替换为-exec
10.2 密码安全
避免在history留下密码记录:
bash复制mysql -u root -p"$(cat /root/mysql_pass)"
或者直接在命令前加空格(需要设置HISTCONTROL=ignorespace)
11. 终端生存技巧
11.1 会话管理
screen或tmux实现会话持久化,特别适合远程工作:
bash复制tmux new -s work_session
Ctrl+b d # 分离会话
tmux attach -t work_session
11.2 历史命令优化
bash复制# 显示时间戳
export HISTTIMEFORMAT="%F %T "
# 忽略重复命令
export HISTCONTROL=ignoredups
# 搜索历史
Ctrl+r 搜索词
12. 性能分析必杀技
12.1 磁盘IO监控
bash复制iotop -o # 显示实际IO进程
iostat -x 1 # 详细设备统计
12.2 内存分析
bash复制free -h
vmstat 1 # 动态查看内存压力
13. 日志分析实战
13.1 实时日志监控
bash复制tail -f /var/log/nginx/access.log | grep -v "ELB-HealthChecker"
13.2 日志统计
统计HTTP状态码分布:
bash复制awk '{print $9}' access.log | sort | uniq -c | sort -nr
14. 软件包管理精髓
14.1 批量操作
bash复制# 列出已安装包
dpkg -l | grep ^ii
# 清理无用依赖
apt autoremove
14.2 源码编译
bash复制./configure --prefix=/usr/local
make -j$(nproc) # 并行编译
make install
15. 环境变量管理
15.1 持久化设置
bash复制echo 'export PATH="$PATH:/new/path"' >> ~/.bashrc
15.2 临时生效
bash复制env VAR=value command
16. 计划任务进阶
16.1 防重复执行
bash复制flock -xn /tmp/my.lock -c "/path/to/script.sh"
16.2 邮件通知
bash复制0 * * * * /backup.sh 2>&1 | mail -s "Backup Report" admin@example.com
17. 用户管理要点
17.1 批量创建用户
bash复制newusers userlist.txt # 文件格式:username:password:UID:GID:info:homedir:shell
17.2 密码策略
bash复制chage -l username # 查看密码过期信息
passwd -e username # 强制下次登录修改密码
18. 系统救援技巧
18.1 只读文件系统修复
bash复制mount -o remount,rw / # 重新挂载为可写
18.2 修复引导
bash复制grub-install /dev/sdX
update-grub
19. 时间同步关键步骤
19.1 时区设置
bash复制timedatectl set-timezone Asia/Shanghai
19.2 NTP同步
bash复制chronyc sources -v # 查看时间源状态
20. 脚本调试方法论
20.1 严格模式
bash复制#!/bin/bash
set -euo pipefail # 错误退出/未定义变量报错/管道错误检测
20.2 详细调试
bash复制bash -x script.sh # 显示执行过程