計算機的組成及其功能
計算機的組成
簡單來說,計算機應(yīng)由兩部分組成:
第一部分:硬件
馮諾依曼結(jié)構(gòu)體系
當前計算機主要是基于馮諾依曼體系結(jié)構(gòu)設(shè)計的,在該體系中,計算機硬件由5個部件組成。分別是:運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備。而現(xiàn)今運算器和控制器一般集成在一起,叫中央處理器(Central Processing Unit, CPU)計算機最核心的部件,相當于人類的大腦。
中央處理器(CPU)
運算器:主要負責程序運算與邏輯判斷
-
控制器:則主要在協(xié)調(diào)各周邊元件與各單元間的工作
在CPU中,還包含了通用寄存器組,是中央處理器內(nèi)的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和地址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數(shù)器(PC)。在中央處理器的算術(shù)及邏輯部件中,存器有累加器(ACC)。
存儲器(memory)
存儲程序和數(shù)據(jù),并能在計算機運行過程中高速、自動地完成從程序或數(shù)據(jù)的存取,也就是俗稱的內(nèi)存RAM(Random Access Memory)輸入設(shè)備(Input):外部設(shè)備之一。作用是將程序、原始數(shù)據(jù)、文字、字符、控制命令或現(xiàn)場采集的數(shù)據(jù)輸入到計算機。常見的輸入設(shè)備有:鍵盤、鼠標、磁帶機、磁盤機、光盤機等
輸出設(shè)備(Output):外部設(shè)備之一。作用是把計算機的中間結(jié)果或最后結(jié)果、機內(nèi)的各種數(shù)據(jù)及文字等信息輸出來。常見的輸出設(shè)備有:CRT、打印機、繪圖儀等
第二部分:軟件
- 匯編語言(assembly language):一種用于cpu的低級語言。它使用助記符代替二進制語言,方便人類的閱讀及操作。但一種匯編語言只能與相對應(yīng)的計算機系統(tǒng)結(jié)構(gòu)對應(yīng),無法在不同平臺移植
匯編語言是最接近機器語言的低級語言,相當于用人類看得懂的符號來代替0和1,匯編通過指令集來下達命令控制CPU,并且它操作的對象并不是具體的數(shù)據(jù),而是各種寄存器和內(nèi)存;不同類型的CPU 有著不同的機器指令系統(tǒng),所以,匯編語言程序與機器有著密切的關(guān)系。除了同系列、不同型號CPU 之間的匯編語言程序有一定程度的可移植性之外,其它不同類型(如:小型機和微機等)CPU 之間的匯編語言程序是無法移植的,也就是說,匯編語言程序的通用性和可移植性要比高級語言程序低。
- 系統(tǒng)軟件(system software):用來運行或控制硬件所開發(fā)的計算機軟件,如操作系統(tǒng)、編譯器、數(shù)據(jù)庫等等
常見的軟件
- 操作系統(tǒng)(Operating system):控制與管理硬件及軟件資源,并提供用戶操作接口,完成人機交互的軟件,常見的有Unix、GNU/Linux、 MAC OS X、Microsoft Windows等
- 編譯器(compiler):將使用匯編語言編寫的代碼,轉(zhuǎn)換成計算機可識別的機器語言,常見的有GCC
- 解釋器(interpreter):將高級編程語言一行一行解釋運行。它的好處是可以消除編譯整個程序的負擔,缺點則是運行速度比較緩慢,且使用解釋器的代碼在運行過程中,不可脫離解釋器。常見的使用解釋器的語言包括Perl、Python、Ruby等
- 連接器(linker):將由匯編器或編譯器產(chǎn)生的目標文件和外部程序庫鏈接為一個可執(zhí)行文件
- 加載器(loader):負責將程序加載到內(nèi)存中,并配置內(nèi)存與相關(guān)參數(shù),使之能夠運行
- 應(yīng)用軟件(application software):為了某種特定用途而被開發(fā)的軟件。它可以是一個特定的程序,也可以是一個由眾多獨立程序組成的龐大的軟件系統(tǒng)
什么是Linux
在Linux誕生之前,一直是UNIX的天下,只不過UNIX在1979年之后就不能免費獲得,要想使用就需要購買,在當時,這不是一個小數(shù)目。
后來Richard Mathew Stallman在1984年發(fā)起GNU計劃,該計劃意在構(gòu)建一個完全自由的操作系統(tǒng),所謂完全自由,就要要求加入GNU計劃的所有軟件必須自由使用,自由更改,自由發(fā)布,也需要把更改后的代碼發(fā)布。并且制定了明文規(guī)定許可協(xié)議:GPL協(xié)議
GNU計劃發(fā)起后,在這期間誕生了很多有名的軟件,如(VI,emacs,gcc)但GUN上的軟件都是運行在UNIX系統(tǒng)上,并沒有“自由的Unix核心”存在。直到1991年,芬蘭赫爾辛基大學(xué)的一個學(xué)生:Linus Benedict Torvalds 開發(fā)了一個類unix內(nèi)核,一經(jīng)發(fā)布便得到廣大愛好者的支持,這個內(nèi)核就是linux,1994年,linux加入GNU計劃并采用GPL協(xié)議發(fā)布,自此GNU/LINUX真正實現(xiàn)了構(gòu)建一套完全自由的操作系統(tǒng)的設(shè)想。
Linux發(fā)行版(Linux distribution)
Linux發(fā)行版是一種為一般用戶預(yù)先集成好的Linux操作系統(tǒng)及各種應(yīng)用軟件。一般不需要用戶重新編譯,在直接安裝之后,只需要作出小幅度的更改設(shè)置即可。Linux發(fā)行版通常包含了桌面環(huán)境、辦公包、媒體播放器、數(shù)據(jù)庫等應(yīng)用軟件。這些操作系統(tǒng)通常使用Linux、以及來自GNU計劃的軟件、和基于X Window的圖形界面組成。
Linux發(fā)行版通常分為商業(yè)發(fā)行版和社區(qū)發(fā)行版。也有少部分既不屬于發(fā)行版又不屬于社區(qū)發(fā)行版,其中最有名的是Slackware.
- 著名的Linux發(fā)行版
按照程序包管理器的不同,通常Linux的發(fā)行版也被分成了不同的派系。
Redhat系
名稱 | 基于 | 特點 |
---|---|---|
Red Hat Enterprise | RPM管理包 | 紅帽的商業(yè)版本 提供10年服務(wù)支持 |
CentOS | RedHat | 根據(jù)RHEL代碼編譯的社區(qū)版 文檔充足 |
Fedora | RedHat | 紅帽官方的社區(qū)版 RH公司新技術(shù)測試平臺 |
Slackware系
名稱 | 基于 | 特點 |
---|---|---|
Slackware | SLS | UNIX風格的Linux發(fā)行版 KISS(簡潔)的設(shè)計理念 |
SUSE | Slackware | 界面華麗 照顧歐洲人的使用習慣 |
opensuse | SUSE | suse的社區(qū)版 |
Debian系
名稱 | 基于 | 特點 |
---|---|---|
Debian | Dpkg管理包 | 一直為社區(qū)版 限制較少 功能較多 要求技術(shù)較高 |
Adamantix | Debian | 關(guān)注安全 |
Knoppix | Debian | 對硬件支持極佳 對中日韓環(huán)境不夠友好 |
Gnoppix | Knoppix | Knoppix的GNOME版 |
Ubuntu | Debian | 界面華麗 與Debian、GNOME開源社區(qū)關(guān)系緊密 有資金支持 |
Linux Mint | Ubuntu | Ubuntu的衍生版 開箱即用 |
Ubuntu Kylin | Ubuntu | 中文定制版 |
BackTrack | Ubuntu | 專業(yè)安全檢測操作系統(tǒng) 已不再維護 |
Kali Linux | BackTrack | BackTrack替代者 安全滲透軟件 |
其他
名稱 | 基于 | 特點 |
---|---|---|
Gentoo | Portage管理包 | 大量程序開放源代碼 對硬件要求較高 |
ArchLinux | pacman管理包 | 軟件更新速度快 包管理簡易高效 |
LFS(Linux From scratch) | 高端玩法 DIY系統(tǒng) |
- 發(fā)行版之間的不同
在Linux發(fā)行版中,通常均使用軟件包管理系統(tǒng),不同的操作系統(tǒng),軟件包管理系統(tǒng)也不盡相同。比較常見的軟件包管理系統(tǒng)有以下幾種
Debian:deb, apt-get
RedHat:rpm, yum --> dnf
S.u.S.E: rpm, zypper
ArchLinux:port
LFS: Linux From Scratch
Linux的哲學(xué)思想
- 一切皆文件:
把幾乎所有資源統(tǒng)統(tǒng)抽象為文件形式;包括硬件設(shè)備,甚至通信接口、進程等;
如;
物理終端:/dev/console
虛擬終端:/dev/tty#
串行終端:/dev/ttyS#
偽終端:/dev/pts/# - 由眾多功能單一的程序組成;一個程序只做一件事,并且做好;
通過組合眾多小程序完成復(fù)雜任務(wù); - 盡量避免跟用戶交互;
目標:易于以編程的方式實現(xiàn)自動化任務(wù); - 使用文本文件保存配置信息;
說明Linux系統(tǒng)上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應(yīng)的示例來闡述
Linux命令格式與基礎(chǔ)命令
什么是命令
命令其實就是一個可執(zhí)行文件。程序本身只是一個靜態(tài)文件,只有通過這個請求,才會轉(zhuǎn)化為有生命周期的動態(tài)進程。命令本身是一個可執(zhí)行的二進制格式程序文件(Linux哲學(xué)思想:一切皆文件),請求一個命令相當于在環(huán)境變量$PATH中的路徑尋找與之同名的程序,而PATH變量一般包含的路徑有:
普通命令:/bin
,/usr/bin
,/usr/local/bin
管理命令:/sbin
,/usr/sbin
,/usr/local/sbin
命令往往會調(diào)用到許多庫文件,這些庫可能許多程序都會遇到,我們形象的稱之為共享庫。這些共享庫也是二進制文件,但是由于其沒有程序執(zhí)行入口,所以不能獨立執(zhí)行。只能被其他有執(zhí)行入口的程序調(diào)用時才能執(zhí)行,一般這些庫都存放在這些目錄下:
32bits的庫:/lib
,/usr/lib
,/usr/local/lib
64bits的庫:/lib64
,/usr/lib64
,/usr/local/lib64
命令的分類與格式
命令的分類:
由shell程序自帶的命令:內(nèi)置命令(builtin)shell程序是一種獨特的程序(用戶接口進程),它的作用是負責解析用戶提供的命令。
獨立的可執(zhí)行程序文件:文件名即命令名:外部命令
查看命令類型:type COMMAND
???
注意:并非所有的命令都有一個在某目錄與之相對應(yīng)的可執(zhí)行程序文件,shell程序已經(jīng)內(nèi)嵌了許多命令。命令的格式:
命令必須遵循特定格式規(guī)范:比如說win的exe,msi,對于linux而言則是ELF命令使用格式
COMMAND [OPTIONS] ARGUMENTS??
COMMAND: 發(fā)起一個命令 ????
OPTIONS: ???????
指定命令的運行特性 ???????
一般選項有兩種表現(xiàn)形式: ??????
短選項:-C ???????
例如-l -d ??????
注意:
有些命令的選項沒有- ??????
如果同一命令使用多個短選項,多數(shù)可以合并,比如說 -l -d就可以寫作-ld
短選項一般使用“ ”(空格)來分割 ?????
長選項:–word
??????
例如–help –human-readable
???????
注意:?長選項不能合并
長選項一般用“=”來表示 ???????
ARGUMENTS:
命令的作用對象,以及命令對什么生效
注意:有些命令可以同時帶多個參數(shù),多個參數(shù)之間以空白字符分割 下面舉例說明一下命令用法-
ifconfig
?ifconfig(interface configuration)是在Unix-like系統(tǒng)中用于查看以及配置網(wǎng)絡(luò)接口設(shè)備的系統(tǒng)管理工具。其作用等同于ip addr或ip link
作用:作用于類Unix系統(tǒng)中,用于配置、控制及查詢TCP/IP網(wǎng)絡(luò)接口的系統(tǒng)管理工具語法:ifconfig [interface] ?????
ifconfig interface options | address …
常用方法:
ifconfig:查看當前系統(tǒng)中存活的網(wǎng)絡(luò)接口設(shè)備信息
ifconfig eth#:查看指定的網(wǎng)絡(luò)接口設(shè)備的信息
ifconfig -a:查看所有網(wǎng)絡(luò)接口設(shè)備(通過此命令,非運行狀態(tài)的網(wǎng)卡也可顯示)
ifconfig eth# up:啟動指定網(wǎng)絡(luò)接口設(shè)備
ifconfig eth# down:關(guān)閉指定網(wǎng)絡(luò)接口設(shè)備
ifconfig eth# add 33ffe:3240:800:1005::2/64:為指定網(wǎng)絡(luò)接口設(shè)備添加IPv6地址 ?????????
ifconfig eth# del 33ffe:3240:800:1005::2/64:為指定網(wǎng)絡(luò)接口設(shè)備刪除IPv6地址 ?????????
ifconfig eth# hw ether 00:16:3E:10:60:B5 : 修改指定網(wǎng)絡(luò)接口設(shè)備MAC地址
ifconfig eth# xxx.xxx.xxx.xx:給指定網(wǎng)絡(luò)接口設(shè)備配置指定ip地址 ?
ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 :給指定網(wǎng)絡(luò)接口設(shè)備配置指定ip地址及子網(wǎng)掩碼 ????????????????
ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 broadcast 192.168.120.255:給指定網(wǎng)絡(luò)接口設(shè)備配置指定ip地址及子網(wǎng)掩碼、廣播地址
ifconfig eth# mtu 1500:給指定網(wǎng)絡(luò)接口設(shè)備設(shè)置最大傳輸單元 ????????
備注:使用此命令對于網(wǎng)絡(luò)接口的所有操作,在系統(tǒng)重啟后均會失效。若需永久生效,需要通過修改配置文件的方式,配置文件的路徑一般為
[root@test ~]# cd /etc/sysconfig/network-scripts/
[root@test network-scripts]# ls
-
echo
echo用來將字符串輸出到終端上。它通常在shell腳本中使用,以將狀態(tài)信息輸出到屏幕或文件中?????????
作用:顯示文字語法:echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION
常用方法: ?
-n 不進行換行
-e 讓轉(zhuǎn)義符生效
轉(zhuǎn)義符如下 ?
\a 發(fā)出警告聲 ????
\b 刪除前一個字符 ??
\c 最后不加上換行符號 ??
\f 換行但光標仍舊停留在本身的位置
\n 換行 ????
\r 光標移至行首,但不換行 ?
\t 制表符 ???
\v 等同于\f ?
\ 插入\字符
–help 顯示幫助 ?
–version 顯示版本信息 ???
備注:STRING可以使用引號,單引號雙引號均可用
單引號:強引用,變量不執(zhí)行替換 ?
[root@iZ25test ~]# echo ‘$SHELL’
???
$SHELL
???????
雙引號:弱引用,變量引用會被替換
[root@iZ25test ~]# echo “$SHELL”
???
/bin/bash
-
tty
作用:查看當前的終端設(shè)備語法:?tty [OPTION]… ?
常用方法:[root@test ~]# tty
`/dev/pts/0`
`startx`
作用:用來啟動X Window,實際上是啟動X Window程序
常用方法:
startx:在服務(wù)器上啟動x會話 ????
startx -w:在服務(wù)器上強制啟動x會話
-
export??????
作用:用于將shell變量輸出為環(huán)境變量,或?qū)hell函數(shù)輸出為環(huán)境變量語法:BASH BUILTIN COMMANDS ????
常用方法: ????
-f:代表【變量名稱】中為函數(shù)名稱
-n:刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續(xù)指令的執(zhí)行環(huán)境中】
-p:列出所有shell賦予程序的環(huán)境變量
-
pwd????????
顯示當前工作目錄print name of current/working directory
作用:以絕對路徑的方式顯示用戶當前工作目錄。語法: pwd [OPTION]..
常用方法: ???????
–help:顯示幫助信息
–version:顯示版本信息
pwd命令用于顯示當前工作目錄,一般而言,涉及pwd,就會涉及到三個環(huán)境變量 ??????????
PATH:執(zhí)行文件路徑的變量 ????
OLDPWD:表示前一次的工作目錄 ??
PWD:表示當前的工作目錄
-
history??
作用: ??????????
用于顯示指定數(shù)目的指令命令 ??
讀取歷史命令文件中的目錄到歷史命令緩沖區(qū) ??
將歷史命令緩沖區(qū)寫入命令文件語法:BASH BUILTIN COMMANDS ???
常用方法: ???????
-c:清空當前歷史命令 ????
-a:將歷史命令緩沖區(qū)中命令寫入歷史命令文件中 ???
-r:將歷史命令文件中的命令讀入當前歷史命令緩沖區(qū) ??
-w:將當前歷史命令緩沖區(qū)命令寫入歷史命令文件中 ??????
n:打印最近n條歷史命令(n為數(shù)字)
-
shutdown
作用: ???
系統(tǒng)關(guān)機 ???
關(guān)閉所有程序 ?
按照用戶需要重啟或關(guān)機語法:shutdown [OPTION…] [TIME] [WALL…] ???
常用方法: ???????
-c:取消關(guān)機 ???????
-f:重新啟動時不執(zhí)行fsck ???????
-F:重新啟動時執(zhí)行fsck ??
-h:將系統(tǒng)關(guān)機
-k:送出信息給所有用戶,但不會實際關(guān)機 ??
-n:不調(diào)用init程序進行關(guān)機,而由shutdown自己控制 ?
-r:重啟系統(tǒng) ?????????
TIME:設(shè)置多久時間后執(zhí)行shutdown指令 ??
WALL:要傳送給所有登入用戶的信息
-
** poweroff**
作用:用來關(guān)閉計算機操作系統(tǒng)并且切斷系統(tǒng)電源語法: poweroff [OPTION]…
常用方法:
-n:關(guān)閉操作系統(tǒng)時不執(zhí)行sync操作
-w:不真正關(guān)閉操作系統(tǒng) ??????
-d:關(guān)閉操作系統(tǒng)時,不將操作寫入日志文件 ???
-f:強制關(guān)閉系統(tǒng) ?????
-i:關(guān)閉系統(tǒng)之前關(guān)閉所有的網(wǎng)絡(luò)接口
-h:關(guān)閉操作系統(tǒng)之前將系統(tǒng)中所有的操作設(shè)置為備用模式
-
reboot
作用:用來重新啟動正在進行的Linux操作系統(tǒng)語法:reboot [OPTION]…
常用方法: ???
-d:重新開機時不把數(shù)據(jù)寫入數(shù)據(jù)文件/var/tmp/wtmp ???
-f:強制重新開機,不調(diào)用shutdown指令的功能 ???
-i:在重開機之前,先關(guān)閉所有網(wǎng)絡(luò)界面 ??????
-n:重開機之前不檢查是否有未結(jié)束的程序 ???
-w:僅做測試,并不真正將系統(tǒng)重新開機,只會把重開機的數(shù)據(jù)寫入/var/log目錄下的wtmp記錄文件
-
hwclock
作用:是一個硬件時鐘訪問工具,它可以顯示當前時間、設(shè)置硬件時鐘的時間和設(shè)置硬件時鐘為系統(tǒng)時間,也可以設(shè)置系統(tǒng)時間為硬件時鐘的時間語法: hwclock [functions] [options]
常用方法: ??
–adjust:校正目前的硬件時鐘
–debug:顯示hwclock執(zhí)行時詳細的信息 ??
–hctosys:將系統(tǒng)時鐘調(diào)整與當前的硬件時鐘一致
–set –date=<日期與時間>:設(shè)定硬件時鐘 ?
–show:顯示硬件時鐘的時間與日期 ????
–systohc:將硬件始終調(diào)整為與當前的系統(tǒng)時鐘一致 ???
–test:測試程序 ?????
–utc:使用格林威治時間
–version:顯示版本信息
-
date???
作用:顯示或設(shè)置系統(tǒng)時間與日期語法:date [OPTION]… [+FORMAT] ????
常用方法: ????????
-d<“字符串”>:顯示字符串所指的日期與時間 ????
-s<“字符串”>:根據(jù)字符串設(shè)置的日期與時間 ???????
+FORMAT:格式符
%F:年月日 ?
%T:小時分鐘秒 ???
%Y:年 ????
%m:月 ???
%d:日 ?
%H:小時(24小時進制) ??
%S:秒 ?????
%s:秒(從1970-01-01 00:00:00 開始到命令執(zhí)行那一刻的秒數(shù) unix元年)
設(shè)定日期時間:date [MMDDhhmm[[CC]YY][.ss]]
Linux系統(tǒng)上獲取命令的幫助信息
Linux的命令
Linux命令的執(zhí)行必須依賴于Shell命令解釋器。Shell實際上是在Linux系統(tǒng)中運行的一種特殊程序,它位于操作系統(tǒng)內(nèi)核與用戶之間進行交互。Linux的幫助有多種方式,通過命令的不同,幫助的查看方式也不盡相同。上面介紹了命令分別有外部命令和內(nèi)部命令:內(nèi)部命令和外部命令
內(nèi)部命令:shell程序的一部分,其包含的往往是一些簡單的linux系統(tǒng)命令。它們被shell程序識別并通過shell內(nèi)部完成運行,通常在linux系統(tǒng)加載運行時shell就被加載并駐留在系統(tǒng)內(nèi)存中。內(nèi)部命令是寫在shell程序源碼里面的,其執(zhí)行速度通常比外部命令快。
外部命令:linux系統(tǒng)中能夠完成特定功能的腳本文件或二進制文件,每個外部命令對應(yīng)了系統(tǒng)中的一個文件。這些文件通常比較強大,包含的程序量也很大,在系統(tǒng)加載時并不隨系統(tǒng)一起被加載到內(nèi)存中,而是在需要時才將其調(diào)用內(nèi)存。外部命令的實體通常并不包含在shell中,但是其命令執(zhí)行過程是由shell程序控制的。shell程序管理外部命令執(zhí)行的路徑查找、加載存放,并控制命令的執(zhí)行。
命令幫助
-
內(nèi)部命令: help 作用:用于顯示shell內(nèi)部命令的幫助信息
語法:help(選項)(參數(shù))
選項:-s:輸出短格式的幫助信息。僅包括命令格式
-
外部命令: 1)可以使用man手冊獲取幫助
man 作用:Linux下的幫助指令語法:man(選項)(參數(shù))
選項:
-a:在所有的man幫助手冊中搜索
-f:等同于whatis,顯示給定關(guān)鍵字的簡短描述信息
-P:指定內(nèi)容時使用分頁程序
-M:指定man手冊搜索的路徑
man作為命令手冊,有章節(jié)之分,同一個關(guān)鍵字,在不同章節(jié)中有著不用的解釋和使用幫助,如passwd在章節(jié)1中是介紹命令的使用方法,在章節(jié)5中則介紹passwd這個文件的幫助
man章節(jié)介紹:
man1:用戶命令
man2:系統(tǒng)調(diào)用
man3:c庫調(diào)用
man4:設(shè)備文件及特殊文件
man5:文件格式(配置文件格式)
man6:系統(tǒng)游戲使用幫助
man7:雜項
man8:管理工具及守護進程
man9:含糊的內(nèi)核規(guī)范和接口
man使用方法快捷操作: 翻屏操作: 空格鍵:向文件尾部翻一屏
b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
回車鍵:向文件尾部翻一行
k:向文件首部翻一行
G:跳轉(zhuǎn)至最后一行
數(shù)字G:跳轉(zhuǎn)至指定行
1G:跳轉(zhuǎn)至文件首部
文本搜索:
/keyword:從文件首部向文件尾部依次查找,不區(qū)分字符大小寫
?keyword:從文件尾部向文件首部依次查找
n:與查找命令方向相同
N:與查找命令方向相反
Linux發(fā)行版的基礎(chǔ)目錄名稱命名法則及功用規(guī)定
linux操作系統(tǒng)中的主要目錄及目錄內(nèi)容,是由文件系統(tǒng)層次結(jié)構(gòu)標準(Filesystem Hierarchy Standard,F(xiàn)HS)定義的,采用倒置樹形結(jié)構(gòu),該標準由Linux基金會維護。在大多數(shù)情況下,它都是一個傳統(tǒng)BSD文件系統(tǒng)層次結(jié)構(gòu)的形式化與擴充。
文件名法則
對于我們自身所創(chuàng)建的文件及目錄,則需要按照如下的法則
文件名使用法則:
嚴格區(qū)分字符大小寫:file1 File1 FILE1 并不是一個文件
目錄也是文件,
在同一路徑下,兩個文件不能同名
支持使用除”/“以外的任意字符;
最長不得超過255個字符目錄結(jié)構(gòu)
Linux發(fā)行版的基礎(chǔ)目錄名稱命名法則及功用規(guī)定
linux操作系統(tǒng)中的主要目錄及目錄內(nèi)容,是由文件系統(tǒng)層次結(jié)構(gòu)標準(Filesystem Hierarchy Standard,F(xiàn)HS)定義的,采用倒置樹形結(jié)構(gòu),該標準由Linux基金會維護。在大多數(shù)情況下,它都是一個傳統(tǒng)BSD文件系統(tǒng)層次結(jié)構(gòu)的形式化與擴充。
下表中大部分目錄都以相似的功能存在于所有的UNIX系統(tǒng)中。但是,以下的描述僅針對FHS,且對非Linux系統(tǒng)并非權(quán)威
目錄/文件 | 用途 | 來源 |
---|---|---|
/ | /處于Linux文件系統(tǒng)樹形結(jié)構(gòu)的最頂端 它是Linux文件系統(tǒng)的入口 所有的目錄、文件、設(shè)備都在/之下 |
|
/bin | 該目錄存放著系統(tǒng)最常用的最重要的命令 是以獨立的文件形式存在 這個目錄中的文件都是可執(zhí)行的并且是普通用戶都可以使用的命令 作為系統(tǒng)最基礎(chǔ)的命令都放在這里 |
binary |
/usr | 該目錄是系統(tǒng)存放程序的地方 比如普通命令、幫助文件、安裝的軟件等 當我們安裝一個Linux發(fā)行版官方提供的軟件包時,大多安裝在這里 /usr目錄下包括涉及字體目錄/usr/share/fonts、幫助目錄/usr/share/man或/usr/share/doc等 |
unix shared resource |
/var | 該目錄的內(nèi)容是經(jīng)常變動的 /var下有/var/log目錄用來存放系統(tǒng)日志的目錄 /var/www目錄用來定義Apache服務(wù)器站點存放目錄 /var/lib用來存放一些庫文件 |
variable |
/sbin | 大多數(shù)涉及系統(tǒng)管理的命令都存放在該目錄中 它是超級權(quán)限用戶root的可執(zhí)行命令存放地 凡是目錄sbin中包含的命令都是root權(quán)限才能執(zhí)行的 |
super user binary |
/root | Linux超級權(quán)限用戶(系統(tǒng)管理員)root的主目錄 | |
/home | 普通用戶的主目錄都默認存放在該目錄中 | |
/etc | 該目錄是系統(tǒng)配置文件的所在地 一些服務(wù)器的配置文件也在這里 |
etcetera |
/dev | 設(shè)備文件存儲目錄 該目錄下是所有Linux的外部設(shè)備文件 |
device |
/boot | 存放Linux的內(nèi)核及引導(dǎo)系統(tǒng)的程序所需要的文件 | |
/opt | 該目錄是可選的軟件包安裝目錄 | optional |
/tmp | 該目錄用于存放臨時文件 | temporary |
/lib | 該目錄用于存放庫文件 這個目錄里存放著系統(tǒng)最基本的共享庫 |
library |
/mnt | 該目錄是用于存放掛載儲存設(shè)備的掛載目錄的 | mount |
/proc | 操作系統(tǒng)運行時進程(正在運行中的程序)信息及內(nèi)核信息(比如cpu、硬盤分區(qū)、內(nèi)存信息等)存放處 /proc目錄是偽裝的文件系統(tǒng)proc的掛載目錄 可以通過直接訪問這個目錄來獲取系統(tǒng)信息 |
process |