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_dir3. 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.dat7. head - 显示文件开头
# 默认显示前10行
head access.log
# 显示前5行
head -n 5 /etc/passwd
# 显示前1KB内容
head -c 1024 data.bin8. tail - 显示文件结尾
# 默认显示后10行
tail error.log
# 显示后20行
tail -n 20 /var/log/syslog
# 实时监控日志更新
tail -f /var/log/nginx/access.log9. 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" -delete11. grep - 文本搜索
# 基本搜索
grep "error" /var/log/syslog
# 递归搜索目录
grep -r "TODO" src/
# 忽略大小写
grep -i "warning" log.txt
# 显示匹配行号
grep -n "pattern" file.txt
# 反向匹配(不包含)
grep -v "debug" output.log12. 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.log13. 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 $PATH15. ln - 创建链接
# 创建硬链接
ln original.txt hardlink.txt
# 创建软链接(符号链接)
ln -s /var/www/html webroot
# 查看链接指向
ls -l webroot # 显示 -> /var/www/html16. 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 +080017. 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"' {} \;文件管理最佳实践
备份重要文件:
cp important.conf{,.bak} # 创建important.conf.bak使用安全删除:
shred -zuv secret.txt # 覆盖后删除文件权限管理:
chmod 600 private.key # 仅所有者可读写文件系统检测:
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)