目录
一 认识Shell 提示符(Prompt)
[root@localhost ~]#
- [ ]:边界符号
- root :用户名
- @ :分隔符
- local host :当前主机名
- ~ :家(主)目录
- # :管理员 $ :普通用户
基本命令
详细介绍可以在linux中 : 命令后面加上 --help
一、系统信息类
date : 获取当前系统时间
date [选项] [格式化字符串/时间设置]
-d 指定相对/指定时间
-s 修改系统时间
+格式 自定义输出格式
# 1. 默认查看当前时间
date
# 输出:Mon Jun 22 16:40:20 CST 2026
# 2. 格式化年月日时分秒
date +"%Y-%m-%d %H:%M:%S"
# 输出:2026-06-22 16:40:20
# 3. 获取昨天日期
date -d "-1 day" +%Y-%m-%d
# 输出:2026-06-21
# 4. 时间戳转日期
date -d "@1782166450" +"%Y-%m-%d %H:%M:%S"
# 5. 修改系统时间(root)
date -s "2026-06-22 18:00:00"
uname 查看内核
uname [选项]
-a 完整信息
-r 仅内核版本
uname -r # 输出:5.4.0-109-generic
uname -a # 完整内核、主机、系统信息
uptime 系统负载
uptime
uptime
# 输出:16:42:00 up 2 days, 18:32, 2 users, load average: 0.21, 0.35, 0.28
# 含义:开机时长、登录用户、1/5/15分钟负载
free 内存查看
free [选项]
-h 人性化单位(GB/MB)
-m 以MB显示
-g 以GB显示
free -h
# 展示总内存、已用、空闲、缓存、可用内存
df 磁盘分区
df [选项] [分区]
-h 人性化大小
-i 查看inode使用
du 目录大小统计
du [选项] [目录]
-s 汇总总大小
-h 人性化单位
* 匹配当前所有子目录
du -sh /var/log # 统计日志目录总大小
du -sh * # 列出当前文件夹各目录大小
du -h --max-depth=1 / # 只展示一级目录大小
二、目录文件操作类
pwd 打印当前路径
pwd
# 输出:/root/loki
ls 命令 : 查看文件的属性信息
ls [选项] [目录]
ls [目录] 一般查看目录文件后要加上/ (声明符号)
ls -l 查看文件的详细信息
ll -h 查看文件换算大小内存
ls -a 查看所有文件(隐藏文件)
ls -d 查看文件本身属性信息:
touch :创建普通文件
touch 文件名
- 自动创建 vim 或 重定向一个没有的普通文件,会自动生成
- echo "..." > 普通文件 会创建文件
mkdir :创建目录文件
mkdir [选项] 目录名
-p 递归创建多级目录
-m 创建目录时指定权限(rwx)
-v 显示创建过程
cat 读取全部文件
cat [选项] 文件
-n 显示行号
tail 实时查看日志(运维核心)
tail [选项] 文件
-f 实时跟踪新增日志
-n 数字 查看最后N行
tail -n 100 app.log # 最后100行日志
tail -f app.log # 实时滚动输出
tail -n 200 -f app.log # 初始加载200行+实时跟踪
head 查看文件头部
head [选项] 文件
-n 数字 前N行
less/more 分页查看
less 文件
more 文件
# 操作:空格下一页 q退出 /关键词搜索
cp 复制文件 / 文件夹
cp [选项] 源 目标
-r 递归复制文件夹
-f 强制覆盖不提示
mv 移动 / 重命名
mv 源 目标
mv old.yaml new.yaml 重命名
mv app.jar /data/service/ 移动文件
mv loki-0 loki-bak 文件夹重命名
cd : 切换当前工作目录
cd [目标目录]
- . (点) :代表当前目录 .. :代表上一级目录
cd ./ 代表当前目录
cd ../ 代表上一级目录
- cd - 回到上一个工作目录
- cd ~ :回到家目录
rm : 强制删除文件
rm [选项] 文件/目录
-r :递归
-f :强制删除
chmod 修改文件权限
chmod [权限数字/符号] 文件
- +x 添加执行权限
chown 修改文件属主属组
chown [用户:组] 文件
- -R 递归修改目录下所有文件
chown root:root app.jar
chown -R root:root /data/loki
三、文本过滤与检索(日志排查必备)
grep 文本匹配过滤
grep [选项] 关键词 文件
-i 忽略大小写
-n 显示匹配行号
-v 反向匹配(排除关键词)
-r 递归检索目录所有文件
演示
# 检索日志中的error报错
grep "error" app.log
# 忽略大小写,显示行号
grep -in "Error" app.log
# 过滤掉info日志
grep -v "INFO" app.log
# 递归搜索目录所有yaml含loki字段
grep -r "loki" /root/loki/
# 实时日志过滤报错
tail -f app.log | grep "500"
awk 文本列处理
awk '匹配条件{操作}' 文件
-F 指定分隔符
演示
# 打印日志第5列
awk '{print $5}' app.log
# 逗号分隔文件,打印第2、4列
awk -F ',' '{print $2,$4}' data.csv
# 过滤状态码500的请求
awk '$9=="500"' nginx.log
sed 流编辑器(替换 / 删除)
sed [选项] '规则' 文件
-i 直接修改原文件
演示
# 预览替换,不修改原文件
sed 's/127.0.0.1/192.168.1.100/g' config.yaml
# -i 直接写入文件
sed -i 's/port=3100/port=3101/g' loki.yaml
# 删除含debug的行
sed '/debug/d' app.log
sort 文本排序
sort [选项] 文件
-n 数字排序
-r 倒序
演示
cat qps.log | sort -nr
wc 统计行数 / 字符
wc [选项] 文件
-l 统计行数
-w 统计单词
演示
wc -l app.log # 日志总行数
grep "500" app.log | wc -l # 500错误总条数
四、进程与网络类
ps 查看进程
ps [选项]
- ef 完整全量进程
- aux 带CPU内存占用
演示
ps -ef
ps aux
# 过滤java进程
ps -ef | grep java
top/htop 实时进程资源
top
快捷键 M内存排序 PCPU排序 k杀进程 q退出
kill 杀死进程
kill [信号] PID
-9 强制杀死
kill 1234
kill -9 1234
netstat /ss 网络端口
ss [选项]
-lnt 监听TCP端口
ss -lnt
# 查看3100端口占用
ss -lnt | grep 3100
curl 网络请求测试
curl [选项] URL
-I 仅返回响应头
-X 指定请求方法
-d 传POST参数
curl http://127.0.0.1:3100/ready
curl -I https://baidu.com
curl -X POST -d "name=test" http://api:8080/login
ping 连通性测试
ping [选项] 地址
-c N 发送N个包后停止
五、软件包管理
yum / dnf
dnf [操作] 软件名
install 安装
remove 卸载
list installed 查看已装
search 搜索包
演示
dnf install tree -y
dnf remove tree
dnf list installed | grep curl
dnf search nginx
六、shell 内置工具 type
type [参数] 命令名
-t 仅输出类型
-p 仅输出二进制路径
-a 列出所有同名匹配
type cd
type ls
type -t curl
type -a ls
七、压缩解压命令 tar
# 压缩 z gzip c 创建 f 输出文件
tar zcvf 打包后.tar.gz 待打包目录
# 解压 x 解压
tar zxvf 包名.tar.gz
# 压缩
tar zcvf logs_$(date +%Y-%m-%d).tar.gz /var/log/containers
# 解压到当前目录
tar zxvf logs.tar.gz
# 解压到指定目录
tar zxvf logs.tar.gz -C /data/backup
八、系统服务管理 systemctl
systemctl [操作] 服务名
start 启动
stop 停止
restart 重启
enable 开机自启
status 查看状态
演示
systemctl start kubelet
systemctl stop firewalld
systemctl restart containerd
systemctl enable chronyd
systemctl status kubelet
poweroff 或 init 0 : 关机
reboot 或 init6 :重启
九、查找文件 find
find 搜索路径 [匹配条件]
-name "*.log" 按文件名搜索
-mtime +7 7天前修改的文件
演示
# 查找所有日志文件
find /var/log -name "*.log"
# 删除7天前旧日志
find /data/logs -name "*.log" -mtime +7 -delete
# 查找大于1G的文件
find / -size +1G
十、管道符 | 组合使用(通用语法)
命令1 | 命令2
# 将前一个命令输出作为后一个输入
演示
# 实时日志过滤500错误
tail -f app.log | grep "500"
# 统计error行数
grep "error" app.log | wc -l
# 按内存倒序查看进程
ps aux | sort -nrk 4
后期再次详细修改!

1094

被折叠的 条评论
为什么被折叠?



