日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

ubuntu cheat sheet 目錄結構

系統 2462 0

? Ubuntu Cheat Sheet

?

?

fwunixrefshot.png

?

Ubuntu系統目錄結構

?

以下為Ubuntu目錄的主要目錄結構,您稍微了解它們都包含了哪些文件就可以了,不需要記憶。

?

              /   根目錄 
    │ 
    ├boot/      啟動文件。所有與系統啟動有關的文件都保存在這里 
    │    └grub/   Grub引導器相關的文件 
    │ 
    ├dev/       設備文件 
    ├proc/      內核與進程鏡像 
    │ 
    ├mnt/      臨時掛載 
    ├media/   掛載媒體設備 
    │ 
    ├root/      root用戶的$HOME目錄 
    ├home/          
    │    ├user/   普通用戶的$HOME目錄 
    │    └.../ 
    │ 
    ├bin/      系統程序 
    ├sbin/      管理員系統程序 
    ├lib/      系統程序庫文件 
    ├etc/      系統程序和大部分應用程序的全局配置文件 
    │   ├init.d/   SystemV風格的啟動腳本 
    │   ├rcX.d/   啟動腳本的鏈接,定義運行級別 
    │   ├network/   網絡配置文件 
    │   ├X11/      圖形界面配置文件 
    │ 
    ├usr/       
    │   ├bin/      應用程序 
    │   ├sbin/   管理員應用程序 
    │   ├lib/      應用程序庫文件 
    │   ├share/   應用程序資源文件 
    │   ├src/      應用程序源代碼 
    │   ├local/       
    │   │     ├soft/      用戶程序       
    │   │     └.../      通常使用單獨文件夾 
    │   ├X11R6/   圖形界面系統 
    │ 
    ├var/         動態數據 
    │ 
    ├temp/         臨時文件 
    ├lost+found/   磁盤修復文件
            

?

來源: http://fosswire.com/post/2008/04/ubuntu-cheat-sheet/

?

?

對于每一個Linux學習者來說 了解Linux文件系統的目錄結構,是學好Linux的至關重要的一步 .,深入了解linux文件目錄結構的標準和每個目錄的詳細功能,對于我們用好linux系統只管重要,下面我們就開始了解一下linux目錄結構的相關知識。

?

當 在使用Linux的時候,如果您通過ls?–l?/?就會發現,在/下包涵很多的目錄,比如etc、usr、var、bin?...?...?等目錄,而 在這些目錄中,我們進去看看,發現也有很多的目錄或文件。文件系統在Linux下看上去就象樹形結構,所以我們可以把文件系統的結構形象的稱為?樹形結 構。

?

文 件系統的是用來組織和排列文件存取的,所以她是可見的,在Linux中,我們可以通過ls等工具來查看其結構,在Linux系統中,我們見到的都是樹形結 構;比如操作系統安裝在一個文件系統中,他表現為由/?起始的樹形結構。linux文件系統的最頂端是/,我們稱/為Linux的root,也就 是?Linux操作系統的文件系統。Linux的文件系統的入口就是/,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上 級的領導者。

?

由于linux是開放源代碼,各大公司和團體根據linux的核心代碼做各自的操作,編程。這樣就造成在根下的目錄的不同。這樣就造成個人不能使用他人的linux系統的PC。因為你根本不知道一些基本的配置,文件在哪里。。。這就造成了混亂。這就是FHS Filesystem?Hierarchy?Standard ? 機構誕生的原因。該機構是linux愛好者自發的組成的一個團體,主要是是對linux做一些基本的要求,不至于是操作者換一臺主機就成了 linux的 ‘文盲’。

?

根 據FHS(http://www.pathname.com/fhs/)的官方文件指出,?他們的主要目的是希望讓使用者可以了解到已安裝軟件通常放置于 那個目錄下,?所以他們希望獨立的軟件開發商、操作系統制作者、以及想要維護系統的用戶,都能夠遵循FHS的標準。?也就是說,FHS的重點在于規范每個 特定的目錄下應該要放置什么樣子的數據而已。?這樣做好處非常多,因為Linux操作系統就能夠在既有的面貌下(目錄架構不變)發展出開發者想要的獨特風 格。

?

事實上,FHS是根據過去的經驗一直再持續的改版的,FHS依據文件系統使用的頻繁與否與是否允許使用者隨意更動,?而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:

?

?

可分享的(shareable)

不可分享的(unshareable)

不變的(static)

/usr?(軟件放置處)

/etc?(配置文件)

/opt?(第三方協力軟件)

/boot?(開機與核心檔)

可變動的(variable)

/var/mail?(使用者郵件信箱)

/var/run?(程序相關)

/var/spool/news?(新聞組)

/var/lock?(程序相關)

?

四中類型:

1.? 可分享的:

可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據,?是能夠分享給網絡上其他主機掛載用的目錄;

?

2.? 不可分享的:

自己機器上面運作的裝置文件或者是與程序有關的socket文件等,?由于僅與自身機器有關,所以當然就不適合分享給其他主機了。

?

3.? 不變的:

有些數據是不會經常變動的,跟隨著distribution而不變動。?例如函式庫、文件說明文件、系統管理員所管理的主機服務配置文件等等;

?

4.? 可變動的:

經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等。

事實上,FHS針對目錄樹架構僅定義出三層目錄底下應該放置什么數據而已,分別是底下這三個目錄的定義:

/?(root,?根目錄):與開機系統有關;

/usr?(unix?software?resource):與軟件安裝/執行有關;

/var?(variable):與系統運作過程有關。

?

一.?根目錄?(/)?的意義與內容:

?

根 目錄是整個系統最重要的一個目錄,因為不但所有的目錄都是由根目錄衍生出來的,?同時根目錄也與開機/還原/系統修復等動作有關。?由于系統開機時需要特 定的開機軟件、核心文件、開機所需程序、?函式庫等等文件數據,若系統出現錯誤時,根目錄也必須要包含有能夠修復文件系統的程序才行。?因為根目錄是這么 的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分區,?因為越大的分區內你會放入越多的數據,如此一來根目錄所在分區就可能會有較多發生 錯誤的機會。

因此FHS標準建議:根目錄(/)所在分區應該越小越好,?且應用程序所安裝的軟件最好不要與根目錄放在同一個分區內,保持根目錄越小越好。?如此不但效能較佳,根目錄所在的文件系統也較不容易發生問題。 說白了,就是根目錄和Windows的C盤一個樣

?

根據以上原因,FHS認為根目錄(/)下應該包含如下子目錄:

目錄

應放置檔案內容

/bin

系統有很多放置執行檔的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號所使用,主要有:cat, chmod(修改權限) ,?chown,?date,?mv,?mkdir,?cp,?bash等等常用的指令。

/boot

主要放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機所需設定檔等等。Linux?kernel常用的檔名為:vmlinuz?,如果使用的是grub這個開機管理程式,則還會存在/boot/grub/這個目錄

/dev

在 Linux系統上,任何裝置與周邊設備都是以檔案的型態存在于這個目錄當中。?只要通過存取這個目錄下的某個檔案,就等于存取某個裝置。比要重要的檔案有 /dev/null,?/dev/zero,?/dev/tty?,?/dev/lp*,?/?dev/hd*,?/dev/sd*等等

/etc

系 統主要的設定檔幾乎都放置在這個目錄內,例如人員的帳號密碼檔、各種服務的啟始檔等等。?一般來說,這個目錄下的各檔案屬性是可以讓一般使用者查閱的,但 是只有root有權力修改。?FHS建議不要放置可執行檔(binary)在這個目錄中。?比較重要的檔案有:/etc/inittab,?/etc /init.d/,?/etc/modprobe.conf,?/etc/X11/,?/etc/fstab,?/etc/sysconfig/等 等。?另外,其下重要的目錄有:/etc/init.d/?:所有服務的預設啟動script都是放在這里的,例如要啟動或者關閉iptables的 話:?/etc/init.d/iptables?start、/etc/init.d/?iptables?stop

/etc/xinetd.d/?:這就是所謂的super?daemon管理的各項服務的設定檔目錄。

/etc/X11/?:與X?Window有關的各種設定檔都在這里,尤其是xorg.conf或XF86Config這兩個X?Server的設定檔。

/home

這是系統預設的使用者家目錄(home?directory)。?在你新增一個一般使用者帳號時,預設的使用者家目錄都會規范到這里來。比較重要的是,家目錄有兩種代號:?
~?:代表當前使用者的家目錄,而?~guest:則代表用戶名為guest的家目錄

/lib

系 統的函式庫非常的多,而/lib放置的則是在開機時會用到的函式庫,以及在/bin或/sbin底下的指令會呼叫的函式庫而已?。?什么是函式庫呢?妳可 以將他想成是外掛,某些指令必須要有這些外掛才能夠順利完成程式的執行之意。?尤其重要的是/lib/modules/這個目錄,因為該目錄會放置核心相 關的模組(驅動程式)

/media

media是媒體的英文,顧名思義,這個/media底下放置的就是可移除的裝置 ?包括軟碟、光碟、DVD等等裝置都暫時掛載于此。?常見的檔名有:/media/floppy,?/media/cdrom等等。

/mnt

如果妳想要暫時掛載某些額外的裝置,一般建議妳可以放置到這個目錄中。在古早時候,這個目錄的用途與/media相同啦 ?只是有了/media之后,這個目錄就用來暫時掛載用了。

/opt

這 個是給第三方協力軟體放置的目錄?。?什么是第三方協力軟體啊?舉例來說,KDE這個桌面管理系統是一個獨立的計畫,不過他可以安裝到Linux系統中, 因此KDE的軟體就建議放置到此目錄下了。?另外,如果妳想要自行安裝額外的軟體(非原本的distribution提供的),那么也能夠將你的軟體安裝 到這里來。?不過,以前的Linux系統中,我們還是習慣放置在/usr/local目錄下

/root

系統管理員(root)的家目錄。?之所以放在這里,是因為如果進入單人維護模式而僅掛載根目錄時,該目錄就能夠擁有root的家目錄,所以我們會希望root的家目錄與根目錄放置在同一個分區中。

/sbin

Linux 有非常多指令是用來設定系統環境的,這些指令只有root才能夠利用來設定系統,其他使用者最多只能用來查詢而已。放在/sbin底下的為開機過程中所需 要的,里面包括了開機、修復、還原系統所需要的指令。至于某些伺服器軟體程式,一般則放置到/usr/sbin/當中。至于本機自行安裝的軟體所產生的系 統執行檔(system?binary),則放置到/usr/local/sbin/當中了。常見的指令包 括:fdisk,?fsck,?ifconfig,?init,?mkfs等等。

/srv

srv可以視為service的縮寫,是一些網路服務啟動之后,這些服務所需要取用的資料目錄。?常見的服務例如WWW,?FTP等等。?舉例來說,WWW伺服器需要的網頁資料就可以放置在/srv/www/里面。呵呵,看來平時我們編寫的代碼應該放到這里了。

/tmp

這是讓一般使用者或者是正在執行的程序暫時放置檔案的地方。這個目錄是任何人都能夠存取的,所以你需要定期的清理一下。當然,重要資料不可放置在此目錄啊 ?因為FHS甚至建議在開機時,應該要將/tmp下的資料都刪除


事實上FHS針對根目錄所定義的標準就僅限于上表,不過仍舊有些目錄也需要我們了解一下,具體如下:

目錄

應放置文件內容

/lost+found

這 個目錄是使用標準的ext2/ext3檔案系統格式才會產生的一個目錄,目的在于當檔案系統發生錯誤時,將一些遺失的片段放置到這個目錄下。?這個目錄通 常會在分割槽的最頂層存在,例如你加裝一個硬盤于/disk中,那在這個系統下就會自動產生一個這樣的目錄/disk/lost+found

/proc

這個目錄本身是一個虛擬文件系統(virtual?filesystem)喔 ?他放置的資料都是在內存當中,例如系統核心、行程資訊(process)(是進程嗎?)、周邊裝置的狀態及網絡狀態等等。因為這個目錄下的資料都是在記憶體(內存)當中,所以本身不占任何硬盤空間 比較重要的檔案(目錄)例如:?/proc/cpuinfo,?/proc/dma,?/proc/interrupts,?/proc/ioports,?/proc/net/*等等。呵呵,是虛擬內存嗎[guest]?

/sys

這個目錄其實跟/proc非常類似,也是一個虛擬的檔案系統,主要也是記錄與核心相關的資訊。?包括目前已載入的核心模組與核心偵測到的硬體裝置資訊等等。?這個目錄同樣不占硬盤容量


除了這些目錄的內容之外,另外要注意的是,因為根目錄與開機有關,開機過程中僅有根目錄會被掛載,?其他分區則是在開機完成之后才會持續的進行掛載的行為。就是因為如此,因此根目錄下與開機過程有關的目錄,?就不能夠與根目錄放到不同的分區去 那哪些目錄不可與根目錄分開呢?有底下這些:

/etc:配置文件

/bin:重要執行檔

/dev:所需要的裝置文件

/lib:執行檔所需的函式庫與核心所需的模塊

/sbin:重要的系統執行文件

這五個目錄千萬不可與根目錄分開在不同的分區 請背下來啊 ?

?

二.?/usr?的意義與內容:

依據FHS的基本定義,/usr里面放置的數據屬于可分享的與不可變動的(shareable,?static),?如果你知道如何透過網絡進行分區的掛載(例如在服務器篇會談到的NFS服務器),那么/usr確實可以分享給局域網絡內的其他主機來使用喔。

/usr 不是user的縮寫,其實usr是Unix?Software?Resource的縮寫,?也就是Unix操作系統軟件資源所放置的目錄,而不是用戶的數 據啦。這點要注意。?FHS建議所有軟件開發者,應該將他們的數據合理的分別放置到這個目錄下的次目錄,而不要自行建立該軟件自己獨立的目錄。

因 為是所有系統默認的軟件(distribution發布者提供的軟件)都會放置到/usr底下,因此這個目錄有點類似Windows?系統的 C:\Windows\?+?C:\Program?files\這兩個目錄的綜合體,系統剛安裝完畢時,這個目錄會占用最多的硬盤容量。?一般來 說,/usr的次目錄建議有底下這些:

目錄

應放置文件內容

/usr/X11R6/ ?

為X?Window?System重要數據所放置的目錄,之所以取名為X11R6是因為最后的X版本為第11版,且該版的第6次釋出之意。 ?

/usr/bin/ ?

絕大部分的用戶可使用指令都放在這里 請注意到他與/bin的不同之處。(是否與開機過程有關) ?

/usr/include/ ?

c/c++等程序語言的檔頭(header)與包含檔(include)放置處,當我們以tarball方式?(*.tar.gz?的方式安裝軟件)安裝某些數據時,會使用到里頭的許多包含檔 ?

/usr/lib/ ?

包 含各應用軟件的函式庫、目標文件(object?file),以及不被一般使用者慣用的執行檔或腳本(script)。?某些軟件會提供一些特殊的指令來 進行服務器的設定,這些指令也不會經常被系統管理員操作,?那就會被擺放到這個目錄下啦。要注意的是,如果你使用的是X86_64的Linux系統,?那 可能會有/usr/lib64/目錄產生 ?

/usr/local/ ?

統 管理員在本機自行安裝自己下載的軟件(非distribution默認提供者),建議安裝到此目錄,?這樣會比較便于管理。舉例來說,你的 distribution提供的軟件較舊,你想安裝較新的軟件但又不想移除舊版,?此時你可以將新版軟件安裝于/usr/local/目錄下,可與原先的 舊版軟件有分別啦 ?你可以自行到/usr/local去看看,該目錄下也是具有bin,?etc,?include,?lib...的次目錄 ?

/usr/sbin/ ?

非系統正常運作所需要的系統指令。最常見的就是某些網絡服務器軟件的服務指令(daemon) ?

/usr/share/ ?

放置共享文件的地方,在這個目錄下放置的數據幾乎是不分硬件架構均可讀取的數據,?因為幾乎都是文本文件嘛 在此目錄下常見的還有這些次目錄:/usr/share/man:聯機幫助文件

/usr/share/doc:軟件雜項的文件說明

/usr/share/zoneinfo:與時區有關的時區文件

/usr/src/ ?

一般原始碼建議放置到這里,src有source的意思。至于核心原始碼則建議放置到/usr/src/linux/目錄下。 ?

?

三.??/var?的意義與內容:

?

如 果/usr是安裝時會占用較大硬盤容量的目錄,那么/var就是在系統運作后才會漸漸占用硬盤容量的目錄。?因為/var目錄主要針對常態性變動的文件, 包括緩存(cache)、登錄檔(log?file)以及某些軟件運作所產生的文件,?包括程序文件(lock?file,?run?file),或者例 如MySQL數據庫的文件等等。常見的次目錄有:

目錄

應放置文件內容

/var/cache/

應用程序本身運作過程中會產生的一些暫存檔

/var/lib/

程序本身執行的過程中,需要使用到的數據文件放置的目錄。在此目錄下各自的軟件應該要有各自的目錄。?舉例來說,MySQL的數據庫放置到/var/lib/mysql/而rpm的數據庫則放到/var/lib/rpm去

/var/lock/

某 些裝置或者是文件資源一次只能被一個應用程序所使用,如果同時有兩個程序使用該裝置時,?就可能產生一些錯誤的狀況,因此就得要將該裝置上鎖 (lock),以確保該裝置只會給單一軟件所使用。?舉例來說,刻錄機正在刻錄一塊光盤,你想一下,會不會有兩個人同時在使用一個刻錄機燒片??如果兩個 人同時刻錄,那片子寫入的是誰的數據?所以當第一個人在刻錄時該刻錄機就會被上鎖,?第二個人就得要該裝置被解除鎖定(就是前一個人用完了)才能夠繼續使 用

/var/log/

非常 重要 這是登錄文件放置的目錄 里面比較重要的文件如/var/log/messages,?/var/log/wtmp(記錄登入者的信息)等。

/var/mail/

放置個人電子郵件信箱的目錄,不過這個目錄也被放置到/var/spool/mail/目錄中 通常這兩個目錄是互為鏈接文件

/var/run/

某些程序或者是服務啟動后,會將他們的PID放置在這個目錄下

/var/spool/

這個目錄通常放置一些隊列數據,所謂的 隊列 就是排隊等待其他程序使用的數據 ?這 些數據被使用后通常都會被刪除。舉例來說,系統收到新信會放置到/var/spool/mail/中,?但使用者收下該信件后該封信原則上就會被刪除。信 件如果暫時寄不出去會被放到/var/spool/mqueue/中,?等到被送出后就被刪除。如果是工作排程數據(crontab),就會被放置到 /var/spool/cron/目錄中

由于FHS僅是定義出最上層(/)及次層(/usr,?/var)的目錄內容應該要放置的文件或目錄數據,?因此,在其他次目錄層級內,就可以隨開發者自行來配置了

?

四.? 目錄樹(directory?tree) ? :

?

在Linux底下,所有的文件與目錄都是由根目錄開始的。那是所有目錄與文件的源頭,?然后再一個一個的分支下來,因此,我們也稱這種目錄配置方式為:目錄樹(directory?tree),?這個目錄樹的主要特性有:

目錄樹的啟始點為根目錄?(/,?root);

每一個目錄不止能使用本地端的?partition?的文件系統,也可以使用網絡上的?filesystem?。舉例來說,?可以利用?Network?File?System?(NFS)?服務器掛載某特定目錄等。

每一個文件在此目錄樹中的文件名(包含完整路徑)都是獨一無二的。

如果我們將整個目錄樹以圖的方法來顯示,并且將較為重要的文件數據列出來的話,那么目錄樹架構就如下圖所示:

ubuntu cheat sheet 目錄結構

?

五.?絕對路徑與相對路徑

?

除了需要特別注意的FHS目錄配置外,在文件名部分我們也要特別注意。因為根據檔名寫法的不同,也可將所謂的路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。?這兩種文件名/路徑的寫法依據是這樣的:

絕對路徑:

由根目錄(/)開始寫起的文件名或目錄名稱,?例如?/home/dmtsai/.bashrc;

?

相對路徑:

相對于目前路徑的文件名寫法。?例如?./home/dmtsai?或?http://www.cnblogs.com/home/dmtsai/?等等。反正開頭不是?/?就屬于相對路徑的寫法

而你必須要了解,相對路徑是以你當前所在路徑的相對位置來表示的。舉例來說,你目前在?/home?這個目錄下,?如果想要進入?/var/log?這個目錄時,可以怎么寫呢?

cd?/var/log???(absolute)

cd?../var/log?(relative)

因為你在?/home?底下,所以要回到上一層?(../)?之后,才能繼續往?/var?來移動的,特別注意這兩個特殊的目錄:

.??:代表當前的目錄,也可以使用?./?來表示;

..?:代表上一層目錄,也可以?../?來代表。

這個?.?與?..?目錄概念是很重要的,你常常會看到?cd?..?或?./command?之類的指令下達方式,?就是代表上一層與目前所在目錄的工作狀態。

?

實例1:如何先進入/var/spool/mail/目錄,再進入到/var/spool/cron/目錄內?

命令

cd?/var/spool/mail

cd?../cron

說明:

由 于/var/spool/mail與/var/spool/cron是同樣在/var/spool/目錄中。如此就不需要在由根目錄開始寫起了。這個相對 路徑是非常有幫助的,尤其對于某些軟件開發商來說。?一般來說,軟件開發商會將數據放置到/usr/local/里面的各相對目錄。?但如果用戶想要安裝 到不同目錄呢?就得要使用相對路徑。

?

實例2:網絡文件常常提到類似./run.sh之類的數據,這個指令的意義為何?

說明:

由于指令的執行需要變量的支持,若你的執行文件放置在本目錄,并且本目錄并非正規的執行文件目錄(/bin,?/usr/bin等為正規),此時要執行指令就得要嚴格指定該執行檔。./代表本目錄的意思,所以./run.sh代表執行本目錄下,?名為run.sh的文件。

? ? ? 參考資料:《鳥哥的linux私房菜》

?

來源: http://www.cnblogs.com/peida/archive/2012/11/21/2780075.html

?

ubuntu cheat sheet 目錄結構


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 永胜县| 温州市| 石泉县| 新乡县| 海兴县| 潞西市| 永济市| 鞍山市| 太仓市| 景东| 屯昌县| 济宁市| 新建县| 宁晋县| 新津县| 泗洪县| 嘉义市| 潞西市| 池州市| 富源县| 蕲春县| 武清区| 长岛县| 腾冲县| 收藏| 新田县| 西昌市| 新巴尔虎右旗| 文化| 阜新市| 汤原县| 海宁市| 武平县| 东平县| 沭阳县| 阳谷县| 连城县| 邵武市| 三都| 天等县| 铜陵市|