馬哥教育網絡班21期+第1周課程練習

(一)計算機的基礎認識

      1. 馮諾依曼體系:

         運算器(ALU Arithmetic Logical Unit):完成算數和邏輯運算。

         控制器(CU Control Unit):發出各種控制信息,讓計算機各部件協調工作。

         存儲器(Memory):記憶程序和數據的部件

         輸入設備(Inputdevice):將程序和數據輸入的部件。

         輸入設備(Outputdevice):將數據和其他信息輸出

QQ截圖20160704134358.jpg      

上圖表明,計算機內部5大部件共有兩類信息流動,數據類(原始數據,中間結果,程序指令等);控制類用單線表示,兩類都是用二進制0或1組成。數據輸入到存儲器要經過運算器,輸出時有運算器輸出到輸出設備,前提是有控制器發送控制信號完成的。計算機工作時將存放在存儲器上的程序逐條輸出到控制器,控制器執行指令發送到控制信號到其他4個部件。                   

   

      2.計算機的總線結構:

QQ截圖20160704150051.jpg

      數據總線(DB):CPU與存儲器,I/O接口設備之間傳送數據信息(各種指令數據信息)的總線,雙向傳輸。

      地址總線(AB):CPU向存儲器,I/O接口設備發出的地址信息,尋址能力CPU特有,因此單向傳輸。

      控制總線(CB):CPU到存儲器,I/O接口設備的控制信號,有存儲器,I/O設備的應答,請求信號。

      控制信號包括:時序信號,狀態信號,命令信號(讀寫,繁忙,中斷)等。

     3.處理器架構(CPU所采用的指令系統)

       CISC的英文全稱為“Complex Instruction Set Computer”,即“復雜指令系統計算機”程序的各條指令是按順序串行執行的,每條指令中的各個操作也是按順序串行執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。主要有Intel,Amd系列

       RISC的英文全稱為“Reduced Instruction Set Computing”,中文即“精簡指令集”,它的指令系統相對簡單,它只要求硬件執行很有限且最常用的那部分執令,大部分復雜的操作則使用成熟的編譯技術,由簡單指令合成。目前在中高檔服務器中普遍采用這一指令系統的CPU,特別是高檔服務器全都采用RISC指令系統的CPU。在中高檔服務器中采用RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的Power PC、MIPS公司的MIPS和SUN公司的Spare。

(二)操作系統的基礎認識

      1. linux操作系統

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。

 QQ截圖20160704165202.jpg

       用戶進程:運行在linux系統內核(sh csh tcsh ksh bash zsh 等)之上,一個龐大軟件集合。

       系統調用:內核的出口,用戶程序通過系統調用使用內核提供的功能或者更高級一點C庫調用。

       內核子系統:硬件驅動,進程管理,內存管理,網絡管理,安全管理等

       硬件:計算機硬件。

程序的運行模式:          

      用戶空間:用戶空間中的代碼指令運行在較低的特權級別ring3上,只能看到允許它們使用的部分系統資源,       并且不能使用某些特定的系統功能,也不能直接訪問內核空間和硬件設備,以及其他一些具體的使用限制

      內核空間:Linux系統對自身進行了劃分,一部分核心軟件獨立于普通應用程序,指令運行在較高的特權級別       上CPU ring0,它們駐留在被保護的內存空間上,擁有訪問硬件設備的所有權限,Linux將此稱為內核空間

運行程序格式ABI:

      Windows: EXE, dll(dynamic link library)

      Linux: ELF, so(shared object)

POSIX規范:Portable Operating System 只是規范了操作系統為應用級程序開發的API,沒有規范程序的ABI,因此       Windows和Unix,Linux的應用程序編譯成二進制后是不兼容的。

C程序運行過程:

      加深linux源碼安裝過程的認識

             c process.png

      預處理階段(cpp):根據義字符#開頭的命令,修改原始C程序,例如#include <stdio.h>,就是告訴于處理器讀取系統頭文件stdio.h,插入到程序文本,形成另一個C程序,通常是以.i結尾的擴展名。

      編譯階段:編譯器(ccl)將hello.i文件翻譯成.s文件,它包含了一個匯編語言程序,加入了匯編代碼。

      匯編階段:編譯器(as)將.s文件翻譯成機器語言指令,形成機器可讀的二進制數據。

      鏈接階段:假如hello程序條用了printf函數,C庫,由編譯器提供,而printf函數存在一個名為printf.o的單獨的預編譯目標文件中,這個文件必須以某種方式并入到hello.o程序中,連接器(ld)負責這種并入,結果得到hello文件,他是一個可執行目標文件,加載到存儲器上,系統負責執行。

       2. linux操作系統不同發行版的區別和聯系

QQ截圖20160704222628.jpg

其中Gentoo,Archlinux,LFS可定制性很強,充分發揮硬件性能,但配置比較復雜,有時間單獨研究安裝使用下再總結了。

     3.linux的哲學思想

      一切皆文件:對所有文件(目錄、字符設備、塊設備、 套接字、打印機等)操作,讀寫都可用           fopen()/fclose()/fwrite()/fread()等函數進行處理(VFS)。屏蔽了硬件的區別,所有設備都抽象成文件,提供統一的 口給用戶。

      由眾多單一目的小程序組成:一個程序只實現一個功能,組合小程序完成復雜任務。

      盡量避免跟用戶交互:使用腳本編程,以自動完成某些功能。

      使用純文本文件保存配置信息:一款使用的文本編程器即能完成系統配置和軟件配置工作。

(三)linux操作系統的FHS和基礎命令

     1.Filesystem Hierarchy Standard(文件系統目錄標準)

/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄;

/bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序;

/sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序;

/lib:基本共享庫文件,以及內核模塊文件(/lib/modules);

/lib64:專用于x86_64系統上的輔助共享庫文件存放位置;

/etc:配置文件目錄(純文本文件);

/home/USERNAME:普通用戶家目錄;

/root:管理員的家目錄;

/media:便攜式移動設備掛載點;

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

/dev:設備文件及特殊文件存儲位置;

b: block device,隨機訪問

c: character device,線性訪問

/opt:第三方應用程序的安裝位置;

/srv:系統上運行的服務用到的數據;

/tmp:臨時文件存儲位置;

/usr: universal shared, read-only data;

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

sbin:

lib:

lib64:

include: C程序的頭文件(header files);

share:結構化獨立的數據,例如doc, man等;

local:第三方應用程序的安裝位置;

bin, sbin, lib, lib64, etc, share

/var: variable data files

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

lib: 應用程序狀態信息數據;

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

lock: 鎖文件

log: 日志目錄及文件;

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

run: 運行中的進程相關的數據;通常用于存儲進程的pid文件;

spool: 應用程序數據池;

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

/proc: 用于輸出內核與進程信息相關的虛擬文件系統;

/sys:用于輸出當前系統上硬件設備相關信息的虛擬文件系統;

/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置;

       2.基礎命令

格式 : Command 選項 參數

       選項:長選項– 短選項-   參數:要處理的文件,有的命令可以有多個參數

命令幫助:

 man COMMAND

 手冊頁:/usr/share/man

 man1 … man8

 man1: 用戶命令

 man2: 系統調用

 man3: C庫調用

 man4: 設備文件及特殊文件   

 man5: 配置文件格式

 man6: 游戲

         man7: 雜項

 man8: 管理類的命令

         注意:有些關鍵在不止一個章節中存在幫助手冊;

     要查看指定章節中的手冊:man # COMMAND,1,5,8比較常用。

man命令的操作方法:

         Space, ^V, ^f, ^F: 向文件尾翻屏;

         b, ^B: 向文件首部翻屏;

         d, ^D: 向文件尾部翻半屏;

         u, ^U: 向文件首部翻半屏;

         RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行;

         y or ^Y or ^P or k or ^K:向文件首部翻一行;

         q: 退出;

         #:跳轉至第#行;

         1G: 回到文件首部

         G:翻至文件尾部

ifconfig命令:已被廢棄的命令,建議以后使用ip命令

查看所有網卡

QQ截圖20160705131530.jpg

查看網卡詳細統計數據

QQ截圖20160705131610.jpg

臨時給網卡配ip

QQ截圖20160705131742.jpg

禁用啟用網卡

QQ截圖20160705132027.jpg 

echo命令:

-e 允許轉義符 -n 不允許自動添加換行符換行

QQ截圖20160705133047.jpg

轉義符:反斜線 報警 退格鍵 ESC鍵 換頁符 換行符 回車鍵 Tab鍵

QQ截圖20160705133144.jpg

pwd 命令:打印出當前工作目錄(絕對路徑)

QQ截圖20160705134444.jpg

export命令:查看和臨時更改登錄shell的環境變量

QQ截圖20160705140127.jpg

shutdown命令:

-r reboot -h halt -H halt -P poweroff -c清除shutdown相關任務 -k 警告,用戶不能登錄,不關機

QQ截圖20160705141114.jpg

date命令:

常用FORMAT

%Y  YYYY格式的年份(Year)

%m  mm格式的月份(),01-12

%d   dd格式的日期(day of month),01-31

%H   HH格式的小時數(),00-23

%M  MM格式的分鐘數(),00-59

%S   SS格式的秒數(),00-59

%F   YYYY-mm-dd格式的完整日期(Full date),同%Y-%m-%d

%T   HH-MM-SS格式的時間(Time),同%H:%M:%S

%s   自1970年以來的秒數。C函數time(&t) 或者Java中 System.currentTimeMillis()/1000, new Date().getTime()/1000

%w   星期幾,0-6,0表示星期天

%u   星期幾,1-7,7表示星期天

注意以上格式是可以任意組合的,還可以包括非格式串,比如 date "+今天是%Y-%d-%m,現在是$H:%M:%S"

格式:date -d STRING

格式:date –date=STRING

格式:date -d STRING +FORMAT

顯示用STRING指定的日期時間(display time described by STRING, not ‘now’)

格式:date -s STRING

格式:date –set=STRING,date [MMDDhhmm[[CC]YY][.ss]]:設置來設置系統時間

更多格式 man date 或 date –help

 

hwclock命令:

-r 顯示硬件時鐘 -s 同步硬件時鐘到系統時間 -w 同步系統時間到硬件時間

history命令:~/.bash_history 為命令歷史記錄文件,不退出不記錄,只會記錄在緩存中

-a: 追加本次會話新執行的命令歷史列表至歷史文件中;-d: 刪除歷史中指定的命令;-c: 清空命令歷史

!#: 調用歷史中第#條命令;!string:調用歷史中最近一個以string開頭的命令;!!: 上一條命令

tty命令:查看當前登錄終端 物理終端/dev/console 虛擬終端/dev/tty# 模擬終端/dev/ps/#

startx命令:讀取/etc/X11/xorg.conf進入圖形界面終端

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

(0)
SnooSnoo
上一篇 2016-07-07
下一篇 2016-07-07

相關推薦

  • 權限管理與ACL

    一、文件屬性 1.文件屬性:    文件屬性操作     chown : change owner  ,設置文件所有者     chgrp : change group  ,設置文件的屬組    文件屬主修改: chow…

    Linux干貨 2016-08-05
  • openssl關于CA證書的創建

    1、用openssl實現證書申請 先在/etc/pki/CA/目錄下創建一個index.txt的文件,作為ca證書的數據庫 在相同目錄下創建一個serial的序列號文件,并寫入01 生成ca的簽名證書用到的私鑰文件 注意:私鑰的權限時600,文件名必須是cakey.pem 生成自簽證書 這樣私有CA建立完成 申請認證: 在申請的機器上生成私鑰 生成申請文件 …

    Linux干貨 2016-09-23
  • linux時間設置、screen使用、命令分類、hash作用、命令引用及history命令

    一、 生產環境發現一臺服務器系統時間產生偏差,造成服務異常 解決方法             a、 如果服務器硬件時間準備的話,可使用命令:~#] hwclock -s              將硬件時鐘同步到系統 &…

    Linux干貨 2016-08-02
  • 數組

    一.數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 索引:編號從0 開始,屬于數值索引  注:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0 版本之后開始支持,bash 的數組支持稀疏格式(索引不連續) 二.數組的聲明 declare -a ARRAY_NAME decla…

    Linux干貨 2016-11-23
  • 安裝RPM包 rpm與yum工具的使用

    1.認識yum與rpm工具.                 在windows下安裝一個軟件很輕松,只要雙擊.exe的文件,安裝提示連續 “下一步” 即可,然而linux系統下安裝一個軟件似乎并不那么輕松了,因為我們不是在圖形界面下。所以你要學會如何在linux下安裝一…

    Linux干貨 2016-08-26
  • 磁盤及文件系統管理

    磁盤管理     MBR:master boot record 主引導記錄。位于磁盤的0磁道0扇區共512字節,獨立于操作系統之外的。512字節的劃分               …

    Linux干貨 2016-08-25

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-07 11:11

    寫的很好,排版還可以在漂亮一點,加油

欧美性久久久久