nginx Firefox Ubuntu mysql shell 程序员 编程 apache linux 微软 google Windows Python centos java 开源 php 云计算 wordpress Android

linux基礎知識總結(五)

根據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 查看當所對應的終端設備文件

clip_image002

通過screen打開不同的屏幕,類同於在X-window上打開多個窗口的機制

GUI(圖形用戶界面)

X protocol(C/S),x386(商業實現) XFree86(開源實現)——>最新版X11R7 R(release)

Xorg漸漸取代XFree86

XFree86,Xorg只是提供了驅動顯卡的驅動程序,並提供了幾個額外的模塊,讓顯卡能夠真正工作起來,為圖形應用提供低層框架的工具。

窗口管理器

桌面管理器:提供所有窗口的母窗口。Gnome 、KDE

X &——> xterm ——>twm &(窗口管理器)——>gdm(登陸管理器)——>gnome-session(桌面)

clip_image004

查看X server 版本号

clip_image006

prefdm:啟動一個圖形界面

Xorg.Conf的配置內容:

clip_image008

screen:支持在字符界面下打开多个模拟终端

clip_image010

查看已经关闭的终端:clip_image012

權限的傳遞:

用戶:管理員(root) 普通用戶

sudo

/etc/sudoers 定義哪些用戶可以在哪些主機上以什麽身份執行哪些命令 who where=(who) what

例如: A 192.168.0.0/24=(root) /sbin/ofcpnfig

RH131

可以使用visudo命令編輯

clip_image014

添加:clip_image016

百分號表示是一個系統群組

被添加的用戶在使用命令執行時需要在前邊加上sudo 關鍵字

clip_image018

默認五分鐘內執行sudo命令不用輸入密碼,很人性化的。

定義一個用戶組:User_Alias NETWORK=A,B,C組名必須是大寫英文字母

clip_image020

clip_image022

lecture 2

操作系統是物理主機的虛擬抽象

yum yellow update manger

rpm redhat package manager——>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 查看系統的安全信息

clip_image024

clip_image026

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源

clip_image028

直接将光盘上的软件包作为yum源

先挂载光盘

clip_image030

createrepo 直接创建一个yum源

Lecture 7

clip_image032

硬盤盤面結構示意圖

硬盤片旋轉一圈所畫出來的就是磁道(track)

所有硬盤片上相同半徑的那個磁道就組成了柱面(cylinder)

數據是按照柱面來存取的。

第0磁道上的0扇區不能被分區。用於表示當前磁盤上有幾個分區以操作系統所在的分區,成為引導扇區,MBR (主引導記錄) 512B 前446B放置一段程序,成為boot loader

引導加載器,後64B用來標示分區,每16B用來標示一個分區

硬盤最小的存儲單位是扇區(512B),數據所存儲的最小單位是邏輯塊(block)

每個分區就是一個文件系統,而每個文件系統開始位置的那個塊就稱為超級塊(superblock)。超級快的作用是存儲文件系統的大小,空的和填滿的塊,以及它們各自的總數和其他諸如此類的信息。

查看當前系統上所有的塊存儲設備及分區信息:fdisk –l

clip_image034

* 表示在此分区上有操作系统

查看系统分区信息:

clip_image036

HAL 硬件抽象層:實時探測內核中新插入的設備,將新插入的設備屬性信息,通過HAL將這些信息導入到用戶空間的進程中去。

hal-device 輸出整個系統上所有的硬件設備信息

fdisk /dev/sda 對硬盤設備進行分區

mkfs——>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

clip_image038

要挂载的设备 挂载点 文件系统类型 挂载选项(-o指定) 是否需要转储(1备份) 自检标识(根分区为1 其他分区为2)

lecture 5

系统初始化

clip_image040

显示系统版本号

clip_image042

uname –a 顯示所有信息

-r 顯示內核發行號

-n 顯示當前系統名稱

-v 顯示內核版本(什麽時候編譯的)

-p 顯示系統架構

運行級別 runlevel 在啟動的時候所啟動的服務不一樣

0——6

查看運行級別

clip_image044

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

clip_image046

clip_image048

開機啟動流程

1. 加載BIOS信息,並取得第一個啟動設備的代號;

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

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中斷等信息。

引导加载程序的设置窗口

clip_image049

 

BIOS与引导加载程序及核心加载流程示意图

init处理系统初始化流程(/etc/rc.d/rc.sysinit)

clip_image051

clip_image053

/etc/rc.d/rc.sysinit主要任务有:

clip_image055

自定义核心模块的加载可以将整个模块写入到/etc/sysconfig/modules/*.modules中。

启动系统服务与相关启动设置文件(/etc/rc.d/rc.n 与/etc/sysconfig)

clip_image057

clip_image059

目录里边文件全是软链接,所以/etc/init.d与/etc/rc.d/init.d是一样的。

clip_image061

以S為開頭的文件,為啟動時需要“啟動,start”的服務

以K開頭的文件,為“關機時需要關閉的服務,stop”的文件鏈接

S與K後面的數字,表示該文件的執行順序 範圍0——99 數字越小,優先級越高

用戶自定義引導啟動程序(/etc/rc.d/rc.local)

任何想要在開機時執行的工作,直接寫入到/etc/rc.d/rc.local。該工作就會在啟動的時候自動加載。比如自己制作的shell腳本。

根據/etc/inittab 設置加載終端或X-Window界面

clip_image063

運行等級為2345時,都會執行/sbin/mingetty 而且執行6個。

mingetty 啟動虛擬終端

如果運行級別為runlevel 5 init還會執行/etc/X11/prefdm –nodaemon 命令,啟動X-window。

對模塊進行一些參數的設計 /etc/modprobe.conf

clip_image065

/etc/sysconfig/* 再整个启动过程中,在/etc/sysconfig读取服务的相关设置

clip_image067

clip_image069

clip_image071

核心与核心模块

存放位置:

clip_image073

引导加载程序:Grub

clip_image075

grub對硬盤的代號設置於傳統的linux磁盤代號完全不同,如(hd0,0)

1. 硬盤代號以小括號()括起來

2. 硬盤以hd表示,後面接一組數字

3. 以“搜索順序”作為硬盤的編號,而不是根據硬盤排線的排序

4. 第一個搜索到的為0,第二個為1號,以此類推

5. 每個硬盤的第一個分區代號為0,以此類推

clip_image077

第一个硬盘MBR安装处的硬盘代号是“(hd0)”,第一个硬盘的第一个分区的超级块代号是“(hd0,0)”,第一个硬盘的第一个逻辑分区的超级块代号是“(hd0,4)”。

(0——3)——>(P+E)

clip_image079

如果/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`/

clip_image081

kernel里边的内容:

clip_image083

lsmod 显示当前已加载模块

clip_image085

modprobe 模块名 加载模块

-r 模块名 卸载模块

clip_image087

ldd /bin/ls 查看一个命令执行过程中需要调用哪些库

clip_image089

 

延伸阅读

评论