# Linux 常用运维命令手册
> 适用 CentOS / Ubuntu,可直接复制保存为 linux-command.md
> 提示:# 代表注释,实际执行不要复制#后面内容
[TOC]
## 一、目录与文件操作
```bash
pwd # 查看当前所在路径
ls # 列出目录文件
ls -l # 详细信息(权限、大小、时间)
ls -la # 显示全部,包含隐藏文件
ls -lh # 人性化显示文件大小 KB/MB
ls -lt # 按修改时间排序
cd /home # 进入指定目录
cd .. # 返回上一级
cd ~ # 回到家目录
cd - # 回到上一次所在目录
mkdir test # 创建文件夹
mkdir -p a/b/c # 递归创建多级目录
rm file.txt # 删除文件
rm -rf testdir # 强制递归删除文件夹,谨慎使用!
cp a.txt /tmp/ # 复制文件
cp -r dir1 dir2 # 复制文件夹
mv old.txt new.txt # 重命名 / 移动文件
find /home -name "*.log" # 在/home下查找log文件
find . -type f -size +100M # 查找大于100M的文件
二、文件查看、编辑
cat app.log # 一次性输出全部文件
more app.log # 分页查看,空格翻页 q退出
less app.log # 推荐,查看大日志,上下翻页 q退出
tail app.log # 查看文件末尾
tail -n 200 app.log # 查看最后200行
tail -f app.log # 实时跟踪日志输出
tail -F app.log # 跟踪日志,文件轮转也可继续监听
head -n 100 app.log # 查看前100行
grep "error" app.log # 文件搜索关键词error
grep -i "error" app.log # 忽略大小写搜索
grep -rn "Exception" /opt/ # 递归目录搜索文本
# 管道组合常用
cat app.log | grep "WARN"
cat app.log | grep "WARN" | wc -l # 统计匹配行数
三、系统状态、资源
hostname # 主机名
uname -a # 内核版本信息
cat /etc/os-release # 查看发行版本
top # 实时进程、CPU内存
htop # 更友好top(需安装)
free -h # 内存使用,人性化显示
df -h # 磁盘分区使用率
du -sh * # 当前目录各个文件夹大小
du -sh /opt/* # 查看opt下各目录大小
uptime # 系统运行时间、负载
vmstat 1 # 每秒输出系统状态
四、进程、端口
ps -ef # 查看全部进程
ps -ef | grep java # 过滤java进程
kill 12345 # 正常结束进程PID
kill -9 12345 # 强制杀死进程
netstat -tulnp # 查看监听端口
ss -tulnp # 替代netstat,速度更快
ss -tulnp | grep 8080 # 查询8080端口占用
五、网络
ping baidu.com
curl www.baidu.com # http请求
curl -I www.baidu.com # 只看响应头
curl -X POST -d '{}' http://127.0.0.1:8080/api
wget https://xxx/file.tar.gz # 下载文件
ifconfig
ip addr # 查看网卡IP
telnet 127.0.0.1 8080 # 端口连通性测试
nc -zv 127.0.0.1 8080
nslookup baidu.com # DNS解析
六、压缩解压
# tar.gz
tar -zcvf file.tar.gz dirname/ # 压缩
tar -zxvf file.tar.gz # 解压到当前目录
tar -zxvf file.tar.gz -C /opt # 解压到指定目录/opt
# zip
zip -r out.zip folder/
unzip out.zip -d /opt
七、权限 用户
chmod 755 run.sh # 修改文件权限
chmod +x run.sh # 添加可执行权限
chown user:group app.jar # 修改属主属组
chown -R user:group /opt/app # 递归修改目录权限
su - root # 切换用户
sudo command # 管理员权限执行命令
八、服务 systemctl(CentOS7+/Ubuntu)
systemctl status nginx # 查看服务状态
systemctl start nginx # 启动
systemctl stop nginx # 停止
systemctl restart nginx # 重启
systemctl enable nginx # 开机自启
systemctl disable nginx # 关闭开机自启
systemctl list-unit-files # 查看所有服务开机状态
九、文本处理
wc -l app.log # 统计文件行数
sed 's/old/new/g' file.txt # 文本替换
awk '{print $1,$3}' test.txt # 按列输出第1、3列
sort
uniq
十、时间、输出重定向
date # 当前系统时间
command > out.log # 输出覆盖写入文件
command >> out.log # 输出追加写入文件
command 2> error.log # 错误输出重定向
command > all.log 2>&1 # 标准输出+错误输出全部写入
# 后台运行程序
nohup java -jar app.jar > run.log 2>&1 &
十一、实用小技巧
history # 查看执行过的历史命令
!123 # 执行history中编号123命令
clear # 清屏
exit # 退出ssh终端
十二、运维高频组合示例
# 查找大文件
find / -type f -size +500M
# 日志过滤导出
cat app.log | grep "Error" > error.log
# 看端口对应的进程
ss -tulnp | grep 8080