文章目錄
1.進程三種狀態
- 運行態 (Running) : 佔有CPU,並在CPU上運行
- 就緒態 (Ready): 已經具備運行條件,但由於沒有空閒CPU,而暫時不能運行
- 等待態 (Waiting/Blocked): 因等待某一事件而暫時不能運行:如等待讀盤結果
2.交換分區
在內存小於2G的情況下,交換分區應爲內存的2倍,超過2G的話,交換分區爲物理內存加上2G
3.文件權限
⑴首先我們看一張圖
444 -r--r--r--
600 -rw-------
644 -rw-r--r--
666 -rw-rw-rw-
700 -rwx------
744 -rwxr--r--
755 -rwxr-xr-x
777 -rwxrwxrwx
注:使用ll命令查看文件/文件夾屬性時候,一共有10列,第一個小格表示是文件夾或者連接等等
d表示文件夾,l表示連接文件,-表示文件
⑵用戶分組權限
從左至右:
1-3位數字代表文件所有者的權限
4-6位數字代表同組用戶的權限
7-9數字代表其他用戶的權限
⑶符號解析
讀®=4 寫(w)=2 執行(x)=1 讀+寫+執行=4+2+1=7
通過4、2、1的組合,得到以下幾種權限:
0(沒有權限)
4(讀取權限)
5(4+1 | 讀取+執行)
6(4+2 | 讀取+寫入)
7(4+2+1 | 讀取+寫入+執行)
⑷總結
以755爲例
1-3位7等於4+2+1,rwx,所有者具有讀取、寫入、執行權限
4-6位5等於4+1+0,r-x,同組用戶具有讀取、執行權限但沒有寫入權限
7-9位5,同上,也是r-x,其他用戶具有讀取、執行權限但沒有寫入權限
4.配置ip地址
- ifconfig命令臨時配置ip地址,重啓失效
- setup工具永久配置ip地址,redhat獨有的
- 修改網絡配置文件
5.常用的壓縮格式
- .zip
- .gz 只壓縮目錄下子文件
- .bz2 壓根不壓縮
- .tar.gz 先打包後壓縮
- .tar.bz2 先打包後壓縮
6.Inode以及軟連接和硬鏈接
⑴inode(索引節點)
存儲文件元信息的區域叫inode,即索引節點。硬盤進行格式化的時候,操作系統會將硬盤分成兩個區域,一個是數據區,存放文件數據,一個是inode區,存放inode信息。
包含內容:
* 文件的字節數
* 文件擁有者的User ID
* 文件的Group ID
* 文件的讀、寫、執行權限
* 文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間。
* 鏈接數,即有多少文件名指向這個inode
* 文件數據block的位置
查看文件的元信息可以用stat 命令
每個inode都有一個號碼,操作系統用inode來識別不同的文件。對於系統而言,文件名只是inode號碼便於識別的一個綽號。
我們打開一個文件時,實際分爲三步:
- ①找到對應的inode號碼
- ②通過inode號碼獲取inode信息
- ③通過inode信息找到文件的block,讀出數據
⑵硬連接
指的是多個文件名指向同一索引節點,硬連接可以使同一文件有多個有效路徑,可以防止誤刪。A是B的硬連接,則A和B目錄項中inode節點號相同,即同一個inode對應兩個不同的文件名,A和B是完全平等的,刪除一個不影響另一個對文件的訪問。
硬連接的兩個限制(這倆限制軟連接沒有):
- 不允許給目錄創建硬連接
- 只有在同一文件系統中的文件才能創建硬連接
創建硬連接的方式:ln 源文件 目標文件
⑶軟連接
類似於快捷方式,源文件刪了快捷方式就沒用了。軟連接權限是777,真正權限由源文件決定。
創建軟連接的方式:ln -s 源文件 目標文件
7.定時任務
⑴at命令
一次執行
⑵crontab
循環定時任務
⑶anacron
沒開機的情況下開機後可以補償定時任務,但是重複的只會執行一次,比如每週執行的關機四周,開機後只會執行一次。
8.ubuntu軟件源
1.什麼是軟件源
在Ubuntu下,相當於軟件庫,當我們需要安裝軟件時:
sudo apt-get install 軟件名
當我們需要卸載軟件時:
sudo apt-get remove 軟件名
2.原理
當通過sudo apt-get install命令去安裝軟件源時,apt包管理工具就會從系統的一個源列表中讀取軟件源的網址信息,查找可以包
含該軟件的軟件源網址並且下載,然後由apt包管理工具進行解壓安裝。
3.軟件源分類
⑴ubuntu官方軟件源
它對應的源列表在 /etc/apt/sources.list中,爲了提高下載速度,我們可以對軟件源地址進行替換。·
⑵PPA軟件源
很多軟件包由於各種原因不能進入官方鏡像倉庫
我們可以搜索PPA地址進行安裝
9.linux可執行文件目錄
s就是system的意思,/bin裏面一般是普通可執行程序,而/sbin裏多爲系統管理程序和服務程序
⑴bin(binary)
系統的必備執行
⑵sbin(system binary)
系統管理
⑶usr/bin
應用軟體工具的必備執行,系統預裝的可執行程序,會隨着系統升級而改變
⑷usr/sbin
網路管理,系統預裝的可執行程序,會隨着系統升級而改變
⑸usr/local/bin
存放所有用戶都可用的與本地機器無關的程序,即第三方軟件程序,不會隨着系統升級而改變
⑹usr/local/sbin
存放超級用戶才能使用的與本地機器無關的程序,不會隨着系統升級而改變
10.進程
每個進程都有自己獨立的進程內存空間,一個進程的內存空間是很大的,32位是4G,64位更大,都是按需申請,只有真正去使用時纔會使用內存管理的系統來分配內存。
進程切換:
11.X86架構
⑴CPU架構
其中最重要的是CPU,總線(主板上的電路),內存(保留中間結果)
CPU包含:
- 運算單元(負責算)
- 數據單元(CPU內部緩存和寄存器組,CPU上飛快的小內存)
- 控制單元(總指揮)
控制單元有指令指針寄存器,存放下一條指令在內存中的地址,控制單元會不斷將指令拿到寄存器。
指令又分爲兩部分,一部分是做什麼操作(交給運算單元),一部分是對應的數據(交給數據單元)
CPU和內存傳輸數據,靠的是總線。總線分兩種
- 地址總線,總線位數決定了訪問的地址範圍
- 數據總線,位數表示一次能拿多少個數據進來
⑵x86最爲經典的8086處理器
數據單元(通用寄存器位置):
有8個16位的通用寄存器AX、BX、CX、DX、SP、BP、SI、DI,在計算過程中暫存數據。
其中AX、BX、CX、DX可以分成兩個8位的寄存器來使用,分別是AH、AL、BH、BL、CH、CL、DH、DL,其中H就是High(高位),L就是Low(低位)的意思。
控制單元(段寄存器位置):
- IP(Instruction Pointer Register)寄存器就是上面的指令指針寄存器,指向下一個指令位置。
- 爲了指向不同進程的地址空間,有四個段寄存器
- CS 代碼段寄存器(Code Segment Register),通過它可以找到代碼在內存中的位置
- DS 數據段的寄存器(Data Segment),運算中需要加載內存中的數據,需要通過DS找到內存中的數據,加載到數據單元的通用寄存器中。
- SS 棧寄存器(Stack Segment)
- ES 附加段寄存器ES(Extra Segment)
對於8086CPU,最多隻能訪問1M的內存空間
⑶32位處理器
在32位處理器中,有32根地址總線,可以訪問2^32=4G的內存
12.軟中斷和硬中斷
⑴軟中斷
硬中斷處理那些短時間就可以完成的工作,而將那些處理事件比較長的工作,放到中斷之後來完成,也就是軟中斷(softirq)來完成,軟中斷是由中斷指令產生
⑵硬中斷
由系統連接的硬件外設產生,比如鍵盤,網卡之類的
13.Linux發行版
- Arch Linux
- Linux Mint
- Kali Linux
14.POSIX
可移植操作系統接口(英語:Portable Operating System Interface,縮寫爲POSIX)是IEEE爲要在各種UNIX操作系統上運行軟件,而定義API的一系列互相關聯的標準的總稱,其正式稱呼爲IEEE Std 1003,而國際標準名稱爲ISO/IEC 9945
15.Unix, Linux, BSD, and GNU的區別
GNU是GNU是“GNU is Not Unix”的遞歸縮寫,因爲GNU的設計類似Unix,但它不包含具著作權的Unix代碼。GNU的內核,稱爲Hurd,發展尚未成熟。在實際使用上,多半使用Linux內核、FreeBSD等替代方案,作爲系統核心,其中主要的操作系統是Linux的發行版。Linux操作系統包涵了Linux內核與其他自由軟件項目中的GNU組件和軟件,可以被稱爲GNU/Linux
BSD是unix的分支,由於bsd的協議允許你直接使用\修改他的代碼,並且可以作爲商業用途,所以很多公司的unix都是從bsd衍生過來的,比如hp-unix,ibm的aix等等.
Linux 嚴格意義上說是一個內核,它並沒有參照UNIX代碼,是一個類UNIX架構,和GNU以及其他核心組件結合到一起我們認爲它是一個完整的操作系統
16.cli
cli是Command Line Interface or Command Language Interpreter的縮略語,它是控制系統最重要的功能。
在類UNIX系統,CLI是一個用戶可以鍵入命令去執行的接口,CLI功能很多,但是沒有很強的容錯性。
17.如何獲取命令行幫助
- man XXX
- XXX -h或者–help
18.GNU
GNU 項目創始於一九八四年,旨在開發一個類似 Unix ,且爲 自由軟件 的完整的操作系統: GNU 系統。
GNU 的內核尚未完成,所以 GNU 使用 Linux 作爲其內核。GNU 和 Linux 以這樣的方式組合成爲 GNU/Linux 操作系統,目前有數百萬用戶。(這個組合有時被錯誤地稱爲 Linux。)
19.掛載
在Linux中,任何設備都是文件,它們有自己的一套文件目錄結構,在Linux中使用硬件設備時,需要將Linux本身的文件目錄和硬件設備合二爲一
掛載,指的就是將設備文件中的頂級目錄連接到 Linux 根目錄下的某一目錄(最好是空目錄),訪問此目錄就等同於訪問設備文件
另外,掛載不要覆蓋原有目錄
20.字符設備
字符設備是指在I/O傳輸過程中以字符爲單位進行傳輸的設備,例如鍵盤,打印機等。在UNIX系統中,字符設備以特別文件方式在文件目錄樹中佔據位置並擁有相應的結點
結點中的文件類型指明該文件是字符設備文件。可以使用與普通文件相同的文件操作命令對字符設備文件進行操作,例如打開、關閉、讀、寫
當一臺字符型設備在硬件上與主機相連之後,必須爲這臺設備創建字符特別文件。操作系統的mknod命令被用來建立設備特別文件。例如爲一臺終端創建名爲/dev/tty03的命令如下(設主設備號爲2,次設備爲13,字符型類型標記c):
mknod /dev/tty03 c 2 13
此後,open, close, read, write等系統調用適用於設備文件/dev/tty03。
設備與驅動程序的通信方式依賴於硬件接口。當設備上的數據傳輸完成時,硬件通過總線發出中斷信號導致系統執行一箇中斷處理程序。中斷處理程序與設備驅動程序協同工作完成數據傳輸的底層控制