馮·諾依曼架構:控制器、運算器、儲存器、輸入裝置、輸出裝置。 除其他外控制器、運算器
一切盡在cpu
中間。
CPU 是一種具有特定功能的晶元,其中包含一組微指令。 如果想讓主機實現一些特定的功能,需要參考CPU是否有內建的微指令集。
CPU用於計算和判斷,操作資料完全**在主儲存器(儲存器)中,主儲存器的資料在輸入單元中,CPU處理後寫回主儲存器,主儲存器傳輸到輸出單元。
tips
:為了提高系統效能,您需要增加記憶體,因為所有資料都必須通過主記憶體。
精簡指令集(RISC),每條指令執行時間短,完成的動作是純粹的,複雜的任務需要多條指令才能完成。
複雜指令集(CISC),可以執行低階硬體操作,具有大量複雜指令,耗時長,處理任務範圍廣。 最常見的是AMD和Intel的x86架構。
X86:因為最早的Intel研製了代號為8086的CPU,後來又有順序的,後來x86結構的COU從8位公升級到16位和32位,最後產生了64位CPU,所以64位CPU統稱為X86 64。
溫馨提示:CPU的位是一次可以讀寫的最大CPU量,64位表示一次可以讀寫64位資料。
儲存單元:包含主儲存RAM和輔助儲存,輔助儲存為硬碟、光碟、磁帶等。
CPU的資料來源來自主記憶體,如果需要從過去的經驗來判斷事情,就需要將經驗(硬碟)中的資料載入到主記憶體中,然後交給CPU進行處理。
0 1 二進位單位稱為位元,通常需要 8 位 = 1 位元組來儲存資料。
B = > KB = > MB = > GB = > TB = > PB = > EB = > ZB(1024 次間隔)。
CPU的指令週期為MHz或GHz,Hz為1秒,網路的傳輸單位為Mbps,每秒Mbits。 也就是說,每秒傳輸多少位。 所有 20m 的寬頻為 20 8 = 25MB 上傳**速度。
硬碟500g實際上是乙個十進位單位,即50010001000位元組。 當使用二進位轉換為檔案單位時,它變為 466 GB。
主機板是連線各個元件的重要物品,因此主機板與元件進行通訊晶元組
設計的質量會影響效能。
北橋:負責連線快速CPU、主記憶體和顯示卡。
南橋:負責連線慢速硬碟、USB、網絡卡等。
目前主流架構大多將北橋整合到CPU中。
CPU 頻率,即 CPU 每秒可以工作的次數,頻率越高意味著單位時間可以完成更多的事情,CPU 頻率 36GHz,這意味著該 CPU 每秒可以執行 3 次6*10 9 工作。
超執行緒 (HT):通過讓 CPU 競爭乙個計算單元,例如 4 核機器,HT 可以使作業系統認為它有 8 個核心,因此它可以同時執行 8 個程式。
作業系統作業系統核心是直接參照硬體規範編寫的,因此同乙個作業系統程式不能在不同的硬體架構下執行。 應用程式的開發是指作業系統提供的開發介面,因此應用程式只能在作業系統上執行,而不能在其他作業系統上執行。
在 Linux 中,所有裝置都被視為單個檔案。
分割槽。
/boot//home/varswap
目錄操作:cd:轉換目錄 pwd:顯示當前目錄 mkdir:建立目錄 rmdir:刪除目錄
環境變數:$path將指定目錄/root
搭$path
中間。
path = "$:/root"
不同的身份使用者有不同的預設路徑,可以隨意執行的命令也不同,可以修改路徑,使用絕對路徑或相對路徑來執行指令,這比搜尋路徑更正確ls:查詢 cp:複製 rm:刪除 mv:移動(重新命名)。
cp 命令注意:
是否需要保留檔案的完整資訊**是否為鏈結檔案**檔案是否為特殊檔案**檔案是否為目錄獲取檔名和目錄名:
basename etc sysconfig network => network filenamedirname etc sysconfig network => etc sysconfig 目錄名
文件內容審查cat 從第一行開始顯示內容 filetac 從最後一行開始(與 cat 相反)nl 顯示,順便說一句,輸出行號更多逐頁顯示檔案的內容更少與更多類似,但您可以向前翻頁,只看前幾行, tail 只看最後幾行,od 以二進位方式讀取檔案的內容
檔案搜尋 指令碼檔案搜尋,如 which ls,顯示 ls 指令碼檔案位置原則:當命令是內建命令(如 which history)時,查詢路徑指定的目錄。 您找不到它,因為 history 命令是內建的,而不是在路徑目錄中。
which [command]type [command]
搜尋檔案的建議:先使用 whereis、locate 進行檢查,如果找不到,則使用 find
Find 不常用,因為它在硬碟中全域性搜尋系統中特定目錄中的檔案,-l 列出 Locate 使用資料庫搜尋檔名的主要目錄。 資料庫:var lib mlocate
軌跡的侷限性:預設情況下,資料庫更新只執行一次,因此,如果是新建立的檔案,則在更新資料庫之前不會找到它。
可以通過 updatedb 命令手動更新資料庫。 UpdatedB 讀取/etc/updatedb.conf
這個配置檔案,然後去硬碟搜尋檔名,最後更新資料庫。
find:
在路徑路徑下找到 [path] [option] [action] 選項: -name 檔名: find -name nginxconf 查詢路徑下的名稱為 nginxconf file find -name passwd : 查詢 passwd 此檔案 find -name"*passwd*":查詢名稱中包含 passwd 關鍵字的檔案
如果你想能夠cd乙個目錄,你需要在目錄上有x,如果你能執行能夠cd進入乙個目錄的許可權,你需要對目錄有r讀許可權格式:*z壓縮程式壓縮*拉鍊壓縮*GZ GZIP 壓縮*BZ2 BZIP2 壓縮*xz xz 壓縮*焦油焦油包裝,無壓縮*tar.GZ Tar 和 GZIP 壓縮*tar.BZ2 焦油填料,BZ2 壓縮*tar.XZ tar 包 XZ 壓縮
gzip => zcat zmore zless zgrep:除了 gzip 之外,其他命令 zcat 和 zless 用於讀取壓縮的命令.gz
檔案。
bzip2 => bzcat/bzmore/bzless
xz => .
為了方便shell的執行,bash 有很多內建指令:可以查詢指令是否是 bash shell 的內建命令: type
型別 cd : cd 是乙個 shell 內建命令 型別 -a lsls 別名為 ls --color=auto find aliasls is usr bin ls find external directive
變數讀取變數:echo $path
或echo $
設定變數:key=value=空間並將鍵的值設定為值
規則:變數與 = 連線到變數的內容key=value
等號兩邊不能有空格,變數名只能是英文字母或數字,但開頭不能是數字,如果變數中有空格,則內容用單引號和雙引號括起來:var = "lang is $lang"
如果要放大變數的內容,可以使用$variable名稱新增:path="$path":/home/bin
如果變數需要在子例程中執行,則需要使用它export
使其成為環境變數。 export path
.取消變數未設定變數名稱
unset myname
子程式。
name='123'bash 進入子程式 echo $name為空,沒有內容 exit exit exit 子程式 export name name 成為環境變數 bash 再次進入子程式 echo $name 123 正常輸出
也就是說,在當前 shell 的情況下,去啟用另乙個新 shell,新 shell 就是子例程。 一般父程式自定義變數
但是,子例程不能使用export
之後,它成為乙個環境變數,子程式能夠讀取環境變數。
環境變數查詢預設環境變數:env
export
可以找出當前所有環境變數。
set
檢視所有變數(自定義變數 + 環境變數)。
提示:設定ps1
這是提示字元的設定,例如顯示[使用者名稱使用者組資訊]。
export
:將自定義變數轉換為環境變數。 子程式繼承父程式的環境變數,但不繼承父程式的自定義變數。
也可以刪除變數內容。
別名 unaliasbash 環境配置檔案bash profile:只要檔案存在,接下來的兩個檔案就不會被讀取。
bash_login
profile
/etc/bashrc
終端環境設定:stty、set,如使用退格鍵刪除字元,使用ctrl+c終止命令,全部通過stty
決定。
資料流重定向:[<2>,2>>]省略)實現,如儲存螢幕輸出資訊。
訂單執行依據:; ,無論指令連續性如何,即無論前乙個命令是成功還是失敗,下乙個命令都會繼續執行。
僅當上一次執行成功時,執行才會繼續。
如果上乙個命令出現錯誤,後續命令將執行,否則將不執行。
管道命令管道傳遞上乙個命令正確
資訊(無法處理錯誤訊息)並將其傳遞給後續命令。 後乙個命令必須能夠接受輸入。
ls -al /etc |less 執行less命令檢視ls的執行結果
Data Capture cut grepcut:逐行分析所有資訊,如果資訊行中有我們需要的資訊,那就把它拿出來資訊
grep:將所有資訊一一分析,如果一行資訊中有我們需要的資訊,那就把它拿出來還行
sort sort, wc, uniqsort:排序。
uniq:僅顯示乙個副本。
wc:計算檔案包含的單詞、行數和字元數。
雙向重定向 TEE 將資料流儲存到檔案中,並單獨顯示在螢幕上。
新增使用者:useradd
授予密碼:passwd
usermod,userdel