- 目录
- 一、命令概述
- 二、cat 命令 - 连接并显示文件
- 基本语法
- 常用选项
- 实用示例
- 实际输出示例
- 三、nl 命令 - 显示行号
- 与 cat -n 的区别
- 四、more 命令 - 分页显示
- 基本使用
- 交互式操作快捷键
- 五、less 命令 - 增强型分页显示
- 功能对比(more vs less)
- 常用操作
- less 交互命令
- 六、head 命令 - 显示文件开头
- 语法格式
- 选项详解
- 实际示例
- 七、tail 命令 - 显示文件末尾
- 语法格式
- 选项详解
- 实际示例
- 八、命令组合实战
- 查看文件中间部分
- 实时日志监控与过滤
- 九、实战练习题
- 题目1:基础文件查看
- 题目2:日志文件分析
- 题目3:配置文件检查
- 题目4:大文件抽样查看
- 题目5:实时日志统计
- 题目6:多文件内容合并查看
- 十、实用技巧总结
- 1. 性能优化
- 2. 调试技巧
- 3. 安全注意事项
目录
- 目录
- 一、命令概述
- 二、cat 命令 - 连接并显示文件
- 基本语法
- 常用选项
- 实用示例
- 实际输出示例
- 三、nl 命令 - 显示行号
- 与 cat -n 的区别
- 四、more 命令 - 分页显示
- 基本使用
- 交互式操作快捷键
- 五、less 命令 - 增强型分页显示
- 功能对比(more vs less)
- 常用操作
- less 交互命令
- 六、head 命令 - 显示文件开头
- 语法格式
- 选项详解
- 实际示例
- 七、tail 命令 - 显示文件末尾
- 语法格式
- 选项详解
- 实际示例
- 八、命令组合实战
- 查看文件中间部分
- 实时日志监控与过滤
- 九、实战练习题
- 题目1:基础文件查看
- 题目2:日志文件分析
- 题目3:配置文件检查
- 题目4:大文件抽样查看
- 题目5:实时日志统计
- 题目6:多文件内容合并查看
- 十、实用技巧总结
- 1. 性能优化
- 2. 调试技巧
- 3. 安全注意事项
一、命令概述
文件显示命令虽然语法简单,但在实际工作中起到命令连接和数据处理的关键作用。特别是cat命令,是管道操作中最常用的命令之一。
二、cat 命令 - 连接并显示文件
基本语法
cat [选项] 文件1 文件2 文件3...常用选项
| 选项 | 说明 | 示例 |
|---|---|---|
-n |
显示行号(包括空行) | cat -n file.txt |
-b |
显示行号(忽略空行) | cat -b file.txt |
-A |
显示所有控制字符 | cat -A file.txt |
-s |
压缩连续空行为一行 | cat -s file.txt |
实用示例
# 显示单个文件
cat /etc/hosts
# 显示多个文件(连续显示)
cat file1.txt file2.txt file3.txt
# 使用通配符显示多个配置文件
cat /etc/*.conf
# 显示带行号的内容
cat -n /etc/passwd实际输出示例
[zhangwei@localhost ~]$ cat -n asound.conf
1 #
2 # Place your global alsa-lib configuration here...
3 #
4 #tttt
5 #ttt
6 #txxxxxxxxxxxxx三、nl 命令 - 显示行号
与 cat -n 的区别
# 创建测试文件(包含空行)
echo -e "第一行\n\n第三行\n\n第五行" > test.txt
# cat -n 显示(空行也编号)
cat -n test.txt
# 输出:
# 1 第一行
# 2
# 3 第三行
# 4
# 5 第五行
# nl 显示(空行不编号)
nl test.txt
# 输出:
# 1 第一行
#
# 2 第三行
#
# 3 第五行四、more 命令 - 分页显示
基本使用
# 查看大文件
more /var/log/syslog
# 结合其他命令
ls -la /etc | more
cat large_file.txt | more交互式操作快捷键
| 快捷键 | 功能 | 说明 |
|---|---|---|
回车 |
下一行 | 向下滚动一行 |
空格 |
下一页 | 向下翻一页 |
Ctrl+F 或 f |
向前一页 | |
Ctrl+B 或 b |
向后一页 | |
= |
显示当前行号 | 显示当前位置 |
q |
退出 | 停止查看 |
/pattern |
搜索 | 搜索指定文本 |
五、less 命令 - 增强型分页显示
功能对比(more vs less)
| 功能 | more | less |
|---|---|---|
| 向后翻页 | 支持 | 支持 |
| 向前翻页 | 有限支持 | 完全支持 |
| 搜索功能 | 基本 | 强大 |
| 行号显示 | 无 | 支持 |
| 文本高亮 | 无 | 支持 |
常用操作
# 基本使用
less /var/log/bootstrap.log
# 带行号显示
less -N large_file.txt
# 忽略大小写搜索
less -I logfile.txtless 交互命令
| 命令 | 功能 | 说明 |
|---|---|---|
上下箭头 |
逐行滚动 | |
PageUp/PageDown |
翻页 | |
/pattern |
向下搜索 | 按n继续搜索 |
?pattern |
向上搜索 | 按N继续搜索 |
g |
跳到文件开头 | |
G |
跳到文件末尾 | |
:n |
下一个文件(多文件时) | |
:p |
上一个文件(多文件时) | |
q |
退出 |
六、head 命令 - 显示文件开头
语法格式
head [选项] 文件选项详解
| 选项 | 说明 | 示例 |
|---|---|---|
-n NUM |
显示前NUM行 | head -n 5 file.txt |
-c NUM |
显示前NUM字节 | head -c 100 file.txt |
-n -NUM |
显示到倒数第NUM行 | head -n -2 file.txt |
| (无选项) | 显示前10行 | head file.txt |
实际示例
[zhangwei@localhost ~]$ cat asound.conf
#
# Place your global alsa-lib configuration here...
#
#tttt
#ttt
#txxxxxxxxxxxxx
# 显示前1行
[zhangwei@localhost ~]$ head -n 1 asound.conf
#
# 显示前2行
[zhangwei@localhost ~]$ head -n 2 asound.conf
#
# Place your global alsa-lib configuration here...
# 显示到倒数第2行(排除最后2行)
[zhangwei@localhost ~]$ head -n -2 asound.conf
#
# Place your global alsa-lib configuration here...
#
#tttt七、tail 命令 - 显示文件末尾
语法格式
tail [选项] 文件选项详解
| 选项 | 说明 | 示例 |
|---|---|---|
-n NUM |
显示最后NUM行 | tail -n 5 file.txt |
-n +NUM |
从第NUM行显示到末尾 | tail -n +10 file.txt |
-f |
实时跟踪文件变化 | tail -f logfile.log |
-F |
实时跟踪(文件旋转时也跟踪) | tail -F logfile.log |
-c NUM |
显示最后NUM字节 | tail -c 100 file.txt |
实际示例
# 显示最后5行
tail -n 5 /var/log/syslog
# 从第20行显示到文件末尾
tail -n +20 file.txt
# 实时监控日志文件(重要!)
tail -f /var/log/nginx/access.log
# 监控可能被轮转的日志文件
tail -F /var/log/syslog八、命令组合实战
查看文件中间部分
# 查看第11-20行(组合head和tail)
head -n 20 file.txt | tail -n 10
# 查看第5行到倒数第5行
tail -n +5 file.txt | head -n -5实时日志监控与过滤
# 监控包含"ERROR"的日志行
tail -f /var/log/app.log | grep "ERROR"
# 监控日志并显示时间戳
tail -f /var/log/syslog | while read line; do echo "$(date): $line"; done九、实战练习题
题目1:基础文件查看
要求:查看 /etc/passwd 文件的第15-25行内容
解答:
head -n 25 /etc/passwd | tail -n 11
# 或者
sed -n '15,25p' /etc/passwd题目2:日志文件分析
要求:监控系统日志,只显示包含”Failed password”的行(用于监控SSH登录失败)
解答:
tail -f /var/log/auth.log | grep "Failed password"题目3:配置文件检查
要求:查看Apache配置文件的非注释行(排除以#开头的行)
解答:
grep -v "^#" /etc/apache2/apache2.conf | head -n 20题目4:大文件抽样查看
要求:有一个100MB的日志文件,快速查看文件的开头、中间和结尾部分
解答:
# 查看开头
head -n 50 large_log.log
# 查看中间(第5000-5050行)
tail -n +5000 large_log.log | head -n 50
# 查看结尾
tail -n 50 large_log.log题目5:实时日志统计
要求:实时监控Nginx访问日志,每10秒统计一次访问量
解答:
tail -f /var/log/nginx/access.log | while read line; do
count=$((count + 1))
if [ $((count % 10)) -eq 0 ]; then
echo "$(date): 10次访问统计完成"
count=0
fi
done题目6:多文件内容合并查看
要求:合并显示多个配置文件的第1-3行,并显示文件名
解答:
for file in /etc/*.conf; do
echo "=== $file ==="
head -n 3 "$file"
echo
done | less十、实用技巧总结
1. 性能优化
# 大文件使用less代替cat(避免内存溢出)
less huge_file.log
# 只需要查看结构时使用head/tail
head -n 1000 large_file.txt | less2. 调试技巧
# 查看命令执行过程
set -x && your_command && set +x
# 实时监控多个日志文件
multitail /var/log/syslog /var/log/nginx/error.log3. 安全注意事项
# 查看敏感文件时使用less(避免在终端保留历史)
less /etc/shadow
# 生产环境谨慎使用tail -f(可能影响性能)
tail -f /var/log/messages这些文件显示命令是Linux系统管理和日志分析的基础工具,熟练掌握它们能够大大提高工作效率。
作者:严锋 创建时间:2024-04-20 13:13
最后编辑:严锋 更新时间:2025-11-04 14:01
最后编辑:严锋 更新时间:2025-11-04 14:01