992 字
5 分钟
Linux 命令行第一步:目录导航与文件操作的安全姿势

第一次面对黑色终端窗口时,最大的障碍不是记命令,而是不知道「我现在在哪、这条命令会动到谁」。本文先建立路径与目录树的心智模型,再讲最常用的文件操作命令,最后专门处理 rm 这个新手事故高发区。

一棵树,而不是几个盘#

Windows 以 C:、D: 划分磁盘,Linux 则把所有设备挂载到同一棵以 /(根目录)为起点的树上。常见顶层目录的职责:

目录用途日常是否需要碰
/home/alice用户 alice 的家目录主要活动区
/etc系统与服务的配置文件改配置时
/var/log日志排查问题时
/tmp临时文件,重启可能清空随手放,别存重要数据
/usr安装的程序与库一般只读
/root超级用户的家目录普通用户进不去

几个快捷符号:. 表示当前目录,.. 表示上一级,~ 表示当前用户家目录,- 在 cd 中表示「上一个所在目录」。

路径:绝对与相对#

绝对路径从 / 写起,如 /var/log/nginx/access.log;相对路径从当前位置出发,如当前在 /var 时写 log/nginx/access.log。

判断用哪个的原则很简单:写脚本、写定时任务一律用绝对路径,避免工作目录变化导致找不到文件;交互式操作图省事可以用相对路径。

Terminal window
pwd # 我在哪
cd /var/log # 绝对路径跳转
cd .. # 回上一级
cd - # 回上一次所在目录
ls -lh # 列表 + 人类可读的文件大小
ls -la # 显示隐藏文件(以 . 开头)

ls 的两个高频选项值得记牢:-h 把字节数换算成 K/M/G,-t 按修改时间排序,找最新日志时特别好用:ls -lht /var/log | head。

创建、复制、移动、删除#

Terminal window
mkdir -p projects/demo/assets # -p 一次创建多级,存在也不报错
touch projects/demo/notes.md # 创建空文件或刷新时间戳
cp -r projects/demo /tmp/demo-backup # 复制目录必须加 -r
mv notes.md todo.md # 重命名
mv todo.md /tmp/ # 移动

几个容易踩的细节:

  • cp 不加 -r 复制目录会直接报错 omitting directory。
  • mv 同名目标已存在时会静默覆盖,加 -i 让它覆盖前先问你。
  • mkdir -p 是脚本里的好习惯:目录已存在时不报错退出。

给 rm 上三道保险#

rm 删除不走回收站,命令回车即生效,且 Linux 没有统一的「撤销删除」。三道保险:

第一道:确认目标再回车。 删除前先 ls 同一个路径,确认列出的是你想删的:

Terminal window
ls /tmp/demo-backup
rm -r /tmp/demo-backup

第二道:交互模式。 给重要操作加 -i,每删一个文件都要确认:

Terminal window
rm -ri old-logs/

可以在自己 shell 的配置里加别名 alias rm='rm -i',但注意脚本里不要依赖别名。

第三道:通配符先打印后执行。 rm *.log 之前先 echo *.log,看展开结果是否符合预期。尤其警惕变量为空导致的路径漂移——脚本里 rm -rf "$dir/" 在 $dir 为空时会变成 rm -rf /,这是真实发生过的生产事故。安全写法:

Terminal window
[ -n "$dir" ] && rm -rf -- "$dir/"

-- 告诉命令「后面没有选项了」,防止文件名以 - 开头被当成选项。

学会自救:man 与 —help#

记不清参数时优先问系统而不是凭印象:

Terminal window
man ls # 完整手册,q 退出,/关键词 搜索
ls --help # 快速速查
type cd # 看这个命令是内建还是外部程序

命令行的肌肉记忆来自高频使用,但「先确认、再执行」的习惯从第一天就该养成。

延伸阅读#

Linux 命令行第一步:目录导航与文件操作的安全姿势
https://meow.us.kg/posts/linux-command-line-first-steps/
作者
もゆちゃん
发布于
2026-09-01
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取