[TOC]
>[success] # 文件目錄
~~~
1.多數Linux版本采用'FHS'(英文:Filesystem Hierarchy Standard 中文:文件系統層次結構標準),FHS定義了系統中
每個區域的用途、所需要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理
2.FHS定義了兩層規范:
2.1.'第一層', / 下面的各個目錄應該要放什么文件數據,例如'/ect文件中放置的是設置文件','/bin放置的是可執行件'
2.2.'第二層','/usr'及'/var'這兩個目錄的子目錄來定義。例如'/var/log放置系統登錄文件'、'/usr/share放置共享數據'等
~~~
* 關于FHS
?[FHS\_2.3標準文檔](http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.pdf)
>[info] ##### 詳解
| 目錄 | 用途 |
| --- | --- |
| / | 根目錄 |
| /boot | 啟動目錄,啟動相關文件系統引導文件、內核 |
| /dev | 設備文件 |
| /etc | 配置文件 |
| /home | 普通用戶的家目錄,可以操作 |
| /lib | 系統庫保存目錄 |
| /mnt | 移動設備掛載目錄 |
| /media | 光盤掛載目錄 |
| /misc | 磁帶機掛載目錄 |
| /root | 超級用戶的家目錄,可以操作 |
| /tmp | 臨時目錄,可以操作 |
| /opt| 第三方應用程序的安裝位置 |
| /srv | 系統運行的服務用到的數據 |
| /proc | 正在運行的內核信息映射, 主要輸出進程信息、內存資源信息和磁盤分區信息等等 |
| /sys | 硬件設備的驅動程序信息 |
| /var | 變量 |
| /bin | 普通的基本命令,如ls,chmod等,一般的用戶也都可以使用 |
| /sbin | 基本的系統命令,如shutdown,reboot,用于啟動系統,修復系統,只有管理員才可以運行 |
| /usr/bin | 是你在后期安裝的一些軟件的運行腳本 |
| /usr/sbin | 放置一些用戶安裝的系統管理的必備程序 |
>[danger] ##### 存放二進制程序文件 - bin/sbin
~~~
1.二進制程序存放的兩個重要目錄:'bin'與'sbin',其中包括 '/bin','/sbin','/user/bin','/user/sbin' , '/user/local/bin'
'/user/local/sbin',其中二者類型的主要區別'bin'(英文全稱'binary',中文'二進制') 存放是所有用戶都可以執行的命令
'sbin'文件(英文全稱'system binary'中文'系統二進制')存放的只有管理員用戶可以執行的指令
1.1. '/bin'文件是系統啟動必要的程序,其中'/bin' 是存放著系統的一些指令一般是所有用戶都可以執行的命令,
而'/sbin'存放的一般存放系統管理的指令
1.2. '/user/bin' 和'/user/sbin' 二者存放是為了完成系統特定功能的某些指令,其中 '/user/bin' 主要放置應用程序工具
的必備執行文件也包括'后期安裝的一些軟件的運行腳本','/user/sbin'管理員用戶的一些管理程序例如放置網路管
理的必備程序和系統守護程序
1.3. '/user/local/bin' 和'/user/local/sbin' 存放和系統功能無關的程序例如自己寫的程序
2.總結:
如果是用戶和管理員必備的二進制文件,就會放在/bin;
如果是系統管理員必備,但是一般用戶根本不會用到的二進制文件,就會放在 /sbin。
如果不是用戶必備的二進制文件,多半會放在/usr/bin;
如果不是系統管理員必備的工具,如網絡管理命令,多半會放在/usr/sbin。
~~~
* **/bin**
~~~
bin為binary的簡寫主要放置一些系統的必備執行檔例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、
more、mount、rm、su、tar等。
~~~

* **/sbin**
~~~
主要放置一些系統管理的必備程序例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、
init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
~~~

* **/usr/bin**
~~~
主要放置一些應用軟件工具的必備執行檔例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、
gnome*、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、
nslookup passwd、quota、smb*、wget等
~~~

* **/usr/sbin**
~~~
放置一些網路管理的必備程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、
samba、sendmail、squid、swap、tcpd、tcpdump等
~~~

>[danger] ##### 配置文件目錄 -- /etc
~~~
1.'/etc' 存放系統管理需要的配置文件,簡單說就是'系統中的的配置文件都在這里',常見的一些/etc 目錄含義
1.1.'/etc/passwd' --- 用戶賬戶文件
1.2.'/etc/shadow' --- 賬號密碼文件
關于更多可以參考 'https://www.cnblogs.com/ftl1012/p/9279523.html'
~~~
>[danger] ##### 用戶家目錄 -- /root 、/home
~~~
1.'/root' -- 管理員用戶的家目錄
2.'/home' -- 普通用戶的家目錄在home 每個用戶都有一個自己的目錄,一般該目錄事宜用戶的賬號名命名
~~~
>[danger] ##### 臨時文件目錄 -- /tmp
~~~
1. '/tmp' -- '臨時文件目錄' 這個目錄下的文件,如果在30天內沒有被重復的訪問或修改過,那么該文件被自動刪除
所有用戶都在可這個目錄下創建文件每個用戶都可以在這個目錄下讀取自己或者別的用戶的文件,但是只能刪除
自己的,不能刪除別人的
~~~
>[danger] ##### 存放經常變化的文件目錄 -- /var
~~~
1.'/var' -- 存放經常變化的文件目錄,例如緩存、日志文件、軟件運行過程中產生的文件等其中'/var/log'存放了各種
系統日志文件,常用幾個文件例如:
1.1.'/var/log/ messages' --- 記錄系統日志信息(經常產生新信息)
1.2.'/var/log/secure' -- 安全信息和系統登錄與網絡連接的信息,里面記錄用戶登錄失敗的信息包括'登錄用的用戶名'
'客戶的IP地址'。通過這文件記錄信息如果發現,在短時間內有用人頻發用相同或者不同的用戶嘗試登錄系統,
說明有人在嘗試暴力破通過這個可以查看服務器被入侵的記錄,可以用防火墻封堵該IP
1.3.通過使用命令 'lastb'命令用于列出登入系統失敗的用戶相關信息。單獨執行lastb指令,它會讀取位于
'/var/log'目錄下,名稱為'btmp'的文件,并把該文件內容記錄的登入失敗的用戶名單,全部顯示出來。
1.4.'/var/log/lastlog' -- 記錄系統中每個用戶上一次登錄時間和IP、登錄方式,可以通過指令'lastlog'查看
1.5.'/var/log/wtmp' -- 顯示每個用戶的登錄狀態信息和最后的關機操作,命令:'last'
~~~
>[danger] ##### 共享目錄權限 -- /usr
~~~
1.'/usr' -- 共享文件目錄該目錄下的文件普通用戶只有讀權限,例如'/usr/share/fonts' -- 存放字體
~~~
>[danger] ##### 核心文件 -- /boot
~~~
1.'/boot' -- 這里存放的是啟動 Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
~~~
>[danger] ##### 設備文件目錄 -- /dev
~~~
1.'/dev' -- dev是 Device(設備)的縮寫,該目錄下存放的是 Linux的外部設備,在 Linux中訪問設備的方
式和訪問文件的方式是相同的。
1.1.'/dev/sda' -- 第一個硬盤、'/dev/sdb'-- 第二個硬盤
1.2.'/dev/null' -- 黑洞文件(任何文件和內容放到nu11中就自動消失通常用來屏蔽不需要有的信息,將信息定向到此文件
中即可),舉個例子當通過ls 查看一個不存在的文件的時候會產生報錯信息,想把這個報錯信息屏蔽掉就可以使用
'ls /tmpa 2>/dev/null' -- 其中2表示錯誤信息,相對的想屏蔽正確信息用1,如果多命令想錯誤正確都屏幕掉,可以
'ls /tmpa//home/&>/dev/null' 或者 'ls/tmpa//home/ 2>1 1>/dev/null'
~~~
>[danger] ##### 庫文件目錄 -- /lib
~~~
1.'/ib' -- 軟件安裝相關的這個目錄里存放著系統最基本的動態連接共享庫,其作用類似于 Windows里的DLL文件。幾
乎所有的應用程序都需要用到這些共享庫 例如:'/lib' ,'/lib64','/usr/lib','/usr/lib64','/usr/local/lib','/usr/local/lib64'
~~~
>[danger] ##### 掛載點
~~~
1.'/mnt' -- 系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt上
然后進入該目錄就可以查看光驅里的內容了
2.'/media' -- linux系統會自動識別一些設備,例如U盤、光驅等等,當識別后,inux會把識別的設備
掛載到這個目錄下。
'關于掛在點':在inux中每個目錄可以掛載到不同的設備(磁盤)上,Linux下設備不掛載不能使用,掛載通常是將一個存儲
設備掛接到一個已經存在的目錄上,訪問這個目錄就是訪問該存儲設備的內容。對于 Linux系統來說,一切接文件,所
有文件都放在以根目錄為起點的樹形目錄結構中,任何硬件設備也都是文件形式
~~~
>[danger] ##### 偽文件系統
~~~
1.'/proc' -- 系統硬件和內核信息的映射例子:
1.1.'/proc/ cpuinfo' -- 記錄CpU信息
1.2.'/proc/ meminfo' -- 記錄內存信息
2.'/sys' -- 外圍設備的映射
該文件特點:此兩個目錄中的內容是空的在開機的時候,系統會掃描硬件,將硬件信息保存到這兩個目錄下
在關機的時候,這些信息消失,因此這兩個目錄下的文件也就有了
~~~
>[danger] ##### 文件碎片目錄 -- /ost+found
~~~
1.' /ost+found':這個目錄一般情況下是空的,當系統非法關機后,這里就存放了一些文件。
~~~
>[danger] ##### 編譯安裝 -- /opt
~~~
1.'/opt' -- 這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個 ORACLE數據庫則就可以放到這
個目錄下。默認是空的。理解成第三方軟件位置
~~~
>[info] ## 文章參考
[Linux /bin, /sbin, /usr/bin, /usr/sbin 區別
](https://cloud.tencent.com/developer/article/1392451)
[Linux目錄結構](https://www.bilibili.com/video/BV1Di4y1b7Vr?p=6&spm_id_from=pageDriver)
- 安裝-VMware 虛擬機
- 遠程連接
- Windows -- wsl
- Linux -- 認識 Linux 和操作系統
- Linux -- Linux 和 windows 對比
- Linux -- 命令提示符
- Linux -- 文件目錄
- Linux -- 文件類型
- Linux -- 絕對和相對路徑
- Linux -- 常用快捷鍵
- Linux -- 三種幫助命令
- 幫助命令 -- man
- 幫助命令 -- help
- 幫助命令 -- info
- Linux -- 指令
- alias -- 設置別名
- history -- 查看歷史命令
- cd -- 更改目錄(切換文件夾)
- pwd -- 打印目錄
- ls -- 列出文件內容
- mkdir -- 創建文件夾
- rmdir -- 刪除一個空的目錄
- touch -- 創建普通文件/修改時間
- cp -- 復制粘貼
- mv -- 移動和重名
- rm -- 刪除
- cat/tac -- 查看純文本文件
- more/less -- 分頁讀取信息
- head -- 從文本開頭查看
- tail -- 從文本結尾查看
- cut -- 提取片段
- sort -- 排序
- uniq -- 去重
- wc -- 統計文件的行數、單詞、字節數
- tr -- 替換、縮減或刪除字符
- find -- 文件查找
- grep -- 文件當中匹配字符
- 管道 -- |
- locate -- 第三方文件查找
- whereis -- 查找二進制/源代碼文件 路徑
- which -- 查找環境變量
- 壓縮和解壓
- ln -- 鏈接
- wget -- 下載指定的url資源
- 重定向 -- << /< />/> >
- 邏輯控制 -- &&
- echo -- 輸出指定內容
- date/cal -- 查看日期和日歷
- Linux -- 進程管理
- Linux-- ps 指令
- vi/vim - 文本編輯器
- 更多
- Linux-- 開關機命令
- Liunx -- 退出登錄
- Linux-- 查看登錄用戶信息
- Linux -- 環境變量
- Linux -- 用戶
- Linux -- 文件管理
- 文件權限設置 -- chmod
- 更改文件的擁有者 -- chown
- 默認權限 -- umask
- Linux -- 用戶
- 新建/刪除用戶 -- useradd/userdel
- 修改用戶屬性 -- usermod/chage
- 新建/刪除用戶組 -- groupadd/groupdel
- 用戶切換 -- su/sudo
- 用戶/用戶組的配置文件
- 用戶家目錄被刪除解決
- last、 lastlog命令查看用戶詳細的登錄信息
- Linux -- shell
- Linux -- 管道符號
- shell -- 執行
- shell -- 變量
- shell -- 字符串
- shell -- 數組
- Shell -- declare 設置變量屬性
- shell -- 數學計算
- shell -- 變量作用域
- shell -- 位置參數變量
- shell -- read
- shell - if 語句
- shell -- test
- shell -- case
- Linux -- 循環
- Linux -- 軟件包管理