1. 程式人生 > >2.1-2.5系統目錄結構

2.1-2.5系統目錄結構

centos7

2.1-2.5系統目錄結構


2.1-2.2 系統目錄結構(上)

目錄結構的介紹

技術分享

  • / 根 每一個文件和目錄從根目錄開始。 只有root用戶具有該目錄下的寫權限。請註意,/root是root用戶的家目錄。

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

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

  • /etc - 配置文件 包含所有程序所需的配置文件。 也包含了用於啟動/停止單個程序的啟動和關閉shell腳本。例如:/etc/resolv.conf、/etc/logrotate.conf

  • /dev - 設備文件 包含設備文件。 這些包括終端設備、USB或連接到系統的任何設備。例如:/dev/tty1、/dev/usbmon0

  • /proc - 進程信息 包含系統進程的相關信息,每個進程在該目錄下都有一個目錄。 這是一個虛擬的文件系統,包含有關正在運行的進程的信息。例如:/proc/{pid}目錄中包含的與特定pid相關的信息。 這是一個虛擬的文件系統,系統資源以文本信息形式存在。例如:/proc/uptime

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

  • /tmp - 臨時文件 包含系統和用戶創建的臨時文件。 當系統重新啟動時,這個目錄下的文件都將被刪除。

  • /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中。

  • /home - HOME目錄 所有用戶用home目錄來存儲他們的個人檔案。 例如:/home/john、/home/nikita 普通用戶是在/home下,root用戶則是在/下。

  • /boot - 引導加載程序文件 包含引導加載程序相關的文件。 內核的initrd、vmlinux、grub文件位於/boot下。 例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

  • /lib - 系統庫 包含支持位於/bin和/sbin下的二進制文件的庫文件. 庫文件名為 ld或lib.so.* 例如:ld-2.11.1.so,libncurses.so.5.7

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

  • /mnt - 掛載目錄 臨時安裝目錄,系統管理員可以掛載文件系統。

  • /media - 可移動媒體設備 用於掛載可移動設備的臨時目錄,默認是空的。 舉例來說,掛載CD-ROM的/media/cdrom,掛載軟盤驅動器的/media/floppy;

  • /srv - 服務數據 srv代表服務。 包含服務器特定服務相關的數據。 例如,/srv/cvs包含cvs相關的數據。

如何查看一個命令依賴於哪些庫,使用如下命令則會列出ls命令依賴的所有庫文件。

ldd /bin/ls

樹形查看目錄的命令

tree /root   樹形查看/root下目錄及文件

如果沒有此命令需要先安裝tree

yum install -y tree

Ctrl+c可以中斷此命令,因為有的目錄很多,刷出來會比較慢。

指定目錄最大的深度(如2層)

tree -L 2 /root

這樣就會只顯示/root下兩層的目錄,更深層的目錄將不會顯示出來。


2.3 ls命令

ls命令是linux下最常用的命令之一,ls是list的縮寫。因為linux目錄或者文件記錄的信息實在太多,所以默認ls只顯示非隱藏的目錄以及文件名。ls直接執行不加參數時顯示當前目錄下的文件名。

ls參數介紹

  1. 命令格式: 命令[-選項][參數] 列入

ls -a /etc   顯示/etc下隱藏文件

在Linux中“.”代表的是隱藏文件。

  1. ls命令集合

  • -a 顯示所有文件,包括隱藏文件

  • -l 詳細信息顯示

  • -d 查看目錄屬性

  • -f 直接輸出結果,不進行排序(ls預設會以檔案名排序)

  • -i 列出inode號碼

  • -F : 根據檔案信息,給予附加數據結構,例如:*代表可執行文件 /代表目錄 =代表socket檔案 |代表FIFO檔案

  • -A : 全部檔案,包括隱藏檔案,但是不顯示 . 與 .. 這兩個目錄

  • -h : 檔案容量以人類可以理解的方式顯示(如GB、KB等)

  • -n : 列出UID與GID而非使用者與群組的名稱

  • -r : 將結果反向序列輸出

  • -R : 連同子目錄內容一同列出

  • -S : 以檔案容量大小排序,而不是用檔案名排序

  • -t : 以時間排序,而不是用檔案名排序

  • --color=never : 不依據檔案特性給予顏色顯示

  • --color=always : 總是依據檔案特性給予顏色顯示

  • --color=auto : 讓系統自行依據設定來判斷是否給予顏色

  • --full-time : 以完整時間模式(包括年月日時分)顯示

  • --time={atime,ctime} : 輸出access時間或改變權限屬性時間(ctime),而非內容變更時間(mtime)


2.4 文件類型

ls -l文件每列的介紹

-rw-------. 1 root root  7690 12月  3 06:21

1列:文件類型和權限

2列 : 鏈接占用的節點(inode),如果是目錄,這個數值與該目錄有多少一級子目錄有關系。

3列:該文件所有者

4列:該文件所屬組

5列:該文件的大小

6列:6、7、8列為該文件最近的修改日期

9列:該文件文件名

inode是什麽

理解inode,要從文件儲存說起。

  • 文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當於0.5KB)。

  • 操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。

  • 文件數據都儲存在"塊"中,那麽很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為"索引節點"。

文件類型詳解

  • d目錄文件

  • -普通文件 普通文件(regular file):就是一般類型的文件,當用 ls -l 查看某個目錄時,第一個屬性為 ‘-‘ 的文件就是正規文件,或者叫普通文件。正規文件又可分成純文字文件(ascii)和二進制文件(binary)。純文本文件是可以通過cat, more, less等工具直接查看內容的,而二進制文件並不能。例如我們用的命令/bin/ls 這就是一個二進制文件。

  • l 鏈接文件(linux file),軟連接就是該類型的文件 鏈接文件(link):ls -l 查看第一個屬性為 ‘l’, 類似windows下的快捷方式。這種文件在linux中很常見,而且阿銘在日常的系統運維工作中用的很多,所以要特意留意一下這種類型的文件。

  • b 塊設備,/dev/sda就是塊設備 設備(device):與系統周邊相關的一些檔案,通常都集中在 /dev 這個目錄之下! 通常又分為兩種:塊(block)設備 :就是一些儲存數據,以提供系統存取的接口設備,簡單的說就是硬盤。例如您的一號硬盤的代碼是 /dev/sda1, 第一個屬性為 ‘b’;另一種是字符(character)設備 :是一些串行端口的接口設備,例如鍵盤、鼠標等等,第一個屬性為 ‘c’.

  • c 串行端口,例如鼠標鍵盤。

  • s 套接字文件(socket),用於進程間通信

  • p 管道文件。


2.5 alias命令和which命令

如何看一個命令的別名

which ls

查看ls命令的別名

如何查看當前那些命令做了別名

alias

直接敲alias即可列出來

如何設置別名

alias gaohanwei=‘ls -A‘

當輸入gaohanwei實際上使用的是ls -A這個命令

如何取消已經設置了的別名

unalias gaohanwei

這樣就取消了gaohanwei這個別名

  • 用戶可利用alias,自定指令的別名。若僅輸入alias,則可列出目前所有的別名設置。 alias的效力僅及於該次登入的操作。若要每次登入是即自動設好別名,可在/etc/profile或自己的~/.bashrc中設定指令的別名。還有,如果想給每一位用戶都生效的別名,請把alias la=‘ls -al‘一行加在/etc/bashrc最後面,bashrc是環境變量的配置文件 /etc/bashrc和~/.bashrc 區別就在於一個是設置給全系統一個是設置給單用戶使用. 利用alias可以把很長的命令變成任意我們喜歡的簡短的 如果想永久生效,就把這條寫入到 /etc/bashrc裏面,並使用命令source .bashrc進行重啟bashrc即可生效。



本文出自 “12004704” 博客,請務必保留此出處http://12014704.blog.51cto.com/12004704/1954146

2.1-2.5系統目錄結構