Linux 文件系统是一棵树

/                    根(一切的起点)
├── bin/             基础命令二进制(ls、cat 等)
├── boot/            内核与启动文件
├── dev/             设备文件(硬盘、键盘、伪文件)
├── etc/             ★ 系统配置文件
├── home/            ★ 普通用户的家目录
│   └── wadely/
├── lib/             基础库
├── media/           可移动设备挂载点(U 盘等)
├── mnt/             手动挂载点
├── opt/             可选第三方软件
├── proc/            内核 / 进程的伪文件系统
├── root/            root 用户的家
├── run/             运行时数据
├── sbin/            系统管理命令
├── srv/             服务数据(不常用)
├── sys/             硬件 / 内核接口
├── tmp/             临时文件(重启清空)
├── usr/             ★ 用户安装的程序和库
│   ├── bin/         用户级命令
│   ├── lib/
│   └── local/       本地编译的软件
└── var/             ★ 可变数据(日志 / 缓存 / 邮件)
    ├── log/         系统日志
    └── lib/         数据库等

必须熟的 5 个目录

目录 作用
/home/<user> 用户的私人空间 /home/wadely/
/etc 所有系统级配置 /etc/nginx/nginx.conf
/var/log 日志全在这 /var/log/syslog
/usr/bin /usr/local/bin 装的程序在这 /usr/bin/python3
/tmp 随便扔的临时文件 重启会清空

绝对路径 vs 相对路径

# 绝对路径(以 / 开头,永远指向同一个位置)
cd /home/wadely/projects

# 相对路径(基于当前位置)
cd projects                 # 进入当前目录下的 projects
cd ../other                 # 上一级目录里的 other
cd ./local                  # 当前目录的 local(./ 可省略)

几个特殊符号:

符号 含义
/ 根目录
~ 当前用户的家(等同 $HOME)
. 当前目录
.. 上级目录
- 上次所在目录
cd ~          # 回家
cd /          # 去根
cd -          # 回到上次位置
pwd           # 看现在在哪

文件名约定

  • 大小写敏感File.txtfile.txt 是两个不同的文件
  • . 开头 = 隐藏.bashrc .git 默认 ls 看不到,要 ls -a
  • 没有"扩展名"概念.txt .sh 只是约定,系统看文件内容判断类型

下一篇:能进去 + 认了路 → 用基础命令操作文件。