一、計算機的組成及其功能
依據馮·諾依曼體系結構,計算機可分為五大部分,CPU的運算器和控制器、內存、輸入、輸出。
- CPU運算器:計算機中執行各種算術和邏輯運算操作的部件。運算器的基本操作包括加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作,亦稱算術邏輯部件(ALU)。運算器由算術邏輯單元(ALU)、累加器、狀態寄存器、通用寄存器組等組成。算術邏輯運算單元(ALU)的基本功能為加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、求補等操作。計算機運行時,運算器的操作和操作種類由控制器決定。運算器處理的數據來自存儲器;處理后的結果數據通常送回存儲器,或暫時寄存在運算器中。與Control Unit共同組成了CPU的核心部分。
- CPU控制器:控制器(英文名稱:controller)是指按照預定順序改變主電路或控制電路的接線和改變電路中電阻值來控制電動機的啟動、調速、制動和反向的主令裝置。由程序計數器、指令寄存器、指令譯碼器、時序產生器和操作控制器組成,它是發布命令的“決策機構”,即完成協調和指揮整個計算機系統的操作。
- 內存:內存是計算機中重要的部件之一,它是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。內存(Memory)也被稱為內存儲器,其作用是用于暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成后CPU再將結果傳送出來,內存的運行也決定了計算機的穩定運行。 內存是由內存芯片、電路板、金手指等部分組成的。
- 輸入設備:向計算機輸入數據和信息的設備。是計算機與用戶或其他設備通信的橋梁。輸入設備是用戶和計算機系統之間進行信息交換的主要裝置之一。鍵盤,鼠標,攝像頭,掃描儀,光筆,手寫輸入板,游戲桿,語音輸入裝置等都屬于輸入設備。輸入設備(InputDevice)是人或外部與計算機進行交互的一種裝置,用于把原始數據和處理這些數的程序輸入到計算機中。計算機能夠接收各種各樣的數據,既可以是數值型的數據,也可以是各種非數值型的數據,如圖形、圖像、聲音等都可以通過不同類型的輸入設備輸入到計算機中,進行存儲、處理和輸出。
- 輸出設備(Output Device)是計算機硬件系統的終端設備,用于接收計算機數據的輸出顯示、打印、聲音、控制外圍設備操作等。也是把各種計算結果數據或信息以數字、字符、圖像、聲音等形式表現出來。常見的輸出設備有顯示器、打印機、繪圖儀、影像輸出系統、語音輸出系統、磁記錄設備等。
二、Linux各發行版,以及不同發行版之間聯系與區別
linux發行版可按打包方式劃分;有按發行方式劃分;比較流行和重要的如下
-
1、按打包方式劃分:
-
A、基于Dpkg (Debian系)
-
Knoppix:第一張Debian的自啟動運行光盤。包含的軟件非常多,啟動時會自動進行硬件監測。從4.0起,用DVD作光盤。以下基于Knoppix:
- Gnoppix:Knoppix的GNOME版,該包發行周期較長,未來會跟Ubuntu進行集成。
- Kanotix:自啟動運行光盤,基于Knoppix,也可以安裝到硬盤上。有很好的硬件支持,桌面與筆記本電腦的集成也很出色。
- Kurumin:針對巴西用戶的Knoppix。
-
Ubuntu:知名Linux發行版之一,由Canonical有限公司贊助,基于Debian,使用自己的軟件包庫,與Debian的有所不同,旨在開發出更加友好的桌面。
- 以下基于Ubuntu:
- Linux Mint:基于Ubuntu,人氣與Ubuntu不相上下的發行版。
- Edubuntu:是Ubuntu的教育發行版。
- Elementary OS:基于Ubuntu,使用基于GNOME名為Pantheon的桌面環境。
- Kubuntu:使用KDE桌面環境的Ubuntu包。
- Lubuntu:使用LXDE桌面環境的Ubuntu包。
- PUD GNU/Linux:基于Ubuntu的小型Linux,可安裝于光盤或256 MB以上的USB U盤。
- Ubuntu Kylin:添加了少量中國化定制的 Ubuntu 發行版。
- Xubuntu:使用Xfce桌面環境的Ubuntu包。
- Start OS: 原名Ylmf OS,基于Ubuntu發行版,已停止維護。
- Ubuntu GNOME: 基于Ubuntu是Linux發行版,但使用的是桌面環境是Gnome。 *Zorin OS:基于Ubuntu的Linux發行版,目的是盡可能的模擬Windows及操作習慣。
-
Knoppix:第一張Debian的自啟動運行光盤。包含的軟件非常多,啟動時會自動進行硬件監測。從4.0起,用DVD作光盤。以下基于Knoppix:
-
B、Slackware系
Slackware 走了一條同其他的發行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力圖成為“UNIX風格”的Linux發行版本。它的方針是只吸收穩定版本的應用程序,并且缺少其他Linux版本中那些為發行版本定制的配置工具。
- Slackware:一個老牌包,由Patrick Volkerding維護,特別注重簡潔與安全。
- Kate OS:基于Slackware的設計理念,一個輕便的波蘭語包。
- Zenwalk Linux(以前是MiniSlack):基于Slackware作了優化,注重簡便、快捷。
- Plamo Linux:基于Slackware的日語包。
- Ultima Linux:基于Slackware,由Martin Ultima作了優化。
- SLAX:一個基于Slackware的自啟動運行光盤,由Tomas Matejicek維護。
-
C、基于RPM (Red Hat系)
Red Hat Linux和SUSE Linux是最早使用RPM格式軟件包的發行版,如今RPM格式已廣泛運用于眾多的發行版。這兩種發行版后來都分為商業版本和社區支持版本。Red Hat Linux的社區支持版本現稱為Fedora,商業版本則稱為Red Hat Enterprise Linux。
- Fedora:可用作工作站、桌面以及服務器,由紅帽公司及其社區開發
- Red Hat Enterprise Linux:紅帽Linux家族中唯一的商業分支。
- Red Flag Linux:即紅旗Linux,由北京中科紅旗軟件技術有限公司開發,主要針對中國市場。
- Scientific Linux:由紅帽Linux企業版,將遵循GPL的軟件重新編譯而成。
- SUSE/openSUSE:來自德國,是歐洲最流行的包之一。跟紅帽一樣,也包括大量的軟件,需要7張以上的CD,現在則用雙DVD。這個包有獨特的配置工具YaST。也是United Linux的創立者之一,已經被Novell公司收購。openSUSE是一個新的版本,基于社區,完全開源。
- Turbo Linux:在亞洲較流行的一個包,基于Red Hat,是United Linux的成員。
-
D、其他方式
- ArchLinux:基于KISS原則,針對i686和x86-64的CPU做了優化,以.pkg.tar.xz格式打包并由包管理器進行跟蹤維護,特別適合動手能力強的Linux用戶。
- Gentoo:這個包采用自己獨特的Portage包管理系統,吸引了許多狂熱愛好者以及專業人士,由于能自己編譯及調整源碼依賴等選項,而獲得至高的自定義性及優化的軟件,在源碼包也有相當多新舊版本的選擇,是個強調能自由選擇的發行版。
-
-
2、按商業方式劃分:
-
A、部分或全部的商業版
- BlueCat Linux:Linux嵌入式系統,可用于小型客戶定制的設備,乃至大規模多CPU的系統。
- Libranet:基于Debian的桌面包,與Debian保持100%的兼容。安裝過程有硬件自動檢測,桌面有一個管理員菜單(文字模式與圖形模式),這樣簡化了硬件與軟件的配置。
- Linspire:另一個桌面包,以前叫Lindows,基于Debian??梢酝ㄟ^Linspire或者Debian的apt命令,添加額外的軟件,但不保證跟Debian的兼容性。該包包含不少的專屬軟件。
- Mandriva Linux:Mandrakesoft跟Conectiva合并以后,更名為Mandriva Linux。對于菜鳥來說,該包的各種產品,包括服務器、工作站、小型商用以及個人版,是最容易維護的Linux包之一。原來是Red Hat的一個變種,針對奔騰級CPU作了優化,進而發展出了更加方便的包。在保留完全自由軟件的同時,Mandriva商業模式,通過捐獻,以及對非會員延遲發布政策,增加了企業級的支持與服務。
- MEPIS:一個基于Debian的包,也可以作為自啟動光盤來運行,這樣可以在決定硬盤安裝前,嘗嘗鮮。
- Nitix:第一個基于Linux服務器的自治操作系統,具有自管理、自恢復、自配置和自優化的能力。
- Novell Linux 桌面:Novell收購SUSE后,兩家的包就互相融合了。
- Progeny Debian:由Progeny開發,基于Debian,使用從Red Hat移植過來的Anaconda安裝器,該包又稱為Progeny Componentized Linux。
- Red Hat Enterprise Linux:從Red Hat Linux派生出的純商業版。
- SUSE:基于德國的紐倫堡,以前叫SuSE,是歐洲最流行的Linux包,由自己獨特的配置工具YaST,用戶可以下載到體驗版(跟專業版類似)。該公司是United Linux的創建者,最近被Novell收購。
- Xandros:來自加拿大,基于過去的Corel Linux,專注于桌面市場,以及跟Windows的兼容性。該包包含一些專屬軟件,跟Debian的dpkg包管理系統兼容。
- YES Linux:針對小型公司,提供建議的網絡環境。
-
B、專用包
- Mobilinux:針對手機,由MontaVista出品。
- Android:來自Google,以apk格式打包,采用Android Runtime虛擬機提供類似Java (編程語言)的應用程序接口,目前已成為用戶最多的智能手機系統之一。
- Maemo:來自諾基亞,基于Debian,目前專用于諾基亞的N770、N800、N810網絡終端,以及N900手機。
- Moblin︰來自英特爾,現已捐給Linux基金會,用于Eee PC或其他上網本,支持快速啟動。
- MeeGo:Maemo與Moblin計劃結合的產物。
- Bada (操作系統):針對手機,由三星電子出品。
- LiMo 平臺:由LiMo基金會主導開發的移動電話發行版。
- Tizen:MeeGo、LiMo 平臺與bada計劃結合的產物。
- Meltemi:MeeGo的另一個后繼者,面向低端智能手機。
- webOS:針對手機和平板電腦,由Palm公司出品,后被惠普公司開源。
-
C、其它平臺
- iPodLinux基于修改版uClinux內核,并編寫有所謂的“podzilla”簡單用戶界面。目前僅支持第四代之前的iPod。
-
A、部分或全部的商業版
四、Linux命令使用格式
Linux命令使用格式:
command [options] [arguments]
-
command:
- 命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;
- 多數系統程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
- 普通命令:/bin, /usr/bin, /usr/local/bin
- 管理命令:/sbin, /usr/sbin, /usr/local/sbin
- 共享庫:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
- 32bits的庫:/lib, /usr/lib, /usr/local/lib
- 64bits的庫:/lib64, /usr/lib64, /usr/local/lib64
- 注意:并非所有的命令都有一個在某目錄與之對應的可執行程序文件
- 命令必須遵循特定格式規范:exe、msi(windows), ELF(Linux)
- 命令分為兩類:
- 由shell程序的自帶的命令:內置命令(builtin)
- 獨立的可執行程序文件,文件名即命令名:外部命令
- shell程序是獨特的程序,負責解析用戶提供的命令;
- 環境變量:PATH從哪些路徑中查找用戶鍵入的命令字符串所對應的命令文件;
- 查看命令類型:type COMMAND發起一命令:請求內核將某個二進制程序運行為一個進程;
-
OPTIONS:指定命令的運行特性;
- 選項有兩種表現形式:
- 短選項:-C, 例如-l, -d 注意:有些命令的選項沒有-;如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld
- 長選項:–word, 例如–help, –human-readable注意:長選項不能合并;
- 注意:有些選項可以帶參數,此稱為選項參數;
-
ARGUMENTS:
- 命令的作用對象;命令對什么生效;
- 注意:不同的命令的參數;有些命令可同時帶多個參數,多個之間以空白字符分隔;
-
例如:
ifconfig:配置網絡接口 ifconfig [接口] ifconfig 接口 [aftype] options | address ... echo:顯示一行文本 echo[OPTION]... [STRING]... -n 不輸出行尾的換行符. -e 允許對下面列出的加反斜線轉義的字符進行解釋. -E 禁止對在STRINGs中的那些序列進行解釋. --help 顯示幫助并退出(須單獨運行) --version 輸出版本信息并退出(須單獨運行) 在沒有 -E 的情況下,可承認并可以內置替換以下序列: tty:顯示連接標準輸入的終端的文件名 tty [OPTION]... -s, --silent, --quiet 什么 都 不顯示, 僅僅 返回 一個 退出狀態 --help 顯示 幫助信息, 然后 結束 --version 顯示 版本信息, 然后 結束 startx:啟動圖形化界面 export:用于將shell變量輸出為環境變量,或者將shell函數輸出為環境變量。 一個變量創建時,它不會自動地為在它之后創建的shell進程所知。而命令export可以向后面的shell傳遞變量的值。當一個shell腳本調用并執 行時,它不會自動得到原為腳本(調用者)里定義的變量的訪問權,除非這些變量已經被顯式地設置為可用。export命令可以用于傳遞一個或多個變量的值到任何后繼腳本。 export[選項][參數] 選項 -f:代表[變量名稱]中為函數名稱; -n:刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中; -p:列出所有的shell賦予程序的環境變量。 參數 變量:指定要輸出或者刪除的環境變量 pwd:顯示出當前/活動目錄的名稱 history:用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入歷史命令是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變量HISTSIZE進行控制 shutdown:命令用來系統關機命令。shutdown指令可以關閉所有程序,并依用戶的需要,進行重新開機或關機的動作。 shutdown[選項][參數] 選項 -c:當執行“shutdown -h 11:50”指令時,只要按+鍵就可以中斷關機的指令; -f:重新啟動時不執行fsck; -F:重新啟動時執行fsck; -h:將系統關機; -k:只是送出信息給所有用戶,但不會實際關機; -n:不調用init程序進行關機,而由shutdown自己進行; -r:shutdown之后重新啟動; -t<秒數>:送出警告信息和刪除信息之間要延遲多少秒。 參數 [時間]:設置多久時間后執行shutdown指令; [警告信息]:要傳送給所有登入用戶的信息。 poweroff:用來關閉計算機操作系統并且切斷系統電源 poweroff[選項] 選項 -n:關閉操作系統時不執行sync操作; -w:不真正關閉操作系統,僅在日志文件“/var/log/wtmp”中; -d:關閉操作系統時,不將操作寫入日志文件“/var/log/wtmp”中添加相應的記錄; -f:強制關閉操作系統; -i:關閉操作系統之前關閉所有的網絡接口; -h:關閉操作系統之前將系統中所有的硬件設置為備用模式。 reboot:用來重新啟動正在運行的Linux操作系統。 reboot[選項] -d:重新開機時不把數據寫入記錄文件/var/tmp/wtmp。本參數具有“-n”參數效果; -f:強制重新開機,不調用shutdown指令的功能; -i:在重開機之前,先關閉所有網絡界面; -n:重開機之前不檢查是否有未結束的程序; -w:僅做測試,并不真正將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件。 hwclock:是一個硬件時鐘訪問工具,它可以顯示當前時間、設置硬件時鐘的時間和設置硬件時鐘為系統時間,也可設置系統時間為硬件時鐘的時間。在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通??稍贐IOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啟動時,系統時鐘會去讀取硬件時鐘的設定,之后系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。 hwclock[選項] --adjust:hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,并用來校正目前的硬件時鐘; --debug:顯示hwclock執行時詳細的信息; --directisa:hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘; --hctosys:將系統時鐘調整為與目前的硬件時鐘一致; --set --date=<日期與時間>:設定硬件時鐘; --show:顯示硬件時鐘的時間與日期; --systohc:將硬件時鐘調整為與目前的系統時鐘一致; --test:僅測試程序,而不會實際更改硬件時鐘; --utc:若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作; --version:顯示版本信息。 date:顯示或設置系統時間與日期。很多shell腳本里面需要打印不同格式的時間或日期,以及要根據時間和日期執行操作。延時通常用于腳本執行過程中提供一段等待的時間。日期可以以多種格式去打印,也可以使用命令設置固定的格式。在類UNIX系統中,日期被存儲為一個整數,其大小為自世界標準時間(UTC)1970年1月1日0時0分0秒起流逝的秒數。 date[選項][參數] 選項 -d<字符串>:顯示字符串所指的日期與時間。字符串前后必須加上雙引號; -s<字符串>:根據字符串來設置日期與時間。字符串前后必須加上雙引號; -u:顯示GMT; --help:在線幫助; --version:顯示版本信息。 參數 <+時間日期格式>:指定顯示時使用的日期時間格式。
五、Linux上獲取命令的幫助信息,以及man的章節劃分
-
1、獲取命令的使用幫助:
- 內部命令:help COMMAND
-
外部命令:
- (1) 命令自帶簡要格式的使用幫助: ~]# COMMAND –help
- (2) 使用手冊manual位置:/usr/share/man: ~]# man COMMAND
-
(3) info COMMAND獲取命令的在線文檔;
很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION
README:程序的相關的信息;
INSTALL: 安裝幫助;
CHANGES:版本迭代時的改動信息; -
(5) 主流發行版官方文檔
http://www.redhat.com/doc<br> -
(6) 程序官方的文檔:
官方站點上的“Document” -
(7) 搜索引擎
googlekeyword filetype:pdf keyword site:domain.tld
2、man的章節劃分:
(1):用戶命令; (2):系統調用; (3):C庫調用; (4):設備文件及特殊文件; (5):文件格式;(配置文件格式) (6):游戲使用幫助; (7):雜項; (8):管理工具及守護進行;
六、Linux發行版的基礎目錄名稱命名法則及功用規定
-
基礎目錄命名法則
/bin:所有用戶可用的基本命令程序文件; /sbin:供系統管理使用的工具程序; /boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等; /dev:存儲特殊文件或設備文件; 設備有兩種類型:字符設備(線性設備)、塊設備(隨機設備); /etc:系統程序的配置文件,只能為靜態; /home:普通的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME; /root:管理員的家目錄;可選; /lib:為系統啟動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及為內核提供內核模塊 libc.so.*:動態鏈接的C庫; ld*:運行時鏈接器/加載器; modules:用于存儲內核模塊的目錄; /lib64:64位系統特有的存放64位共享庫的路徑; /media:便攜式設備掛載點,cdrom, floppy等; /mnt:其它文件系統的臨時掛載點; /opt:附加應用程序的安裝位置;可選路徑; /srv:當前主機為服務提供的數據; /tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限; /usr:usr Hierarchy,全局共享的只讀數據路徑; bin, sbin lib, lib64 include:C程序頭文件; share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置 local:另一個層級目錄; X11R6:X-Window程序的安裝位置 src:程序源碼文件的存儲位置 /usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用于安裝第三方程序; /var:/var Hierarchy,存儲常發生變化的數據的目錄; cache Application cache data lib Variable state information local Variable data for /usr/local lock Lock files log Log files and directories opt Variable data for /opt run Data relevant to running processes spool Application spool data tmp Temporary files preserved between system reboots /proc:基于內存的虛擬文件系統,用于為內核及進程存儲其相關信息;它們多為內核參數,例如net.ipv4.ip_forward, 虛擬為net/ipv4/ip_forward, 存儲于/proc/sys/, 因此其完整路徑為/proc/sys/net/ipv4/ip_forward; /sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在于為管理Linux設備提供一種統一模型的的接口; 參考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/
-
Linux系統上的文件類型:
-:常規文件;即f; d: directory,目錄文件; b: block device,塊設備文件,支持以“block”為單位進行隨機訪問 c:character device,字符設備文件,支持以“character”為單位進行線性訪問 major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序 minor number:次設備號,用于標識同一類型中的不同的設備; 8位二進制:0-255 l:symbolic link,符號鏈接文件; p: pipe,命名管道; s: socket,套接字文件;
原創文章,作者:N27_ronny,如若轉載,請注明出處:http://www.www58058.com/79559
非常系統的整理,再接再勵。