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 查看当所对应的终端设备文件

clip_p_w_picpath002

通过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_p_w_picpath004

查看X server 版本号

clip_p_w_picpath006

prefdm:启动一个图形界面

Xorg.Conf的配置内容:

clip_p_w_picpath008

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

clip_p_w_picpath010

查看已经关闭的终端:clip_p_w_picpath012

权限的传递:

用户:管理员(root) 普通用户

sudo

/etc/sudoers 定义哪些用户可以在哪些主机上以什么身份执行哪些命令 who where=(who) what

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

RH131

可以使用visudo命令编辑

clip_p_w_picpath014

添加:clip_p_w_picpath016

百分号表示是一个系统群组

被添加的用户在使用命令执行时需要在前边加上sudo 关键字

clip_p_w_picpath018

默认五分钟内执行sudo命令不用输入密码,很人性化的。

定义一个用户组:User_Alias NETWORK=A,B,C组名必须是大写英文字母

clip_p_w_picpath020

clip_p_w_picpath022

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_p_w_picpath024

clip_p_w_picpath026

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_p_w_picpath028

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

先挂载光盘

clip_p_w_picpath030

createrepo 直接创建一个yum源

Lecture 7

clip_p_w_picpath032

硬盘盘面结构示意图

硬盘片旋转一圈所画出来的就是磁道(track)

所有硬盘片上相同半径的那个磁道就组成了柱面(cylinder)

数据是按照柱面来存取的。

第0磁道上的0扇区不能被分区。用于表示当前磁盘上有几个分区以操作系统所在的分区,成为引导扇区,MBR (主引导记录) 512B 前446B放置一段程序,成为boot loader

引导加载器,后64B用来标示分区,每16B用来标示一个分区

硬盘最小的存储单位是扇区(512B),数据所存储的最小单位是逻辑块(block)

每个分区就是一个文件系统,而每个文件系统开始位置的那个块就称为超级块(superblock)。超级快的作用是存储文件系统的大小,空的和填满的块,以及它们各自的总数和其他诸如此类的信息。

查看当前系统上所有的块存储设备及分区信息:fdisk –l

clip_p_w_picpath034

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

查看系统分区信息:

clip_p_w_picpath036

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_p_w_picpath038

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

lecture 5

系统初始化

clip_p_w_picpath040

显示系统版本号

clip_p_w_picpath042

uname –a 显示所有信息

-r 显示内核发行号

-n 显示当前系统名称

-v 显示内核版本(什么时候编译的)

-p 显示系统架构

运行级别 runlevel 在启动的时候所启动的服务不一样

0——6

查看运行级别

clip_p_w_picpath044

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_p_w_picpath046

clip_p_w_picpath048

开机启动流程

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

引导加载程序的设置窗口

clip_p_w_picpath049

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

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

clip_p_w_picpath051

clip_p_w_picpath053

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

clip_p_w_picpath055

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

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

clip_p_w_picpath057

clip_p_w_picpath059

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

clip_p_w_picpath061

以S为开头的文件,为启动时需要“启动,start”的服务

以K开头的文件,为“关机时需要关闭的服务,stop”的文件链接

S与K后面的数字,表示该文件的执行顺序 范围0——99 数字越小,优先级越高

用户自定义引导启动程序(/etc/rc.d/rc.local)

任何想要在开机时执行的工作,直接写入到/etc/rc.d/rc.local。该工作就会在启动的时候自动加载。比如自己制作的shell脚本。

根据/etc/inittab 设置加载终端或X-Window界面

clip_p_w_picpath063

运行等级为2345时,都会执行/sbin/mingetty 而且执行6个。

mingetty 启动虚拟终端

如果运行级别为runlevel 5 init还会执行/etc/X11/prefdm –nodaemon 命令,启动X-window。

对模块进行一些参数的设计 /etc/modprobe.conf

clip_p_w_picpath065

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

clip_p_w_picpath067

clip_p_w_picpath069

clip_p_w_picpath071

核心与核心模块

存放位置:

clip_p_w_picpath073

引导加载程序:Grub

clip_p_w_picpath075

grub对硬盘的代号设置于传统的linux磁盘代号完全不同,如(hd0,0)

1. 硬盘代号以小括号()括起来

2. 硬盘以hd表示,后面接一组数字

3. 以“搜索顺序”作为硬盘的编号,而不是根据硬盘排线的排序

4. 第一个搜索到的为0,第二个为1号,以此类推

5. 每个硬盘的第一个分区代号为0,以此类推

clip_p_w_picpath077

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

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

clip_p_w_picpath079

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

kernel里边的内容:

clip_p_w_picpath083

lsmod 显示当前已加载模块

clip_p_w_picpath085

modprobe 模块名 加载模块

-r 模块名 卸载模块

clip_p_w_picpath087

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

clip_p_w_picpath089