1.計算機組成
計算機五大部件:運算器、控制器、存儲器、輸入設備、輸出設備。對應實際情況大致如下:
-
CPU
CPU(Central Processing Unit)主要包含運算器、控制器;也包含寄存器、緩存用于輔助:CPU在同一時間能并行處理的二進制數的位數稱為CPU字長。字長由CPU對外數據通路的數據總線條數決定。
-
運算器
運算器也稱為算術邏輯部件(ALU,Arithmetic Logic Unit),負責算術運算和邏輯運算等。 -
控制器
控制器負責完成取指令、形成指令供運算器運算,指令時序控制;各總線控制(地址總線、數據總線、控制總線等),等等。 -
寄存器
臨時存放參與運算的數據,和運算的中間結果。有的寄存器會記錄一個程序的下個指令在內存的位置以保證運行效率。 -
高速緩存
CPU從內存(即存儲器)中讀取數據,CPU相對內存速度快很多,使用高速緩存放置數據可加快運行。 -
存儲器
存儲器即內存,也稱為RAM(Random Access Memory,隨機訪問存儲)。 -
計算機所有運行的程序都存儲在內存中,是與CPU進行溝通的橋梁。
-
內存中的最小存取單元是1Byte(8比特位),就算只有1bit數據,也要占據1Byte,其他7位為空。
-
內存上的每個字節都被進行編址,訪問時按地址訪問。在編址范圍外的稱為內存溢出。
32位字長的CPU最多有2^32種變化,可表示2^32個地址,所以32位字長的CPU最多可使用4GB內存。 -
I/O設備
I/O設備用于向計算機輸入(Input)數據、輸出(Output)結果。如鍵盤輸入、顯示器輸出,磁盤既可輸入也可輸出等。
2.linux各發行版
2.1 各發行版
linux遵循GPL(General Public License)協定,源代碼公開。并非所有用戶都有編譯操作系統源碼的能力,所以有很多發行商推出了其自行編譯后的且比較穩定的發行版,做成引導光盤,并在后續維護。
linux發行版有數百種,目前發行版比較主流的三大分支:debian、slackware、redhat:
-
debian
基于debian的著名二次發行版:Ubuntu、knoppix等。 -
slackware
slackware本是sls的分支,已可視為獨立的發行版。
slackware中有著名二次發行版:S.u.S.E -
redhat
主干為RedHat Enterprise Linux(RHEL),基于此的著名二次發行版有CentOS等,CentOS以紅帽提供的源碼包,以完全兼容紅帽的方式重新編譯源碼。
redhat個人版、桌面版由federa project發行維護,發行版為Fedora。
2.2 各發行版的軟件包管理器
一個軟件的組成部分:
-
二進制程序,最主要部分;
-
配置文件,可修改軟件運行時的特性;
-
庫文件,若基于此軟件進行二次開發,可使用這個軟件提供的庫文件;
-
幫助文件
軟件包管理器用于管理軟件,類似windows,功能主要分為:
-
把上述軟件各組成文件,如二進制程序、配置文件等,打包成一個或幾個文件;
-
展開安裝;
-
卸載,不用逐個去找到軟件的所有文件再刪除;
-
查詢。
linux不同發行版上用到的軟件包管理器可能不一樣,比如debian用的程序包管理器是dpkg,前端管理工具apt-get;而redhat用的程序包管理器是rpm(redhat package manager),前端管理工具是yum等等。實際上這也正是各發行版中明顯的不同點。
3.各終端文件
linux哲學思想之一:一切皆文件,所有資源幾乎都抽象為文件。典型的表現就是硬件也表現為文件,如各終端:
-
控制臺
控制臺即計算機上的物理終端,是計算機的一部分,計算機只有一個控制臺,用于輸入輸出。其對應的文件為“/dev/console”。 -
虛擬終端
一組輸入、輸出設備(一般是鍵盤、顯示器),被稱為終端。
一臺主機若需被多用戶使用,早期各用戶是通過電傳打字機(teletypewriter,簡稱tty)作為終端連接至主機。
若在一個終端上需使用多個用戶接口,可在這個終端虛擬出多個虛擬終端,linux默認6個命令行虛擬終端1、1圖形界面,設備文件為“/dev/tty[1-7]”,tty作為早期的終端名稱沿用了下來,其中tty7是圖形界面的2??稍诟魈摂M終端之間切換。
登錄系統后默認使用的是tty1。
-
串口終端
使用串口與主機交互的終端稱為串口終端,設備文件“/dev/ttyS#”,#為對應數字。 -
偽終端
使用ssh等遠程登錄,或在圖形界面下打開的終端是偽終端。
偽終端設備文件為“/dev/pts/#”,#為對應數字。
4.linux部分常用指令
命令tty
用于顯示當前使用的終端對應的文件名。
命令ifconfig
用于設置和顯示IP。
命令echo
用于在標準輸出回顯內容。
若顯示內容沒有空格則可省略引號(執行變量引用),雙引號表示弱引用(執行變量引用),單引號表示強引用(不執行變量引用)。
-
選項“-n”,顯示內容后不自動換行。
-
選項“-e”,顯示轉義字符。
由此也可看出轉義字符在引號內才會生效,無所謂單雙引號。使用“echo”最好加上引號。
命令startx
用于使用圖形界面。
組合按鍵“Ctrl”+“Alt”+“Backspace”,由圖形界面回到命令行界面。
命令export
用于顯示、設置環境變量。設置的環境變量在當前登錄有效(包括子shell)。
命令pwd
用于顯示當前工作目錄。
環境變量PWD保存當前工作目錄路徑、OLDPWD保存上一個工作目錄路徑。命令“cd -”正是基于此在兩目錄切換。命令“pwd”可理解為讀取了環境變量PWD的內容。
命令who
用于顯示當前已登錄到系統的所有用戶,并顯示其使用的終端,何時登錄。
命令wall
用于在同一時間向所有終端發送信息。
關機、重啟命令
-
命令reboot
用于重啟 -
命令halt
用于關機 -
命令poweroff
用于關機 -
命令shutdown
用于關機或重啟。
使用格式:“shutdown [option] time [message]”,表示time分鐘后執行操作(0,now表示立即執行),并打印提示信息message在每個終端(同命令“wall”),即使沒有message,每個終端也都會收到關機或重啟提示。 -
選項“-r”,重啟;
-
選項“-P”,關機;
-
選項“-c”,表示在時間尚未到達時,取消之前決定的關機或重啟操作。root賬戶可在任何終端執行這個選項以結束關機或重啟操作;在發起關機或重啟操作的那個終端,root可直接使用“ctrl + c”來結束將要執行的關機或重啟操作。
命令date
用于顯示、設置系統日期和時間。
– 顯示時間,可使用不同格式。
– 設置時間,可直接按man手冊中給定的時間格式設置,也可按字符串設置。
命令clock
用于查詢、設置硬件時間。clock是命令“hwclock”的鏈接文件。
linux在啟動時,系統讀取硬件時間,之后系統時間和硬件時間各走各的互不影響。兩時間可能不一樣,所以使用上述的“date”命令設置系統時間后,重啟后可能就變了,這是因為啟動時系統又讀取了硬件時間。
-
選項“-s”,把硬件時間同步到系統時間,即以硬件時間為準;
-
選項“-w”,把系統時間同步到硬件時間,即以系統時間為準。
命令history
用于查看命令歷史。
格式:“history [#]”,表示顯示最近#條命令;不帶參數則顯示當前命令歷史列表。當用戶登出時,命令歷史列表中的命令默認會保存到用戶家目錄下的“.bash_history”文件,所以用戶再登錄時,該文件內容會在命令歷史列表中。
相關環境變量:
-
HISTSIZE
指定當前shell進程,在內存中保存的最大命令個數; -
HISTFILE
用于指定命令歷史持久保存在哪個文件,默認是在用戶家目錄下的“.bash_history”; -
HISTFILESIZE
指定保存歷史命令的文件的最大保存個數。如超出,就把更早的命令刪除; -
HISTCONTROL
在centOS7,有此環境變量,取值范圍有三個: -
ignoredups,表示忽略重復的歷史命令;
-
ignorespace,表示忽略以空格開頭的歷史命令;
-
ignoreboth,同時忽略上述二者。
各選項:
-
選項“-c”,清空歷史命令;
-
選項“-r”,讀取命令歷史文件,把其中保存的命令追加至命令歷史列表;
-
由此可知,命令歷史列表的命令個數或許會大于HISTSIZE,因為此次登錄保存在內存中的命令個數(受HISTSIZE限制),加上追加的保存在HISTFILE中的命令個數,才是當前命令歷史列表中的個數。
-
選項“-w”,把當前shell進程在內存中保存的命令,保存至HISTFILE,且這些命令仍在命令歷史列表。
引用歷史命令:
-
格式“!#”,表示使用第#條命令;
-
格式“!string”,表示使用最近以“string”字符串開頭的命令;
5.linux幫助信息
-
“help command”,用于獲取bash內建命令幫助;
-
每個外部命令都帶有簡要格式的幫助信息,使用命令選項“–help”獲取;
-
外部命令的man文檔,“man # command”獲取,其中“#”表示顯示第幾章節內容。各章節:
-
1、用戶命令;
-
2、系統調用;
-
3、庫調用;
-
4、特殊文件、設備文件;
-
5、配置文件說明;
-
6、小游戲說明;
-
7、雜項;
-
8、系統命令。
-
http://redhat.com/doc紅帽官方幫助文檔;軟件官方站點的document等。
6.linux發行版各基礎目錄
linux上的所有磁盤分區,所有存儲設備,都需掛載到某個目錄,這個目錄稱為掛載點;
所有目錄都以根目錄為起點;
所以所有文件都關聯到了根。
FHS(FilesystemHierarchyStandard),目錄層級標準,規定了目錄“/、/usr、/var”下存放哪些文件:
根目錄層級內容:
-
/bin,放置root與普通用戶均可使用的命令文件;
-
/sbin,放置僅root可使用的命令;
-
/boot,放置linux內核文件、開機菜單、開機所需配置文件等;
-
/dev,放置設備文件、用戶接口文件;
-
/etc,放置配置文件;
-
/lib,64位系統上是“/lib64”,放置/bin、/sbin目錄下的命令所需的共享庫文件;“/lib/modules”下放置內核模塊等;
-
/media,作為便攜式存儲設備如U盤等的臨時掛載點;
-
/mnt,類似/media,/mnt是作為新硬盤的臨時掛載點;
-
/opt,作為附加程序或第三方程序的安裝位置,不強制要求;
-
/proc,虛擬文件系統。存儲內核、進程相關信息。該目錄下的數據都在內存中,所以不占硬盤空間;
-
/sys,虛擬文件系統。主要用于管理設備,存儲的是硬件設備信息等。也不占用硬盤空間;
-
/root,root的家目錄;
-
/srv,一些網絡服務在此存儲數據;
-
/tmp,一般用戶或運行的程序暫時在此存放文件;
-
/usr,Unix Software(shareable) Resource,各發行版會在此目錄放置所有隨發行版一同發行的軟件,類似于windows的“C:\Program files”;
-
/var,用于保存常態性變動的文件,如緩存、登錄文件等。
開機過程中僅有根目錄會被掛載,其他目錄是在開機后陸續掛載;
所以根目錄下與開機過程有關的目錄也只能在根分區;
與開機過程有關的目錄為:/bin、/sbin、/etc、/lib、/dev。
/usr目錄層級內容:
-
/usr/X11R63,存放“X window”相關數據;
-
/usr/bin,放置用戶命令,與“/bin”的不同在于是否與開機過程有關;
-
/usr/include,放置c/c++頭文件、包含文件;
-
/usr/lib,為各系統軟件提供庫文件,64為系統會是“/usr/lib64”;
-
/usr/sbin,系統命令,與“/sbin”區別在于,該目錄存儲的是非系統正常運行所需的命令;
-
/usr/share,放置共享文件,包括“/usr/share/man”放置命令幫助文檔;“/usr/share/doc”放置軟件相關說明文檔等等;
-
/usr/src,放置軟件源碼;linux源碼放置在“/usr/src/linux”下;
-
/usr/local,管理員用戶自己下載的軟件(非發行版提供的軟件)放置在此目錄,所以該目錄也可作為一個目錄層級,內容也包含bin、sbin、lib、include等。
/var目錄層級內容:
暫略。
原創文章,作者:wangzhenyu177,如若轉載,請注明出處:http://www.www58058.com/37793
寫的很好,排版還可以在漂亮一點,加油