2011年1月2号整理
根據RH131課程整理
通路系統常用接口:CLI 、GUI。
CLI(指令行):提供一個輸入指令的提示符而實作對系統的通路。
顯示裝置
實體終端:(裝置檔案)——>/dev/tty0
直連到linux系統所直接安裝到的那台主機上的那台顯示裝置。
虛拟終端:/dev/tty1-tty6 (ctrl+Alt+F1——F6)
在同一個主機上,提供六個不同接口來通路同一個系統,對實體終端的虛拟。
程式:mingetty 在系統初始化完成以後,根據/etc/inittab這個檔案的訓示,結合init程序,初始化啟動幾個終端的那個程式。
串行終端:通過串行鍊路裝置接入進來對系統進行通路的裝置
(裝置檔案)/dev/ttyS* /dev/xvc0(虛拟機上的串行終端)
程式: agetty 啟動串行終端
系統控制台:/dev/console 邏輯裝置,
系統預設的邏輯終端裝置,在系統核心在初始化過程中虛拟出來的,要想顯示出來必須跟實體裝置關聯起來(預設/dev/tty0或/dev/fb0(虛拟機上))。預設情況下系統的啟動資訊都是到系統控制台上去的。
更改設定:console=ttyS0 consle=ttys1
可以設定多個參數,但隻有最後一個才會顯示啟動資訊。
模拟終端:(裝置檔案)——>/dev/pts/N
在X window打開的終端,
通過SSH遠端連接配接上去的terminal
通過,telnet遠端連接配接上去的terminal
tty 檢視當所對應的終端裝置檔案
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368344tS9a.jpg"></a>
通過screen打開不同的螢幕,類同于在X-window上打開多個視窗的機制
GUI(圖形使用者界面)
X protocol(C/S),x386(商業實作) XFree86(開源實作)——&gt;最新版X11R7 R(release)
Xorg漸漸取代XFree86
XFree86,Xorg隻是提供了驅動顯示卡的驅動程式,并提供了幾個額外的子產品,讓顯示卡能夠真正工作起來,為圖形應用提供低層架構的工具。
視窗管理器
桌面管理器:提供所有視窗的母視窗。Gnome 、KDE
X &——&gt; xterm ——&gt;twm &(視窗管理器)——&gt;gdm(登陸管理器)——&gt;gnome-session(桌面)
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368344r8Eh.jpg"></a>
檢視X server 版本号
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368347dehw.jpg"></a>
prefdm:啟動一個圖形界面
Xorg.Conf的配置内容:
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368350ebwv.jpg"></a>
screen:支援在字元界面下打開多個模拟終端
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368351AMHd.jpg"></a>
權限的傳遞:
使用者:管理者(root) 普通使用者
sudo
/etc/sudoers 定義哪些使用者可以在哪些主機上以什麼身份執行哪些指令 who where=(who) what
例如: A 192.168.0.0/24=(root) /sbin/ofcpnfig
RH131
可以使用visudo指令編輯
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368354N3QP.jpg"></a>
百分号表示是一個系統群組
被添加的使用者在使用指令執行時需要在前邊加上sudo 關鍵字
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368357HrEY.jpg"></a>
預設五分鐘内執行sudo指令不用輸入密碼,很人性化的。
定義一個使用者組:User_Alias NETWORK=A,B,C組名必須是大寫英文字母
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368358lu8V.jpg"></a>
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368358NPbE.jpg"></a>
lecture 2
作業系統是實體主機的虛拟抽象
yum yellow update manger
rpm redhat package manager——&gt;rpm package manager
命名格式:package_name-version-release.arhc.rpm
rpm –i 或 –install
-v 顯示安裝進度
-h 以安裝資訊列顯示安裝進度
解除安裝軟體包 rmp –e packagenamne(隻需要指定軟體包的名字)
--nodeps忽略依賴關系
--replacepkgs 重新裝一次,替換原來的包,達到修複的目的
--force強行安裝
--test 測試一下
--justdb 僅僅更新資料庫
更新 rpm –F更新 純粹更新,在原來的基礎上進行
rpm –U更新 原來的包存不存在都沒關系 --oldpackage 降級安裝
核心一般不能以更新的方式安裝
-q 查詢
-qi 列出詳細資訊
-ql 列出該軟體包的所有檔案與目錄所在完整名(list)
-qf 找出該檔案是由那個安裝包來的
-qc 列出安裝包完成後所生成的配置檔案
-qR 列出軟體包的依賴資訊
--querytags 定制查詢
--scripts 檢視安裝時執行了哪些腳本檔案
校驗:
-V pkg_name 檢視系統的安全資訊
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368359jZzp.jpg"></a>
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_12943683595Oh8.jpg"></a>
tripwire
數字簽名,保證資料完整性
單項加密:MD5
rpm --initdb 更新資訊的 不會覆寫原有資料庫
rpm --rebuilddb 無論如何都要覆寫原有資料庫
rpm –qa gpg-pubkey檢視系統公鑰
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm –K package_name 校驗
--checksig package_name 校驗
三種檔案共享方式:file:/// 、 http:// 、ftp://
yum –y install pkg_name 不提示,預設安裝
-y reintall 重裝
yum remove 解除安裝軟體包
update 更新軟體包 可以更新kernel
yum list all 列出所有的軟體包
yun list installed 列出安裝過的
yum provides|whatprovides 誰提供的
grouplist 列出已裝組和所有可用組
groupinstall 組安裝
localinstall
建立一個本地yum源
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368360kDMc.jpg"></a>
直接将CD光牒上的軟體包作為yum源
先挂載CD光牒
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368362GjGY.jpg"></a>
createrepo 直接建立一個yum源
Lecture 7
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368365r49v.jpg"></a>
硬碟盤面結構示意圖
硬碟片旋轉一圈所畫出來的就是磁道(track)
所有硬碟片上相同半徑的那個磁道就組成了柱面(cylinder)
資料是按照柱面來存取的。
第0磁道上的0扇區不能被分區。用于表示目前磁盤上有幾個分區以作業系統所在的分區,成為引導扇區,MBR (主引導記錄) 512B 前446B放置一段程式,成為boot loader
引導加載器,後64B用來标示分區,每16B用來标示一個分區
硬碟最小的存儲機關是扇區(512B),資料所存儲的最小機關是邏輯塊(block)
每個分區就是一個檔案系統,而每個檔案系統開始位置的那個塊就稱為超級塊(superblock)。超級快的作用是存儲檔案系統的大小,空的和填滿的塊,以及它們各自的總數和其他諸如此類的資訊。
檢視目前系統上所有的塊儲存設備及分區資訊:fdisk –l
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368368ChGK.jpg"></a>
* 表示在此分區上有作業系統
檢視系統分區資訊:
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368369UuYE.jpg"></a>
HAL 硬體抽象層:實時探測核心中新插入的裝置,将新插入的裝置屬性資訊,通過HAL将這些資訊導入到使用者空間的程序中去。
hal-device 輸出整個系統上所有的硬體裝置資訊
fdisk /dev/sda 對硬碟裝置進行分區
mkfs——&gt;make filesystem
-t type 類型
mkfs –t ext3= mkfs.ext3
mke2fs 建立ext2檔案系統
-j 格式化為ext3
-l 設定卷标
-b 指定塊大小 預設1024B=1K
-c 慢速格式化
-i 指定位元組和inode比率
-n 指定一個分區上inode個數
-m為超級使用者在目前分區上所預留的空間大小的比率 預設百分之五
mount [options] [-o options] /dev/device /path/to/mount_point
不加參數顯示目前系統上已經挂載的裝置和類型
umount /dev/device [/path/to/mount_point]
-o rw 讀寫挂載 (自定義選項)
-a 挂載/etc/fstab 所有裝置
remount 重新挂載
mount –n –o remount,rw 重新挂載
gnome-mount 自動挂載 預設在media目錄下
gnome-umount 解除安裝
partprobe /dev/sda 更新核心中分區資訊
如果需要自動挂載的話需要修改/etc/fstab
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368370MPMe.jpg"></a>
要挂載的裝置 挂載點 檔案系統類型 挂載選項(-o指定) 是否需要轉儲(1備份) 自檢辨別(根分區為1 其他分區為2)
lecture 5
系統初始化
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368371oXl4.jpg"></a>
顯示系統版本号
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368372THgH.jpg"></a>
uname –a 顯示所有資訊
-r 顯示核心發行号
-n 顯示目前系統名稱
-v 顯示核心版本(什麼時候編譯的)
-p 顯示系統架構
運作級别 runlevel 在啟動的時候所啟動的服務不一樣
0——6
檢視運作級别
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368373Cigu.jpg"></a>
init 0 關機
init 6 重新開機
init 3 字元界面正常模式
init 5 圖形界面正常模式
init 1 單使用者模式 不啟動網絡服務 用于修複系統 不需要使用者認證登入
init 2 多使用者模式 不啟動NFS服務
init 4 保留
s S single:單使用者 /etc/rc.d/rc.sysinit
emergency: 緊急模式,不會讀取/etc/rc.d/rc.sysinit 用于系統修複
init N 切換運作級别
chkconfig –list 列出所有的服務在不同運作級别下開啟情況
chkconfig –level nnnnnnn service_name on|off 特定的關掉某個級别下的服務
沒加級别預設是2.3.4.5
ntsysv –level 2345
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368373uvkP.jpg"></a>
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368376WDkp.jpg"></a>
開機啟動流程
1. 加載BIOS資訊,并取得第一個啟動裝置的代号;
2. 讀取第一個啟動裝置的MBR的引導加載程式(lilo,grub等)的啟動資訊;
3. 加載核心作業系統的核心資訊,核心開始解壓縮,并嘗試驅動所有的硬體裝置;
4. 核心執行init程式并擷取運作資訊;
5. init執行/etc/rc.d/rc.local檔案;
6. 啟動核心的外挂子產品(/etc/modprobe.conf);
7. init執行運作的各個批處理檔案(scripts);
8. init執行/etc/rc.d/rc.loacl檔案;
9. 執行/bin/login程式,等待使用者登入;
10. 登入之後開始以shell控制主機。
BIOS(Basic Input Output System)記錄了主機闆的晶片組與相關的設定,如CPU與接口裝置的通信頻率、啟動裝置的搜尋順序、硬碟大小與類型、系統時間、外部總線是否啟動即插即用、各接口裝置的I/O位址,以及與CPU通信的IRQ中斷等資訊。
引導加載程式的設定視窗
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368379RsbV.gif"></a>
BIOS與引導加載程式及核心加載流程示意圖
init處理系統初始化流程(/etc/rc.d/rc.sysinit)
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368382mZGV.jpg"></a>
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368386FQ1J.jpg"></a>
/etc/rc.d/rc.sysinit主要任務有:
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368391XP5a.jpg"></a>
自定義核心子產品的加載可以将整個子產品寫入到/etc/sysconfig/modules/*.modules中。
啟動系統服務與相關啟動設定檔案(/etc/rc.d/rc.n 與/etc/sysconfig)
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368394sP9W.jpg"></a>
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368397hkxq.jpg"></a>
目錄裡邊檔案全是軟連結,是以/etc/init.d與/etc/rc.d/init.d是一樣的。
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_12943684009BsQ.jpg"></a>
以S為開頭的檔案,為啟動時需要“啟動,start”的服務
以K開頭的檔案,為“關機時需要關閉的服務,stop”的檔案連結
S與K後面的數字,表示該檔案的執行順序 範圍0——99 數字越小,優先級越高
使用者自定義引導啟動程式(/etc/rc.d/rc.local)
任何想要在開機時執行的工作,直接寫入到/etc/rc.d/rc.local。該工作就會在啟動的時候自動加載。比如自己制作的shell腳本。
根據/etc/inittab 設定加載終端或X-Window界面
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_12943684016pof.jpg"></a>
運作等級為2345時,都會執行/sbin/mingetty 而且執行6個。
mingetty 啟動虛拟終端
如果運作級别為runlevel 5 init還會執行/etc/X11/prefdm –nodaemon 指令,啟動X-window。
對子產品進行一些參數的設計 /etc/modprobe.conf
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368402KkCi.jpg"></a>
/etc/sysconfig/* 再整個啟動過程中,在/etc/sysconfig讀取服務的相關設定
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368403b1oD.jpg"></a>
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_12943684061dah.jpg"></a>
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368409UvQS.jpg"></a>
核心與核心子產品
存放位置:
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368410l30L.jpg"></a>
引導加載程式:Grub
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368411iqRL.jpg"></a>
grub對硬碟的代号設定于傳統的linux磁盤代号完全不同,如(hd0,0)
1. 硬碟代号以小括号()括起來
2. 硬碟以hd表示,後面接一組數字
3. 以“搜尋順序”作為硬碟的編号,而不是根據硬碟排線的排序
4. 第一個搜尋到的為0,第二個為1号,以此類推
5. 每個硬碟的第一個分區代号為0,以此類推
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368412ITk2.jpg"></a>
第一個硬碟MBR安裝處的硬碟代号是“(hd0)”,第一個硬碟的第一個分區的超級塊代号是“(hd0,0)”,第一個硬碟的第一個邏輯分區的超級塊代号是“(hd0,4)”。
(0——3)——&gt;(P+E)
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368413dt4t.jpg"></a>
如果/boot單獨分區,則/vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
如果boot在根目錄下,則/boot/vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
核心=核心核心+子產品(kernel object)
核心本身就是子產品化設計,隻提供了最核心的功能,核心上有很多接口,可以去加載對應的子產品,其他的功能都被做成了二進制的子產品,放在/lib/modules/`uname –r`/
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368414RpWI.jpg"></a>
kernel裡邊的内容:
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368415nhfX.jpg"></a>
lsmod 顯示目前已加載子產品
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368416h1pM.jpg"></a>
modprobe 子產品名 加載子產品
-r 子產品名 解除安裝子產品
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_12943684166gaz.jpg"></a>
ldd /bin/ls 檢視一個指令執行過程中需要調用哪些庫
<a href="http://lyp0909.blog.51cto.com/attachment/201101/7/508999_1294368417p27L.jpg"></a>
本文轉自 490999122 51CTO部落格,原文連結:http://blog.51cto.com/lyp0909/473707,如需轉載請自行聯系原作者