一、Linux目錄結構 你想知道為什麼某些程式位於/bin下,或者/sbin,或者/usr/bin,或/usr/sbin目錄下嗎?例如,less命令位於/usr/bin目錄下。為什麼沒在/bin中,或/sbin,或/usr/sbin目錄中?所有這些目錄之間有什麼不同? 在這篇文章中,讓我們回顧一下L ...
一、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 統計文件中的行數