計算機的組成及其功能和Linux基礎(一)

一. 計算機的組成及其功能

         電子計算機(computer)俗稱電腦,是現代一種用於高速計算的電子計算機器,能夠進行計算,還具備存儲記憶功能。linux

        計算機的組成主要分爲硬件(hardware)軟件(software)兩部分。shell

    硬件部分

            硬件部分主要分爲運算器、存儲器、控制器、輸入設備、輸出設備五部分。編程

            運算器(Datapath):實現算術運算和邏輯運算(與控制器組成CPU)。ubuntu

            存儲器(memory):將輸入設備接收到的信息以二進制的數據形式存到存儲器中。小程序

            控制器(Control): 將指令逐條從存儲器中取出,經譯碼分析後向全機發出相應的操做控制信號做用於其餘部件,使各部件有條不紊地協調工做(與運算器組成CPU)。緩存

            輸入設備(Input): 將數據、程序、文字符號、圖象、聲音等信息輸送到計算機中。bash

            輸出設備(Output):將計算機的運算結果或者中間結果打印或顯示出來。app

    軟件部分

            操做系統(Operating System,OS):管理、控制和監督計算機軟、硬件資源協調運行的程序系統,由一系列具備不一樣控制和管理功能的程序組成,它是直接運行在計算機硬件上的、最基本的系統軟件,是系統軟件的核心。dom

            彙編語言(assembly language):一種用於CPU的低級語言。它使用助記符代替機器指令(二進制語言),方便人類的閱讀及操做。一種彙編語言只能與相對應的計算機系統結構對應,沒法在不一樣平臺之間直接移植。編輯器

二.Linux的發行版,及不一樣發行版間的聯繫與區別

        Linux的發行版按照程序包管理器的不一樣,一般被分紅了不一樣的派系。

        Debian以社區的方式運做,沒有商業公司支持

               ubuntu:基於Debian的二次發行,界面華麗

                    mint:基於ubuntu的二次發行

               knopix:基於Debian的二次發行

        slackware:SLS的一個分支,UNIX風格的Linux發行版本

        S.u.S.E:基於slackware的二次發行,界面華麗,符合歐洲人的使用習慣

                SLES:S.u.S.E的企業版

                OpenSUSE:S.u.S.E的開源我的桌面版

        Redhat:早期主要是我的桌面版,Redhat9.0以後,主要分爲RHEL(Red Hat Enterprise Linux)和Fedora Core

                RHEL(Red Hat Enterprise Linux):Redhat企業版

                         CentOS(Community ENTerprise OS):基於RHEL的二次發行

                Fedora Core:Redhat我的桌面版,每六個月發佈新版本

        Gentoo:基於Linux的自由操做系統,能爲幾乎任何應用程序或需求自動地做出優化和定製。

        ArchLinux:輕量簡潔,Linux新貴

 聯繫:

  1. 全部發行版都是使用Linux內核;

  2. 都須要遵循遵循GNU  GPL;

  3. 全部的發行版都有本身的版本號,版本格式約定基本同樣(主版本號.次版本號.發行號.修正號)。

區別:發行版的本質區別,在於繼承不一樣版本的內核,庫,程序。按軟件包管理系統的不一樣,主要分爲

  1. rmp包管理系統:SLES、Fedora、OpenSUSE、CentOS、RHEL

  2. DPKG包管理系統:Debian、Ubuntu

三.Linux的哲學思想,並對其進行解釋性描述

  1.  一切皆文件

    把幾乎全部資源通通抽象爲文件形式,包括硬件設備,甚至通訊接口等;

    好比:物理終端:/dev/console

              虛擬終端:/dev/tty# (#爲1~6)

              串行終端:/dev/ttyS#

              僞終端:/dev/pts/#

  2. 由衆多功能單一的程序組成

    一個程序只能作一件事,而且作好;組合小程序完成複雜任務

  3. 儘可能避免跟用戶交互

    目標:易於以編程的方式實現自動化任務

  4. 使用文本文件保存配置信息

    經過文本保存,就可使用文本編輯器實現大多數程序的管理工做

四.說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,並配合相應的示例來闡述

首先要了解命令的語法通用格式:# COMMAND OPTIONS ARGUMENTS

COMMAND: 

            發起一個命令:請求內核將某個二進制程序運行爲一個進程;

                   程序 --> 進程

                    靜態 --> 動態(有生命週期)

            命令自己是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;多數系統程序文件都存放在:

                    普通命令:/bin, /usr/bin, /usr/local/bin

                    管理命令:/sbin, /usr/sbin, /usr/local/sbin

            命令每每會調用到許多庫文件,這些庫可能許多程序都會遇到,咱們形象的稱之爲共享庫這些共享庫也是二進制文件,可是因爲其沒有程序執行入口,因此不能獨立執行。只能被其餘有執行入口的程序調用時才能執行,通常這些庫都存放在這些目錄下

                    32bits的庫:/lib, /usr/lib, /usr/local/lib

                    64bits的庫:/lib64, /usr/lib64, /usr/local/lib64

            注意:並不是全部的命令都有一個在某目錄與之對應的可執行程序文件

            命令必須遵循特定格式規範:exe, msi, ELF(Linux)

            命令分爲兩類:

                    由shell程序的自帶的命令:內置命令(builtin)

                    獨立的可執行程序文件,文件名即命令名:外部命令

            shell程序是獨特的程序,負責解析用戶提供的命令;

            環境變量:

                    PATH:從哪些路徑中查找用戶鍵入的命令字符串所對應的命令文件;

                    查找次序:自左而右;

            查看命令類型:type COMMAND

OPTIONS:

            指定命令的運行特性;

            選項有兩種表現形式:

                        短選項:-C, 例如-l, -d  

                                注意:有些命令的選項沒有-;  若是同一命令同時使用多個短選項,多數可合併:-l -d = -ld

                        長選項:--word, 例如--help, --human-readable

                                注意:長選項不能合併;

                        注意:有些選項能夠帶參數,此稱爲選項參數;

ARGUMENTS:

            命令的做用對象;命令對什麼生效;

            注意:不一樣的命令的參數;有些命令可同時帶多個參數,多個之間以空白字符分隔;

ifconfig用於查看活動接口的IP地址,其做用等同於ip addr list

    經常使用方法:[root@SilasSZL ~]# ifconfig

      [root@SilasSZL ~]# ip addr list

echo:是個內建命令,用來將字符串輸出到終端上。使用help echo來獲取echo的幫助信息。

         語法:echo [SHORT-OPTION]... [STRING]...

              -n 關閉自動換行功能

            -e讓轉義符生效

                  \n:換行

                  \t:製表符

                  \b:退格(刪除前一個字符)

        備註:STRING可使用引號,單引號雙引號都可用

            單引號:強引用,變量不執行替換

    經常使用方法:[root@SilasSZL ~]# echo '$SHELL'

        $SHELL

            雙引號:弱引用,變量引用會被替換

    經常使用方法:[root@SilasSZL ~]# echo "$SHELL"

      /bin/bash

tty:查看當前的終端設備

    語法: tty [OPTION]… 

    經常使用方法:[root@SilasSZL ~]# tty

      /dev/pts/0

startx:在某一虛擬終端接口運行命令

export:用於將查看環境變量,或給變量賦值

    查看環境變量:export

    變量賦值:export name=value

pwd(printing working directory)顯示當前工做目錄(以絕對路徑的方式

    語法: pwd [OPTION]..

    經常使用方法:[root@SilasSZL ~]# pwd

      /root

    PATH:執行文件路徑的變量

        $PWD:當前工做目錄

        $OLDPWD:上一次的工做目錄

history:管理命令歷史

    定製history的功能,可經過環境變量實現:

            HISTSIZE:shell進程可保留的命令歷史的條數;

            HISTFILE:持久保存命令歷史的文件;

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

     命令用法:

            history [-c] [-d 偏移量] [n]  或 history -anrw [文件名]    或 history -ps 參數 [參數...]

            -c: 清空命令歷史;

           -d offset:刪除指定命令歷史;

            -r: 從文件讀取命令歷史至歷史列表中;

            -w:把歷史列表中的命令追加至歷史文件中;

           history #:顯示最近的#條命令;

      控制命令歷史記錄的方式:

            環境變量:HISTCONTROL

                    ignoredups:忽略重複的命令;

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

                    ignoreboth:以上二者同時生效

shutdown:系統關機、關閉全部程序、按照用戶須要重啓或關機 

        語法:shutdown [OPTION…] [TIME] [WALL…]

        經常使用方法:

                 -c:取消關機 

                 -h:將系統關機 

                 -r:重啓系統

                 TIME:設置多久時間後執行shutdown指令

                         now:馬上

                         +m:提交多少分鐘後

                         hh:mm:具體時間

                WALL:要傳送給全部登入用戶的信息

poweroff:用來關閉計算機操做系統而且切斷系統電源

        語法: poweroff [OPTION]…

        經常使用方法:

                -f:強制關閉系統 

reboot:用來從新啓動正在進行的Linux操做系統

        語法:reboot [OPTION]…

        經常使用方法:

                -f:強制從新開機

                -p:切斷電源

hwclock修改時鐘包括系統時間和硬件時間

       語法: hwclock [functions] [options]

        經常使用方法:

                -s, --hctosys:以硬件爲準,把系統時間調整爲與硬件時間相同;

                -w, --systohc:以系統爲準,把硬件時間調整爲與系統時間相同;

date顯示或設置系統時間與日期

    語法:顯示日期時間:date [OPTION]... [+FORMAT]

                設定日期時間:date [MMDDhhmm[[CC]YY][.ss]]

     常見方法:

                %F:年月日 

               %T:小時分鐘秒 

               %Y:年

               %m:月

               %d:日

               %H:小時(24小時進制)

               %S:秒 

               %s:秒(從1970年1月1號(unix元年)0點0分0秒到命令執行那一刻通過的秒數)

五.如何在Linux系統上獲取命令的幫助信息,請詳細列出,描述man文檔的章節是如何劃分的

Linux的幫助有內部命令(內建命令)和外部命令之分。內部命令和外部命令的功能基本相同,但存在的位置有差別。

        內部命令:shell程序的一部分,其包含的每每是一些簡單的linux系統命令。

                 help 做用:用於顯示shell內部命令的幫助信息

                語法:help(選項)(參數)

         外部命令:由如下幾個途徑:

  1.   經過命令自帶的幫助信息

    # COMMAND --help

    # COMMAND --h

  2. 使用手冊(manual)

    Man手冊段落含義(SECTION):

         NAME:功能性說明

         SYNOPSIS:語法格式

         DESCRIPTION:描述

         EXAMPLES:使用示例

         AUTHOR: 做者

         BUGS: 報告程序bug的方式

         SEE ALSO: 參考

    經過man命令獲取目錄的幫助信息頁當中有一些用符號標記的內容,這些符號的意義:

         []:可選內容

         <>:必須提供的內容

         a|b|c:多選一

         ...:同類內容可出現多個

    man命令的操做方法:

    翻屏操做:

        空格鍵:向下翻一頁

        PaGe Down鍵:向下翻一頁

        PaGe Up鍵:向上翻一頁

        Ctrl+d:向下翻半頁

        Ctrl+u:向上翻半頁

        回車鍵:向下翻一行

        k:向上一行

        G:跳轉至最後一行

        #(數字)G:跳轉至指定行

        1G:跳轉至文件首部

    文本搜索:

        /keyword:從文件首部向文件尾部依次查找,不區分字符大小寫

        ?keyword:從文件尾部向文件首部依次查找

        n:與查找命令方向相同

        N:與查找命令方向相反

    退出:q: quit

  3. 信息頁(info COMMAND)

    獲取命令的在線文檔;

  4. 程序自身的幫助文檔

    README:程序的相關的信息;

    INSTALL: 安裝幫助;

    CHANGES:版本迭代時的改動信息;

  5. 程序的官方文檔

    官方站點上的「Document」

  6. 發行版的官方文檔

    例如 Radhat:http://www.redhat.com/doc

  7. 善用搜索引擎

    提供兩種幫助搜索的小: 1)keyword filetype: 2)keyword site:domain.tld

六.請羅列Linux發行版的基礎目錄名稱命名法則及功用規定

Linux各類發行版都遵循LSB(LinuxStandards Base)規則,使用一致的相同的基礎目錄名稱,使用根文件系統結構(root filesystem),使用FHS(files Hierarchy Standard)層次結構。

        /bin:全部用戶可用的基本命令程序文件;

        /sbin:供系統管理使用的工具程序;

        /boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等;

        /dev:存儲特殊文件或設備文件;

        /etc:系統程序的配置文件,只能爲靜態;

        /home:普通的家目錄的集中位置;通常每一個普通用戶的家目錄默認爲此目錄下與用戶名同名的子目錄,/home/USERNAME;

        /root:管理員的家目錄;

        /lib:爲系統啓動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及爲內核提供內核模塊;

        /lib64:64位系統特有的存放64位共享庫的路徑;

        /media:便攜式設備掛載點,cdrom, floppy等;

        /mnt:其它文件系統的臨時掛載點;

        /opt:附加應用程序的安裝位置;

        /srv:當前主機爲服務提供的數據;

        /tmp:爲那些會產生臨時文件的程序提供的用於存儲臨時文件的目錄;可供所用戶執行寫入操做;有特殊權限;

        /usr:usr Hierarchy,全局共享的只讀數據路徑;

                  bin:存放了保證系統擁有完整功能而提供的應用程序;

                  sbin:存放了保證系統擁有完整功能而提供的應用程序,系統管理命令;

                  include: C程序的頭文件;

                  share:結構化獨立的數據;

                  local:第三方應用程序的安裝位置:bin, sbin, lib, lib64, etc, share;

        /usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也一般用於安裝第三方程序;

        /var:/var Hierarchy,存儲常發生變化的數據的目錄;

                  cache:應用程序緩存數據目錄;

                  lib:存放系統正常運行時,隨時會改變的文件

                  local:專用於爲/usr/local下的應用程序存儲可變數據;

                  lock:鎖文件

                  log:日誌目錄及文件;

                  opt:專用於爲/opt下的應用程序存儲可變數據;

                  run:運行中的進程相關的數據;一般用於存儲進程的pid文件;

                  spool:應用程序數據池;

                  tmp:保存系統兩次重啓之間產生的臨時數據;

        /proc:基於內存的虛擬文件系統,用於爲內核及進程存儲其相關信息;它們多爲內核參數;

        /sys:sysfs虛擬文件系統提供了一種比proc更爲理想的訪問內核數據的途徑;其主要做用在於爲管理Linux設備提供一種統一模型的的接口;

相關文章
相關標籤/搜索