計算機及Linux基礎介紹

Linux及計算機基礎介紹

計算機的組成及其功能

What:計算機的組成是什么?

  • 計算機的主要部件:

    • CPU:可分為運算器、控制器、寄存器、緩存等

    • 存儲器:比如內存。執行程序時,會將程序及相關數據加載進內存,供CPU讀取

    • 輸入設備:比如:鍵盤。用于下達指令及輸入數據。

    • 輸出設備:比如顯示器。用戶顯示和輸出指令執行的結果等

  • 馮諾依曼體系中提出的五大部件為:運算器、控制器、存儲器、輸入、輸出


How:計算機如何工作的?

    1. 硬盤等存儲介質用于存放程序及數據。

    • 程序 = 指令 + 數據

    2. 用戶通過輸入設備,下達執行某個程序

    3. 計算機會先將該程序及相關數據加載到內存中。

    • 因為CPU只能直接訪問內存

    • 內存在內部是劃分存儲單元,每個單元為8bit

    • 內存中每個單元都有編址。

    4. CPU先讀取該指令,當需要用到數據時,再從內存中載入響應數據

    • CPU要能執行某指令,首先它得要支持。而CPU所能支持的指令集合稱之為指令集。不同的CPU,指令集也不同。

    • 指令集中指令又可分為兩類:普通指令、特權指令

    • CPU有位長之分。目前有32位和64位CPU

    • 不同的位長,代表CPU同一時間可以訪問內存單元的數量的多少

    5. 如果第一個指令運行完后,結果還需和其他數據再進行運算,那么CPU會先將該結果放入寄存器中,待用時再取出。

    6. 最后將結果輸出到輸出設備

        a8773912b31bb051973f1da5367adab44aede020.jpg   


Why:為什么有了內存,還需要有CPU緩存?

        由于內存的頻率遠低于CPU頻率。因此通過CPU緩存來解決速度不同的問題。減少等待時間,提高CPU效率。

        緩存為王~!


What:那么什么是操作系統?

         blob.png

        操作系統是由內核和眾多應用程序組合而成的。

        而內核位于硬件之上,應用程序之下。它驅動了硬件,并向上提供了系統調用,使得程序員能方便的調用系統資源。

        

        內核(kernel)的作用:

            1、驅動底層硬件 

            2、將各底層硬件資源抽象成簡單的資源 

            3、管理各程序的運行,把有限資源分配給各程序

        1. 對于CPU,通過時隙復用

        2. 對于內存,通過空間復用    

            它的存在,使得所有程序在任意時候都認為自己是獨占著系統資源。對于程序而言,所要面對的也只有操作系統而已

Linux發行版本

1、Linux的發行版

    Linux內核以及在其上運行的軟件都是基于開源協定,以源碼的方式共享出來,任何人都可以隨意拿來編譯安裝。也因此增加了使用難度。

    為了方便安裝,很多組織和公司便提供了在不同平臺上已編譯好的Linux系統。我們稱之為發行版。發行版依舊須遵循開源協定,對外免費共享出來。

    

2、常見的Linux發行版:     

  主流的有三種Debian,Slackware,Red Hat

Debian

Debian,或者稱Debian系列,包括Debian和Ubuntu等。Debian是社區類Linux的典范,是迄今為止最遵循GNU規范的Linux系統。Debian最早由Ian Murdock于1993年創建,分為三個版本分支(branch): stable, testing和unstable。Debian最具特色的是apt-get /dpkg包管理方式,其實Redhat的YUM也是在模仿Debian的APT方式,但在二進制文件發行方式中,APT應該是最好的了。Debian的資料也很豐富,有很多支持的社區,有問題求教也有地方可去。

    • Ubuntu是基于Debian的unstable版本加強而來,可以這么說Ubuntu就是一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的Linux桌面系統。根據選擇的桌面系統不同,有多個版本可供選擇,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。

Red Hat

Redhat,應該稱為Redhat系列,Redhat linux是全球在服務器上應用最廣泛的linux操作系統,在效率、擴展性、可靠性、安全性、集成虛擬化等都具備領先其他linux的特點,被譽為最值得信賴的數據中心平臺系統,其主要應用在服務器領域。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分發方式是編譯好的二進制文件。

    • RHEL(Redhat Enterprise Linux),Redhat為期提供完善的售后服務,并以服務提供收費。

    • CentOS(Community ENTerprise Operating System),它是來自Red Hat Enterprise Linux依照開放源代碼規進行重新編譯而成的,并且僅僅是將logo標識替換掉。所以也可以說CentOS是redhat服務器的免費版。新版的CentOS大約每兩年發布一次,每個版本大概每6個月更新一次,CentOS也提供技術支持,但僅限于社區的官方郵件、論壇和聊天室,并且CentOS不負任何商業責任。

    • Fedora由原來的Redhat桌面版本發展而來,免費版本,Redhat會將最新的技術或程序用在這個發行版中,以作測試之用。

Slackware

Slackware 由Patrick Volkerding創建于1992年。算起來應當是歷史最悠久的Linux發行版。曾經Slackware非常的流行,但是當Linux越來越普及,用戶的技術層面越來越廣(更多的新手)后,Slackware漸漸的被新來的人們所遺忘。盡管如此,Slackware仍然深入人心(大部分都是比較有經驗的 Linux老手)。Slackware穩定、安全,所以仍然有大批的忠實用戶。由于Slackware盡量采用原版的軟件包而不進行任何修改,所以制造新 bug的幾率便低了很多。Slackware的版本更新周期較長(大約1年),但是新版本的軟件仍然不間斷的提供給用戶下載。

    • SUSE Linux原是以Slackware Linux為基礎,并提供完整德文使用界面的產品。SUSE 有兩個linux版本,一個是open SUSE,另一個是Enterprise linux,Enterprise linux是為企業而設計的,要長期使用,需要收一定的費用的。而前一個是完全按照開源社區的要求,是免費的和放開源代碼的。ZypperYast 是 SUSE Linux 平臺上的軟件包管理工具,他們的底層使用了 RPM。


Linux的哲學思想

1、一切皆文件:

    在Linux中最核心的思想便是一切皆文件,從普通文件到設備,在Linux上都是以文件形式放置。Linux的文件類型有:普通文件、目錄文件、塊設備文件、字符文件、符號鏈接文件、命名管道和套接字文件。就連內核和進程的運行狀態也以文件的方式存放著。


2、由眾多功能單一的程序組成,一個程序只做一件事,切做好。

    在Linux上每一個指令便是一個小程序,而每一個指令只負責一件事,通過不同的命令選項,完善了指令的功能。


3、組合單一的小程序完成復雜任務。

    體現在了Linux的小巧精簡。Linux上的沒有像Windows那樣,每個軟件大道幾百M。甚至幾十G。他們通過組合小程序實現復雜功能,復用了相同功能的程序,減小軟件的大小,提高了軟件開發的效率。


4、盡量避免與用戶交互。

    這也是為了,能方便shell腳本的開發。減少交互,就能方便的將單一小程序組合起來使用。


5、使用文本文件保存配置信息

    這點說道根本也是一切皆文件的體現,一個文本編輯器便能完成所有軟件的配置,不需要額外的應用程序。


Linux上的命令

命令提示符:prompt(bash)

    #:管理員賬戶,為root;擁有最高權限,能執行所有操作

    $:普通用戶,非root用戶;不具有管理權限,不能執行系統管理類操作

命令的語法通用格式:

    # COMMAND OPTIONS ARGUMENTS

       

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

    • 命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;

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

          • 可以使用file命令查看:

            blob.png

    •  命令分為兩類:

          • 內建命令: 由shell程序的自帶的命令

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

          • 可使用type命令查看:

            blob.png

                          

    OPTION:指定命令的運行特性;         

   選項有兩種表現形式:

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

                    注意:有些命令的選項沒有-;

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

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

                    注意:長選項不能合并;

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

 

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

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


常用命令:ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date


ifconfig】:configure a network interface 配置網絡接口

    snip_20160918104537.png


echo】:  display a line of text   

    echo [SHORT-OPTION]… [STRING]…

    • -n:不進行換行

    • -e:讓轉義符生效

      1、\n:換行

      2、\t:制表符

            blob.png

    • 在shell中string可以使用引號,單引號和雙引號均可用

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

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

            blob.png

    • 注意:變量引用的正規符號:${name},只不過一般花括號可以省略

tty】: print the file name of the terminal connected to standard input

            終端:

                    串行終端

                            /dev/ttyS#

                    物理終端

                            /dev/console

                    虛擬終端:圖形終端

                            /dev/tty#

                    偽終端:遠程連接,圖形環境打開的命令接口

                           /dev/pts/#

            blob.png


startx】:打開圖形界面

    啟動圖形界面:startx &    (不加&,只有等指令運行結束后才能返回命令聽提示符)

export】:為 shell 變量設定導出屬性。

    blob.png

    設置語言為英文:

    blob.png

pwd】:print name of current/working directory

    blob.png   

    實例:blob.png

history】:顯示或操縱歷史列表。

    blob.png

     

            -c:清空命令歷史列表

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

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

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

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

    blob.pngblob.png

shutdown】:Halt, power-off or reboot the machine

            shutdown [OPTIONS…] [TIME] [WALL…]

            blob.png


reboot,【halt】,【poweroff】:一般情況下是調用shutdown進行關機處理等處理            


hwclock】:query or set the hardware clock

            hwclock [function] [option…]

            顯示硬件時鐘:

            blob.png

            hwclock -s :系統時間以硬件時間為準,–hctosys

            hwclock -w :  硬件時間以系統時間為準,–systohc

            blob.png

date】:print or set the system date and time

            date [OPTION]… [+FORMAT]

            date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]

            blob.png

            date +%m  獲取月份:計算機及Linux基礎介紹

    blob.png

            設置系統時間:            

            格式:date MMDDhhmm[CC]YY.ss

                                 月  日  時  分    年    秒

    blob.png


Linux上獲取命令幫助

      1、內建命令:

             #help 命令

                    如:help cd

       2、外部命令

                   1、# 命令 –help

                       如:dirname –help

                    2、使用手冊:manual

                            位置:/usr/share/man


        man介紹

       #man  命令名  (先解壓后顯示)

              SECTION:

                         NAME:功能性說明

                         SYNOPSIS:語法格式

                         DESCRIPTION:描述

                         OPTIONS :選項

                         EXAMPLES:使用示例

                         AUTHOR:作者

                         BUGS:報告程序bug的方式

                         SEE ALSO:參考

                         ……

      使用幫助中命令格式中的字符意義:

      []:可選的部分

      {a|b}:分組,a和b作為一個使用單元來使用

      |:或者,只能選其一

      <>:必不可少的部分

      …:同類內容可以出現多個

      man的簡要使用機制:

             翻屏:

                      空格鍵:向文件尾部翻一屏

                      b:向文件首部翻一屏

                      回車鍵:向文件尾部翻一行

                      k:向文件首部翻一行

                      ctrl+d:向文件尾部翻半屏

                      ctrl+u:向文件首部翻半屏

                      1G:跳轉至第一行

                      #G:跳轉至指定行(#為行號)

                      G:跳轉至最后一行

              文本搜索:(不區分關鍵字大小寫)

                      /keyword:向文件尾部搜索                               

                      ?keyword:向文件首部搜索                               

                               n:順著查找方向下一個

                               N:逆著查找方向下一個

                              q:退出

  補充:man其實能為命令(普通命令、管理命令)、程序的配置文件格式、系統調用、庫調用、游戲及其他不便歸類的文件提供幫助手冊

    /usr/share/man

                      man1,man2,……

    man命令的分段機制:

    1:用戶命令:

    2:系統調用

    3:C庫調用

    4:設備文件及特殊文件

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

    6:游戲使用幫助

    7:雜項

    8:管理命令及守護進程

blob.png

blob.png

并非每個命令在所有章節下都有手冊,

查看某關鍵字在那些段落有使用幫助

   whatis Keyword 精確查找

   提示:如果whatis的數據庫尚未生成,可以使用makewhatis手動進行             

             舊版的 Linux 這個指令是使用 makewhatis!CentOS7使用 mandb 了!

blob.png

計算機及Linux基礎介紹

   man -k Keyword 模糊查找

計算機及Linux基礎介紹blob.png

man -M /path/to/somedir:到指定目錄下查找命令手冊并打開

man的文件在:/usr/share/man

計算機及Linux基礎介紹blob.png

3、很多應用程序自帶有幫助文檔:/usr/share/doc/

計算機及Linux基礎介紹blob.png

README:程序的相關信息

INSTALL:安裝幫助

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

4、info 命令:獲取在線文檔

5、主流發行版官方文檔

     http://www.redhat.com/doc

6、程序官方的文檔

      官方站點上的“Document”

7、google:

       linux filetype:ppt 特定格式文件

       keyword site:magedu.com  在特定網頁內搜素

Linux基礎目錄名稱及功能規定

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

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

————————————————————————————

            存放為了保證操作系統正常運行而提供的可執行程序

            /usr/bin

            /usr/sbin

————————————————————————————

            用來存放第三方軟件的程序

            /usr/local/bin

            /usr/local/sbin

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

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

            設備有兩種類型:字符設備(線性設備,有時序)、塊設備(隨機設備,可以任意訪問)                    

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

        /etc/sysconfig:系統級別的配置文件

        /etc/init.d:系統服務腳本

/home:普通用戶,默認在/home下有一個與其名稱同名目錄,作為用戶的家目錄

/root:管理員的家目錄

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

        libc.so.*:動態鏈接的C庫

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

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

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

/media:專用的掛載位置,通常用來掛載便攜式設備。(cdrom,floopy等)

/mnt:專用掛載位置,掛載額外的存儲設備。

/misc:備用目錄

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

/proc:基于內存虛擬文件系統(關機后就沒了),用于為內核及進程存儲運行時的相關信息,他們多為內核參數,例如:net.ipv4.ip_forward(參數的值就是這個文件的內容),虛擬為net/ipv4/ip_forward,存儲于/proc/sys/net/ipv4/ip_forward

/sys:sysfs虛擬文件系統提了一種比proc更為理想的訪問內核數據的途徑,主要作用在于為管理Linux設備提供一種統一的模型接口(偽文件系統,系統級別的,用于配置外圍設備特性的參數。)

詳見:www.ibm.com/developerworks/cn/linux/l-cn-sysfs

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

/tmp:存取臨時文件的目錄,可供所有用戶使用,有特殊權限,默認存放30天

/usr:usr Hierarchy, shared 所有遵循協議的系統都可以使用,readonly 只讀

          bin,sbin

          lib,lib64

          /usr/include:C程序頭文件

          share:命令手冊頁和命令自帶文檔等架構特有的文件的存儲位置

          local:又一個層級目錄                    

          X11R6:XWindow程序的安裝位置

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

/usr/local:Local hierarchy,讓系統管理員安裝本地應用程序(為了與系統原有程序不沖突,而裝在一個新的目錄下),也通常用與安裝第三方程序

          在這個路徑下也同樣擁有類似/usr下的目錄

          bin、sbin、etc、include、man、share、src等

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




















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

(0)
lucklymelucklyme
上一篇 2016-09-19
下一篇 2016-09-19

相關推薦

  • 每天一個Linux命令

        程序管理:      程序的組成部分:二進制程序文件,庫文件,配置文件,幫助文件。                      二進制和庫文件可執行,庫文件不能獨立執行,只能被調用時執…

    Linux干貨 2017-04-08
  • Linux基礎知識—文件系統和常用命令解讀

    一、    計算機組成         計算機組成(Computer Composition)指的是計算機系統結構(Computer Architecture)的邏輯實現,包括機器機內的數據流和控制流的組成及邏輯設計等。其任務是在指令集系統結構確定分配給硬件系…

    Linux干貨 2016-09-18
  • linux文件系統分類

    1、linux文件系統分配策略: 塊分配(blockallocation)和擴展分配(extentallocation): 塊分配:磁盤上的文件塊根據需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續,從而導致過多的磁盤尋道時間。 每一次文件擴展時,塊分配算法就需要寫入文件塊的結構信息,也就是meta-dada。meta-dat…

    Linux干貨 2017-05-02
  • Python函數式編程指南(四):生成器

    生成器是迭代器,同時也并不僅僅是迭代器,不過迭代器之外的用途實在是不多,所以我們可以大聲地說:生成器提供了非常方便的自定義迭代器的途徑。 這是函數式編程指南的最后一篇,似乎拖了一個星期才寫好,嗯…… 轉載請注明原作者和原文地址:) 4. 生成器(generator) 4.1. 生成器簡介 首先請確信,生成器就是一種迭代器。生成器擁有next方法并且行為與迭代…

    Linux干貨 2015-03-11
  • 通絡通信

    網絡詳解: 網絡的osi層次結構: 物理層: 以太網規定,連入網絡的所有設備,都必須具有”網卡”接口。數據包必須是從一塊網卡,傳送到另一塊網卡。 網卡的地址,就是數據包的發送地址和接收地址,這叫做MAC地址。 每塊網卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進制位,通常用12個十六進制數表示。 前6個十六進制數是廠商編號,后6個是該廠商…

    Linux干貨 2016-09-02
  • 進程理論和相關工具的使用

    內核的功用 進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等     Process: 運行中的程序的一個副本,是被載入內存的一個指令集合 進程ID(Process ID,PID)號碼被用來標記各個進程     UID、GID、和SELinux語境決定對文件…

    Linux干貨 2017-08-28

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-20 10:32

    黑屏是不是很丑,可以研究一下makedown格式

欧美性久久久久