Linux運維實戰之一:初識計算機組成及Linux系統

本次博文是Linux運維實戰的開山篇,主要內容如下:

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

  2. Linux的不同發行版之間的聯系與區別;

  3. Linux的哲學思想;

  4. Linux系統上命令的適用格式及一些常用命令的使用;

  5. Linux系統上如何獲得幫助信息;

  6. Linux發行版的基礎目錄名稱命名法則及功用規定;


一、計算機的組成及其功能:

問題引入:互聯網時代,計算機是我們每天都要使用的工具,那么,一臺計算機是由哪幾部分組成的呢?其各部分的功能又是怎樣的呢?下面我們就來詳細討論一下哈。

計算機的組成:

  • 什么是計算機:

大到超級計算機,小到智能手機,這些統統都可以稱為計算機,那計算機的定義究竟是什么呢?我覺得需要從程序員和普通用戶兩個角度去理解。從程序員角度看的定義為:程序員要寫出能在機器上正確運行的程序必須了解的概念性結構和功能特性。從用戶角度看的定義為:硬件+軟件。通常是一臺安裝好了操作系統的虛擬計算機,用戶可以在其上完成一些日常工作、玩游戲等等。

  • 一臺計算機由哪幾部分組成:

   我們現在常用的計算機,包括手機及智能設備,通常由五大部件組成(馮若依曼提出),如下圖所示:

            馮若依曼 的圖像結果

由上圖可以看出,一臺計算機的組成:

CPU:包括運算器和控制器

存儲器:包括ROM和RAM,通常我們所說的內存主要為RAM

I/O設備:即輸入輸出設備,通常為磁盤、鍵盤、鼠標、顯示器、打印機等


  • 計算機各組成部分的功能:

   問題引入:計算機能夠提供哪些功能呢?我想最主要的功能就是按照程序員實現編制好的程序運行,處理數據以滿足我們日常的生活和工作需要。

   那么我們就需要思考一個問題:什么是程序?程序是如何被運行的呢?

Linux運維實戰之一:初識計算機組成及Linux系統    6b7b404e-68d6-4e6c-a85e-834c969d90f7.png

程序的執行過程: 

  1. 用戶打開程序:
    程序=指令+數據。此時,數據先存在硬盤里,CPU要處理該數據就要先發指令將數據從硬盤讀取到到內存里;

  2. CPU把程序代碼段和數據段送入計算機的內存

  3. 控制器從存儲器中取指令

  4. 控制器分析,執行指令,為取下一條指令做準備

  5. 取下一條指令,分析執行,如此重復操作,直至執行完程序中全部指令,便可獲得全部指令

Linux運維實戰之一:初識計算機組成及Linux系統

現代計算機所遵循的是馮·若依曼機制:

  • 程序存儲

  • 采用2進制


二、Linux的不同發行版之間的聯系與區別:

  • 開源組織、開源協定與Linux的關系:       

4c315189-4146-4249-b652-e4031e0e29da.png

 說明:

  1. GNU:“GNU's Not Unix”的遞歸縮寫。是由Richard Stallman發起的開源運動(有點類似操作系統屆的共產主義哈)

  2. GPL:GPL是由自由軟件基金會發行的用于計算機軟件的協議證書,使用該證書的軟件被稱為自由軟件(Free software),后來改名為開放源代碼軟件(Open Source Software)。大多數的GNU程序和超過半數的自由軟件使用它 。

  3. GPL保證了任何人都有權復制、修改和重新發布自由軟件的源代碼,并且規定在不增加費用的條件下得到源代碼(基本發行費用除外),但你不能聲明你做了原始的工作,或聲明是由他人做的。

  4. Linux kernel + GNU utilities = open source,UNIX-like operating system

  • 發行商的由來:

問題引入:我們現在拿到了Linux內核(源程序),如何安裝到X86主機上?眾多以源碼提供的應用程序如何安裝到Linux系統中呢?

發行商應運而生:僅有內核而沒有應用軟件的操作系統是無法使用的,所以許多公司或社團將內核、源代碼及相關的應用程序組織構成一個完整的操作系統,并且提供一個安裝程序(RedHat提供的安裝程序叫anaconda),一般的用戶可以簡便地安裝和使用Linux,這就是所謂的發行版本(distribution)。


  • Linux的發行版本:

       Linux的發行版有很多,先簡單羅列一下:

Linux運維實戰之一:初識計算機組成及Linux系統7b2ed92c-7535-41e6-b2c6-2b6a8a07958b.jpg

 這些主流的發行版的關系如下圖所示:

Linux運維實戰之一:初識計算機組成及Linux系統8cf3535c-c26c-457c-8109-68e3524d1ce7.png

注意:Linux的內核版本和發行商的發行版本是兩碼事

例如:RHEL-6.4 用的是Linux-2.6.32版本的內核

Linux比較有名的內核版本:2.2,2.4,2.6 ,3.10等


三、Linux的哲學思想:

  1. 一切皆文件:對于Linux而言一切都是以文件的形式存在,包括硬件設備,甚至通信接口等;
    例如在Linux系統中,硬件文件都是保存在/dev/目錄下,我們以光驅CDROM為例:
    83fab377-c165-40d7-b0dc-c9982a74e102.pngLinux運維實戰之一:初識計算機組成及Linux系統 

  2. 由眾多功能單一的程序組成:一個程序只做一件事情,并且做好;

  3. 組合小程序完成復雜任務:一個復雜的任務不必使用一個大型的程序來獨立完成,它可以由多個獨立的小程序相互配合以完成復雜任務; 

  4. 盡量避免與用戶交互:目標–易于以編程的方式實現自動化任務;   

  5. 使用文本文件保存配置信息:計算機的所有硬件和軟件配置信息保存在文本文件中; 

  6. 提供機制,而非策略:機制是一種框架;策略就是填充框架的一個個實體(陳莉君教授提出的理論);機制是接口,策略是數據流。管道是機制,應用管道處理各種數據是策略。


四、Linux系統上命令的使用格式及一些常用命令的使用:

  • Linux中命令的使用格式:

Linux中的命令分為內部命令和外部命令兩種:

內部命令:是shell程序自身附帶的命令 ,隨每次啟動的SHELL裝入并常駐內存;(類似DOS系統的內部命令,是隨每次啟動的COMMAND.COM裝入并常駐內存)

外部命令:在某目錄有一個與命令同名的可執行文件

如何查看一個命令是內部命令還是外部命令呢?使用type命令:

   c1b9a1a3-845c-44af-81a7-980fe7d7d504.png       Linux運維實戰之一:初識計算機組成及Linux系統    

上面的例子中,mkdir是一個外部命令,位于/bin/mkdir/目錄中;cd是一個內部命令

小結:

            Linux 的命令格式:   [username@host 工作目錄]  PROMPT  COMMAND OPTIONS ARGUMRNTS


PROMPT:命令提示符,一般而言,管理員的提示符為#,這個我們在Cisco的路由設備上也見到過哈,#代表特權;普通用戶的命令提示符為$

例如:用whoami命令可以查看當前用戶是誰

Linux運維實戰之一:初識計算機組成及Linux系統9ecc6853-481f-43ff-9fd5-0c0550fbedba.png

 下面我們切換到一個普通用戶:

Linux運維實戰之一:初識計算機組成及Linux系統451d92f9-c427-4d72-9f36-b7e684ffc0c5.png

可以看到普通用戶的命令提示符為$。從管理員切換到普通用戶是不需要密碼的,反之從普通用戶切換回管理員需要密碼。

COMMAND:輸入的命令,如ls、mkdir、mv等等,Linux中最常用的命令大約有60多個


OPTIONS:定制命令的運行特性

選項有兩種表現形式:

   短選項: -c

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

例如:ls命令帶選項和不帶選項的顯示效果如下圖:  

Linux運維實戰之一:初識計算機組成及Linux系統f1b2640c-ad2a-4354-b251-64348a59a12c.png 

ARGUMENTS :命令的作用對象,命令對什么生效

   例如上面的例子中,ls命令作用的對象是/tmp目錄,意思是要列出/tmp目錄下的內容。ARGUMENTS有時候是可以省略的,例如:    

Linux運維實戰之一:初識計算機組成及Linux系統85e719b7-4da0-4874-9e12-04929ff79905.png

ls命令后省略ARGUMENTS,表示顯示當前目錄下的內容。

            

  • 常用命令的使用:ifconfig、

ifconfig:是一個用來查看、配置、啟用或禁用網絡接口的工具

   常用的選項:

-a 顯示當前使用所有接口 ifconfig -a

-s 顯示網卡信息列表 ifconfig -s

   范例:

   b94f0744-554a-409a-836d-e3c14ecac75b.png      Linux運維實戰之一:初識計算機組成及Linux系統

   當前我的主機上,網卡的地址為192.168.1.58/24

 

echo : 將參數寫入標準輸出,標準輸出一般為顯示器   

常用的選項:
-n 不換行 
-e 處理轉義字符

    例如:

   06731cad-311e-4e8f-8172-3ad5d897316e.png       Linux運維實戰之一:初識計算機組成及Linux系統      

tty :查看終端設備       

常用的選項:
--version 查看tty版本信息

例如:

   be50e593-bdcd-45be-b3b7-c37f82ac1af1.png        Linux運維實戰之一:初識計算機組成及Linux系統

   

   startx:在某一個虛擬終端啟動gui   

   例如:

   47275633-1ad6-436e-9c7b-d794c506156a.png        Linux運維實戰之一:初識計算機組成及Linux系統

   我的主機上沒有安裝GUI程序,所以報錯。                     

 

export :設置或顯示環境變量

    例如:將當前shell的語言設置為英文

    1d4ce3c1-a184-4981-b32b-6f8f476a26a1.png       Linux運維實戰之一:初識計算機組成及Linux系統

   

pwd:顯示當前的工作目錄

   例如:

    c6643726-e3af-4d8d-ae09-9d12172a72cd.png  

history :查看此前的命令

 常用選項:

 -c :清空歷史
 -d offset: 指定位置刪除歷史條目
 -r: 從文件讀取命令歷史至歷史列表中 
 -w:把歷史列表中的命令追加到文件中 
 #:顯示最近的N條命令 history

   例如:

   b90ef71f-4892-45d4-878d-eba851d8e26b.png        Linux運維實戰之一:初識計算機組成及Linux系統

 

shutdown :關機或重啟命令

常用選項 
    -h:關機后關閉電源    
    -c: 取消目前正在執行的關機程序
    -r :重啟計算機 shutdown -r

例如:

5e70e033-66d4-4787-a12e-ea903f3d4060.png Linux運維實戰之一:初識計算機組成及Linux系統

poweroff:關機命令

常用選項:
    -f:強制關機  
    reboot:重啟命令 
    hwlock : 查看或設定硬件時間
    -s --hctosys:以硬件時間為準,把系統調整與硬件時間相同
    -w –systohc:以系統時間為準,把硬件時間調整為與系統時間相同
例如:以系統時間為準,把硬件時間調整為與系統時間相同

2e7496e4-f488-48e8-8b11-821f77a072d1.pngLinux運維實戰之一:初識計算機組成及Linux系統 

 

data:查看或修改系統時鐘

設定日期時間:
   date [OPTION]... [+FORMAT]
   date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

例如:

Linux運維實戰之一:初識計算機組成及Linux系統2d87ef98-a91d-4ddd-b146-19f892c7d2b7.png


五、Linux系統上如何獲得幫助信息:

查看命令類型:
    type COMMAND

  例如:

   df0a75e7-da84-4301-b11b-9d809c9ab47d.png Linux運維實戰之一:初識計算機組成及Linux系統 


獲取命令的使用幫助:
    內部命令 :help COMMAND 
    外部命令 :COMMAND  -h 或  COMMAND --help

   例如:

   cd是內部命令,它的幫助獲取方式如下圖所示:

   559f9802-23ed-4d57-9493-96a799a2ee82.png Linux運維實戰之一:初識計算機組成及Linux系統

    hwclock是外部命令,它的幫助獲取方式如下圖所示:

   b908d1bd-f59b-4ace-b669-a875595bf80f.png  Linux運維實戰之一:初識計算機組成及Linux系統

Linux中的幫助文檔:

有個形象的話是這樣說的:生活中有困難找政府,Linux中有困難找男人(man)。Linux中的man非彼man,是manual的縮寫,用法如下: 

Linux運維實戰之一:初識計算機組成及Linux系統9a5100ce-0f83-4d0f-96f6-37173b0919e8.png

使用說明: 

  • 按章節劃分:

1:用戶命令

2:系統調用

3:c庫調用

4:設備文件及特殊文件

5:配置文件格式

6:游戲使用幫助

7:雜項

8:管理工具及守護進程


  • 選項說明:

    SECTION:指定章節
     NAME: 功能性說明 
    SYNOPSIS 語法格式             
    DESCRIPTION 描述
    OPTIONS 選項
    EXAMPLES 使用實例            
    AUTHOR 作者
    BUGS 報告程序bug方式

    例如:

    查看init的幫助手冊,init是一個守護進程,所以默認打開了第8章節:

    Linux運維實戰之一:初識計算機組成及Linux系統be8b0483-e8c6-452b-b2df-d0b24ea87d64.png

    查看ls命令的幫助手冊,ls是一個內部命令,所以默認會打開第1章節:

    Linux運維實戰之一:初識計算機組成及Linux系統2dbcc108-ca9e-4af7-b0dc-f205563750b2.png 

  • 系統到哪里去找某個程序的幫助手冊呢?

     在其配置文件中定義:/etc/man.config

    c7315908-a619-4f74-b55f-13ed499d9860.png Linux運維實戰之一:初識計算機組成及Linux系統


六、Linux發行版的基礎目錄名稱命名法則及功用規定:

  • Linux系統中的文件類型:

Linux系統中,文件被分為3類:

(1)目錄文件:全部由目錄組成的文件

(2)普通文件:由系統文件、用戶文件、實用程序文件、庫文件組成

(3)特別文件:所有的輸入/輸出設備被看作特別文件,系統指定專用的文件名,如:/dev/lp表示打印機設備。

Linux系統樹型目錄組織結構:

Linux系統把目錄組織成樹狀結構–Linux Filesystem Hierarchy。這樣做有什么好處呢?

層次化結構能夠大大減小查找的復雜度–>如果系統內文件很多,則目錄文件會變得很長,要查找某個文件將耗費太多的時間(例如:我們要查找一個文件,但不知道它存儲在什么地方,此時我們就需要從“/”下開始查找,那肯定是非常耗時間哈。若此時我們知道這個文件保存在"/var/log/” 下,那查找起來肯定快的多哈?。涫且环N層次化的數據結構,它由根結點,子結點以及子子結點組成。Linux借用樹狀結構來組織它的文件目錄,形成樹型目錄組織。樹型目錄組織是多級目錄組織的一種形式。Linux文件系統的目錄組織結構如下圖所示:

Linux運維實戰之一:初識計算機組成及Linux系統0.6716860618907958.png

說明:特殊目錄

include: c程序頭文件 

share:命令手冊頁 命令自帶文檔 通常放于此目錄下,

local:另一個層級目錄 

x11r6:x-window 程序的安裝位置 

src: 程序源碼文件的存儲位置 

lib.so.*: 動態鏈接C庫 

ld*: 運行時連接器/加載器 

modules: 用于存儲內核模塊目錄 

設備兩種類型:字符設備(線性設備) 塊設備(隨機設備)


本次博文就這么多哈,歡迎各位童鞋拍磚。有任何問題請和我聯系:QQ:229293602

 

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

(0)
N4_jjxN4_jjx
上一篇 2016-10-31
下一篇 2016-10-31

相關推薦

  • 管理systemd

    管理systemd init(系統的第一個進程): CentOS 5: SysV initCentOS 6: UpstartCentOS 7: Systemd Systemd:系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其它進程 Systemd新特性: 系統引導時實現服務并行啟動 按需啟動守護進程 系統狀態快照 自動化的…

    Linux干貨 2016-09-22
  • 使用monit搭建一個監控系統

     上周用monit搭建或者說定制了一個監控系統,來監控服務器發生事情。當然了主要是監控異常,因為我們的產品屬于服務器類型,很多進程都daemon,要不停的運行。我們搭建監控目的不過是出現問題能夠及時的知道,平時可從web UI上看到整個系統的狀況,同時它本身要輕量級,不要影響性能。當然了類似的產品很多了,比如Ganglia,我在老科長波哥曾經搭建過…

    Linux干貨 2015-02-15
  • 啟動流程排錯和自建linux系統

    一、grub的配置文件/boot/grub/grub.conf default=0        ###設置默認啟動項0表示第一個 timeout=5        ##設置超時時間,如果超過5s用戶…

    Linux干貨 2016-09-18
  • linux命令的使用格式

    Linux命令的一般格式為: [root@node1 ~]#command [選項] [參數] 1、ifconfig 設備 參數 參數: up:啟動指定設備 down:關閉指定設備 arp:指定設備是否支持ARP協議 -a:顯示全部接口信息 例如:[root@node1 ~]#ifconfig eth0 up #啟動eth0網卡 2、echo打印 &nbsp…

    Linux干貨 2016-09-17
  • 初步了解計算機組成及Linux系統

    一、計算機的組成及其功能: 計算機主要由三部分組成: 輸入單元:包括鍵盤、鼠標、卡片閱讀器、掃描儀、手寫板等。 輸出單元使我們能夠將一些數據輸入到主機里,然后再由主機的功能處理成為圖表或文章等信息后,將結果傳輸到輸出設備,如屏幕或打印機上面。 中央處理器(CPU):其中包含算數邏輯、控制、記憶等單元。 CPU作為一個具有特定功能的芯片,里面含有微指令集,如果…

    Linux干貨 2017-09-24
  • 2016-08-12作業

    1、查找/var 目錄下屬主為root ,且屬組為mail 的所有文件 [root@localhost bin]# find /var -user root -group mail /var/spool/mail /var/spool/mail/root   2、查找/var 目錄下不屬于root 、lp 、gdm 的所有文件 find /var …

    Linux干貨 2016-08-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-02 17:32

    內容格式把握得很好,不錯,希望你能熟知基礎命令知識,加油!

欧美性久久久久