作为IT工程师,掌握Linux命令行工具是日常运维工作的核心技能。以下是一些常用场景和工具的使用方法:
# 查看系统负载
uptime
# 查看内存使用情况
free -h
# 查看磁盘使用情况
df -h
# 查看磁盘I/O情况
iostat -x 1
# 查看网络连接
ss -tulnp # 或 netstat -tulnp (较旧系统)
# 查看进程树
pstree
# 动态查看进程
top # 或更现代的 htop
# 按CPU使用率排序
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
# 杀死进程
kill -9 [PID]
/var/log/messages # 通用系统消息
/var/log/syslog # 系统日志
/var/log/auth.log # 认证日志
/var/log/kern.log # 内核日志
/var/log/dmesg # 启动消息
# 查看最新日志
tail -f /var/log/syslog
# 查找错误
grep -i error /var/log/syslog
# 统计日志中404错误
grep " 404 " /var/log/nginx/access.log | wc -l
# 使用awk分析日志
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
# 测试网络连通性
ping example.com
# 查看路由路径
traceroute example.com
# 检查DNS解析
dig example.com
# 网络接口信息
ip addr show # 或 ifconfig (较旧系统)
# 查看网络连接
netstat -antp # 或 ss -antp
# 抓包分析
tcpdump -i eth0 port 80 -w capture.pcap
# 测试端口连通性
nc -zv example.com 22
# 带宽测试
iperf -s # 服务端
iperf -c server_ip # 客户端
# 查找大文件
find / -type f -size +100M -exec ls -lh {} \;
# 查找并删除旧文件
find /var/log -name "*.log" -mtime +30 -exec rm {} \;
# 统计目录大小
du -sh /var/*
# 修改文件权限
chmod 755 script.sh
# 修改文件所有者
chown user:group file.txt
# 设置SUID
chmod u+s /usr/bin/program
# 检查SUID/SGID文件
find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \;
# 编辑crontab
crontab -e
# 示例:每天凌晨备份
0 0 * * * /usr/bin/backup-script.sh
#!/bin/bash
# 简单备份脚本示例
BACKUP_DIR="/backups"
DATE=$(date +%Y%m%d)
tar -czf "$BACKUP_DIR/backup-$DATE.tar.gz" /var/www/html
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -exec rm {} \;
# 更新软件包列表
sudo apt update
# 升级已安装的包
sudo apt upgrade
# 安装新软件
sudo apt install nginx
# 删除软件
sudo apt remove nginx
# 更新系统
sudo yum update
# 安装软件
sudo yum install httpd
# 删除软件
sudo yum remove httpd
# 添加用户
useradd -m newuser
# 设置密码
passwd newuser
# 查看登录用户
who
# 查看登录历史
last
# 生成SSH密钥
ssh-keygen -t rsa -b 4096
# 复制公钥到远程服务器
ssh-copy-id user@remote_host
# 限制root登录(编辑/etc/ssh/sshd_config)
PermitRootLogin no
# 快速返回之前目录
cd -
# 重复上条命令
!!
# 以sudo执行上条命令
sudo !!
# 创建并进入目录
mkdir -p /path/to/new/dir && cd $_
# 快速清空文件
> file.log
# 查看Linux发行版
cat /etc/*release
# 查看内核版本
uname -a
# 查看CPU信息
lscpu
# 查看硬件信息
lshw
掌握这些命令和技巧,可以高效完成大多数Linux系统运维工作。根据具体需求,可以进一步学习更专业的工具如Ansible、Prometheus、Grafana等自动化运维和监控工具。