1. 程式人生 > >面試相關的linux裝機必備知識點

面試相關的linux裝機必備知識點

linux

OS操作系統五大功能

硬件驅動 進程管理 內存管理 網絡管理 安全管理 文件管理

OS分類:

服務器OS:RHEL, CentOS,Windows Server,AIX

桌面OS:Windows 10,Windows 7,Mac OS,Fedora

移動設備OS:Andriod,IOS,YunOS


開發接口標準

ABI:Application Binary Interface

ABI描述了應用程序與OS之間的底層接口,允許編譯好的目標代碼在食用兼容ABI的系統中無需改動就能運行

API:Application Programming Interface

API定義了源代碼和庫之間的接口,因此同樣的源代碼可以在支持這個API的任何系統中編譯

POSIX:Portable Operating System Interface

IEEE在操作系統上定義的一系列API標準

POSIX兼容的程序可以在其他POSIX操作系統上編譯執行

運行程序格式:

Windows: EXE, .dll(dynamic link library),.lib

Linux: ELF,.so(shared object), .a


用戶和內核空間

用戶空間:User space,用戶程序和函數庫

用戶程序運行空間。為了安全,用戶安全與內核空間是隔離的,即使用戶程序崩潰,也不會影響到內核。

用戶空間只負責執行簡單的運算,不能直接調用系統資源,必須通過系統接口(system call),才能像內核發出指令

內核空間kernel space,設備驅動程序、字符及塊設備、緩沖區、文件系統;操作系統、庫文件、進程間調用、系統調用接口

是內核的運行空間

可以執行任意命令,調用系統一切資源

示例:

str="www.magedu.com"//賦值,用戶空間

x = x + 100 //賦值,用戶空間

file.write(str)//需寫入文件,切換回內核空間

y = x + 200 //賦值,切換回用戶空間


Linux哲學思想

一切皆文件(包括硬件、視頻或圖片)

程序小且執行單一功能

鏈接程序,共同完成復雜任務

避免令人困惑的用戶界面

配置數據存儲在文本中


CPU

即中央處理器

主頻:主頻是CPU的時鐘頻率(CPU Clock Speed),是CPU運算時的工作的頻率(1秒內發生的同步脈沖數)的簡稱。單位為Hz。一般來說,主頻越高,CPU的速度越快,由於內部結構不同,並非所有的時鐘頻率相同的CPU性能都一樣

外頻:系統總線的工作頻率,CPU與外部(主板芯片組)交換數據、指令的工作時鐘頻率

倍頻:倍頻是指CPU外頻與主頻相差的倍數

三者的關系是:主頻=外頻x倍頻

高速緩存(cache):高速交換的存儲器。CPU緩存分為一級,二級,三級緩存,即L1,L2,L3

內存總線速度(Memory-Bus Speed):一般等同於CPU的外頻,指CPU與二級(L2)高速緩存和內存之間的通信速度

地址總線高度:決定了CPU可以訪問的物理地址空間

CPU類型:

x86

x64(CISC)

ARM(Acorn RISC Machine)

m68000,m68k(moto)

Power(IBM)

Powerpc(apple,ibm,moto)

Ultrasparc(Sun)

Alpha(HP)

安騰(compaq)

服務器分類:http://blog.csdn.net/pan_tian/article/details/9955539

詳細版:https://wenku.baidu.com/view/b12b5b6b1eb91a37f1115c75.html


內存

內存是介於CPU和外部存儲之間,是CPU對外部存儲中程序與數據進行高速運算時存放程序指令、數據和中間結果的臨時場所,它的物理實質就是一組具備數據輸入輸出和數據存儲功能的高速集成電路

內存是CPU能直接尋址的存儲空間,由半導體器件制成。內存的特點是存取速度快

計算機中所有的程序的運行都是在內存中運行的,因此內存的性能對計算機影響非常大

外存;硬盤,u盤,軟盤,光盤

內存和外存的區別;內存斷電後數據丟失,外存斷電後數據可以保存

在線內存備用技術:

當主內存或者是擴展內存中的內存出現多位錯誤或者出現物理內存故障時,服務器仍繼續運行

由備用內存接替出現故障內存的工作

備用的內存區域必須比其他區域的內存容量要大或相同

內存鏡像:

鏡像為系統在出現多位錯誤或內存物理故障時提供數據保護功能,以保證系統仍能正常的運行

數據同時寫入兩個鏡像的內存區域

從一個區域進行數據的讀取


Raid(陣列卡)

Raid卡:用來實現Raid的建立和重建,檢測和修復多位錯誤,錯誤磁盤自動檢測等功能。Raid芯片使CPU的資源得以釋放

作用:

陣列卡把若幹硬盤驅動器按照一定要求組成一個整體、由陣列驅動器管理的系統

陣列卡用來提供磁盤子系統的性能及可靠性

陣列卡參數:

支持的RAID級別

陣列卡緩存

電池保護


機房作業標準

1.進入申請,來訪登記

2.執勤人員應佩戴工作牌

3.隔絕易燃易爆、強磁、腐蝕性品及其他不安全物品

4.不得在通電情況下對設備內部進項清洗、除塵等作業

5.溫度(15~25)濕度(30%-70%)衡定,溫度變化率<5度/h,且能結露。室內保持高清潔度(10度)

6.機房應密封、防塵,防靜電,防日光直射

7.噪聲標準為在計算機系統停機條件下,在主操作員位置測量應小於68dB(A)

8.靜電控制。主機房內絕緣體的靜電電位不應大於1kV

9.整齊,設備盡可能入架

10.機房地板平整牢固,機房外觀整潔,設備無明顯汙跡及灰塵堆積

11.消防措施到位,配備滅火器材

12.機房作業規範化標準化,布線、機架規範化

13.不得堆積無關設備

參考自https://wenku.baidu.com/view/0fd256e0b84ae45c3a358c50.html

https://wenku.baidu.com/view/8054d35faf45b307e87197be.html

最常使用的是42U機櫃(高約2米)


獲取幫助

whatis

man

info 在線文檔

獲取發行版官方幫助

google及相關網站


文件類型

-:普通文件

d:目錄文件

b:塊設備

c:字符設備

l:符號鏈接文件(軟鏈接)

p:管道文件pipe

管道指用於連接一個讀進程和一個寫進程,以實現它們通信的共享文件。管道是半雙工的,數據只能向一個方向流動,需要雙方通信時,需要建立起兩個管道。管道對於管道兩端的進程而言,就是一個文件,但其和其他文件系統不同,管道單獨構成一種文件系統。linux中實現了兩種管道。無名管道只能用於父子進程或兄弟進程之間。無名管道沒有磁盤節點,它只存在與內存中。無名管道實際上在創建時就自動打開,並且生成內存inode節點。命名管道可mknod創建,命名管道有文件名和磁盤i節點,因此可由任意兩個或多個進程間通信使用,但其讀寫的內部實現和無名進程一樣。

參考自:https://baike.baidu.com/item/%E7%AE%A1%E9%81%93/476943?fr=aladdin#4

s:套接字文件socket

主要用於網絡通信。使用套接字除了可以實現網絡間不同主機間的通信外,還可以實現同一主機的不同進程間的通信,且建立的通信是雙向的通信。

linux以文件的形式實現套接口,與套接口相應的文件屬於sockfs特殊文件系統,創建一個套接口就是在sockfs中創建一個特殊文件,並建立起為實現套接口功能的相關數據結構。換句話說,對每一個新創建的套接字,linux內核都將在sockfs特殊文件系統中創建一個新的inode。

參考自:http://blog.csdn.net/gatieme/article/details/46241975


文件通配符

*:匹配零個或多個字符

?:匹配任何單個字符

~:當前用戶家目錄

~+:當前工作目錄

~-:前一個工作目錄

[0-9]或[:digit:]:數字

[a-z]或[:lower:]:小寫字母

[A-Z]或[:upper:]:大寫字母

[wngj]:匹配中括號內任字符

[^wngi]:匹配中括號內字符外的所有其他字符

[:alpha:]:任意大小寫字母

[:alnum:]:任意字母或數字

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:標點符號

[:print:]:可打印字符

inode索引節點(元數據)

文件類型、權限、UID、GID、鏈接數、大小及時間戳、指針等

stat可查看


軟硬鏈接

軟鏈接

一個符號鏈接指向另一個文件

ls -l 顯示鏈接的名稱和引用的文件

一個符號鏈接的內容是它引用文件的文件的名稱

可以對目錄進行

可以跨分區

指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數;

語法:ln -s filename [linkname]

硬鏈接

創建硬鏈接會增加額外的記錄項以引用文件

對應於同一個文件系統上同一個物理文件

每個目錄引用相同的inode號

創建時鏈接數遞增

刪除文件時:

rm命令遞減計數的鏈接

文件要存在,至少有一個鏈接數,當鏈接數為0時,該文件被刪除

不能跨越驅動器或分區

語法 ln filename [linkname]


文件系統結構(/目錄樹下個文件夾的用途):

/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:系統資源

/var:日誌文件及應用進程數據

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

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

/selinux:sexlinux相關的安全策略等信息的存儲位置


文件權限

普通文件

r:讀

w:寫,修改

x:執行

目錄文件

r:ls列出其下文件

x:進入

w:修改,創建(只有w無意義)

rx:可進入且可長列出,不能修改(常用)

rw:無法進入目錄內,等於只有r

wx:能進入,能刪除,不能長列出

rwx:all權限

特殊權限:

suid:對一個可執行的二進制文件作用了suid後,其執行者臨時擁有文件所屬主權限。作用在無x權限的文件上無意義。/etc/passwd(chmod u+s)

sgid:

對一個可執行的二進制文件作用了sgid權限後,任何對其文件擁有執行權限的用戶,在其執行過程中都臨時擁有文件所屬組的權限。

對一個目錄作用了sgid權限後,任何對該目錄擁有wx權限的用戶名,在該目錄下創建的文件及目錄所屬組均為該目錄的所屬組。(g+s)

sticky:對一個目錄作用了sticky權限後(只限組和用戶,該目錄的owner不受影響),該目錄下的文件僅其所屬人可以刪除。(o+t)


用戶

超級用戶:root

系統用戶:1-499(centos6)、1-999(centos7)

一般不能登錄(位於/sbin/nologin下),對守護進程或普通進程獲取資源進行權限分配

登錄(普通)用戶:500+(cen6)、1000+(cen7)


安全上下文

即訪問控制屬性(ls -Z)

進程能夠訪問資源的權限取決於進程運行者的身份


密碼復雜度策略

使用數字、大小寫字母及特殊字符中至少3種

足夠長

使用隨機密碼

定期更換,不要使用最近曾經使用過的密碼

(從密碼安全建立安全體系雛形)


安全體系

仁者見仁智者見智,阿拉也不過是個新人,對此也沒什麽發言權。而且這個復雜的問題已經不是技術的範疇了。運維人員還要具備的素質有很多,甩鍋技能神馬的0.0。安全體系姑且可以從下面幾個方面著手(算是阿拉要參考的標準吧)。

人 事 物 流程

標準參考自http://zhuanlan.51cto.com/art/201704/537456.htm

阿拉的運維路還沒開始呢,不過,就是有挑戰才有趣啊。阿拉很期待呢!


安全3A

資源分配:

Authentication:認證

Authorization:授權

Accounting|Audition:審計


分析文本的工具

文件內容:less和cat

文件截取:head和tail

按列抽取:cut

按關鍵字抽取:grep

sed:按行處理。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”,處理完模式空間的內容後將其送往屏幕。然後讀入下行。

awk

比較兩個文本的不同:diff a.sh b.sh

文本數據統計:wc(-l行數,-c字符數)

整理文本:sort和uniq

比較文件:diff和patch


正則表達式

分組與後項引用

分組:\(表達式\) 引用:\1

多個分組嵌套時:\(str1\+\(str2\)\)

\1:str1+\(str2\)

\2:str2

按括號從左到右的順序劃定分組

位置錨定:

^:行首

$:行尾

^pattern$:用於模式匹配整行

^$:空行

^[[:space:]]*$:空白行

\< \b:詞首

\> \b:詞尾

\<str\> \bstr\b:整個單詞

匹配次數

*(任意次) .*(任意長度任意字符) \?(0或1次) \+(至少一次)

\{n\}n次 \{m,n\}m-n次,如2-3次 \{,n\}最多n次 \{n,\}最少n次


變量

本地變量:僅當前進程生效,其他進程及子進程無效

環境變量:全局變量

局部變量

位置變量

特殊變量:$?(上一條命令執行結果的返回值,0為成功,其他為錯誤) $0(當前路徑名) $*(以單個字符串顯示所有參數) [email protected](所有參數列表) $#(參數數量) $$(當前進程號)

查看:set或export

刪除:unset var


腳本調試

bash -n a.sh 檢測腳本中的語法錯誤

bash -x a.sh 調試執行


網線線序

T568B:橙白>橙>綠白>藍>藍白>綠>棕白>棕

T568A:綠白>綠>橙白>藍>藍白>橙>棕白>棕

直通線:兩端線序相同(連接交換機到路由器、電腦或服務器)

交叉線:兩端線序相反(連接同種設備或交換機與集線器,電腦與路由器)


網絡模型分層

七層:

物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層

七層優點:

降低復雜性、標準化接口、簡化模塊化設計、確保技術的互操作性、加快發展速度、簡化教學


開機啟動流程

post加電自檢>>mbr引導>>boot loader>>grub>>加載內核(init)

POST:power-on-self-test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串並行接口、鍵盤、CD-ROM光驅等硬件情況的檢測

bootloader:加載引導器,引導程序,mbr前446個字節

centos6啟動流程:

1.加載BIOS的硬件信息,獲取第一個啟動設備

2.讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息

3.加載核心操作系統的核心信息,核心開始解壓縮,並嘗試驅動所有的硬件設備

4.核心執行init程序,並獲取默認的運行信息

5.init程序執行/etc/rc.d/rc.sysinit

6.啟動核心的外掛模塊

7.init執行運行的各個批處理文件(scripts)

8.init執行/etc/rc.d/rc.local

9.執行/bin/login程序,等待用戶登錄

10.登錄之後開收以shell控制主機


計算機系統:

硬件:

主機:

CPU

內存儲器

外部設備:

外部存儲器

輸入輸出設備

其他設備:調制解調器

軟件:

系統軟件:

驅動程序

操作系統

數據庫

服務程序

應用軟件:


進程管理工具:

top常用鍵位

排序:P(%CPU)、M(%MEM)、T(TIME+)

首部信息:l(uptime)、t(tasks及cpu)、1(cpu分別顯示)、m(memory信息)

其他:q(退出)、s(修改刷新時間間隔)、k(終止指定進程)、w(保存文件)



本文出自 “RightNow” 博客,請務必保留此出處http://amelie.blog.51cto.com/12850951/1967975

面試相關的linux裝機必備知識點