初識Linux

在這篇文章中你講看到如下內容:

1.       計算機的組成及功能;

2.       Linux發行版之間的區別和聯系;

3.       Linux發行版的基礎目錄及功用規定;

4.       Linux系統設計的哲學思想;

5.       Linux系統上獲取命令幫助,及man手冊的章節;

6.       命令的使用格式及一些命令的使用。

 

一、計算機的組成及功能

當今社會,沒有用過計算機的朋友應該算很少吧?就算沒經常接觸計算機,但是智能手機大概會人手一個或者多個吧。智能手機其實就可以算作是一個微小的計算機了。但是,你了解計算機是什么嗎?計算機都有哪些部件組成嗎?接下來我們就談談計算機由哪些部件組成,各部件有什么作用。

  首先,我們來看一下什么是計算機:『能夠接收和存儲信息、按程序快速計算和判斷并輸出處理結果的現代化智能設備』。通過以上的定義,我們可以總結一下:計算機是由硬件和軟件組成的。其中硬件就是可以接收用戶的輸入、存儲信息、處理結果的輸出、計算和判斷部件;而軟件就是程序。

  專業一點的講,計算機的硬件由五大部件組成:運算器、控制器、存儲器和輸入輸出設備組成。

  運算器:主要負責程序運算與邏輯判斷;

  控制器:主要在協調各周邊組件與各單元間的工作;

  存儲器:為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.主流發行版

初識Linux

如圖 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中,所有的文件與目錄都是從根(/)目錄開始的,它是所有目錄與文件的源頭,然后再一個一個的分支下來,是一個樹狀結構。

初識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

          如果是外部命令,則可以使用下面的方法:

1. 命令自帶的簡要格式的使用幫助

          ~]# COMMAND  --help

2. 手冊頁的使用

          ~]#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

3. 獲取命令的在線文檔

          ~]#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

命令的參數指明了命令作用的對象,不同的命令參數和參數個數也不一樣,有些命令可以帶多個參數,參數之間以空格分隔。

 

五、 一些命令的示例

        1. hwclock命令:查詢或設置硬件時鐘(RTC)

         語法格式:

          hwclock  [function]  [options...]

         方法:

    -r | –show       讀取并打印硬件時鐘

           -s | –hctosys     將硬件時鐘同步到系統時鐘

           -w | –systohc     將系統時鐘同步到硬件時鐘

    –set  –date=<時間日期>    使用給定的–date來設置RTC時間

         常用選項:

           -u | –utc      使用utc時間

           –localtime    使用本地時間

用法:

初識Linux

         2.date命令:顯示當前時間或設置系統時間

        語法格式:

         date  [OPTION]...  [+FORMAT]
         date  [-u|--utc|--universal]  [MMDDhhmm[[CC]YY][.ss]]

        用法:

        (1).顯示當前時間:

初識Linux

         格式符:

         %Y%m%d%k%M%S表示年月日時分秒;

         %D,日期,%m/%d/%y;

         %F,日期,%Y-%m-%d;

         %T,時間,%H:%M:%S;

        初識Linux

  初識Linux

         如果想顯示未來或過期的時間,可以加上-d選項:

  初識Linux

 

         (2).設置系統時間

         -s選項:設置系統時間,方式多種多樣,任你選

         初識Linux

         初識Linux

         -u選項:設置utc時間,時間格式[MMDDhhmm[[CC]YY][.ss]]:

         初識Linux

  3. pwd命令:是print working directory的縮寫,用于顯示當前所在的目錄,它是一個shell內嵌的命令(builtin)。命令提示符只提示當前所在目錄的basename,并不提示完整的目錄名。如果切換目錄太多,我們可能不知道當前所在的目錄,這時候就需要用到pwd命令。

         語法格式:

                pwd  [OPTION]…

         常用選項: –P,用來顯示實際的工作目錄,而不是鏈接文件的目錄。

         用法:

初識Linux

       初識Linux

 4. echo命令:將SRTING回顯至標準輸出,它也是shell的內嵌命令。

         語法格式:

                echo  [SHORT-OPTION]...  [STRING]...

         常用選項: -n,命令執行完后不進行換行;

                               -e,讓轉義字符生效;

         用法:

初識Linux

常用的轉義字符:

\\     反斜杠

\b     空格

\n     換行

\r     回車

         初識Linux

         5. shutdown命令:關機或重啟系統

         語法格式:

                shutdown  [OPTIONS...]  [TIME]  [WALL...]

         常用選項:-H,–halt,讓機器停止工作

                              -P,–poweroff,把機器斷電

                              -r,–reboot,重啟

                              -c,取消關機操作

         說明:TIME后面可以跟一個WALL,它可以在關機之前給所有用戶發一條消息。時間的格式可以是”HH:MM”,表示幾時幾分關機;也可以是”+m”,表示幾分鐘后關機;也可以是”now”,它和”+0”表示一個意思,立即關機。若不指定時間,則默認為”+1”。

初識Linux

   注:shutdown實際上是調用init 0, init 0會cleanup一些工作然后調用halt或者poweroff。

 6. poweroff和halt命令:關機

         語法格式:

                    poweroff  [OPTION]...
            halt  [OPTION]…

         halt就是調用shutdown -hhalt執行時﹐殺死應用進程﹐執行sync系統調用﹐文件系統寫操作完成后就會停止內核。poweroff在關閉計算機操作系統之后,最后還會發送ACPI指令,通知電源,最后切斷電源供應。

         7. 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參數,則顯示的是所有網卡的信息,包括非活動網卡信息。

   初識Linux

         常用選項:

         interface:網卡的名字,用于顯示指定網卡的信息,網卡的名字通常是eth#,其中#是一個數字,代表第幾塊網卡。如:

  初識Linux

         up|down:激活或關閉指定的網卡

  初識Linux

         netmask ADDR:設置指定網卡的子網掩碼

         broadcast ADDR:設置指定網卡的廣播地址

         [-]arp:開啟或關閉指定網卡的arp協議

         mtu NUM:設置指定網卡的最大傳輸單元

         hw HWTYPE ADDR:設置指定網卡的MAC地址,HWTYPE一般為ether,以太網。

         如設置eth0的IP地址,MAC地址,子網掩碼和廣播地址并啟動該網卡:

  初識Linux

       8. tty命令:用于顯示終端機連接標準輸入設備的文件名稱

       語法格式:

                 tty  [OPTION]…

       常用選項:-s ,–silent, –quiet:靜默模式,不打印,只返回命令的執行狀態結果

       初識Linux

      

9. startx命令:啟動X window服務

補充說明:startx為啟動X Window的script文件,實際上啟動X Window的程序為xinit。

      

        10. export命令:它是shell的一個內嵌命令,用于設置或顯示環境變量。在shell中執行程序時,shell會提供一組環境變量。export可新增,修改或刪除環境變量,供后續執行的程序使用。export僅對該次登陸操作有效。

         語法格式:

                    export  [-fn]  [name[=value] ...]  or  export  -p

         常用選項:-f  代表[變量名稱]中為函數名稱。

-n  刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。

-p  列出所有的shell賦予程序的環境變量。

          列出當前的環境變量:

   初識Linux

          定義一個環境變量并賦值:

   初識Linux

          11.history命令:它是shell的內嵌命令,是用來顯示和操作命令歷史列表的。Shell進程會在其會話中保存我們運行過的每一個命令。

   shell環境中有一些環境變量可以指定history命令的工作特性,可以通過改變這些環境變量的值來定制history的功能:

          HISTSIZE:shell進程可保存的命令歷史的條數,默認為1000;

          HISTFILE:保存命令歷史的文件,如果不指定,默認為~/.bash_histroy;當前執行的命令不會立即保存至命令歷史文件,而是先緩存起來;

          HISTFILESIZE:命令歷史文件的大??;

          HISTCONTORL:控制命令歷史記錄的方式,取值有三種:

                                     ignoredups:忽略重復的命令,(默認值);

                                     ignorespace:忽略以空白字符開頭的命令;

                                     ignoreboth:以上兩者同時生效。

          注意:在shell中修改這些環境變量的值后,只對當前進程有效,如果想永久有效,則需要修改配置文件~/.bash_profile。

          另外,我們還可以調用命令歷史列表中運行過的命令。

                   !N:表示再執行一次歷史列表中的第N條命令;

                   !?。涸賵绦幸淮紊弦淮螆绦械拿睿?/p>

                   !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中的內容寫入命令歷史文件中。

 

原創文章,作者:Syuan,如若轉載,請注明出處:http://www.www58058.com/61812

(0)
SyuanSyuan
上一篇 2016-12-01
下一篇 2016-12-01

相關推薦

  • grep、find練習

    1.顯示當前系統上root,fedora或user1用戶的默認shell [root@study ~]# cat /etc/passwd|grep -E "^(root|fedora|user1)"|cut -d: -f7 /bin/bash /bin/bash /bi…

    Linux干貨 2016-11-27
  • 常用文本處理工具 及 正則表達式詳解

      >>>文本處理工具<<< 一:文本查看(cat、less、more、head、tail、cut、paste) cat  (常用于顯示內容較少的文本) 功能:查看文件內容,創建文件,文件合并,追加文件內容 選項(options):  ①查看文件內容:  -A  = -vt…

    2017-07-30
  • 練習-vim的使用

    vi編輯器是linux上最常用的編輯器,vim是vi增強版, 一、vim的幾種模式     編輯模式、插入模式、命令行模式     編輯模式:可以進行光標移動,字符刪除,行的增刪復制粘貼等操作  插入模式:對字符進行編輯,  命令行模式:通過各種命令進行保存,查找,替換,環境設置等操作 &…

    Linux干貨 2016-07-04
  • linux之網絡管理基礎

    一.IP分配的概述 公式1 一個網段的主機數=2^主機位數-2 主機ID位數=32-網絡ID位數 公式2 網絡ID=IP與子網掩碼 公式3 劃分子網: 一個大網分成若干個小網 網絡ID向主機位借位n,子網數2^n 公式4 損失IP-=(子網數2^n-1)*2 合并多個小子網成一個大的超網 如 172.16.0.0-172.31.0.0 就是主機ID向網絡ID…

    Linux干貨 2016-09-16
  • ?文件服務器 – vsftpd

    文件服務器 – vsftpd 概述 FTP協議 vsftpd的配置文件 vsftpd + pam + file_db + virtual_vsftp_user vsftpd + pam + mysql + virtual_vsftp_user 登錄時錯誤類型 總結 文件服務器是一種專供其他電腦訪問文件和存儲的程序。文件服務器通常比一般的個人電腦擁…

    Linux干貨 2016-10-15
  • 新的開始

    hello,我在這里,馬哥運維,一起努力!

    Linux干貨 2016-12-26
欧美性久久久久