linux下目錄結構

守護大白菜發表於2017-06-01

轉自:http://www.linuxidc.com/Linux/2016-08/134701.htm

一、Linux目錄結構

你想知道為什麼某些程式位於/bin下,或者/sbin,或者/usr/bin,或/usr/sbin目錄下嗎?例如,less命令位於/usr/bin目錄下。為什麼沒在/bin中,或/sbin,或/usr/sbin目錄中?所有這些目錄之間有什麼不同?

在這篇文章中,讓我們回顧一下Linux的檔案系統結構,並理解各上層目錄的含義。

藍色:表示目錄

青色:表示連結

黑色:表示檔案

 

1、/- 根
每一個檔案和目錄從根目錄開始。
只有root使用者具有該目錄下的寫許可權。請注意,/root是root使用者的主目錄,這與/.不一樣

 

2、/bin中 - 使用者二進位制檔案
包含二進位制可執行檔案。
在單使用者模式下,你需要使用的常見Linux命令都位於此目錄下。系統的所有使用者使用的命令都設在這裡。
例如:ps、ls、ping、grep、cp

 

3、/sbin目錄 - 系統二進位制檔案
就像/bin,/sbin同樣也包含二進位制可執行檔案。
但是,在這個目錄下的linux命令通常由系統管理員使用,對系統進行維護。例如:iptables、reboot、fdisk、ifconfig、swapon命令

 

4、/etc - 配置檔案
包含所有程式所需的配置檔案。
也包含了用於啟動/停止單個程式的啟動和關閉shell指令碼。例如:/etc/resolv.conf、/etc/logrotate.conf

hosts:裝置名稱(或域名)到ip地址的解析,相當於本地存在的dns功能。見下圖:

 

5、/dev - 裝置檔案
包含裝置檔案。
這些包括終端裝置、USB或連線到系統的任何裝置。例如:/dev/tty1、/dev/usbmon0

6、/proc - 程式資訊
包含系統程式的相關資訊。
這是一個虛擬的檔案系統,包含有關正在執行的程式的資訊。例如:/proc/{pid}目錄中包含的與特定pid相關的資訊。
這是一個虛擬的檔案系統,系統資源以文字資訊形式存在。例如:/proc/uptime

7、/var - 變數檔案
var代表變數檔案。
這個目錄下可以找到內容可能增長的檔案。
這包括 - 系統日誌檔案(/var/log);包和資料庫檔案(/var/lib);電子郵件(/var/mail);列印佇列(/var/spool);鎖檔案(/var/lock);多次重新啟動需要的臨時檔案(/var/tmp);

8、/tmp - 臨時檔案
包含系統和使用者建立的臨時檔案。
當系統重新啟動時,這個目錄下的檔案都將被刪除。

9、/usr - 使用者程式
包含二進位制檔案、庫檔案、文件和二級程式的原始碼。
/usr/bin中包含使用者程式的二進位制檔案。如果你在/bin中找不到使用者二進位制檔案,到/usr/bin目錄看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系統管理員的二進位制檔案。如果你在/sbin中找不到系統二進位制檔案,到/usr/sbin目錄看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的庫。
/usr/local中包含了從源安裝的使用者程式。例如,當你從源安裝Apache,它會在/usr/local/apache2中。

10、/home - HOME目錄
所有使用者用home目錄來儲存他們的個人檔案。
例如:/home/john、/home/nikita

11、/boot - 引導載入程式檔案
包含引導載入程式相關的檔案。
核心的initrd、vmlinux、grub檔案位於/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

12、/lib - 系統庫
包含支援位於/bin和/sbin下的二進位制檔案的庫檔案.
庫檔名為 ld*或lib*.so.*
例如:ld-2.11.1.so,libncurses.so.5.7

13、/opt - 可選的附加應用程式
opt代表可選的。
包含從個別廠商的附加應用程式。
附加應用程式應該安裝在/opt/或者/opt/的子目錄下。

14、/mnt - 掛載目錄
臨時安裝目錄,系統管理員可以掛載檔案系統。

15、/media - 可移動媒體裝置
用於掛載可移動裝置的臨時目錄。
舉例來說,掛載CD-ROM的/media/cdrom,掛載軟盤驅動器的/media/floppy;

16、/srv - 服務資料
srv代表服務。
包含伺服器特定服務相關的資料。
例如,/srv/cvs包含cvs相關的資料。

 

【參考】

Linux Filesystem Hierarchy

Source and pre-formatted versions available 1. Linux Filesystem Hierarchy

1.1. Foreward
1.2. The Root Directory
1.3. /bin
1.4. /boot
1.5. /dev
1.6. /etc
1.7. /home
1.8. /initrd
1.9. /lib
1.10. /lost+found
1.11. /media
1.12. /mnt
1.13. /opt
1.14. /proc
1.15. /root
1.16. /sbin
1.17. /usr
1.18. /var
1.19. /srv
1.20. /tmp

Glossary A. UNIX System V Signals B. Sources C. About the Author D. Contributors E. Disclaimer F. Donations G. Feedback H. GNU Free Documentation License

H.1. PREAMBLE
H.2. APPLICABILITY AND DEFINITIONS
H.3. VERBATIM COPYING
H.4. COPYING IN QUANTITY
H.5. MODIFICATIONS
H.6. COMBINING DOCUMENTS
H.7. COLLECTIONS OF DOCUMENTS
H.8. AGGREGATION WITH INDEPENDENT WORKS
H.9. TRANSLATION
H.10. TERMINATION
H.11. FUTURE REVISIONS OF THIS LICENSE
H.12. ADDENDUM: How to use this License for your documents
 
 

二、常用命令

1、命令幫助
2、使用者
3、SHELL
4、顯示硬碟、分割槽、CPU、記憶體資訊
5、網路
6、程式
7、檔案 


1、命令幫助
[root@localhost ~]#man ps
 
2、使用者
$finger username  顯示使用者username的資訊
$who              顯示當前登陸使用者
$who am I
$su                成為root使用者
$sudo command      以root使用者身份執行
$passwd            更改密碼
 
 
3、SHELL
$history                  顯示在當前shell下命令歷史
$alias                      顯示所有的命令別稱
$alias new_command='command'    將命令command別稱為new_command
$env                       顯示所有的環境變數
$export var=value    設定環境變數var為value
 
 
4、顯示硬碟、分割槽、CPU、記憶體資訊
$df -lh                           顯示所有硬碟的使用狀況
$du -sh *                       顯示當前目錄下各個目錄和檔案的大小
$mount                          顯示所有的硬碟分割槽掛載
$mount partition path       掛在partition到路徑path
$umount partition            解除安裝partition
$sudo fdisk -l                  顯示所有的分割槽
$sudo fdisk device            為device(比如/dev/sdc)建立分割槽表。 進入後選擇n, p, w
$sudo mkfs -t ext3 partition  格式化分割槽patition(比如/dev/sdc1)
                                      修改 /etc/fstab,以自動掛載分割槽。增加行:
                                      /dev/sdc1  path(mount point) ext3 defaults 0 0
$arch                            顯示架構
$cat /proc/cpuinfo          顯示CPU資訊
$cat /proc/meminfo         顯示記憶體資訊
$free                            顯示記憶體使用狀況
 
5、網路
$ifconfig      顯示網路介面以及相應的IP地址。ifconfig可用於設定網路介面
$ifup eth0    執行eth0介面
$ifdown eth0  關閉eth0介面
$iwconfig      顯示無線網路介面
$route        顯示路由表。route還可以用於修改路由表
$netstat      顯示當前的網路連線狀態
$ping IP      傳送ping包到地址IP
$traceroute IP 探測前往地址IP的路由路徑
$dhclient      向DHCP主機傳送DHCP請求,以獲得IP地址以及其他設定資訊。
$host domain  DNS查詢,尋找域名domain對應的IP
$host IP      反向DNS查詢
$wget url      使用wget下載url指向的資源
$wget -m url  映象下載
 
6、程式
$top              顯示程式資訊,並實時更新
$ps                顯示當前shell下的程式
$ps -lu username  顯示使用者username的程式
$ps -ajx          以比較完整的格式顯示所有的程式
$kill PID          殺死PID程式 (PID為Process ID)
 
 
7、檔案
$touch filename    如果檔案不存在,建立一個空白檔案;如果檔案存在,更新檔案讀取和修改時間。
$rm filename      刪除檔案
$cp file1 file2    複製file1為file2
$ls -l path        顯示檔案和檔案相關資訊
$mkdir dir        建立dir資料夾
$mkdir -p path    遞迴建立路徑path上的所有資料夾
$rmdir dir        刪除dir資料夾,dir必須為空資料夾。
$rm -r dir        刪除dir資料夾,以及其包含的所有檔案
$file filename    檔案filename的型別描述
$chown username:groupname filename    更改檔案的擁有者為owner,擁有組為group
$chmod 755 filename更改檔案的許可權為755: owner r+w+x, group: r+x, others: r+x 
$od -c filename    以ASCII字元顯示檔案

$cat filename      顯示檔案
$cat file1 file2  連線顯示file1和file2
$head -1 filename  顯示檔案第一行
$tail -5 filename  顯示檔案倒數第五行
$diff file1 file2  顯示file1和file2的差別
$sort filename    對檔案中的行排序,並顯示
$sort -f filename  排序時,不考慮大小寫
$sort -u filename  排序,並去掉重複的行
$uniq filename    顯示檔案filename中不重複的行 (內容相同,但不相鄰的行,不算做重複)
$wc filename      統計檔案中的字元、詞和行數
$wc -l filename    統計檔案中的行數

 


相關文章