Linux 高频常用命令
本篇是笔试题重灾区:文件操作、文本查看与处理三剑客、进程 / 网络 / 资源查看、打包压缩、定时任务、软件安装。面试笔试经常直接要求「写出统计某文件行数的命令」「写出查找大文件的命令」,必须熟练到能默写。
1. 文件操作
| 命令 | 用途 | 常用示例 |
|---|---|---|
ls | 列出目录内容 | ls -la(含隐藏文件 + 详细信息) |
cd | 切换目录 | cd ~ 回家目录,cd - 回上个目录 |
cp | 复制 | cp -r src dst(复制目录必须加 -r) |
mv | 移动 / 重命名 | mv old.txt new.txt |
rm | 删除 | rm -rf dir(生产环境慎用,先确认路径) |
mkdir | 创建目录 | mkdir -p a/b/c(多级目录一次创建) |
touch | 创建空文件 / 更新时间戳 | touch a.txt |
stat | 查看文件详细元信息 | stat a.txt(含 inode、三个时间戳) |
du | 查看目录/文件占用的磁盘大小 | du -sh /var/log |
df | 查看分区整体磁盘使用率 | df -h |
高频对比 du vs df: du 统计文件实际占用大小(面向文件),df 统计文件系统分区使用情况(面向分区)。排查「磁盘满了」先 df 定位分区,再 du 找大目录。
2. 文本查看
| 命令 | 用途 |
|---|---|
cat | 一次性输出整个文件(小文件) |
more / less | 分页查看,less 支持上下翻页和搜索(推荐) |
head | 看文件开头,head -n 20 前 20 行 |
tail | 看文件结尾,tail -n 100 末 100 行 |
tail -f 与 tail -F 的区别(高频笔试)
tail -f:跟踪文件的文件描述符,持续输出新增内容;文件被删除后停止跟踪,即使重建同名文件也不会继续。tail -F:跟踪文件名,文件被删除重建后仍会继续跟踪。
使用场景: 看日志滚动(logrotate 会重命名日志文件)时用 tail -F,否则日志切割后 tail -f 会一直盯着旧文件。
3. 文本处理(三剑客 + 辅助命令)
| 命令 | 定位 | 一句话说明 |
|---|---|---|
grep | 过滤 | 按正则/关键字筛选行 |
sed | 流式编辑 | 替换、删除、插入行 |
awk | 文本分析 | 按列处理、统计汇总 |
sort | 排序 | -n 数字排序,-r 逆序,-k 指定列 |
uniq | 去重 | 只合并相邻重复行,通常先 sort 再 uniq;uniq -c 统计重复次数 |
cut | 截取字段 | -d 指定分隔符,-f 指定列 |
wc | 统计 | wc -l 统计行数,-w 单词数,-c 字符数 |
必背组合(笔试经典):
# 统计 access.log 中每个 IP 出现次数,取前 10 名
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10
# 统计文件行数
wc -l access.log
# grep 常用:忽略大小写、显示行号、递归搜索目录
grep -i error app.log
grep -n "500" app.log
grep -r "listen" /etc/nginx/
# sed 替换(全局替换关键字)
sed -i 's/8080/9090/g' config.yaml
# awk 取第 1 列并打印行号
awk '{print NR, $1}' data.txt
4. 进程查看
| 命令 | 说明 |
|---|---|
ps -ef | 全格式列出所有进程(System V 风格),常配合管道:ps -ef | grep nginx |
ps aux | BSD 风格,能直接看到 CPU / 内存占用百分比 |
top | 实时动态查看进程资源占用,按 P 按 CPU 排序、M 按内存排序,q 退出 |
5. 网络命令
| 命令 | 用途 |
|---|---|
ip addr / ip a | 查看 IP 地址(替代老的 ifconfig) |
ss -tlnp | 查看端口监听状态及对应进程(替代老的 netstat) |
curl | 发起 HTTP 请求测试接口,curl -I 只看响应头 |
wget | 下载文件 |
ping | 测试网络连通性 |
traceroute | 追踪数据包经过的路由路径 |
tcpdump | 抓包分析,如 tcpdump -i eth0 port 80 |
排查某端口是否监听: ss -tlnp | grep 3306——面试常答「用 netstat」,建议答 ss 并说明它更快、是现代替代品。
6. 资源查看
| 命令 | 用途 |
|---|---|
free -h | 查看内存使用;注意 buff/cache 是系统缓存、不算真实占用,看 available 字段判断可用内存 |
vmstat | 查看内存、swap、IO、CPU 综合状态 |
iostat | 查看磁盘 IO 统计 |
uptime | 查看开机时长与负载均值(1 / 5 / 15 分钟) |
dmesg | 查看内核日志(硬件报错、OOM 杀进程记录都在这) |
7. 打包压缩:tar
tar -zcvf backup.tar.gz /data # 打包并压缩
tar -zxvf backup.tar.gz # 解压
tar -zxvf backup.tar.gz -C /target # 解压到指定目录
参数记忆: z=gzip 压缩,c=创建包,x=解包,v=显示过程,f=指定文件名(必须放最后紧跟文件名)。经典口诀「zcvf 打包,zxvf 解压」。
8. 定时任务:crontab
格式口诀:分 时 日 月 周 命令(五个时间位 + 命令):
crontab -e # 编辑当前用户的定时任务
crontab -l # 查看定时任务列表
# 每天 2:00 执行备份脚本
0 2 * * * /opt/scripts/backup.sh
# 每 5 分钟执行一次
*/5 * * * * /opt/scripts/check.sh
特殊符号: * 任意值、*/5 每 5 个单位、1-5 范围、1,3,5 列表。
9. 软件安装
| 方式 | 命令 | 特点 |
|---|---|---|
| yum(Red Hat 系) | yum install nginx | 自动解决依赖,最常用 |
| dnf | dnf install nginx | yum 的下一代替代 |
| apt(Debian 系) | apt install nginx | Ubuntu / Debian 使用 |
| 源码安装 | ./configure → make → make install | 三步走 |
源码安装面试考点:
- 优点:可以自定义编译参数(如指定安装路径、开启 / 关闭特定模块),版本可选最新。
- 缺点:升级、卸载麻烦(没有包管理器记录,文件分散,需要手动清理),需要自行解决依赖。
本篇速记
du看文件大小、df看分区使用率;磁盘排查先df再du。tail -f跟踪描述符(文件删了就停),tail -F跟踪文件名(重建后继续)。- 三剑客定位:grep 过滤、sed 编辑、awk 按列分析;
sort | uniq -c | sort -rn | head是 Top N 万能模板。 ps aux能看 CPU/内存占用;ss -tlnp查端口监听。free -h看available,buff/cache 不是真实占用。- tar 口诀「zcvf 打包、zxvf 解压」;crontab「分 时 日 月 周」。
- 源码安装三步
./configure → make → make install,优自定义、劣在难升级卸载。