在這篇文章中你講看到如下內容:
一、計算機的組成及功能
當今社會,沒有用過計算機的朋友應該算很少吧?就算沒經常接觸計算機,但是智能手機大概會人手一個或者多個吧。智能手機其實就可以算作是一個微小的計算機了。但是,你了解計算機是什麼嗎?計算機都有哪些部件組成嗎?接下來我們就談談計算機由哪些部件組成,各部件有什麼作用。
首先,我們來看一下什麼是計算機:『能夠接收和存儲信息、按程序快速計算和判斷並輸出處理結果的現代化智能電子設備』。通過以上的定義,我們可以總結一下:計算機是由硬件和軟件組成的。其中硬件就是可以接收用戶的輸入、存儲信息、處理結果的輸出、計算和判斷部件;而軟件就是程序。
專業一點的講,計算機的硬件由五大部件組成:運算器、控制器、存儲器和輸入輸出設備組成。
運算器:主要負責程序運算與邏輯判斷;
控制器:主要在協調各周邊組件與各單元間的工作;
存儲器:為CPU進行運算和判斷提供數據,並且CPU處理完畢的數據也要先寫到存儲器中;
輸入設備:存儲器上的數據就是從輸入設備傳輸進來的,如鍵盤、鼠標、掃描儀等等;
輸出設備:輸出經過CPU處理後的數據,如屏幕、打印機等等。
有了上面的這些硬件,計算機還不能夠工作,必須要有特定的程序,才能完成相應的工作,而計算機上的程序又分為系統程序和應用程序。
系統程序:能夠與硬件進行打交道,屏蔽掉硬件的復雜性,為其他應用程序提供接口,從而使計算機能夠完成各種各樣的任務。如操作系統,它就是一組程序,用於管理計算機的所有活動以及驅動系統中的所有硬件。
應用程序:是用戶按其需要自行編寫的專用程序,它借助系統軟件來運行。如我們常用的word字處理軟件、QQ即時聊天軟件等等。
二、Linux發行版
2.1.Linux的內核版本
Linux內核版本的編號是這個樣子的:
Major.minor.release 主版本.次版本.發布版本[-修改版本]
如:2.6.18
由於開發Linux內核的人很多,以致於造成Linux內核經常性的變動。而對於非開發人員或企業來說,他們需要的是一個穩定的版本,常變動的核心並不適合他們。因此托瓦茲便將內核的版本分為兩股,給予不同的編號:
主、次版本為奇數:發展中的版本
這種內核版本主要用在測試與發展新功能,所以通常這種版本僅有內核開發工程師才會使用。如果新增的功能測試完沒問題後,才會加入到下一版的穩定版本中。
主、次版本為偶數:穩定版本
等內核功能發展成熟後會加到這類的版本中,主要用於一般家庭計算機和企業中。
2.2.什麼是發行版
雖然由Torvalds負責開發的Linux僅具有Kernel與kernel提供的工具,但是很多軟件都可以在Linux上運行了,因此,這已經算是一個相對完整的操作系統了。但是,Liunx給用戶提供的是源代碼,這些源代碼想要運行,就必須先編譯成一個可執行程序。因此,想要使用Linux就必須先編譯Linux內核。但是,這個編譯過程相當復雜,並且耗時,就算是專業的計算機人員也未必可以編譯一套Linux系統。
為了讓更多讓使用者能夠接觸到Linux,於是很多的商業公司或非盈利團體,就將Linux Kernel 和一些工具軟件整合起來,編譯後再加上自己的一些工具軟件,這樣用戶就能用光盤或者通過網絡直接安裝Linux系統。我們把這個『Kernel + Software + tools』可完全安裝的系統稱為Linux發行版(Linux distribution)。
在這各發行版中,每個不同的發行版又有自己的版本號。如RHEL 7.X、Debian 8.X、
Fedora 23、OpenSuSE 13.X 等等。
2.3.主流發行版
如圖 2-3所示
在Linux的發展過程中,出現的發行版有幾百種,各發行版之間主打的功用也不盡相同,有是安全穩定的系統,有的則是絢麗多彩,或是對於不同計算機結構的支持,對一個具體區域或語言的本地化,實時應用和嵌入式系統。下面簡要介紹幾種主流的發行版:
Debian:它以穩定性著稱。Debian是社區類Linux的典范,是迄今為止最遵循GNU規范的Linux系統。Debian最具特色的是apt-get /dpkg包管理方式。
Ubuntu:它是基於Debian的二次發行版,特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。Ubuntu的目標在於為一般用戶提供一個最新的、同時又相當穩定的主要由自由軟件構建而成的操作系統。
S.u.S.E:它一直致力於創建一個連接數據庫的最佳Linux版本。在SuSE 操作系統下,可以非常方便地訪問Windows磁盤,這使得兩種平台之間的切換,以及使用雙系統啟動變得更容易。
RedHat:應該稱為Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server收費版本)、FedoraCore(由原來的Redhat桌面版本發展而來,免費版本)、CentOS(RHEL的社區克隆版本,免費)。是在國內使用人群最多的Linux版本,包管理方式采用的是基於RPM包的YUM包管理方式。
Gentoo:是Linux世界最年輕的發行版本,正因為年輕,所以能吸取在它之前的所有發行版本的優點,這也是Gentoo被稱為最完美的Linux發行版本的原因之一。
Arch Linux:最主要的特點之一就是,它是一個獨立的開放源代碼的發行版(這意味著它不基於任何其他的東西),Arch遵循滾動發布模式,因此你只要使用pacman執行定期的系統更新,就可以獲得最新的軟件。
2.4.發行版的基礎目錄及功用規定
Linux有眾多的發行版,這樣一些每一個發行版是否都不相同呢?這就不需要擔心,因為每個發行版都使用的Kernel都是http://www.kernel.org而來的。此外,為了讓所有的發行版開發差異不至於太大,且讓這些開發商有所依據,還有Linux Standard Base(LSB)等標准來規范開發者,同時,所有的發行版還必須遵循File system Hierarchy Standard(FHS)標准規范。
我們重點來看一下FHS,FHS實際上只規范了在根(/)目錄下各主目錄應該放什麼樣的文件。FHS定義了兩層規范,第一層是,/目錄下各個目錄應該放什麼文件數據。第二層則是針對/usr和/var這兩個子目錄來定義的。
在Linux中,所有的文件與目錄都是從根(/)目錄開始的,它是所有目錄與文件的源頭,然後再一個一個的分支下來,是一個樹狀結構。
如圖 2-4所示
/:根目錄root(/),一般建議在根目錄下只有目錄,不要直接有文件。它是系統啟動時第一個載入的分區,所有啟動過程會用到的文件都應該放在這個分區中;
/bin,/usr/bin,/usr/local/bin:放置用戶可執行的二進制文件的目錄,如常用的命令ls,mv,mkdir,rm,cp等等都放置在這裡;
/boot:放置Linux系統啟動時用到的文件,boot loader 必須用到的個靜態文件,kernel,grub,initramfs(initrd)等;
/dev:在Linux中,任何設備都以文件類型存放在這個目錄中。設備又分為字符設備(character device),如鍵盤、鼠標等;塊設備(block device),如硬盤、光盤等。重要的文件有/dev/null,/dev/tty[1-6],/dev/ttyS*,/dev/hd*,/dev/sd*等。
/etc:系統的主要配置文件幾乎都存放在這個目錄中,/etc/init.d/目錄存放了所有服務的默認啟動腳本;
/home:系統默認的普通用戶的家目錄;
/lib,/usr/lib,/usr/local/lib:存放基礎共享庫和內核模塊。為系統啟動或根文件系統上的應用程序提供共享庫,以及為內核提供內核模塊;
/lost+found:系統出現異常,產生錯誤是,會將一些遺失的片段放在這個目錄中,通常這個目錄會自動出現在某個分區最頂層的目錄下;
/mnt,/media:軟盤和光盤或移動便攜設備的默認掛載點;
/opt:附加應用程序安裝位置;
/srv:一些服務啟動之後,這些服務所需要訪問的數據目錄;如WWW服務器需要的網頁數據就在/srv/www中;
/root:系統管理員的家目錄;
/tmp:一般用戶或者正在執行的程序臨時放置文件的地方,可供所有用戶寫入;
/sbin,/usr/sbin,/usr/local/sbin:放置系統管理員用到的命令;
/proc:這個目錄是一個“虛擬文件系統”,它放置的數據都在內存中,如內核參數、外部設備的狀態、網絡狀態等。因為這個目錄在內存中,所有本身不占用任何硬盤空間;
/usr:包含系統的主要程序、圖形界面所需要的文件、額外的函數庫、本機自行安裝的軟件,以及共享的目錄與文件,重要的子目錄有:
/usr/bin,/usr/sbin:普通用戶與管路員可執行文件放置的目錄;
/usr/include:C/C++等程序語言的頭文件;
/usr/lib:各應用軟件的函數庫文件放置的地方;
/usr/local:本機自行安裝的軟件默認放置目錄;
/usr/share:共享文件放置的目錄;
/usr/src:Linux系統相關程序源碼放置的目錄
/usr/X11R6:系統內X Window System所需要的執行文件幾乎都放在這裡;
/var:主要放置系統執行過程中經常變化的文件,如緩存(cache)或日志文件;
/var/cache:程序文件在運行過程中的一些暫存盤;
/var/log:登錄文件放置的目錄;
/var/spool:隊列數據存放的地方。
2.5. Linux系統設計的哲學思想
1. 一切皆文件,在Linux系統中把所有的資源都抽象成文件形式,包括硬件設備,甚至是通信;
2. 單一目的的小程序,組合小程序完成復雜任務;
3. 文本文件保存配置信息;
4. 避免強制性的用戶界面。
三、Linux系統上獲取命令幫助,及man手冊的章節
首先,使用type命令,查看所使用的命令是內部命令(shell builtin),還是外部命令。
使用格式 ~]#type COMMAND
注:~]#表示命令提示符
如果要使用的命令是內部命令,則可以使用help命令還查看該命令的使用方法。
使用格式 ~]#help COMMAND
如果是外部命令,則可以使用下面的方法:
~]# COMMAND --help
~]#man COMMAND
手冊有文件放置在/usr/share/man,並且手冊頁有章節之分。
1、Standard commands (標准命令)
2、System calls (系統調用)
3、Library functions (庫函數)
4、Special devices (設備說明)
5、File formats (文件格式)
6、Games and toys (游戲和娛樂)
7、Miscellaneous (雜項)
8、Administrative Commands (管理員命令)
使用whatis命令可以查看一個命令有哪些章節,每個命令不一定每一個章節都有;
~]#whatis COMMAND
如果想要查看命令的特定章節幫助文檔,可以使用:
~]#man CHAPTER COMMAND
~]#info COMMAND
除此之外,很多應用程序會自帶幫助文檔,他們通常放置在/usr/share/doc/目錄下,另外,我們還可以在主流發行版的官方文檔上獲取幫助,如http://www.redhat.com/doc,或程序的官方文檔中獲取幫助。還有,別忘了我們還有Google神奇,也可以獲取幫助。
四、Linux中命令的使用格式
1. 命令的分類
由shell程序自帶的命令:內置命令(builtin);
獨立的可執行文件,文件名即為命令名:外部命令。
其中,shell程序是一個獨特的程序,它負責解析用戶提供的各種命令。它是根據一個環境變量PATH的值來判斷從哪些路徑中去查找用戶輸入的命令字符串所對應的文件。
2. 命令的語法通用格式
~]#COMMAND [OPTIONS…] [ARGUMENTS…]
它表示將一個二進制文件運行為一個進程。這些文件多數都存放在/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin目錄下。
3. 命令的選項OPTIONS
它的作用是可以指定命令的運行特性。有兩種表現形式:
短選項:如-a,-C,-d等等,不同的命令支持的選項也不相同;
長選項:--help,--color等等。
如果一個命令同時使用多個短選項,多數情況下這些短選項是可以合並的,如ls -ld。長選項一般不能合並。另外,有寫選項也可以帶參數,稱為選項參數,長選項的參數一般用“=”,短選項的參數用空格分隔。
4. 命令的參數ARGUMENTS
命令的參數指明了命令作用的對象,不同的命令參數和參數個數也不一樣,有些命令可以帶多個參數,參數之間以空格分隔。
五、 一些命令的示例
hwclock命令:查詢或設置硬件時鐘(RTC)
語法格式:hwclock [function] [options...]
說明:
方法:
-r | --show 讀取並打印硬件時鐘
-s | --hctosys 將硬件時鐘同步到系統時鐘
-w | --systohc 將系統時鐘同步到硬件時鐘
--set --date=<時間日期> 使用給定的--date來設置RTC時間
常用選項:
-u | --utc 使用utc時間
--localtime 使用本地時間
用法:
date命令:顯示當前時間或設置系統時間
語法格式:
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
用法:
1.顯示當前時間:
格式符:
%Y%m%d%k%M%S表示年月日時分秒;
%D,日期,%m/%d/%y;
%F,日期,%Y-%m-%d;
%T,時間,%H:%M:%S;
如果想顯示未來或過期的時間,可以加上-d選項:
2.設置系統時間
-s選項:設置系統時間,方式多種多樣,任你選
-u選項:設置utc時間,時間格式[MMDDhhmm[[CC]YY][.ss]]:
pwd命令:是print working directory的縮寫,用於顯示當前所在的目錄,它是一個shell內嵌的命令(builtin)。命令提示符只提示當前所在目錄的basename,並不提示完整的目錄名。如果切換目錄太多,我們可能不知道當前所在的目錄,這時候就需要用到pwd命令。
語法格式:pwd [OPTION]…
常用選項: –P,用來顯示實際的工作目錄,而不是鏈接文件的目錄。
用法:
echo命令:將SRTING回顯至標准輸出,它也是shell的內嵌命令。
語法格式: echo [SHORT-OPTION]... [STRING]...
常用選項: -n,命令執行完後不進行換行;
-e,讓轉義字符生效;
用法:
常用的轉義字符:
\\ 反斜槓
\b 空格
\n 換行
\r 回車
shutdown命令:關機或重啟系統
語法格式:shutdown [OPTIONS...] [TIME] [WALL...]
常用選項:-H,--halt,讓機器停止工作
-P,--poweroff,把機器斷電
-r,--reboot,重啟
-c,取消關機操作
說明:TIME後面可以跟一個WALL,它可以在關機之前給所有用戶發一條消息。時間的格式可以是”HH:MM”,表示幾時幾分關機;也可以是”+m”,表示幾分鐘後關機;也可以是”now”,它和”+0”表示一個意思,立即關機。若不指定時間,則默認為”+1”。
注:shutdown實際上是調用init 0, init 0會cleanup一些工作然後調用halt或者poweroff。
poweroff和halt命令:關機
語法格式:poweroff [OPTION]...
halt [OPTION]…
halt就是調用shutdown -h。halt執行時﹐殺死應用進程﹐執行sync系統調用﹐文件系統寫操作完成後就會停止內核。poweroff在關閉計算機操作系統之後,最後還會發送ACPI指令,通知電源,最後切斷電源供應。
ifconfig命令:是一個用來查看、配置、啟用或禁用網絡接口的工具,利用它配置的網絡信息會立即生效,但重啟網絡服務或系統後就會失效;若想要永久有效,則需修復系統內的網絡配置文件。這是一個老式的命令,現在替代它的是ip addr 和 ip link。
語法格式: ifconfig [interface]
Ifconfig interface [AFtype] options | address
說明:AF(address families),目前所支持的地址家族包括inet(TCP/IP, 默認), unix (UNIX Domain), inet6 (IPv6) ,ax25 (AMPR AX.25), netrom (AMPR NET/ROM), rose (AMPR ROSE) ,ipx (Novell IPX), ddp (Appletalk DDP), ec (Econet) ,ash (Ash) ,x25 (CCITT X.25) .
ifconfig 如果不接任何參數,輸出的是活動的網卡信息;如果接一個-a參數,則顯示的是所有網卡的信息,包括非活動網卡信息。
Ifconfig常用選項:
interface:網卡的名字,用於顯示指定網卡的信息,網卡的名字通常是eth#,其中#是一個數字,代表第幾塊網卡。如:
up|down:激活或關閉指定的網卡
netmask ADDR:設置指定網卡的子網掩碼
broadcast ADDR:設置指定網卡的廣播地址
[-]arp:開啟或關閉指定網卡的arp協議
mtu NUM:設置指定網卡的最大傳輸單元
hw HWTYPE ADDR:設置指定網卡的MAC地址,HWTYPE一般為ether,以太網。
如設置eth0的IP地址,MAC地址,子網掩碼和廣播地址並啟動該網卡:
tty命令:用於顯示終端機連接標准輸入設備的文件名稱
語法格式: tty [OPTION]…
常用選項:-s ,--silent, --quiet:靜默模式,不打印,只返回命令的執行狀態結果
startx命令:啟動X window服務
補充說明:startx為啟動X Window的script文件,實際上啟動X Window的程序為xinit。
export命令:它是shell的一個內嵌命令,用於設置或顯示環境變量。在shell中執行程序時,shell會提供一組環境變量。export可新增,修改或刪除環境變量,供後續執行的程序使用。Export僅對該次登陸操作有效。
語法格式:export [-fn] [name[=value] ...] or export -p
常用選項:-f 代表[變量名稱]中為函數名稱。
-n 刪除指定的變量。變量實際上並未刪除,只是不會輸出到後續指令的執行環境中。
-p 列出所有的shell賦予程序的環境變量。
列出當前的環境變量:
定義一個環境變量並賦值:
history命令:它是shell的內嵌命令,是用來顯示和操作命令歷史列表的。Shell進程會在其會話中保存我們運行過的每一個命令。
Shell環境中有一些環境變量可以指定history命令的工作特性,可以通過改變這些環境變量的值來定制history的功能:
HISTSIZE:shell進程可保存的命令歷史的條數,默認為1000;
HISTFILE:保存命令歷史的文件,如果不指定,默認為~/.bash_histroy;當前執行的命令不會立即保存至命令歷史文件,而是先緩存起來;
HISTFILESIZE:命令歷史文件的大小;
HISTCONTORL:控制命令歷史記錄的方式,取值有三種:
ignoredups:忽略重復的命令,(默認值);
ignorespace:忽略以空白字符開頭的命令;
ignoreboth:以上兩者同時生效。
注意:在shell中修改這些環境變量的值後,只對當前進程有效,如果想永久有效,則需要修改配置文件~/.bash_profile。
另外,我們還可以調用命令歷史列表中運行過的命令。
!N:表示再執行一次歷史列表中的第N條命令;
!!:再執行一次上一次執行的命令;
!STRING:再執行一次命令歷史列表中最近一次執行的以STRING開頭的命令。
除此之外,我們還可以調用上一次執行的命令的最後一個參數,這對於我們想要使用上一次命令中最後一個參數特別長時就非常有效。
先按ESC鍵,在按.號或使用!$都可以引用上一次命令的最後一個參數。
history命令的使用:
history [-c] [-d offset] [n]
history -anrw [filename]
常用選項:
n:列出最近使用的n條命令;
-c:清除命令歷史,它只是清除了當前shell中的命令歷史,並沒有清除命令歷史文件中的記錄;
-d OFFSET:刪除命令歷史中的第OFFSET條記錄;
-a:將當前會話中新增的命令歷史追加到文件中,如果沒指定文件,則寫到默認文件~/.bash-history中去;
-n:顯示還沒有從歷史文件中讀取的歷史記錄;
-r:將歷史記錄文件中的內容讀到當前shell的history中去;
-w:將當前history中的內容寫入命令歷史文件中。
http://xxxxxx/Linuxjc/1179370.html TechArticle