在Linux系统中,查看文件行号是一项基础且常用的操作,无论是编程调试、日志分析还是文本编辑,行号都能帮助快速定位内容,本文将详细介绍多种查看Linux行号的方法,涵盖命令行工具、文本编辑器及图形化界面,并总结不同场景下的适用技巧。

命令行工具查看行号
命令行是Linux环境下最直接的操作方式,通过特定命令可快速显示文件行号,以下介绍几种常用工具:
cat -n:基础行号显示
cat命令用于查看文件内容,结合-n参数可为每一行添加行号,格式为cat -n 文件名。
示例:查看test.txt文件的行号
cat -n test.txt
输出:
1 第一行内容
2 第二行内容
3 第三行内容
特点:简单直观,适合小文件查看;但大文件会一次性加载,可能导致终端卡顿。
扩展:若需忽略空行,可结合-s参数(cat -ns test.txt);若需从指定行号开始计数,可通过cat -b test.txt | awk '{print NR+$start-1, $0}'实现(需替换$start为起始行号)。
nl:格式化行号工具
nl命令比cat -n更灵活,支持自定义行号格式(如左对齐、右对齐、添加前缀等),格式为nl [选项] 文件名。
常用参数:
-b:指定行号格式,a为所有行(默认),t为非空行(类似cat -b);-w:设置行号宽度(默认6位);-n:行号对齐方式,ln左对齐,rn右对齐,rz右对齐补零。
示例:以右对齐、宽度4位显示行号nl -b a -w 4 -n rz test.txt
输出:
0001 第一行内容 0002 第二行内容 0003 第三行内容特点:适合需要行号格式化的场景,如生成报告或代码注释。
less/more:分页查看带行号
对于大文件,less和more可分页显示内容,结合-N参数开启行号。less命令示例:
less -N test.txt
操作技巧:
- 按搜索关键词,搜索结果会高亮并显示行号;
- 按
n跳转到下一个匹配项,N跳转到上一个; - 按
g跳转到首行(显示行号1),按G跳转到末行; - 按
q退出查看。
more命令示例:more -N test.txt
特点:
less功能更强大(支持上下翻页、搜索等),适合大文件交互式查看;more仅支持向下翻页,功能较简单。
其他工具:bat与ripgrep
现代Linux环境中,bat(增强版cat)和ripgrep(rg)等工具也支持行号显示,且可结合语法高亮。bat示例:
bat -n test.txt # 显示行号并语法高亮
ripgrep示例时显示行号

rg -n "error" log.txt # 搜索包含"error"的行并显示行号
特点:bat适合代码或配置文件查看,ripgrep适合日志搜索,两者均支持正则表达式,效率较高。
文本编辑器中显示行号
在文本编辑器中查看行号是开发场景的常见需求,以下以vim和nano为例说明:
vim:永久或临时显示行号
vim是Linux下最常用的文本编辑器,支持行号显示的灵活配置。
临时显示:
- 进入
vim后,输入set number(或简写set nu)开启行号; - 输入
set nonumber(或set nu!)关闭行号。
永久设置:
编辑vim配置文件~/.vimrc,添加以下内容:set number " 显示行号 set relativenumber " 显示相对行号(可选,光标所在行为0,其他行显示相对距离)
跳转行号:
- 输入
行号(如10)跳转到第10行; - 输入
行号G(如10G)同样跳转(需确保已开启行号)。
特点:适合代码编辑,支持相对行号模式,方便定位代码逻辑。
nano:轻量级编辑器的行号显示
nano是简单易用的命令行编辑器,开启行号需通过参数或配置。
命令行参数:
nano -n test.txt # -n参数显示行号
配置文件设置:
编辑~/.nanorc文件,添加set constantshow(或set const),则打开文件时默认显示行号。
跳转行号:
打开文件后,按Ctrl+_(或Ctrl+^),输入行号即可跳转。
特点:适合简单文本编辑,操作直观,适合新手。
图形化IDE与工具中的行号显示
对于习惯图形界面的用户,集成开发环境(IDE)和文本编辑器也支持行号显示:
VS Code
VS Code是流行的跨平台IDE,开启行号的步骤:
- 点击左下角齿轮图标(或菜单“文件”→“首选项”→“设置”);
- 搜索“line numbers”,勾选“Editor: Line Numbers”选项;
- 可选择“on”(始终显示)、“relative”(相对行号)或“off”(隐藏)。
快捷键:Ctrl+G(Windows/Linux)或Cmd+G(Mac)跳转到指定行号。
特点:支持多语言语法高亮,调试时可直接显示代码行号,方便断点设置。
PyCharm
PyCharm是Python专用IDE,行号显示设置:
- 菜单“File”→“Settings”→“Editor”→“General”→“Appearance”;
- 勾选“Show line numbers”;
- 可在“Line numbers”下拉菜单中选择“Absolute”(绝对行号)或“Relative”(相对行号)。
特点:与Python调试深度集成,查看错误堆栈时可快速定位到具体行号。
实用技巧:结合命令处理行号
在实际操作中,常需结合其他命令处理行号,
grep搜索并显示行号
使用grep -n可搜索关键词并输出匹配行的行号:
grep -n "error" log.txt # 输出包含"error"的行及行号
扩展:若需统计匹配行数,可加-c参数(grep -c "error" log.txt)。

awk提取行号与内容
awk可灵活处理行号(NR变量)和内容:
awk '{print NR ": " $0}' test.txt # 打印每行行号及内容
示例:仅显示偶数行
awk 'NR%2==1' test.txt # NR%2==1为奇数行,==0为偶数行
sed根据行号编辑文件
sed可通过行号范围编辑文件,如删除第5-10行:
sed '5,10d' test.txt # 删除5到10行,不修改原文件(输出到终端)
若需修改原文件,添加-i参数(sed -i '5,10d' test.txt)。
相关问答FAQs
问题1:为什么在vim中设置了set number,但重启vim后行号仍然没有显示?
解答:这是因为vim的行号设置是临时生效的,若需永久生效,需将配置写入~/.vimrc文件,具体步骤:
- 打开终端,输入
vim ~/.vimrc进入配置文件编辑; - 添加
set number(或set nu); - 保存并退出(
wq),重启vim即可生效。
问题2:如何查看一个文件中第20行到第30行的内容,并同时显示行号?
解答:可通过以下两种方法实现:
- 使用
sed:sed -n '20,30p' test.txt | cat -n # 先提取20-30行,再添加行号
或直接使用
sed的行号显示(需GNU sed):sed -n '20,30{=;p}' test.txt # 先打印行号,再打印内容 - 使用
awk:awk 'NR>=20 && NR<=30 {print NR ": " $0}' test.txt # 打印20-30行及行号其中
NR为awk的内置变量,表示当前行号,$0表示整行内容。
通过以上方法,可根据不同场景(如快速查看、代码编辑、日志分析)灵活选择Linux行号查看方式,提升工作效率,无论是命令行工具的简洁高效,还是图形化IDE的直观易用,掌握行号操作都能让文本处理更加精准便捷。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28342.html