命令行工具直接读取
cat
命令(查看完整内容)
cat filename.txt
- 适用场景:快速查看小文件(<100MB)。
- 安全提示:避免用
cat
打开二进制文件(如.exe
),可能导致终端乱码。
分页查看工具
less
(推荐):支持上下滚动、搜索(按 输入关键词)。less largefile.log
more
:仅支持向下翻页(空格键翻页,q
退出)。more data.csv
查看文件头部/尾部
head
:查看前10行(可指定行数-n 20
)。head -n 5 config.cfg # 显示前5行
tail
:查看末尾10行(实时监控日志加-f
)。tail -f /var/log/syslog # 实时追踪日志更新
编辑器打开
nano
(简单编辑):nano document.txt
vim
(高级编辑):vim report.md
- 进入后按
i
进入编辑模式,:q!
强制退出。
- 进入后按
脚本编程读取文件
Bash 脚本逐行处理
while IFS= read -r line; do echo "行内容: $line" done < input.txt
- 关键参数:
IFS=
防止空格被截断,-r
禁用反斜杠转义。 - 应用场景:批量处理日志、配置文件解析。
Python 脚本(跨平台)
with open('data.in', 'r') as f: # 'r' 表示读取模式 for line in f: print(line.strip()) # .strip() 移除行尾换行符
- 优势:自动处理编码,支持大文件(惰性读取)。
- 扩展:处理JSON/CSV等格式可用
import json
或csv
模块。
AWK 文本处理(高效过滤)
awk '/error/ {print $2}' server.log # 打印包含"error"的行的第二列
- 适用场景:提取特定列、条件过滤数据。
关键注意事项
-
文件路径:
- 绝对路径:
/home/user/file.txt
- 相对路径:
./subdir/file.txt
( 表示当前目录) - 特殊路径: 代表用户家目录(如
~/documents/file
)。
- 绝对路径:
-
权限问题:
- 若提示
Permission denied
,用ls -l filename
检查权限。 - 授权命令:
sudo chmod +r filename
(添加读取权限)。
- 若提示
-
大文件处理:
- 避免一次性加载:用
less
或tail
替代cat
。 - 脚本优化:Python 中逐行读取(
for line in f
),而非f.readlines()
。
- 避免一次性加载:用
-
文件编码:
- 检查编码:
file -i filename
(输出如charset=utf-8
)。 - 转换编码:
iconv -f GBK -t UTF-8 file.in > file.out
。
- 检查编码:
常见问题解决
- 文件不存在:
ls /path/ # 确认文件是否存在
- 乱码问题:
安装编码工具:sudo apt install enca
(检测编码),或用iconv
转换。 - 读取二进制文件:
用hexdump
或xxd
:xxd binary.dat | less # 十六进制格式查看
- 小文件查看 →
cat
、nano
- 大文件/日志 →
less
、tail -f
- 脚本处理 → Bash循环、Python、AWK
- 权限/编码 →
chmod
、iconv
遵循最小权限原则,生产环境慎用 sudo
,定期备份重要文件,避免误操作。
引用说明参考 Linux 官方文档(kernel.org)、GNU Coreutils 手册(gnu.org)及 Python 官方教程(docs.python.org),确保信息准确可靠。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4641.html