Linux 基础命令之文件管理命令全解析

1751816011@qq.com
2025-10-19 / 0 评论 / 3 阅读 / 正在检测是否收录...

Linux 文件管理命令全解析

下面详细解析 Linux 系统中核心文件管理命令,包含使用场景、常用选项和实用示例:


文件创建与删除

1. touch - 创建空文件/更新时间戳

# 创建单个文件
touch file.txt

# 创建多个文件
touch file1.txt file2.txt file3.txt

# 更新时间戳为当前时间
touch -a file.txt  # 仅更新访问时间
touch -m file.txt  # 仅更新修改时间

# 设置特定时间戳
touch -t 202308011200 file.txt  # 格式: [[CC]YY]MMDDhhmm[.ss]

2. mkdir - 创建目录

# 创建单层目录
mkdir documents

# 创建多层目录
mkdir -p project/src/main/java

# 设置目录权限(rwxr-x---)
mkdir -m 750 private_dir

3. rm - 删除文件/目录

# 删除文件
rm file.txt

# 强制删除不提示
rm -f log.txt

# 递归删除目录
rm -r project/

# 交互式删除(确认每个文件)
rm -i *.tmp

# 删除空目录
rmdir empty_dir

文本编辑器

4. vi/vim - 文本编辑器

# 基本操作
vi file.txt

# 常用模式:
i     # 进入插入模式
Esc   # 返回命令模式
:wq   # 保存并退出
:q!   # 强制退出不保存

# 实用命令:
dd    # 删除当前行
yy    # 复制当前行
p     # 粘贴
/word # 搜索单词
:%s/old/new/g  # 全局替换

5. nano - 简单文本编辑器(新手友好)

nano file.txt
# 底部快捷键提示:^O保存,^X退出

文件查看

6. cat - 连接并显示文件

# 查看文件内容
cat config.conf

# 显示行号
cat -n server.log

# 合并多个文件
cat part1.txt part2.txt > full.txt

# 显示非打印字符
cat -v binary.dat

7. head - 显示文件开头

# 默认显示前10行
head access.log

# 显示前5行
head -n 5 /etc/passwd

# 显示前1KB内容
head -c 1024 data.bin

8. tail - 显示文件结尾

# 默认显示后10行
tail error.log

# 显示后20行
tail -n 20 /var/log/syslog

# 实时监控日志更新
tail -f /var/log/nginx/access.log

9. less / more - 分页查看文件

# 分页查看(支持回退)
less large_file.log

# 基本操作:
空格   # 下一页
b     # 上一页
/word # 搜索
q     # 退出

# 简单分页(不支持回退)
more /var/log/dmesg

搜索与处理

10. find - 文件搜索

# 按名称搜索
find /home -name "*.jpg"

# 按类型搜索
find /var -type f -name "*.log"  # f=文件, d=目录

# 按大小搜索
find / -size +100M  # 大于100MB
find . -size -10k  # 小于10KB

# 按时间搜索
find /etc -mtime -7  # 7天内修改

# 执行操作
find ~/Downloads -name "*.tmp" -delete

11. grep - 文本搜索

# 基本搜索
grep "error" /var/log/syslog

# 递归搜索目录
grep -r "TODO" src/

# 忽略大小写
grep -i "warning" log.txt

# 显示匹配行号
grep -n "pattern" file.txt

# 反向匹配(不包含)
grep -v "debug" output.log

12. sed - 流编辑器

# 替换文本
sed 's/old/new/g' file.txt

# 删除空行
sed '/^$/d' input.txt

# 直接修改文件
sed -i 's/127.0.0.1/localhost/g' config.conf

# 打印特定行
sed -n '10,20p' longfile.log

13. awk - 文本处理语言

# 打印第一列
awk '{print $1}' access.log

# 条件过滤
awk '$3 > 500 {print $1, $2}' data.csv

# 使用分隔符
awk -F: '{print $1, $6}' /etc/passwd  # 用户和家目录

# 计算总和
awk '{sum+=$3} END {print sum}' sales.dat

文件操作

14. echo - 显示文本/创建文件

# 输出文本
echo "Hello World"

# 创建文件内容
echo "127.0.0.1 localhost" > /etc/hosts

# 追加内容
echo "192.168.1.100 server" >> /etc/hosts

# 显示变量
echo $PATH

15. ln - 创建链接

# 创建硬链接
ln original.txt hardlink.txt

# 创建软链接(符号链接)
ln -s /var/www/html webroot

# 查看链接指向
ls -l webroot  # 显示 -> /var/www/html

16. stat - 显示文件详细信息

# 显示文件元数据
stat document.pdf

# 输出:
# File: document.pdf
# Size: 102400     Blocks: 200      IO Block: 4096   regular file
# Access: (0644/-rw-r--r--)  Uid: ( 1000/   john)   Gid: ( 1000/   john)
# Access: 2023-08-01 09:30:00.000000000 +0800
# Modify: 2023-07-25 14:20:15.000000000 +0800
# Change: 2023-07-25 14:20:15.000000000 +0800

17. file - 确定文件类型

# 检测文件类型
file unknown.dat

# 输出:
# unknown.dat: JPEG image data, EXIF standard

# 检查多个文件
file *.log

# 检测压缩文件
file archive.zip  # output: Zip archive data

高级技巧

命令组合示例

# 查找并处理文件
find . -name "*.java" -exec grep -l "interface" {} \; | xargs sed -i 's/interface/@Interface/'

# 日志分析
tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr

# 批量重命名
find . -name "*.jpeg" -exec bash -c 'mv "$0" "${0%.jpeg}.jpg"' {} \;

文件管理最佳实践

  1. 备份重要文件

    cp important.conf{,.bak} # 创建important.conf.bak
  2. 使用安全删除

    shred -zuv secret.txt # 覆盖后删除
  3. 文件权限管理

    chmod 600 private.key # 仅所有者可读写
  4. 文件系统检测

    df -h # 查看磁盘使用
    du -sh * # 查看目录大小

命令速查表

命令主要功能常用选项
touch创建文件/更新时间戳-a, -m, -t
mkdir创建目录-p(递归创建)
rm删除文件-r(递归), -f(强制)
vi/vim文本编辑
cat显示文件内容-n(行号)
head显示文件头部-n(行数)
tail显示文件尾部-f(实时跟踪)
find文件搜索-name, -type, -exec
grep文本搜索-i, -r, -v
sed流编辑器-i(原地编辑)
awk文本处理语言-F(分隔符)
ln创建链接-s(符号链接)
stat显示文件元数据
file检测文件类型
提示:使用 man 命令名(如 man grep)查看完整手册。熟练掌握这些命令是 Linux 系统管理的基础,建议在安全环境中多加练习。
0

评论 (0)

取消