第一部分:計算機組成及功能
電子真空管的出現促使了計算機的誕生;
根據馮●諾依曼的哲學思想,計算機的組成分為五大部分。分別為:
1. 運算器
2. 控制器
3. 存儲器
4. 輸入設備
5. 輸出設備
其中:運算器和控制器是構成CPU的核心組件;
CPU的組成部分除了核心組件外還包括:寄存器和緩存
1.運算器: 執行各種算術和邏輯運算操作的部件。運算器的基本操作包括加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作;
2.控制器要保證能按程序中設定的指令運行次序,自動地連續執行指令序列;
3.寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和地址,即是把內存的數據提取到寄存器中暫時保存的。
4.緩存是加速的,CPU緩存:是位于CPU與內存之間的臨時存儲器,它的容量比內存小的多但是交換速度卻比內存要快得多。高速緩存的出現主要是為了解決CPU運算速度與內存讀寫速度不匹配的矛盾,因為CPU運算速度要比內存讀寫速度快很多,這樣會使CPU花費很長時間等待數據到來或把數據寫入內存。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。
存儲器:存儲數據的,分為RAM和ROM
程序:指令+程序
程序:算法+數據結構
只有CPU的計算機是毫無意義的,CPU能驅動很多程序和事務,幫助用戶解決問題才是本質,那么我們就需要數據。
數據可以表示為文本、指令集等等,他們都是被放在存儲器也就是硬盤上的,那么我們怎么存儲這些個數據呢?
實際上計算機是由電驅動的,利用開、關狀態來表示0和1數字,所以計算機只能識別二進制數字。存儲設備作為計算機的一個組成部分也是遵循這個原理;
因為計算機是由外國人發明的,所以為了能讓0和1自由組合成對應的字母和符號,美國國家標準學會(American National Standard Institute , ANSI )制定了ASCII碼,他們是由8位二進制數來表示的可能的所有字符,也就是2的8次方。ASCII的出現使機器語言與人類語言搭起了橋梁。
存儲器上的任何一個數據,他們采用8位二進制格式存儲。
例如:abcd,四個字母組成的格式他們在機器中就會表示成:“01100001 01100010 01100011 01100100”
注意:漢字不在ASCII中,它是由英文-漢子對照表轉譯過來的。
因為制作cpu的廠商不同,想要驅動他們需要把操作系統通過編譯器編譯成計算機能理解的二進制格式。
操作系統也就是kernel是很簡陋的,為了達到人機交互的功能外層還需要包裝一層shell,如果還要運行應用程序,我們還需要API接口來實現應用程序和操作系統直接的各種調用,以達到計算機的完整運行。
Kernel的功能:
1. 驅動程序;
2. 進程管理;
3. 安全防護;
4. 網絡功能;
5. 內存管理;
6. 文件系統;
第二部分:linux的發行版
就Linux的本質來說,它只是操作系統的核心,負責控制硬件、管理文件系統、進程等,并不給用戶提供各種工具和應用軟件。操作系統核心,若沒有強大的應用軟件可以使用,如C/C++編譯器、C/C++庫、系統管理工具、網絡工具、辦公軟件、多媒體軟件、繪圖軟件等,也無法發揮它強大的功能,用戶也無法僅僅使用這個系統核心進行工作,因此人們以Linux核心為中心,再集成搭配各種各樣的系統管理軟件或應用工具軟件組成一套完整的操作系統,如此的組合便稱為Linux發行版。
linux的分支很多,這里詳細介紹三個主流版本:
1.Debian是一款非常穩定的服務器操作系統,它沒有太多的花哨,穩定壓倒一切,對于服務器系統來說是最大的優勢所在,debian這個linux系統,底層非常穩定,內核和內存的占用都非常小。
其中:Ubuntu 和 Knopix 是基于debian的二次發行版!
2.Slackware Linux是一款配置靈活和透明的服務器操作系統,且他的很多特性體現出了KISS原則,最為有名的一些例子就是不依賴圖形界面的文本化系統配置、傳統的服務管理方式和不解決依賴的包管理方式。它的最大特點就是安裝靈活,目錄結構嚴謹,版本力求穩定而非追新。
其中:SUSE 是基于debian的二次發行版,OPENSUSE是開源組織為了讓suse開源化利用社區的形式把SUSE提供的源代碼編譯出來并公開免費下載使用。
3.redhat是一款企業級的服務器操作系統,它的開放源碼模式提供跨物理、虛擬和云端環境的企業運算解決方案,以幫助企業降低成本并提升效能、穩定性與安全性。紅帽公司同時也為全球客戶或通過領先合作伙伴為客戶提供技術支持、培訓和咨詢服務。
其中:RHEL 主要面對企業,利用自身專業性為企業提供維保服務以至于保證應用服務器系統的穩定運行;CentOS是RHEL的山寨版,可以免費讓大家使用,但是不負責運行穩定和宕機問題。
第三部分:linux的哲學思想
Linux的哲學思想:
1.由目的單一的一個個的小程序組成;組合小程序完成復雜任務;
2.一切皆文件,包括硬件設備和通信的配置信息;
3.盡量避免捕獲用戶接口;
4.配置文件保存為純文本格式;
第四部分:linux命令使用格式
命令語法格式:
COMMAND OPTIONS ARGUMENTS,其中:
COMMAND:發起一條命令并請求內核將某個二進制程序運行為一個進程;
OPTIONS :選項參數。指定命令的運行特性和實現的功能;用于調整命令的運行特性;決定運行命令的哪一段代碼。選項有兩種表現形式:短和長。
ARGUMENTS:命令參數,命令的作用對象,命令對什么生效。
注意:不同的命令參數,有些命令可以同時帶多個參數,多個之間以空格分隔。
獲取使用幫助:
1.二進制、庫文件:可執行文件,其中庫文件不能獨立執行,只能被調用時執行;
輸入一個命令:就是請求內核將某個二進制程序運行為一個進程;程序 –>進程(有生命周期)
命令本身是一個可執行的程序文件:是一個二進制格式的文件,可能會調用共享庫
2.多數程序文件都存放在:/bin /sbin /usr/bin /usr/sbin /usr/local/bin
普通命令:/bin /usr/bin /usr/local/bin
管理命令:/sbin /usr/sbin /usr/local/sbin
共享庫:/lib /lib64 /user/lib /usr/local/lib
命令必須遵循特定的格式規范:ELF 格式
eg:
[root@localhost ~]# file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
3.命令分為兩類:
由shell程序自帶的命令,內置命令;
獨立的可執行程序文件,文件名即命令名,外部命令;
4.shell程序是獨特的程序,負責解析用戶提供的命令
環境變量:
PATH:從那些路徑中查找用戶鍵入的命令字符串所對應的命令文件;
eg:
[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
其中,shell自帶的命令是在后臺運行的,沒有目錄可以找。
5.查看命令類型:
eg:
[root@localhost ~]# type ls
ls is aliased to `ls –color=tty'
[root@localhost ~]# type type
type is a shell builtin
6.獲取命令的使用幫助:
內部命令:
help commond
外部命令:
(1)命令自帶簡要格式的使用幫助
command –help
(2)使用手冊:manual
位置:/usr/share/man
7.man命令及格式
格式:man 命令
“/+關鍵字” 用于搜索;
“man -k 關鍵字” 搜索包含關鍵字的幫助文檔;
絕大多數程序都有相應的幫助文檔,并保存在/usr/share/doc文件夾中 Man 文檔的章節劃分: 手冊分為man1-man8
其中:
man1:用戶命令;
man2:系統調用;
man3:C庫調用;
man4:設備文件及特殊文件;
man5:文件格式:
man6:游戲使用幫助;
man7:雜項;
man8:管理工具及守護進行。
幫助手冊路徑:/usr/share/man
語法格式:#man COMMAND
注:1、并非每個COMMAND在所有章節下都有手冊;
2、可以通過whatis查看命令存在哪些章節;
3、whatis執行過程是查詢數據進行的;
第五部分:基礎命令
1.cd命令:
cd ~USERNAME:切換回指定用戶的家目錄
eg:
[root@localhost /]# cd ~hive
[root@localhost hive]# pwd
/home/hive
cd -:在上一次所在目錄與當前目錄之間來回切換;
2.pwd命令
相關的環境變量
pwd:當前工作目錄;
oldpwd:上一次的工作目錄
3.ls命令
-h:把文件大小換算成標準格式
-d:查看目錄自身而非其內部的文件列表;
-r:逆序排列;
-R:遞歸顯示。
4.cat命令(tac是cat的逆序顯示文本信息)
如何知道那個文件是文本文件?
[root@localhost ~]# file /etc/fstab
/etc/fstab: ASCII text
答:使用 file 命令,ascii文本是一種半結構化數據
參數
-n:對查看的文件內容行進行編號。
-E:顯示行結束符
5.file命令
查看文件類型
6.echo命令
回顯命令
-n:不進行換行
-e:讓轉義符生效
對目標使用:單引號,變量引用不執行替換;
雙引用,變量引用會被替換;
7.shutdown、reboot和poweroff命令
-r:后面跟著數字,指定關機時間
-c:取消關機命令
8.時間命令
linux系統啟動時從硬件讀取日期和時間信息;讀取完成后就不再與硬件相關聯;
date:設置系統日期和時間(系統時鐘)
顯示日期時間:date [OPTION]… [+FORMAT]
FORMAT:格式符 %F full date; same as %Y-%m-%d
eg:
[root@localhost ~]# date +%F
2016-11-17
[root@localhost ~]# date +%T
09:54:40
[root@localhost ~]# date +%F-%T (這個被叫做格式字符串)
2016-11-17-09:55:41
[root@localhost ~]# date +"%F %T"
2016-11-17 09:56:23
設置日期時間:date [MMDDhhmm[[CC]YY][.ss]]
設定日期時間格式:date 月-日-小時-分鐘-年-.-秒
clock,hwclock:查詢或者設定硬件時鐘(硬件時鐘)
-s:把系統時間同步成硬件
-w:把硬件時間同步成系統
9.cal命令:日歷
10.tty:打印連接到標準輸入的終端的文件名。
命令項:
-s: 什么也不打印,只是返回退出狀態碼。
–help: 打印幫助信息。
–version: 打印版本信息并退出。
11.startx:
客戶端及選項:X客戶端及選項;
服務器及選項:X服務器及選項。
12.export:查看當前shell中的環境變量
補全路徑:export
eg:
[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# export PATH=$PATH:user/local/apache/bin
[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:user/local/apache/bin
13.history:命令歷史
其中:.bash_history 是保存的用戶關機后從內存寫入到硬盤中的所有命令!history是讀取的當前內存中的命令!
HISTSIZE:shell進程可保留的命令歷史的條數;
HISTFILE:持久保存命令歷史的文件;
HISTFILESIZE:命令歷史文件的大??;
eg:
[root@localhost ~]# echo $HISTSIZE
1000
[root@localhost ~]# echo $HISTFILESIZE
1000
[root@localhost ~]# echo $HISTFILE
/root/.bash_history
-c:清空;
-d :刪除指定條數;用法:第幾條 條數
-w:把內存中的追加到文件中;
-r:文件到內存;
第六部分:Linux發行版的基礎目錄名稱的命名法則及功用規定
文件系統:層級結構
內核中存放的根文件系統,操作系統啟動后就會處在一個目錄下。
linux有一個標準委員會,無論什么發行版都要執行這個標準來命名。這個機制就叫做FHS:文件系統層級結構標準
/bin:供所有用戶使用的基本二進制命令程序文件;
/sbin:供系統管理使用的工具程序;
/boot:引導加載器必須用到的各靜態文件;kernel、initramfs、grub等;
/dev:存儲特殊文件或設備文件;
設備有兩種類型:字符設備(線性設備,有時序的)、塊設備(隨機設備);
/etc:系統程序的配置文件,只能為靜態;
/home:普通的家目錄的集中位置;
/lib:為系統啟動或根二那件系統上的應用程序(/bin、/sbin等)提供共享庫,以及為內核提供內核模塊
-文件.so:動態鏈接的C庫;
-ld*:運行時鏈接器/加載器;
-modules:用于存儲內核模塊的目錄;
/lib64:64位系統特有的存放64位共享庫的路徑;
/media:便攜式設備掛載點,cdrom,floppy等;
/mnt:其他文件系統的臨時掛載點;
/opt:附加程序的安裝位置;第三方安裝位置;
/root:管理員的家目錄(管理員不需要登陸系統)
/srv:當前主機為服務提供的數據;
/tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄,可供所有用戶執行寫入操作,有特殊權限;
/usr:全局共享的只讀數據路徑;
-include:C程序頭文件
-share:命令手冊頁,命令自帶文檔等架構特有的文件存儲位置。
-X11R6:x-window程序的安裝位置;
src:程序源碼文件的存儲位置;
/usr/local:讓系統管理員安裝本地應用程序:
/var:存儲經常發生變化的數據目錄
/proc:內核和進程存儲其相關信息;他們多為內核參數;它是一個基于內存的虛擬文件系統;
/sys:sysfs虛擬文件系統提供了一種比 proc 更為理想的訪問內核數據的路徑;其主要作用在為管理linux設備提供一種統一模型的接口;
原創文章,作者:N25-筆頭,如若轉載,請注明出處:http://www.www58058.com/62599
總結的很好,下次要加一例子說明就更棒了