作为从业十余年的系统管理员,我整理了一份经过实战检验的Linux命令手册。不同于网上随处可见的简单罗列,这份指南将结合真实运维场景,讲解每个命令的核心参数和典型用法。无论你是刚接触Linux的新手,还是需要快速查阅的老手,这些命令都能成为你日常工作的得力助手。
Linux命令行的强大之处在于其组合性和灵活性。通过管道符(|)和重定向(>)等机制,简单的命令可以组合出复杂的功能。比如用grep过滤日志、用awk提取字段、用sort排序结果,这些基础命令的组合能解决90%的文本处理需求。
ls:列出目录内容,常用参数:
bash复制ls -l # 详细列表(权限、所有者、大小)
ls -a # 显示隐藏文件(以.开头)
ls -lh # 人类可读的文件大小(KB/MB/GB)
实际案例:快速定位大文件
bash复制ls -lhS /var/log | head -10
cd:切换目录,记住几个特殊符号:
bash复制cd ~ # 返回家目录
cd - # 返回上一个目录
cd .. # 返回上级目录
pwd:显示当前工作目录完整路径,在复杂目录结构中特别有用。
cp:复制文件/目录
bash复制cp -r source_dir target_dir # 递归复制目录
cp -p file1 file2 # 保留原文件属性
mv:移动/重命名
bash复制mv oldname newname # 重命名
mv file1 /target/path/ # 移动文件
rm:删除(谨慎使用!)
bash复制rm -i file # 交互式删除(推荐新手)
rm -rf dir # 强制递归删除目录(危险!)
警告:rm -rf / 会删除整个系统!永远不要尝试
cat:查看小文件内容
bash复制cat -n file.txt # 显示行号
less/more:分页查看大文件
bash复制less +F /var/log/syslog # 实时跟踪日志(按Ctrl+C退出)
head/tail:查看文件首尾
bash复制tail -f /var/log/nginx/access.log # 实时监控日志
head -n 20 file.txt # 查看前20行
top/htop:动态查看系统资源
bash复制top -u mysql # 只看mysql用户的进程
htop -d 10 # 每10秒刷新一次
free:内存使用情况
bash复制free -h # 人性化显示(GB/MB)
df/du:磁盘空间检查
bash复制df -hT # 显示文件系统类型和空间
du -sh * # 查看当前目录各文件大小
ps:进程快照
bash复制ps aux | grep nginx # 查找nginx相关进程
ps -ef --forest # 显示进程树
kill/pkill:终止进程
bash复制kill -9 1234 # 强制终止PID为1234的进程
pkill -f "python" # 终止所有python进程
nohup:后台运行
bash复制nohup ./start.sh & # 断开SSH后继续运行
ifconfig/ip:网络接口配置
bash复制ip addr show # 显示所有网络接口
netstat/ss:网络连接查看
bash复制ss -tulnp # 查看所有监听端口
netstat -rn # 查看路由表
ping/traceroute:连通性测试
bash复制ping -c 4 baidu.com # 发送4个测试包
traceroute -n 8.8.8.8 # 不解析域名加快速度
curl/wget:网络请求
bash复制curl -I https://example.com # 只显示HTTP头
wget -c http://example.com/file.zip # 断点续传
telnet/nc:端口测试
bash复制nc -zv 192.168.1.1 22 # 测试22端口是否开放
grep:文本搜索
bash复制grep -r "error" /var/log/ # 递归搜索目录
grep -v "debug" file.log # 排除包含debug的行
awk:字段处理
bash复制awk '{print $1,$4}' access.log # 打印第1和第4列
awk -F: '{print $1}' /etc/passwd # 以冒号分隔
sed:流编辑器
bash复制sed 's/foo/bar/g' file.txt # 全局替换
sed -i.bak '10d' file.txt # 删除第10行(先备份)
sort:排序
bash复制sort -nr -k3 data.txt # 按第3列数字逆序
uniq:去重
bash复制sort file.txt | uniq -c # 统计出现次数
chmod:修改权限
bash复制chmod 755 script.sh # rwxr-xr-x
chmod +x backup.sh # 添加执行权限
chown:修改所有者
bash复制chown -R www:www /var/www # 递归修改目录所有者
useradd/userdel:用户管理
bash复制useradd -m -s /bin/bash newuser # 创建家目录并指定shell
passwd:密码设置
bash复制passwd username # 修改用户密码
tar:归档
bash复制tar -czvf backup.tar.gz /path # 创建gzip压缩包
tar -xzvf backup.tar.gz # 解压
zip/unzip:
bash复制zip -r backup.zip /path
unzip -l backup.zip # 查看压缩包内容
对于大文件推荐使用更高效的压缩工具:
bash复制tar -cvf - /bigdata | pigz -p 8 > backup.tar.gz # 多线程压缩
查找并删除7天前的日志:
bash复制find /var/log -name "*.log" -mtime +7 -exec rm {} \;
统计nginx访问日志TOP10 IP:
bash复制awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
bash复制!vim # 执行最近以vim开头的命令
Ctrl+R # 反向搜索历史命令
设置历史命令增强:
bash复制export HISTTIMEFORMAT="%F %T " # 记录时间戳
export HISTSIZE=10000 # 扩大历史记录
uname:系统信息
bash复制uname -a # 全部信息
lscpu/lspci:硬件信息
bash复制lscpu # CPU详情
lspci | grep -i vga # 显卡信息
bash复制lsmod # 已加载模块
modinfo ext4 # 查看模块信息
bash复制crontab -e # 编辑当前用户任务
crontab -l # 列出任务
典型备份任务示例:
bash复制0 2 * * * /usr/bin/rsync -a /data backup-server:/backups
bash复制systemctl status nginx # 查看状态
systemctl restart mysql # 重启服务
对于没有systemctl的老系统:
bash复制service httpd restart # CentOS 6风格
/etc/init.d/nginx reload # 直接调用脚本
这份命令手册会持续更新,建议收藏备用。在实际使用中,最有效的方法是结合man手册(man command)查看每个命令的完整用法。记住,Linux的强大之处不在于记住所有命令,而在于理解如何组合它们解决问题。