
cat(concatenate)是Linux/Unix系统中最基础的文件查看和拼接命令,主要用于显示文件内容、合并多个文件以及创建新文件。作为日常使用频率最高的命令之一,cat简单但功能强大,常与重定向、管道等技术配合使用。
cat的核心功能包括:将文件内容输出到标准输出、连接多个文件、按行号显示、显示特殊字符等。虽然对于大文件查看,less或head/tail更为合适,但cat在短文件查看、文件合并、脚本处理等场景中依然不可或缺。掌握cat是Linux命令行操作的基础。
1. 基本语法
| 命令 | 说明 |
|---|
cat file.txt | |
cat file1.txt file2.txt | |
cat | |
cat -n file.txt | |
cat -b file.txt | |
2. 查看文件内容
| 命令 | 说明 |
|---|
cat /etc/os-release | |
cat file.txt | |
cat file1.txt file2.txt | |
cat -A file.txt | |
cat -s file.txt | |
cat file.txt | less | |
cat file.txt | head -20 | |
3. 行号与特殊字符显示
| 命令 | 说明 |
|---|
cat -n file.txt | |
cat -b file.txt | |
cat -E file.txt | |
cat -T file.txt | |
cat -v file.txt | |
cat -et file.txt | |
cat -A file.txt | |
4. 合并文件
| 命令 | 说明 |
|---|
cat part1.txt part2.txt > merged.txt | |
cat header.txt body.txt footer.txt > report.txt | |
cat a.txt b.txt c.txt > combined.txt | |
cat file.txt >> archive.txt | |
cat *.log > all-logs.txt | |
cat file1.txt file2.txt | grep "error" | |
cat file1.txt - file2.txt > combined.txt | |
5. 创建与追加文本
| 命令 | 说明 |
|---|
cat > notes.txt | |
cat >> notes.txt | |
cat << 'EOF' > config.conf | |
cat << 'EOF' >> config.conf | |
cat > script.sh << 'EOF' | |
here-document示例:
cat > config.yml << 'EOF'
server:
host: localhost
port: 8080
EOF
6. 管道与实用组合
| 命令 | 说明 |
|---|
cat access.log | grep 500 | |
cat file.txt | wc -l | |
cat file.txt | head -20 | |
cat file.txt | tail -20 | |
cat file.txt | tee copy.txt > /dev/null | |
cat file.txt | sort | uniq | |
cat file.txt | tr '[:upper:]' '[:lower:]' | |
cat file.txt | sed 's/old/new/g' | |
7. 实用组合模式
| 命令 | 说明 |
|---|
cat /dev/null > file.txt | |
cat file1.txt file2.txt > file3.txt 2>&1 | |
cat << EOF | grep "pattern" | |
cat -n file.txt | grep "keyword" | |
for f in *.txt; do echo "=== $f ==="; cat "$f"; done | |
cat /proc/cpuinfo | grep "model name" | head -1 | |
cat /proc/meminfo | grep MemTotal | |
ls -la | cat -n | |
8. cat vs less vs head/tail 对比
| 命令 | 适用场景 | 特点 |
|---|
cat | | |
less | | |
head | | |
tail | | |
nl | | |
9. 常用选项速查
| 选项 | 完整名称 | 说明 |
|---|
-n | | |
-b | | |
-s | | |
-A | | |
-E | | |
-T | | |
-v | | |
-e | | |
-t | | |
10. 相关命令与文件
| 命令/文件 | 说明 |
|---|
tac | |
nl | |
rev | |
od | |
/dev/null | |
tee | |
11. 故障排查
| 问题 | 解决方法 |
|---|
| cat: file.txt: Permission denied | 检查文件权限:ls -l;使用正确的用户或sudo |
| 输出太长无法阅读 | |
| 输出是乱码 | 文件可能是二进制文件,用file filename确认类型 |
| 意外覆盖文件 | 使用>>追加而非>;在shell中启用set -o noclobber |
| 隐藏字符破坏脚本 | 使用cat -A检查;用dos2unix转换Windows换行 |
| 空行过多 | |
| cat显示大文件很慢 | |
| cat: command not found | cat通常在/bin/cat,确保PATH包含/bin |
温馨提示: cat是最基础但常用的命令。建议掌握以下技巧:1)查看配置文件使用cat -n显示行号便于定位;2)合并配置文件使用cat *.conf > all.conf;3)检查二进制文件前先用file确认;4)清空文件用cat /dev/null > file.txt;5)使用here-document创建多行文件比echo更清晰;6)在脚本中使用cat << 'EOF'保持变量不被展开。注意:对于大文件(>10MB),不建议使用cat直接输出到终端,应使用less或head/tail。查看日志时,tail -f比cat更合适。cat在管道中通常是多余的,如cat file | grep pattern可直接写成grep pattern file。
关注公众号(haopython),请回复: LTCAT