掌握这些核心命令和概念,将极大提升您的Linux运维效率
# 查看系统版本信息
cat /etc/os-release
lsb_release -a
# 查看内核版本
uname -r
# 查看CPU信息
lscpu
cat /proc/cpuinfo
# 查看内存信息
free -h
cat /proc/meminfo
# 实时进程监控(交互式)
top
htop # 增强版top
# 系统资源监控
vmstat 2 5 # 每2秒采样一次,共5次
iostat -dx 2 # 磁盘I/O统计
# 网络流量监控
nload
iftop
# 查看系统负载
uptime
cat /proc/loadavg
# 查看磁盘使用情况
df -Th # 显示文件系统类型和人类可读格式
du -sh * # 查看当前目录各文件/文件夹大小
# 查看历史负载
sar -u # CPU利用率
sar -r # 内存使用情况
命令 | 功能描述 | 常用参数 |
---|---|---|
ls |
列出目录内容 | -l (详细信息), -a (显示隐藏文件), -h (人类可读) |
cd |
切换目录 | .. (上级目录), - (返回上一次目录) |
pwd |
显示当前工作目录 | |
cp |
复制文件/目录 | -r (递归复制), -v (显示详细信息) |
mv |
移动/重命名文件 | |
rm |
删除文件 | -r (递归删除), -f (强制删除) |
mkdir |
创建目录 | -p (创建多级目录) |
# 查看文件内容
cat filename # 显示整个文件
less filename # 分页查看(可前后翻页)
head -n 20 file # 查看前20行
tail -n 30 file # 查看后30行
tail -f logfile # 实时追踪日志文件
# 文件搜索
grep "error" logfile # 在文件中搜索"error"
grep -r "pattern" /dir # 递归搜索目录
find / -name "*.log" # 按文件名查找
find /var/log -mtime +30 # 查找30天前的文件
# 文件比较
diff file1 file2 # 比较两个文件差异
# 查看文件权限
ls -l filename
# 修改权限
chmod u+x script.sh # 给所有者添加执行权限
chmod 755 script.sh # 设置权限为rwxr-xr-x
# 修改所有者
chown user:group filename
# 特殊权限
chmod +s file # 设置SUID
chmod +t dir # 设置粘滞位
# 查看进程
ps aux # 查看所有运行中的进程
ps -ef # 完整格式显示进程信息
# 实时进程监控
top
# 结束进程
kill 1234 # 终止PID为1234的进程
kill -9 1234 # 强制终止进程
pkill processname # 按进程名终止
# 后台作业管理
bg %1 # 将作业1放入后台运行
fg %2 # 将作业2调回前台
jobs # 查看后台作业
# 服务状态管理
systemctl status nginx # 查看服务状态
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl reload nginx # 重新加载配置
# 服务启用/禁用
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 禁用开机自启
# 查看所有服务
systemctl list-unit-files --type=service
# 查看IP地址
ip addr show
ifconfig # 较旧系统
# 查看路由表
ip route
netstat -rn
# 查看网络接口
ethtool eth0 # 查看网卡详细信息
# 查看网络连接
ss -tunlp # 推荐替代netstat
netstat -tuln # 查看监听端口
# 连通性测试
ping 8.8.8.8
ping6 ipv6.google.com
# 路由追踪
traceroute google.com
tracepath google.com
# DNS查询
nslookup google.com
dig google.com
# 端口测试
telnet server 22 # 测试TCP端口连通性
nc -zv server 80 # 测试端口是否开放
# 下载工具
wget https://example.com/file
curl -O https://example.com/file
# 查看磁盘信息
fdisk -l
lsblk
# 磁盘分区
fdisk /dev/sdb # 交互式分区工具
# 创建文件系统
mkfs.ext4 /dev/sdb1
# 挂载分区
mount /dev/sdb1 /mnt/data
# 自动挂载配置
vim /etc/fstab # 添加挂载条目
# 创建物理卷
pvcreate /dev/sdb
# 创建卷组
vgcreate vg_data /dev/sdb
# 创建逻辑卷
lvcreate -L 100G -n lv_data vg_data
# 扩展逻辑卷
lvextend -L +50G /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data # 扩展文件系统
# 更新软件包列表
sudo apt update
# 升级已安装的包
sudo apt upgrade
# 安装软件
sudo apt install nginx
# 移除软件
sudo apt remove nginx
# 清除无用包
sudo apt autoremove
# 搜索软件
apt search keyword
# 更新系统
sudo yum update
# 安装软件
sudo yum install httpd
# 移除软件
sudo yum remove httpd
# 清理缓存
yum clean all
# 查找软件包
yum search keyword
日志文件 | 用途描述 |
---|---|
/var/log/messages |
常规系统消息 |
/var/log/auth.log |
认证和安全日志 |
/var/log/syslog |
系统日志 |
/var/log/kern.log |
内核日志 |
/var/log/dmesg |
启动日志 |
/var/log/nginx/access.log |
Nginx访问日志 |
# 查看系统日志
journalctl # 查看所有日志
journalctl -u nginx # 查看特定服务日志
journalctl --since "2023-01-01" --until "2023-01-02"
journalctl -f # 实时跟踪日志
# 日志轮转配置
vim /etc/logrotate.conf
vim /etc/logrotate.d/nginx
# 命令历史
history # 查看历史命令
!100 # 执行第100条历史命令
ctrl+r # 反向搜索历史命令
# 输入输出重定向
command > file # 标准输出重定向到文件
command 2> file # 标准错误重定向到文件
command >> file # 追加输出
command | grep "error" # 管道过滤
# 后台运行
nohup command & # 后台运行,退出终端不终止
# 别名设置
alias ll='ls -lh' # 创建别名
#!/bin/bash
# 简单备份脚本
BACKUP_DIR="/backup"
LOG_FILE="/var/log/backup.log"
DATE=$(date +%Y%m%d)
echo "Starting backup at $(date)" >> $LOG_FILE
tar -czf $BACKUP_DIR/backup-$DATE.tar.gz /home /etc
echo "Backup completed at $(date)" >> $LOG_FILE
# 检查磁盘空间脚本
THRESHOLD=90
CURRENT=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo "Disk space alert! Usage is at ${CURRENT}%" | mail -s "Disk Alert" [email protected]
fi
# UFW (Ubuntu)
sudo ufw allow 22
sudo ufw enable
# firewalld (CentOS)
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
运维工程师的忠告:命令只是工具,真正重要的是理解系统原理和工作流程。遇到问题时,学会查阅手册(
man
命令)、阅读日志、分析监控数据,比记住所有命令更重要。保持好奇心,持续学习新技术,是运维工程师的核心竞争力。
通过掌握这些基础命令和概念,您将能够高效地进行日常运维工作。随着经验的积累,您会发现这些工具将成为解决问题的有力武器!