初識Linux-即使是997也不能停止學習

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

   從1946年第一臺通用計算機ENIAC誕生至今,幾乎所有的計算機系統都是建立在馮諾依曼體系結構上的。那么何為馮諾依曼體系結構?

馮諾依曼體系結構:

   初識Linux-即使是997也不能停止學習

   控制器:是整個計算機的中樞,負責計算機的整體調度工作,將指令從存儲器中取出,并對指令進行解釋執行。

   運算器:對數據進行加工,完成算術運算,邏輯運算。

   存儲器:基于二進制格式對指令和數據進行存儲。

   輸入設備:提供數據給存儲器,如:硬盤,鼠標,鍵盤等。

   輸出設備:輸出數據處理后的結果,展示給用戶,如:顯示器,打印機等。

補充知識點:

   1.通常我們所說的CPU是由控制器,運算器,寄存器,緩存組成,核心是控制器和運算器。

   2.內存是以8 bits為單位來存儲數據的,對于32位CPU,總共能尋址2的32次方個以8 bits為單位的內存,因此32位CPU最大支持4GB內存,計算過程如下:

   8 bits * 2^32 = 1KB * 2^10 * 2^10 * 2^10 * 4 = 4GB

2.Linux發展史:

blob.png1969年,Ken Thompson 利用匯編語言開發了FIle Server System(Unics,即Unix的原型)。

1973年,Dennis Ritchie和Ken Thompson發明C語言,并通過C語言重寫了Unix的內核。

1977年,Berkeley大學的Bill Joy針對他的機器修改Unix源碼,稱為BSD(Berkeley Software Distribution)

1985年,Richard Stallman創立GNU組織(GNU is Not Unix),旨在創建一套完全自由的操作系統。

1991年,Linus Torvalids基于Minix開發了Linux內核,并在之后通過整合各種GNU組件形成了如今我們通常所說的Linux系統即:Linux內核+GNU應用程序。

Linux發行版三大分支:

  發行版由個人,松散組織的團隊,以及商業機構和志愿者組織編寫。一個典型的Linux發行版包括:Linux內核,一些GNU程序庫和工具,命令行shell,圖形界面的X Window系統和相應的桌面環境,如KDE或GNOME,并包含數千種從辦公套件,編譯器,文本編輯器到科學工具的應用軟件。目前Linux發行版主要有三大分支:

a.Redhat

目前最著名的Linux發行版,包括RHEL(Redhat Enterprise Linux,收費版本),FedoraCore(由原來的Redhat桌面版本發展而來,免費版本),Centos(Community ENTerprise Operating System,免費版本)由RHEL的源代碼編譯而成。

b.Debian

主要包括Debian和Ubuntu等。Debian是社區類Linux的典范,是迄今為止最遵循GNU規范的Linux系統。Debian最具特色的是apt-get/dpkg包管理方式,Redhat的YUM也是在模仿Debian的APT方式,但是在二進制文件發行方式中,APT應該是最好的。其后的Linux Mint也是在Ubuntu的基礎上開發而來,是一款專門為PC和X86電腦設計的操作系統。

c.Slackware

Slackware體系中,最著名的莫過于德國公司開發的SuSE發行版系統,主要包括:SLES(SuSE Linux Enterprise,企業版)和社區版open suse。

發行版之間的聯系:

  1. 各發行版本采用Linux的內核(kernel)

  2. 各發行版本遵循GPL版權協定

  3. 各發行版本遵循Linux Standard Base(LSB)等標準來開發

  4. 各發行版均遵循FHS(File system Hierarchy Standard)標準規范

發行版之間的區別:

  各發行版的包管理系統不同,如:Ubuntu的apt-get,紅帽的yum,Gentoo的源碼編譯。

3.Linux哲學:

  1. 一切皆文件,不僅普通的文件,目錄、字符設備、塊設備、套接字等在Unix/Linux中都是以文件被對待;它們雖然類型不同,但是對其提供的卻是同一套操作界面。

  2. 避免令人困惑的用戶界面,所有的操作均可以通過簡潔的命令行實現排錯,修改系統的配置,一切都是簡潔明了為基礎。

  3. 配置文件保存在文本文件中,無論什么配置修改都只需修改其配置文件即可,配置文件時文本形式的只需任意一款文本編輯器修改即可而不是類似于windows那樣將保存在注冊表中,并且windows的注冊表需要專門的二進制或十六進制的編輯器才可編輯,修改比較復雜。

4.Linux上命令的使用規則:

命令的通用語法:COMMAND OPTIONS ARGUMENTS

a.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

32位庫文件:/lib,/usr/lib,/usr/local/lib

64位庫文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64

額外知識點:

1.并非所有的命令都有一個在某目錄與之對應的可執行程序文件,如ls是有,但是cd并沒有。其原因在于ls是外部命令,而cd是shell內置的命令??梢酝ㄟ^type命令去區分。

blob.png

2.為什么輸入在任何地方ls就可以直接調用/bin/ls,其原因在于linux中定義的PATH環境變量,當鍵入一個命令后,shell會自動在PATH定義的各個目錄自左而右去尋找同名的命令程序,并執行。

blob.png

b.OPTIONS:

指定命令的運行特性,選項有兩種表現形式:

短選項:-C,-l,如果同一個命令使用多個短選項,多數可合并

長選項:–word,–color,長選項不能合并

注意:有些選項可以帶參數,此稱為選項參數。

c.ARGUMENTS:

命令的作用對象

注意:不同的命令帶的參數不同,有些命令可以帶多個參數,參數之間用空格區分。

常用命令舉例:

ifconfig:

作用:查看當前系統中所有激活的網卡的狀態,如IP地址,MAC地址,流量等。

語法:ifconfig [interface]

示例:ifconfig eth0

echo:

作用:回顯,打印字符串

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

示例:echo -e hello mageedu

補充:

   -n:默認情況下echo是會自動換行的,使用-n輸出內容將不換行

   -e:讓轉義字符生效,如:\n,\t等

tty:
作用:查看終端設備

語法:tty [OPTION]…

示例:tty

startx:

作用:啟動圖形化界面

語法:直接在命令行鍵入,使用init 5亦可啟動圖形化界面

示例:startx

export:

作用:顯示或者設置環境變量

語法:export 變量=值

示例:export test=mageedu

pwd:

作用:顯示當前工作目錄(print working directory)

語法:直接在命令行鍵入

示例:pwd

history:

作用:查看當前shell所保存的歷史命令

語法:直接在命令行鍵入

示例:history

補充:

  -c:清空歷史命令

  -d:刪除指定的命令記錄

  -a:將當前內存的命令歷史追加到文件中

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

  -r:從文件到內存

shutdown:

作用:關機命令

用法:shutdown [OPTION]…  TIME [MESSAGE]

示例:shudown -h now //立刻關機

poweroff:
作用:關機命令

用法:poweroff [OPTION]…

示例:poweroff

reboot:

作用:重啟主機

用法:reboot [OPTION]…

示例:reboot

hwclock:

作用:顯示或設置系統硬件時鐘

用法:hwclock [functions] [options]

示例:

hwclock -s, –hctosys 以硬件為準

hwclock -w, –systohc 以系統為準

date:

作用:顯示或設置系統時間

用法:date [OPTION]… [+FORMAT]

示例:

date +%Y%m%d%H%M%S 

說明:%Y年,%m月,%d日,%H時,%M分,%S秒

date +%s 

說明:從1970年1月1日0點0分0秒到當前時間的秒數,unix元年

date [MMDDhhmm[[CC]YY][.ss]] 

說明:設置系統時間

5.如何獲取命令幫助:

獲取命令的使用幫助:

內部命令:help COMMAND

外部命令:

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

 #COMMAND –help

2.使用手冊:manual 在/usr/share/man  

 man1:普通用戶命令(普通用戶和管理員用戶都可以調用)

 man2:系統調用命令

 man3:C庫調用:

 man4:設備文件及特殊文件

 man5:文件格式(配置文件格式)

 man6:游戲使用幫助

 man7:雜項

 man8:管理工具及守護進程

6.FHS:

FHS是Linux規定的文件系統規則,發行版都要遵循:

/bin:供所有用戶使用的基本命令程序文件

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

/boot:內核及內核引導程序文件

/dev:特殊文件或設備文件

    設備文件:

    字符設備:顯示器                              //線性設備,有時序

    塊設備:硬盤(4k,32k),內存                        //隨機設備

/etc:存放主機的配置文件,只能為靜態的,不能為二進制文件

/home:普通用戶的家目錄的集中位置

/lib:為系統啟動/bin,/sbin中的應用程序提供基本共享庫為內核提供內核模塊

/lib64:64位系統的庫文件

     *.so:動態鏈接C庫

     ld*:執行時鏈接器

     modules:存儲內核模塊

/mnt:其他文件系統的臨時掛載點(沒有嚴格要求,可隨便掛)

/media:對便攜性設備提供掛載位置,光盤,U盤

/opt:附加程序(第三方應用程序oracle)的安裝位置

/root:管理員用戶的家目錄

/srv:當前主機為服務提供的數據,幾乎用不到

/tmp:存儲臨時文件的目錄,可供所有用戶執行寫入操作

/usr:層級目錄,全局共享的只讀程序路徑

    /usr/bin:用戶命令

    /usr/share:命令自帶文檔

    /usr/include:C程序的頭文件

    /usr/lib:庫文件

    /usr/local:層級目錄,第三方程序的安裝目錄

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

/proc:內核和進程信息的虛擬文件系統,多為內核參數,如:/proc/sys/net/ipv4/ip_forward

/sys:基于內存的文件系統,關機后就沒了,與/proc類似,為管理linux設備提供了一種統一模型接口

原創文章,作者:N24_總考十分,如若轉載,請注明出處:http://www.www58058.com/54460

(0)
N24_總考十分N24_總考十分
上一篇 2016-10-29
下一篇 2016-10-29

相關推薦

  • 馬哥教育網絡21期+第十一周練習博客(上)

    馬哥教育網絡21期+第十一周練習博客(上) 1、詳細描述一次加密通訊的過程,結合圖示最佳。 加密同性過程中使用到最重要的就是openssl     安全加密傳輸過程中要確保如下幾個環節:     保密性:數據保密性,隱私性     完整性:…

    Linux干貨 2016-09-26
  • 內核編譯實際效果演示

    內核編譯實際操作效果演示     環境:CentOS7.2,自帶內核版本為3.10.0-327.el7.x86_64,下載3.18.41版本進行編譯     步驟1:確保開發工具包組已安裝     [root@localhost …

    Linux干貨 2016-09-13
  • 我與Linux的第一次親密接觸

        作為一個新手,經過一周的學習,我對Linux目前有了些許的了解,從Linux的發展史中,開源共享精神深深的感染了我,也使得我對Linux的興趣更加濃厚。對于一個一直翹計算機課的我來說,入門和基礎是一項非常艱巨的任務,初期為了搭建學習的環境,也是費了不小的功夫,相信許多萌也對此有很大的感觸,在這里,我來和大家分享一下如何去構建環境?!?/p>

    Linux干貨 2017-03-26
  • linux掛載的基本使用

    掛載   掛載是指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。 我們要訪問存儲設備中的文件,必須將文件所在的分區(已有文件系統)掛載到一個已存在的目錄上, 然后通過訪問這個目錄來訪問存儲設備。 掛載條件 1、掛載點必須是一個目錄。 2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后這個目錄下以前的內容將隱藏不可用。對于其他…

    Linux干貨 2016-09-07
  • 為你的網絡傳輸加把鎖(OpenSSL)

    互聯網形成的初期,更多關注的是設備之間通過網絡相互訪問功能的實現,我們都知道,兩個設備之間要想相互通信,就必需遵循某種協議,于是早期的互聯網也出現來眾多的協議,比如傳輸層最著名的協議就是tcp和udp,而應用層比較著名的協議有:http、ftp、pop、smtp、dns、telnet等等,而這些協議這開發初期,更多是關注功能的實現,數據這網絡上傳輸是明文方式…

    Linux干貨 2015-12-06
  • 馬哥教育網絡班22期+第三周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。  who | tr -s [[:space:]] | cut -d" " -f1 | sort -u [root@localhost cdrom]# who root     pts/1     &…

    Linux干貨 2016-09-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-02 16:28

    內容格式把握得很好,希望可以將這段發展史和幾個關鍵性時間點熟知,加油!

欧美性久久久久