一、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

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 顯示所有硬盤的使用狀況
$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 統計文件中的行數

 


|