一、文件查看与内容操作
1. cat
-
作用:查看文件内容(一次性输出全部内容)。
-
常用选项 :
-n
:显示行号。-b
:仅对非空行显示行号。
-
示例 :
cat file.txt # 查看文件内容 cat -n file.txt # 显示行号 cat file1.txt file2.txt > combined.txt # 合并文件
2. more
/ less
-
作用:分页查看文件内容(支持上下翻页)。
-
区别 :
more
:只能向下翻页。less
:支持上下翻页和搜索(按/
输入关键词)。
-
示例 :
more large_file.log less large_file.log # 推荐使用(功能更强大)
3. head
/ tail
-
作用:查看文件开头或结尾部分内容。
-
常用选项 :
-n <行数>
:指定显示的行数(如-n 10
)。-f
(仅tail
):实时追踪文件更新(常用于监控日志)。
-
示例 :
head -n 5 file.txt # 查看前5行 tail -n 10 file.txt # 查看最后10行 tail -f app.log # 实时追踪日志
二、文本处理与过滤
1. grep
-
作用:文本搜索工具(基于正则表达式)。
-
常用选项 :
-i
:忽略大小写。-v
:反向匹配(显示不包含关键词的行)。-r
:递归搜索目录中的文件。-E
:支持扩展正则表达式(等同于egrep
)。
-
示例 :
grep "error" app.log # 搜索包含 "error" 的行 grep -i "warning" app.log # 忽略大小写搜索 "warning" grep -r "TODO" /project/src # 递归搜索目录中的文件
2. sort
-
作用:对文本行排序。
-
常用选项 :
-n
:按数值排序(默认按字符串)。-r
:逆序排序(从大到小)。-k <列号>
:按指定列排序(如-k 2
按第二列)。
-
示例 :
sort file.txt # 默认按字母顺序排序 sort -n data.txt # 按数值排序 sort -k 3 -r data.txt # 按第三列逆序排序
3. uniq
-
作用 :去除相邻的重复行(通常与
sort
配合使用)。 -
常用选项 :
-c
:统计重复次数。-d
:仅显示重复的行。
-
示例 :
sort file.txt | uniq # 去重(需先排序) sort file.txt | uniq -c # 统计每行重复次数
4. cut
-
作用:按列提取文本内容。
-
常用选项 :
-d <分隔符>
:指定列分隔符(默认是 Tab)。-f <列号>
:指定提取的列(如-f 1,3
)。
-
示例 :
cut -d ',' -f 1,3 data.csv # 提取 CSV 文件的第一和第三列
5. sed
-
作用:流编辑器(批量替换、删除、插入文本)。
-
常用命令 :
s/old/new/g
:全局替换。d
:删除行。
-
示例 :
sed 's/foo/bar/g' file.txt # 替换所有 "foo" 为 "bar" sed '/^#/d' config.conf # 删除所有以 `#` 开头的行(注释)
6. awk
-
作用:强大的文本分析工具(按列处理数据)。
-
常用语法 :
{print $N}
:打印第 N 列。BEGIN
/END
:处理前/后执行的操作。
-
示例 :
awk '{print $1, $3}' data.txt # 打印第一和第三列 awk -F ',' '{sum += $2} END {print sum}' data.csv # 对第二列求和
三、文件查找与统计
1. find
-
作用:查找文件或目录(支持多种条件)。
-
常用选项 :
-name <模式>
:按文件名匹配(支持通配符*
)。-type <类型>
:按文件类型查找(f
文件,d
目录)。-mtime <天数>
:按修改时间查找(如-mtime +7
表示 7 天前)。-exec <命令> {} \;
:对查找到的文件执行命令。
-
示例 :
find /home -name "*.txt" # 查找所有 .txt 文件 find /var/log -type f -mtime +30 # 查找 30 天前修改过的文件 find . -size +10M -exec rm {} \; # 删除当前目录下大于 10MB 的文件(慎用!)
2. du
-
作用:统计目录或文件的磁盘使用情况。
-
常用选项 :
-h
:人性化显示大小(如 KB/MB/GB)。-s
:仅显示总大小(不显示子目录)。--max-depth=N
:限制统计的目录层级。
-
示例 :
du -sh /home # 统计 /home 目录的总大小 du -h --max-depth=1 /var/log # 显示 /var/log 下各子目录的大小
3. wc
-
作用:统计文件的行数、单词数、字节数。
-
常用选项 :
-l
:仅统计行数。-w
:仅统计单词数。-c
:仅统计字节数。
-
示例 :
wc -l access.log # 统计文件行数(日志条目数) wc -w essay.txt # 统计单词数
四、文件操作与管理
1. cp
-
作用:复制文件或目录。
-
常用选项 :
-r
:递归复制目录。-i
:覆盖前提示确认。-v
:显示复制进度。
-
示例 :
cp file.txt backup/ # 复制文件到目录 cp -r dir1/ dir2/ # 递归复制目录
2. mv
-
作用:移动文件或目录(也可用于重命名)。
-
示例 :
mv old.txt new.txt # 重命名文件 mv file.txt dir/ # 移动文件到目录
3. rm
-
作用:删除文件或目录。
-
常用选项 :
-r
:递归删除目录。-f
:强制删除(不提示确认)。
-
示例 :
rm file.txt # 删除文件 rm -rf dir/ # 强制递归删除目录(慎用!)
4. ln
-
作用:创建文件链接。
-
常用选项 :
-s
:创建符号链接(软链接)。
-
示例 :
ln -s /path/to/file link_name # 创建软链接
五、文件权限与属性
1. chmod
-
作用:修改文件权限。
-
常用语法 :
- 数字模式:
chmod 755 file.sh
- 符号模式:
chmod u+x file.sh
- 数字模式:
-
示例 :
chmod 644 file.txt # 设置权限为 rw-r--r-- chmod +x script.sh # 添加可执行权限
2. chown
-
作用:修改文件所有者。
-
示例 :
chown user:group file.txt # 修改所有者和所属组
六、文件压缩与归档
1. tar
-
作用:打包和解压文件。
-
常用选项 :
-c
:创建归档文件。-x
:解压归档文件。-v
:显示操作过程。-z
:使用 gzip 压缩/解压。-j
:使用 bzip2 压缩/解压。
-
示例 :
tar -czvf archive.tar.gz dir/ # 打包并压缩目录 tar -xzvf archive.tar.gz # 解压 .tar.gz 文件
2. gzip
/ gunzip
-
作用 :压缩/解压文件(生成
.gz
文件)。 -
示例 :
gzip file.txt # 压缩文件(生成 file.txt.gz) gunzip file.txt.gz # 解压文件
3. zip
/ unzip
-
作用:压缩/解压 ZIP 文件。
-
示例 :
zip archive.zip file1.txt file2.txt # 压缩文件 unzip archive.zip # 解压 ZIP 文件
七、其他实用命令
1. diff
-
作用:比较两个文件的差异。
-
示例 :
diff file1.txt file2.txt # 显示差异
2. file
-
作用:检测文件类型。
-
示例 :
file unknown.bin # 检测文件类型(如 ELF 可执行文件、JPEG 图片等)
3. touch
-
作用:创建空文件或更新文件时间戳。
-
示例 :
touch new_file.txt # 创建空文件 touch existing.txt # 更新文件访问和修改时间
八、组合命令示例
1. 统计日志中不同状态码的出现次数
cat access.log | awk '{print $9}' | sort | uniq -c
2. 查找当前目录下所有 .cpp
文件并备份到 backup
目录
find . -name "*.cpp" -exec cp {} backup/ \;
3. 实时监控日志中的错误信息
tail -f app.log | grep -i "error"
linux查找指定目录下最大的文件和文件夹?
. 查找最大的文件
使用 find
命令结合 du
和 sort
,按文件大小排序:
bash
# 查找指定目录(如 /path/to/dir)下最大的前10个文件
find /path/to/dir -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 10
参数解释:
-type f
:仅搜索文件。-exec du -h {} +
:计算每个文件的大小(人性化显示,如 KB/MB/GB)。sort -rh
:按人类可读的数值逆序排序(从大到小)。head -n 10
:显示前10个结果。
2. 查找最大的文件夹
使用 du
命令直接计算目录大小并排序:
bash
# 查找指定目录(如 /path/to/dir)下最大的前10个文件夹
du -h /path/to/dir --max-depth=1 2>/dev/null | sort -rh | head -n 11
参数解释:
--max-depth=1
:仅显示直接子目录(设为2
可包含子目录的子目录)。head -n 11
:显示前11行(包含父目录自身统计)。