2021-05-12 14:32:11
Linux目錄結構和常用命令
一、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 統計檔案中的行數
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-08/134701.htm
相關文章