第1周課程練習
1、描述計算機的組成及其功能。
1.1、計算機簡介
電子數字計算機(通常簡稱為計算機) 是按照一系列指令來對數據進行處理的機器。
根據Church–Turing理論, 任何一臺具有最基本功能的計算機,原則上都能夠執行任何其他計算機可以執行的任務;只要不考慮時間和存儲容量,性能和復雜度均相差甚遠的各種計算機,都能夠執行相同的運算任務。
通用計算機分為6類,區別在于體積、復雜度、功耗、性能指標、數據存儲容量、指令系統規模、價格
超級計算機(Supercomputer):用于科學計算 運算速度快,數據存儲容量大,結構復雜,價格昂貴;
大型機(Mainframe)
服務器(Server)
工作站(Workstation)
微型機(Microcomputer)
單片機(Single-Chip Computer):單片集成電路(Integrated Circuit,IC)做成 體積小,結構簡單,性能指標較低,價格便宜;
計算機由硬件(Hardware)和軟件(Software)組成,兩者缺一不可。
硬件是基礎,是軟件活動的舞臺,由物理元器件構成的有形實體
軟件是靈魂,使硬件最大限度發揮作用,是由計算機程序構成的無形的東西,需要存儲在有形的硬件中,可以實現更高層次的邏輯功能。
1.2、計算機的組成及功能
現代計算機依照馮·諾伊曼體系結構,由五大部件組成:運算器、控制器、存儲器、輸入設備、輸出設備
主要特點:使用二進制數和存儲程序
設計思想:存儲程序并按地址順序執行
程序及操作數據一同存儲
1.2.1、CPU
中央處理器(CPU):Central Processing Unit,控制器和運算器的合稱,早期由許多分立元件組成,現在通常被制作在單片集成電路上,稱為微處理器(Microprocessor)
(1)控制器:控制器是計算機的管理機構和指揮中心
按照預先確定的操作步驟,協調控制計算機各部件有條不紊地自動工作
控制器工作的實質就是解釋程序,逐條讀取、分析、執行指令,控制各部件動作
程序計數器(Program Counter),是一個特殊的寄存器,記錄著將要讀取的下一條指令在存儲器中的位置
(2)運算器:用于信息加工的部件,對數據進行算術運算和邏輯運算
算術邏輯單元(Arithmetic Logic Unit,ALU):具體完成算術與邏輯運算的單元,運算器的核心
寄存器:存放參與運算的操作數
累加器:特殊的寄存器,存放中間結果和最后結果
1.2.2、存儲器
存儲器的主要功能是存放程序和數據
程序和數據都用二進制數表示,統稱為信息
向存儲器存入或從存儲器取出信息,都稱為訪問存儲器
存儲器由一系列存儲單元組成,每個存儲單元的編號稱為地址,要按給定的地址來尋找所選擇的存儲單元
存儲容量 :存儲器中所有存儲單元的總數 KB(Kilobyte,千字節)、MB(Megabyte,兆字節)、GB(Gigabyte,千兆字節) 1KB=1024B,1MB=1024KB,1GB=1024MB
存儲器分類
按照在計算機中的作用,可分為主存儲器、寄存器、閃速存儲器、高速緩沖存儲器、輔助存儲器
1.2.3、輸入輸出設備
(1)輸入設備
將人們熟悉的信息形式,變換成計算機能接受并識別的二進制信息形式
理想的輸入設備應該是“會看”和“會聽”的
鍵盤、鼠標、掃描儀等,以及用于文字識別、圖像識別、語音識別的設備
(2)輸出設備
將計算機輸出的處理結果信息,轉換成人類或其他設備能夠接受和識別的信息形式
理想的輸出設備應該是“會寫”和“會講”的
激光打印機、繪圖儀、CRT/LCD顯示器等,以及輸出語言的設備(如語音合成產品)
(3)適配器
外圍設備通過適配器(Adapter)部件與主機相連接
作用相當于轉換器,保證外圍設備按照計算機系統特性所要求的形式發送或接收信息
使主機和外圍設備并行協調地工作
1.2.4、總線
計算機系統通過總線(Bus)將CPU、主存儲器及I/O設備連接起來
總線是構成計算機系統的骨架,是多個系統部件之間進行數據傳送的公共通路
按照信號類型,可分為:
數據總線:傳送數據,雙向,可輸入輸出
地址總線:傳送地址,單向,決定數據或命令傳送給誰
控制總線:傳送各種控制信號
2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
Linux發行版也被叫做 GNU/Linux 發行版,是基于Linux內核的類Unix操作系統。
Linux發行版通常包含了包括桌面環境、辦公包、媒體播放器、數據庫等應用軟件。
這些操作系統通常由Linux內核、以及來自GNU計劃的大量的函數庫,和基于X Window的圖形界面。有些發行版考慮到容量大小而沒有預裝 X Window,而使用更加輕量級的軟件,如:busybox, uclibc 或 dietlibc。現在有超過300個Linux發行版,大部分都正處于活躍的開發中,不斷地改進。
由于大多數軟件包是自由軟件和開源軟件,所以Linux發行版的形式多種多樣——從功能齊全的桌面系統以及服務器系統到小型系統 (通常在嵌入式設備,或者啟動軟盤)。除了一些定制軟件 (如安裝和配置工具),發行版通常只是將特定的應用軟件安裝在一堆函數庫和內核上,以滿足特定用戶的需求。
這些發行版可以分為商業發行版,比如Fedora (Red Hat),openSUSE (Novell),Ubuntu (Canonical公司),和 Mandriva Linux,它們由自由軟件社區提供支持,如Debian和Gentoo;也有發行版既不是商業發行版也不是社區發行版,其中最有名的是Slackware。
2.1、linux redhat發行版
Red Hat Linux是由Red Hat公司發布的一個Linux發行包。
Red Hat最早由Bob Young和Marc Ewing在1995年創建。而公司在最近才開始真正步入盈利時代,歸功于收費的Red Hat Enterprise Linux(RHEL,Red Hat的企業版)。而正統的Red Hat版本早已停止技術支持,最后一版是Red Hat 9.0。于是,目前Red Hat分為兩個系列:由Red Hat公司提供收費技術支持和更新的Red Hat Enterprise Linux,及由社區研發的免費的Fedora Core。
Red Hat Linux中的RPM軟件包格式可以說是Linux社區的一個事實標準,被廣泛使用于其他Linux發行包中。
2.1.1、RHEL
即Red Hat Enterprise Linux的縮寫,是Red Hat公司的Linux系統。每18個月發行一個新版本。
2.1.2、CentOS
它是來自于Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成,而且在RHEL的基礎上修正了不少已知的 Bug。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重復性的 Linux 環境。
2.1.3、Fedora Core
它是一套從Red Hat Linux發展出來的免費Linux系統。Fedora Core 的前身就是Red Hat Linux。Fedora是一個開放的、創新的、前瞻性的操作系統和平臺,基于Linux。它允許任何人自由地使用、修改和重發布,無論現在還是將來。它由一個強大的社群開發,這個社群的成員以自己的不懈努力,提供并維護自由、開放源碼的軟件和開放的標準。Fedora 項目由 Fedora 基金會管理和控制,得到了 Red Hat, Inc. 的支持。Fedora 是一個獨立的操作系統,是Linux的一個發行版,可運行的體系結構包括 x86(即i386-i686), x86_64 和 PowerPC。
2.2、Slackware Linux發行版
Slackware 走了一條與其他的發行版本不同的道路,它力圖成為“UNIX風格”的Linux發行版本。它的方針是只吸收穩定版本的應用程序,并且缺少其他linux版本中那些為發行版本定制的配置工具。
2.2.1、SUSE
SUSE是德國最著名的Linux發行版,SUSE Linux原是以Slackware Linux為基礎,并提供完整德文使用界面的產品。在全世界范圍中也享有較高的聲譽。SUSE自主研發的軟件包管理系統YaST也大受好評。SUSE于2003年年末被Novell收購。
在SUSE 操作系統下,可以非常方便地訪問Windows磁盤,這使得兩種平臺之間的切換,以及使用雙系統啟動變得更容易。SUSE的硬件檢測非常優秀,該版本在服務器和工作站上都用得很好。SUSE擁有界面友好的安裝過程,還有圖形管理工具,可方便地訪問Windows磁盤,對于終端用戶和管理員來說使用它同樣方便,這使它成為了一個強大的服務器平臺。
2.2.2、open SUSE
openSUSE 項目是由 Novell 發起的開源社區計劃。 旨在推進 Linux 的廣泛使用,提供了自由簡單的方法來獲得世界上最好用的 Linux 發行版之一openSUSE。openSUSE 項目為 Linux開發者和愛好者提供了開始使用 Linux 所需要的一切。該項目由SUSE等公司贊助,2011年Attachmate集團收購了Novell,并把Novell和SUSE做為兩個獨立的子公司運營。openSUSE 操作系統和相關的開源程序會被SUSE Linux Enterprise(比如 SLES 和 SLED)使用。
2.3、Debian Linux發行版
Debian以其堅守Unix和自由軟件的精神,以及其給予用戶的眾多選擇而聞名。現時Debian包括了超過37,500個軟件包并支持12個計算機系統結構。
Debian是一個大的系統組織框架,在這個框架下有多種不同操作系統核心的分支計劃,主要為采用Linux核心的Debian GNU/Linux系統,其他還有采用GNU Hurd核心的Debian GNU/Hurd系統、采用FreeBSD核心的Debian GNU/kFreeBSD系統,以及采用NetBSD核心的Debian GNU/NetBSD系統。甚至還有應用Debian的系統架構和工具,采用OpenSolaris核心構建而成的Nexenta OS系統。在這些Debian系統中,以采用Linux核心的Debian GNU/Linux最為著名。眾多的Linux發布版,例如Ubuntu、Knoppix和Linspire及Xandros等,都建基于Debian GNU/Linux。
2.3.1、Ubuntu
Ubuntu嚴格來說不能算一個獨立的發行版本,Ubuntu是基于Debian的unstable版本加強而來,可以這么說Ubuntu就是一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的Linux桌面系統。根據選擇的桌面系統不同,有多個版本可供選擇,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。
2.3.2、mint
Linux Mint是一份基于Ubuntu的發行版,其目標是提供一種更完整的即刻可用體驗,這包括提供瀏覽器插件、多媒體編解碼器、對DVD播放的支持、Java和其他組件。它與Ubuntu軟件倉庫兼容。Linux Mint 是一個為pc和X86電腦設計的操作系統。
因此,一個可以跑得動Windows的電腦也可以使用Linux Mint來代替Windows,或者兩個都跑。既有Windows又有Linux的系統就是傳說中的“雙系統”。同樣,MAC,BSD或者其他的Linux版本也可以和Linux Mint 共存。一臺裝有多系統的電腦在開機的時候會出現一個供你選擇操作系統的菜單。Linux Mint可以很好的在一個單系統的電腦上運行,但是它也可以自動檢測其他操作系統并與其互動,例如,如果你安裝Linux Mint在一個安裝了Windows版本的(xp,vista或者其他版本),它會自動檢測并建立雙啟動以供您在開機的時候選擇啟動哪個系統。并且你可以在Linux Mint下訪問Windows分區。Linux是更安全,更穩定,更有效并且日益易于操作的甚至可以和Windows相媲美的系統,它越來越讓人感到難以抉擇了。
2.4、其他linux版本
2.4.1、Gentoo
Gentoo是一個基于Linux的自由操作系統,它能為幾乎任何應用程序或需求自動地作出優化和定制。追求極限的配置、性能,以及頂尖的用戶和開發者社區,都是Gentoo體驗的標志特點。 Gentoo的哲學是自由和選擇。得益于一種稱為Portage的技術,Gentoo能成為理想的安全服務器、開發工作站、專業桌面、游戲系統、嵌入式解決方案或者別的東西——你想讓它成為什么,它就可以成為什么。
Gentoo的出名是因為其高度的自制定性:因為他是個基于原始碼的(source-based)發行版。盡管安裝時能選擇預先編譯好的軟件包,不過大部分使用Gentoo的用戶都選擇自己手動編譯。這也是為什么Gentoo適合比較有Linux使用經驗的老手使用的原因。不過要注意的是,由于編譯軟件需要消耗大量的時間,所以如果你所有的軟件都自己編譯,并安裝KDE桌面系統等比較大的軟件包,可能需要幾天時間才能編譯完。
2.4.2、ArchLinux
Arch Linux(或稱Arch)是一種以輕量簡潔為設計理念的Linux發行版。其開發團隊秉承簡潔、優雅、正確和代碼最小化的設計宗旨。Arch Linux 項目受 CRUX 啟發,由 Judd Vinet 于2002年啟動。
Arch Linux是起源于加拿大的一份致力于使用簡單、系統輕量、軟件更新速度快的GNU/Linux發行版。創始人Judd Vinet出于對Debian以及Red Hat的包管理器不滿,以及受CRUX影響而創立。最初針對i686,但是如今對x86_64也支持良好,而且還派生出了針對ARM平臺的Arch Linux ARM以及針對HURD內核的Arch Hurd(發展緩慢)。
2.4.3、FreeBSD
首先要強調的是:FreeBSD不是個Linux系統! FreeBSD的用戶相當多,其許多特性都和Linux相類似。事實上,Linux和BSD(Berkeley Software Distribution)均是UNIX的演化分支。并且,Linux中相當多的特性和功能(比如用于設置DNS的Bind軟件)都是取自于BSD的。而FreeBSD便是BSD家族中最出名,用戶數量最多的一個發行版。MEZOC之前所采用的便是FreeBSD系統。
FreeBSD除了作為服務器系統外,也適合桌面用戶。不過,考慮到軟件方面的兼容性,一般用戶選擇FreeBSD作為桌面系統不是非常明智。作為服務器而言,FreeBSD是相當優秀的。原來有人說過,同樣的服務器硬件設置,運行同樣的一個vBulletin論壇,FreeBSD所用的資源要比Linux少。這也是為什么許多空間商極力推崇FreeBSD的原因。
3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
1)一切皆文件;把幾乎所有資源,包括硬件設備都組織為文件格式;
2)由眾多單一目的小程序組成;一個程序只實現一個功能,組合小程序完成復雜任務;
3)盡量避免跟用戶交互;用腳本編程,以自動完成某些功能;
4)使用純文本文件保存配置信息;使用的文本編程器即能完成系統配置工作;
4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
4.1.1、ifconfig
查看和配置系統的網絡信息
格式
ifconfig [interface]
ifconfig interface [aftype] options | address …
常用用法:
[ethX]:顯示某個網卡信息
-a:顯示所有的網卡信息
ifconfig ethx IP/MASK :配置網卡地址(子網掩碼必須指定)
ifconfig ethx [up|down]:開啟或者禁用網卡
配置Ip地址是立即生效,但重啟網絡服務或重啟主機,都失效
4.1.2、echo
輸出信息,內部命令
-n: 禁止自動添加換行符號;
-e: 允許使用轉義符;
\n: 換行
\t: 制表符
echo "$VAR_NAME": 變量會替換,雙引號表弱引用
echo '$VAR_NAME': 變量不會替換,強引用
4.1.3、tty
顯示終端連接到標準輸入的文件名;外部命令
格式:
tty [OPTION]…
4.1.4、startx
啟動圖形終端界面
Startx &=ctrl+alt+F7
4.1.5、export
設置或顯示環境變量。(比如我們要用一個命令,但這個命令的執行文件不在當前目錄,這樣我們每次用的時候必須指定執行文件的目錄,在代碼中先執行export,這個相當于告訴程序,執行時,需要的文件這些目錄里)。內部命令
選項:
-f 代表[變量名稱]中為函數名稱。
-n 刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。
-p 列出所有的shell賦予程序的環境變量。
在shell中執行程序時,shell會提供一組環境變量。 export可新增,修改或刪除環境變量,供后續執行的程序使用。export的效力僅及于該此登陸操作。
4.1.6、pwd
顯示當前工作目錄,內部命令
4.1.7、history
顯示命令歷史列表,內部命令
登錄shell時,會讀取命令歷史文件中記錄下的命令:~/.bash_history;登錄進shell后新執行的命令只會記錄在緩存中;這些命令會用戶退出時“追加”至命令歷史文件中;
常用選項:
-a: 追加本次會話新執行的命令歷史列表至歷史文件中;
-d: 刪除歷史中指定的命令;
-c: 清空命令歷史;
4.1.8、shutdown
關機命令,以一種安全的方式關閉系統。外部命令
使用格式:
shutdown [OPTION]… TIME [MESSAGE]
常用選項:
-r now:立即重啟
-t sec:幾秒之后
-h now:立即關機
-c:取消關機(可以設置定時關機,使用此選項取消)
可選參數:TIME
now: 立刻
+m: 相對時間表示法,從命令提交開始多久之后;例如 +3;
hh:mm: 絕對時間表示,指明具體時間;
4.1.9、poweroff
關機命令,在關閉計算機操作系統之后,最后還會發送ACPI指令,通知電源,最后切斷電源供應。外部命令
使用格式:
poweroff [OPTION]…
4.1.10、reboot
重啟命令。外部命令
使用格式:
reboot [OPTION]…
4.1.11、hwclock
查詢和設置系統硬件時間。外部命令
在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通??稍?span style="font-family: Arial, sans-serif">BIOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啟動時,系統時鐘會去讀取硬件時鐘的設定,之后系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。
常用選項:
-s, –hctosys:將硬件時鐘同步到系統時鐘
-w, –systohc:將系統時鐘同步到硬件時鐘
4.1.12、date
顯示和設置系統日期和時間
使用格式:
date [OPTION]… [+FORMAT]
FORMAT: 格式符號
%D:顯示日期 (mm/dd/yy)
%F顯示日期 (yy-mm-dd)
%T:顯示時間
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
MM: 月份
DD:幾號
hh: 小時
mm: 分鐘
YY: 兩位年份
CCYY: 四位年份
.ss: 秒鐘
設置系統時間
5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
Linux命令分為內部命令和外部命令,內部命令是shell自帶的基本管理工具;外部命令是由外部可執行程序文件命令,位于Linux文件系統一些目錄下。
格式:COMMAND [OPTIONS…] [ARGUMENTS…]
使用type命令可以查看命令類型:
使用whereis查看命令的二進制文件,源碼文件,手冊頁
使用which命令顯示命令對應的程序文件路徑
5.1、內部命令幫助:
# help COMMAND
5.2、外部命令幫助
5.2.1、help
# COMMAND –help
5.2.2、信息頁info
# info COMMAND
5.2.3、程序自身的幫助文檔
例如:/usr/share/doc/file-5.04
README
INSTALL
ChangeLog
5.2.4、程序官方文檔
官方站點:Documentation
5.2.5、發行版的官方文檔
5.2.6、Google和slideshare
5.2.7、man手冊
man命令是Linux下的幫助指令,通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。
使用格式:man COMMAND
手冊頁存放在/usr/share/man
man有 8個類型分類
有些關鍵在不止一個章節中存在幫助手冊;要查看指定章節中的手冊:man # COMMAND
man命令的配置文件:/etc/man.config
可以為命令指明新的手冊文件搜索位置路徑:MANPATH /PATH/TO/SOMEWHERE
到指定位置下搜索COMMAND命令的手冊頁并顯示之:# man -M /PATH/TO/SOMEWHERE COMMAND
幫助手冊中的段落說明:
關于SYNOPSIS的一些說明:
[]:里邊的內容可選
<>: 必選內容
a|b:二選一
…: 同一內容可出現多次
man命令的操作方法:
6、請羅列Linux發行版的基礎目錄名稱命名法則及功用規定
6.1、根文件系統(rootfs)
Windows分區后,每一個分區是一個獨立的文件系統,彼此沒有關系。Linux中所有的文件都必須從根開始。文件系統是對一個存儲設備上的數據和元數據進行組織的機制。這種機制有利于用戶和操作系統的交互。
Linux啟動時,第一個必須掛載的是根文件系統;若系統不能從指定設備上掛載根文件系統,則系統會出錯而退出啟動。成功之后可以自動或手動掛載其他的文件系統。因此,一個系統中可以同時存在不同的文件系統。
6.2、LSB組織的 FHS:(FileSystem Heirache Standard)文件系統層級標準
/boot:這個目錄主要在放置開機會使用到的文件,包括Linux核心文件以及開機選單與開機所需配置文件等等. Linux kernel常用的檔名為:vmlinuz,如果使用的是grub這個開機管理程序, 則還會存在/boot/grub/這個目錄。引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄。
/bin:系統有很多放置執行文件的目錄,但/bin比較特殊,因為/bin放置的是在單人維護模式下還能夠被操作的指令. 在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。不能關聯至獨立分區,OS啟動即會用到的程序;
/sbin:Linux有非常多指令是用來設定系統環境的,這些指令只有root才能夠利用來『設定』系統,其他用戶最多只能用來『查詢』而已.。放在/sbin底下的為開機過程中所需要的,里面包括了開機、修復、還原系統所需要的指令。至于某些服務器軟件程序,一般則放置到/usr/sbin/當中。至于本機自行安裝的軟件所產生的系統執行文件(system binary), 則放置到/usr/local/sbin/當中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等;不能關聯至獨立分區,OS啟動即會用到的程序;
/lib:系統的函式庫非常的多,而/lib放置的則是在開機時會用到的函式庫, 以及在/bin或/sbin底下的指令會呼叫的函式庫而已.。函式庫可以理解為『外掛』,某些指令必須要有這些『外掛』才能夠順利完成程序的執行之意。尤其重要的是/lib/modules/這個目錄, 因為該目錄會放置核心相關的模塊(驅動程序)。
/lib64:專用于x86_64系統上的輔助共享庫文件存放位置;
/etc:配置文件目錄(純文本文件);系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、 各種服務的啟始檔等等。一般來說,這個目錄下的各文件屬性是可以讓一般使用者查閱的,,但是只有root有權力修改。FHS建議不要放置可執行文件(binary)在這個目錄中。
/home:這是系統默認的用戶家目錄(home directory).在你新增一個一般使用者賬號時, 默認的用戶家目錄都會規范到這里來.比較重要的是,家目錄有兩種代號喔:
~:代表目前這個用戶的家目錄
~username:則代表 username的家目錄
/root:管理員的家目錄;
/media:便攜式移動設備掛載點,包括軟盤、光盤、DVD等等裝置都暫時掛載于此。常見的檔名有:/media/floppy,,/media/cdrom,/media/usb等等。
/mnt:臨時文件系統掛載點。暫時掛載某些額外的裝置,一般建議妳可以放置到這個目錄中。這個目錄的用途與/media相同,只是有了/media之后,這個目錄就用來暫時掛載用了。
/dev:在Linux系統上,任何裝置與接口設備都是以文件的型態存在于這個目錄當中的.。只要透過存取這個目錄底下的某個文件,就等于存取某個裝置。比較重要的文件有/dev/null、/dev/zero、/dev/tty、/dev/lp*、/dev/hd*、 /dev/sd*等等。
b: block device,隨機訪問
c: character device,線性訪問
/opt:第三方應用程序的安裝位置;例如KDE這個桌面管理系統是一個獨立的系統,不過他可以安裝到Linux系統中,因此KDE的軟件就建議放置到此目錄下了。另外,如果你想要自行安裝額外的軟件(非原本的distribution提供的),那么也應將軟件安裝到這里來。不過,以前的Linux系統中,還是習慣放置在/usr/local目錄下。
/srv:系統上運行的服務用到的數據。是一些網絡服務啟動之后,這些服務所需要取用的數據目錄。常見的服務例如WWW、FTP等等。舉例來說,WWW服務器需要的網頁數據就可以放置在/srv/www/里面。
/tmp:這是讓一般使用者或者是正在執行的程序暫時放置文件的地方。這個目錄是任何人都能夠存取的,所以需要定期的清理一下。當然,重要數據不可放置在此目錄。因為FHS甚至建議在開機時,應該要將/tmp下的數據都刪除。
/proc: 用于輸出內核與進程信息相關的虛擬文件系統;這個目錄本身是一個虛擬文件系統(virtual filesystem),他放置的數據都是在內存當中,,例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等。因為這個目錄下的數據都是在內存當中,所以本身不占任何硬盤空間!比較重要的文件例如:/proc/cpuinfo、/proc/dma,、/proc/interrupts、 /proc/ioports、/proc/net/* 等等。
/sys:用于輸出當前系統上硬件設備相關信息的虛擬文件系統;這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要也是記錄與核心相關的信息。包括目前已加載的核心模塊與核心偵測到的硬件裝置信息等等。這個目錄同樣不占硬盤容量。
/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置;
/usr: universal shared, read-only data:FHS建議所有軟件開發者,應該將他們的數據合理的分別放置到這個目錄下的次目錄,而不要自行建立該軟件自己獨立的目錄。所有系統默認的軟件(distribution發布者提供的軟件)都會放置到/usr底下,因此這個目錄有點類似Windows 系統的(C:\Windows\ + C:\Program files\)這兩個目錄的綜合體,系統剛安裝完畢時,這個目錄會占用最多的硬盤容量。
bin: 保證系統擁有完整功能而提供的應用程序;絕大部分的用戶可使用指令都放在這里!請注意到他與/bin的不同之處(是否與開機過程有關)
sbin:系統管理員
lib:包含各應用軟件的函式庫、目標文件(object file),以及不被一般使用者慣用的執行檔或腳本(script).。某些軟件會提供一些特殊的指令來進行服務器的設定,這些指令也不會經常被系統管理員操作,,那就會被擺放到這個目錄下。
lib64:X86_64的Linux系統存放目錄
include:c/c++等程序語言的頭文件(header)與包含頭文件(include)放置處,當以tarball方式 (*.tar.gz 的方式安裝軟件)安裝某些數據時,會使用到里頭的許多include頭文件。
share:結構化獨立的數據,放置共享文件的地方,在這個目錄下放置的數據幾乎是不分硬件架構均可讀取的數據,在此目錄下常見的還有這些次目錄:
usr/share/man:聯機幫助文檔
/usr/share/doc:軟件雜項的文件說明
/usr/share/zoneinfo:與時區有關的時區文件;
local:第三方應用程序的安裝位置;系統管理員在本機自行安裝自己下載的軟件(非distribution默認提供者),建議安裝到此目錄,,這樣會比較便于管理。舉例來說, distribution提供的軟件較舊,想安裝較新的軟件但又不想移除舊版,,此時可以將新版軟件安裝于/usr/local/目錄下,與原先的舊版軟件分別, /usr/local目錄下也是具有bin, etc, include, lib…的次目錄。
/var: variable data files:var目錄主要針對常態性變動的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運作所產生的文件,,包括程序文件(lock file, run file),或者例如MySQL數據庫的文件等等.。所以/var在系統運作后才會漸漸占用硬盤容量的目錄。
cache: 應用程序本身運作過程中會產生的一些暫存檔;
lib: 應用程序狀態信息數據;程序本身執行的過程中,需要使用到的數據文件放置的目錄。在此目錄下各自的軟件應該要有各自的目錄.。舉例來說,MySQL的數據庫放置到/var/lib/mysql/;rpm的數據庫則放到/var/lib/rpm去。
local:專用于為/usr/local下的應用程序存儲可變數據;
lock: 鎖文件。某些裝置或者是文件資源一次只能被一個應用程序所使用,如果同時有兩個程序使用該裝置時,,就可能產生一些錯誤的狀況,因此就得要將該裝置上鎖(lock),以確保該裝置只會給單一軟件所使用.。舉例來說,刻錄機正在刻錄一塊光盤,不可能有兩個人同時在使用一個刻錄機燒片。如果兩個人同時刻錄,那片子寫入的是誰的數據?所以當第一個人在刻錄時該刻錄機就會被上鎖,第二個人就得要該裝置被解除鎖定(就是前一個人用完了)才能夠繼續使用。
log: 日志目錄及文件;里面比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登入者的信息)等。
opt: 專用于為/opt下的應用程序存儲可變數據;
run: 運行中的進程相關的數據;某些程序或者是服務啟動后,會將他們的PID放置在這個目錄下
spool: 應用程序數據池:這個目錄通常放置一些隊列數據,所謂的“隊列”就是排隊等待其他程序使用的數據,這些數據被使用后通常都會被刪除。舉例來說,系統收到新信會放置到/var/spool/mail/中,,但使用者收下該信件后該封信原則上就會被刪除。信件如果暫時寄不出去會被放到/var/spool/mqueue/中,,等到被送出后就被刪除。如果是工作排程數據(crontab),就會被放置到/var/spool/cron/目錄中。
tmp: 保存系統兩次重啟之間產生的臨時數據;
/lost+found:這個目錄是使用標準的ext文件系統格式才會產生的一個目錄,目的在于當文件系統發生錯誤時,,將一些遺失的片段放置到這個目錄下。這個目錄通常會在分割槽的最頂層存在,例如加裝一個硬盤于/disk中,那在這個系統下就會自動產生一個這樣的目錄/disk/lost+found。
原創文章,作者:N21_我愛羅,如若轉載,請注明出處:http://www.www58058.com/19680