Linux常用命令大全:文件操作篇

## 文件和目录查看 `ls` 是最常用的,不加参数只列出文件名。常用组合:
ls -l      # 长格式显示,包含权限、大小、修改时间
ls -a      # 显示隐藏文件(.开头的)
ls -lh     # 人类可读的文件大小(K/M/G)
ls -lt     # 按修改时间排序,最新的在最上面
ls -ltr    # 按修改时间倒序
`tree` 看目录树,比 ls 直观,但需要安装:
tree -L 2  # 只显示2层深度
tree -d    # 只显示目录
## 创建和删除 创建目录用 `mkdir`,别一个个创建:
mkdir -p a/b/c/d   # 一次性创建多级目录,不存在就自动创建
mkdir -p src/{components,utils,styles}  # 批量创建同级目录
删除文件用 `rm`,删除目录加 `-r`:
rm file.txt               # 删文件
rm -rf dir/               # 删整个目录,不提示(慎用)
rm -i file.txt            # 删除前确认
`-rf` 组合很危险,建议先在 `/tmp` 里测试。生产环境用 `mv` 到临时目录替代删除。 ## 复制和移动 `cp` 复制,`mv` 移动/重命名:
cp file.txt /backup/                    # 复制到目录
cp -r project/ /backup/                 # 递归复制整个目录
cp file.txt file_backup.txt             # 同目录下备份

mv file.txt /data/                      # 移动文件
mv oldname.txt newname.txt              # 重命名
mv dir1/ dir2/                          # 移动目录,如果dir2不存在则重命名
复制时保留权限和时间戳:
cp -p file.txt /backup/    # 保留属性
cp -a dir/ /backup/        # 归档模式,保留全部属性,递归复制
## 查找文件 `find` 是最强大的文件搜索工具:
find . -name "*.log"                    # 当前目录下找所有.log文件
find /var -type f -size +100M           # 找大于100MB的文件
find /tmp -mtime -7                     # 7天内修改过的文件
find . -type d -name "node_modules"     # 找所有node_modules目录
find . -name "*.tmp" -exec rm {} \;     # 找到后删除(注意\;结尾)
`locate` 更快,但依赖数据库:
locate nginx.conf      # 从数据库搜,比find快很多
sudo updatedb          # 更新数据库
## 查看文件内容 按场景选命令:
cat file.txt              # 全量输出,适合小文件
less file.txt             # 分页查看,按q退出,/搜索
head -20 file.txt         # 看前20行
tail -f app.log           # 实时跟踪日志输出
tail -100 app.log         # 看100行
`less` 里常用操作:`/keyword` 搜索,`n` 下一个匹配,`g` 到文件开头,`G` 到末尾。 ## 文件权限 权限三位一组:所有者/组/其他用户。`r=4, w=2, x=1`:
chmod 755 script.sh       # rwxr-xr-x,普通脚本常用
chmod 600 id_rsa          # rw-------,私钥文件
chmod +x script.sh        # 加执行权限,不影响其他位
chmod -R 755 dir/         # 递归修改目录下所有文件
更改所有者:
chown user:group file.txt
chown -R user:group dir/
## 链接文件 硬链接和软链接(符号链接):
ln file.txt hardlink.txt          # 硬链接,指向同一inode
ln -s /data/release /data/current # 软链接,类似快捷方式
软链接可以跨文件系统,硬链接不行。软链接指向路径,路径变了就失效。 ## 压缩和解压 tar 打包,配合 gzip/zstd:
tar -czf project.tar.gz project/      # 打包并gzip压缩
tar -xzf project.tar.gz               # 解压
tar -tf project.tar.gz                # 查看包内文件列表

tar --zstd -cf project.tar.zst project/   # 用zstd压缩,速度更快
zip 格式更通用:
zip -r archive.zip dir/
unzip archive.zip -d /tmp/
## 磁盘和文件大小
du -sh dir/                # 查看目录总大小
du -sh * | sort -rh        # 按大小排序显示当前目录下所有项目
df -h                      # 查看磁盘使用情况
`du` 的 `-s` 是汇总,不加会递归显示每个子目录。`sort -rh` 把人类可读的大小正确排序。 ## 实战组合 清理30天前的日志:
find /var/log -name "*.log" -mtime +30 -delete
批量重命名文件(把 .txt 改成 .md):
for f in *.txt; do mv "$f" "${f%.txt}.md"; done
统计代码行数:
find . -name "*.py" -exec wc -l {} + | tail -1
服务器上我常用雨云,性价比高,稳定,这些命令在日常运维里够用了。记不住就 man 一下,或者 `–help`。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容