第一次面对黑色终端窗口时,最大的障碍不是记命令,而是不知道「我现在在哪、这条命令会动到谁」。本文先建立路径与目录树的心智模型,再讲最常用的文件操作命令,最后专门处理 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。
判断用哪个的原则很简单:写脚本、写定时任务一律用绝对路径,避免工作目录变化导致找不到文件;交互式操作图省事可以用相对路径。
pwd # 我在哪cd /var/log # 绝对路径跳转cd .. # 回上一级cd - # 回上一次所在目录ls -lh # 列表 + 人类可读的文件大小ls -la # 显示隐藏文件(以 . 开头)ls 的两个高频选项值得记牢:-h 把字节数换算成 K/M/G,-t 按修改时间排序,找最新日志时特别好用:ls -lht /var/log | head。
创建、复制、移动、删除
mkdir -p projects/demo/assets # -p 一次创建多级,存在也不报错touch projects/demo/notes.md # 创建空文件或刷新时间戳cp -r projects/demo /tmp/demo-backup # 复制目录必须加 -rmv notes.md todo.md # 重命名mv todo.md /tmp/ # 移动几个容易踩的细节:
cp不加-r复制目录会直接报错omitting directory。mv同名目标已存在时会静默覆盖,加-i让它覆盖前先问你。mkdir -p是脚本里的好习惯:目录已存在时不报错退出。
给 rm 上三道保险
rm 删除不走回收站,命令回车即生效,且 Linux 没有统一的「撤销删除」。三道保险:
第一道:确认目标再回车。 删除前先 ls 同一个路径,确认列出的是你想删的:
ls /tmp/demo-backuprm -r /tmp/demo-backup第二道:交互模式。 给重要操作加 -i,每删一个文件都要确认:
rm -ri old-logs/可以在自己 shell 的配置里加别名 alias rm='rm -i',但注意脚本里不要依赖别名。
第三道:通配符先打印后执行。 rm *.log 之前先 echo *.log,看展开结果是否符合预期。尤其警惕变量为空导致的路径漂移——脚本里 rm -rf "$dir/" 在 $dir 为空时会变成 rm -rf /,这是真实发生过的生产事故。安全写法:
[ -n "$dir" ] && rm -rf -- "$dir/"-- 告诉命令「后面没有选项了」,防止文件名以 - 开头被当成选项。
学会自救:man 与 —help
记不清参数时优先问系统而不是凭印象:
man ls # 完整手册,q 退出,/关键词 搜索ls --help # 快速速查type cd # 看这个命令是内建还是外部程序命令行的肌肉记忆来自高频使用,但「先确认、再执行」的习惯从第一天就该养成。
延伸阅读
分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
最后更新于 ,距今已过 51 天
部分内容可能已过时