# 文件和目錄(理解)
## 目標
- 理解 Linux 文件目錄的結構
## 01. 單用戶操作系統和多用戶操作系統(科普)
- **單用戶操作系統**:指一臺計算機在同一時間 **只能由一個用戶** 使用,一個用戶獨自享用系統的全部硬件和軟件資源
- **Windows XP** 之前的版本都是單用戶操作系統
- **多用戶操作系統**:指一臺計算機在同一時間可以由 **多個用戶** 使用,多個用戶共同享用系統的全部硬件和軟件資源
- **Unix** 和 **Linux** 的設計初衷就是多用戶操作系統
## 02. `Windows` 和 `Linux` 文件系統區別
### 2.1 `Windows` 下的文件系統
- 在 `Windows` 下,打開 “計算機”,我們看到的是一個個的驅動器盤符:

- 每個驅動器都有自己的根目錄結構,這樣形成了多個樹并列的情形,如圖所示:

### 2.2 `Linux` 下的文件系統
- 在 `Linux` 下,我們是看不到這些驅動器盤符,我們看到的是文件夾(目錄):

- `Ubuntu` 沒有盤符這個概念,只有一個根目錄 `/`,所有文件都在它下面

### 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