# 文件和目录(理解)
## 目标
- 理解 Linux 文件目录的结构
## 01. 单用户操作系统和多用户操作系统(科普)
- **单用户操作系统**:指一台计算机在同一时间 **只能由一个用户** 使用,一个用户独自享用系统的全部硬件和软件资源
- **Windows XP** 之前的版本都是单用户操作系统
- **多用户操作系统**:指一台计算机在同一时间可以由 **多个用户** 使用,多个用户共同享用系统的全部硬件和软件资源
- **Unix** 和 **Linux** 的设计初衷就是多用户操作系统
## 02. `Windows` 和 `Linux` 文件系统区别
### 2.1 `Windows` 下的文件系统
- 在 `Windows` 下,打开 “计算机”,我们看到的是一个个的驱动器盘符:
![001_Windows下的多个盘](https://pic.downk.cc/item/5e7f1400504f4bcb04569e52.jpg)
- 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:
![001-Windows下多个盘为节点的目录分支](https://pic.downk.cc/item/5e7f1413504f4bcb0456ad0b.jpg)
### 2.2 `Linux` 下的文件系统
- 在 `Linux` 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):
![002_Ubuntu文件目录](https://pic.downk.cc/item/5e7f1439504f4bcb0456ced7.jpg)
- `Ubuntu` 没有盘符这个概念,只有一个根目录 `/`,所有文件都在它下面
![003-Linux的树形示意图](https://pic.downk.cc/item/5e7f1473504f4bcb045701dc.jpg)
### 2.3 用户目录
位于 `/home/user`,称之为用户工作目录或家目录,表示方式:
```bash
/home/user
~
```
### 2.4 `Linux` 主要目录速查表
- /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始
- 当在终端里输入 `/home`,其实是在告诉电脑,先从 `/`(根目录)开始,再进入到 `home` 目录
- /bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
- /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:`/boot/vmlinuz`,系统引导管理器:`/boot/grub`
- /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱`mount /dev/cdrom /mnt`
- /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
- /etc/inittab
- /etc/fstab
- /etc/init.d
- /etc/X11
- /etc/sysconfig
- /etc/xinetd.d
- /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
- `~` 表示当前用户的家目录
- `~edu` 表示用户 `edu` 的家目录
- /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
- /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
- /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
- /opt:给主机额外安装软件所摆放的目录
- /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
- /root:系统管理员root的家目录
- /sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用
- /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
- /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
- /usr:应用程序存放目录
- /usr/bin:存放应用程序
- /usr/share:存放共享数据
- /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
- /usr/local:存放软件升级包
- /usr/share/doc:系统说明文件存放目录
- /usr/share/man:程序说明文件存放目录
- /var:放置系统执行过程中经常变化的文件
- /var/log:随时更改的日志文件
- /var/spool/mail:邮件存放的目录
- /var/run:程序或服务启动后,其 PID 存放在该目录下
- linux基础
- 01_Python基础课程安排
- 02_操作系统(科普章节)
- 03_操作系统的发展史(科普章节)
- 04_文件和目录(理解)
- 05_Ubuntu图形界面入门
- 06_常用Linux命令的基本使用
- 07_Linux终端命令格式
- 08_文件和目录常用命令
- 09_远程管理常用命令
- 10_用户权限相关命令
- 11_系统信息相关命令
- 12_其他命令
- python基础
- 01_认识 Python
- 02_第一个Python 程序
- 03_PyCharm的初始设置(知道)
- 04_多文件项目的演练
- 05_注释
- 06_算数运算符
- 07_程序执行原理(科普)
- 08_变量的基本使用
- 09_变量的命名
- 10_判断(if)语句
- 11_运算符
- 12_循环
- 13_函数基础
- 14_高级变量类型
- 15_综合应用——名片管理系统
- 16_变量进阶(理解)
- 17_函数进阶.md
- 面向对象
- 01_面向对象(OOP)基本概念
- 02_类和对象
- 03_面向对象基础语法
- 04_面向对象封装案例
- 05_面向对象封装案例 II