#系统管理篇
系统的启动过程
Firmware(POST)
硬件加电自检。BIOS+CMOS
MBR(Bootloader GRUB)
读取MBR里的内容GRUB,GRUB根据/boot/grub/grub.conf配置文件,选择要引导的操作系统。
Kernel
装载kernel,加载设备驱动模块,并启动第一个系统进程init,init的PID=1
init (/etc/inittab)
init根据配置文件/etc/inittab,读取initdefault指定的运行级别。
rc.sysinit
然后加载rc.sysinit(系统初始化脚本),对系统环境变量、语言环境及字体进行设置,检查文件系统。并生成启动日志。
rcN.d
加载initdefault中指定的运行级别相对应的系统服务,N=0-6
Userlogin
系统初始化完成后,提示用户登录系统
#系统启动相关的重要文件和目录
inittab 解析
格式:id:runlevels:action:process
id 表示一个配置的标识,可以理解成一个配置的名字,有1-4个字符组成。
runlevels 指定该配置在哪些级别里运行。可以是单个运行级别,也可是一个列表。
action 描述记录将执行哪种类型的动作。其值如下:
1、initdefault 设定缺少运行级别,proess将被忽略。
2、sysinit 指定进程在系统启动时在任何boot或boot wait类进程之前运行,runlevel将被忽略。
3、wait 指定进程在进入指定运行级别后运行一次,init进程将等待其结束。
4、Ctrlaltdel 设定组合键功能
5、respawn 指定进程在结束后会重新启动运行。
Process 设定启动进程所执行的命令
/etc/init.d
/etc/init.d 目录里存放的是系统安装的所有服务的启动脚本。
/etc/rc.d
/etc/rc.d 目录里存放了rc0.d-rc6.d目录,以及rc.sysinit文件。rc.sysinit是系统缺省服务启动脚本
/etc/rc.d/rc.sysinit
这个文件主要是设置系统的环境变量,语言环境,字体,生成启动日志,检查文件系统。
/etc/rc0.d-rc6.d
/etc/rc0.d-rc6.d目录中存放的是每个对应的运行级别中要运行的服务启动脚本。
服务启动脚本命名规则
S+数字开头的脚本名文件表示在此运行级别中会运行
K+数字开头的脚本名文件表示在此运行级别中不运行
S和K均为大写。文件名后面的数字表示启动顺序。
/boot/grub/grub.conf
default=0 #指定默认的启动系统。Default的菜单项序号从0开始。
timeout=5 #指定选择引导系统的等待时间。5表示等待5秒
splashimage=(hd0,0)/grub/splash.xpm.gz #指定GRUB的背景图片,图片分辨率为640X480。(hd0,0)第一个磁盘的第一个主分区
Hiddenmenu#设置隐藏GRUB引导界面
Password --md5 md5pass #设置锁定GRUB启动菜单(md5加密) 。操作GRUB时用到
title Red Hat Enterprise Linux Server (2.6.18-194.el5)#title 指定系统名称
Password --md5 md5pass #设置启动菜单项口令。进入引导所选的系统时用到
root (hd0,0) #root 指定系统/boot的位置为第一个硬盘的第一个主分区
kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ rhgb quiet #kernel指定内核路径,并以 ro只读模式加载。root=LABEL=/ 中的root表示系统根目录(/),LABEL表示一个卷标,代表了磁盘分区名字,“/”表示/boot所在分区即:hd0,0。
initrd /initrd-2.6.18-194.el5.img #initrd 指定映像文件
grub-md5-crypt password
在GRUB中运行
md5crypt password #生成md5加密的grub使用的密码。
/etc/fstab
自动挂载文件系统的配置文件
格式:filesystemmountpointtypeoptionsdumppass
filesystem:定义挂载的文件系统所在的设备。如hda、sda等。我们可以使用磁盘分区的名称如/dev/hda1,也可以使用这个分区的卷标,如LABEL=/juanbiao。 在juanbiao前一定要有”/”这个符号。
示例:
[root@localhost ~]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults 1 2
LABEL=/opt /opt ext3 defaults 1 2
LABEL=/var /var ext3 defaults 1
[root@localhost ~]# df
/dev/sda9 902512 326136 529792 39% /
/dev/sda7 2030736 35932 1889984 2% /home
/dev/sda6 2972236 70252 2748568 3% /opt
/dev/sda3 4956316 203924 4496560 5% /var
[root@localhost ~]# blkid
/dev/sda9: LABEL="/" UUID="cca30062-e8c9-4469-a690-c49151496e6e" TYPE="ext3"
/dev/sda8: LABEL="SWAP-sda8" TYPE="swap"
/dev/sda1: LABEL="/boot" UUID="21e3c70d-9e66-4043-b82e-2e2e4e93cc1f" TYPE="ext3"
上面的LABEL=/ 部分就可以使用/dev/sda9来替代。因为/dev/sda9的卷标名是 “/”
mountpoint:定义挂载点。对于swap设备,该字段为none。如果挂载点名有空格用40来表示空格。
type:定义该设备的文件系统类型。如ext2、ext3、vfat、iso9600等。
option:定义了挂载模式。多个参数可用逗号分隔。常用的是default。
另外还有:
auto 开机自动挂载
ro 以只读模式挂载
rw以读写模式挂载
quota进行磁盘定额限制
dump:检查一个文件系统应该以多快频率进行转储,若不需要转储该字段为0.
pass:该字段被fsck命令来决定在启动时需要扫描的文件系统顺序。根文件系统对应的值为1,其它文件系统对应的值为2.若应文件系统无需在启动的时候进行扫描则为0.
mount -a 对编辑过的/etc/fstab文件进行测试
/etc/hosts
/etc/hosts 主机名查询静态表,是本地的DNS解析文件。Hosts文件包含了IP地址和主机名之间的映射,还包括了主机名的别名。在进行域名访问的时候,首先要查询hosts文件。如果hosts里没有相关记录,则会查询/etc/resolv.conf文件。在局域网或Internet网中,每一台主机都有一个IP地址,他区分开每台主机,并可以根据IP进行通讯。但记忆IP不方便,所以在internet上就有了域名,在局域网中有了主机名的概念,它们用于区分主机,便于互相访问。Hosts文件就是告诉本主机哪些域名对应哪些IP,哪些主机名对应哪些IP,以达到快速访问的目的。
/etc/hosts的格式:
IP地址 主机名或域名 别名
127.0.0.1 localhost.com localhost
第一部分:网络IP地址
第二部分:主机名或域名
第三部分:主机名别名
主机名和域名的区别:
主机名是在局域网内使用
域名是在internet中使用
hostname #本地主机名的修改工具
hostname工具设置的主机名只是临时的,下次重启系统后此主机名不会存在。
hostname 显示主机名
hostname -i 显示主机IP
hostname webserver 设置主机名为webserver
/etc/resolv.conf
resolv.conf是DNS域名解析配置文件,它是用来指定本地机所使用的DNS域名的。
resolv.conf格式:
每行以一个关键字开头,后接配置参数
关键字主要有四个:
nameserver 定义DNS服务器的地址,可以有很多行的nameserver,每一个带一个IP地址,查询时就按nameserver在文件中的顺序进行。当第一个nameserver没有反映时,就查询下一个。
domain 定义本地主机的域名,当为没有域名的主机进行DNS查询时需要用到。
search 定义域名搜索列表。当要查询没有域名的主机时,将在search指定的域中进行查找。search 和domain不能同进存在,后面出现的将会被使用。
sortlist 对返回的域名进行排序
最重要的是要有nameserver这个关键字,没有这个关键字就找不到DNS服务器。
示例:
Nameserver 192.168.0.1
Nameserver 8.8.8.8
Search localdomain
/etc/host.conf
当系统中同时存在DNS域名解析/etc/resolv.conf和/etc/hosts时,则由该文件/etc/host.conf来指定主机名解析顺序。
格式:
Order hosts,bind #域名解析顺序
Multi on #允许主机有多个IP地址
Nospoof on #禁止IP地址欺骗
关键字order,表示的是解析顺序。这里面表示的是先用本机的hosts进行域名解析,如果不能解析,再从/etc/resolv.conf里定义的DNS服务器中进行搜索。
/etc/hostname #这个文件是主机名配置文件
/etc/hosts.allow
/etc/hosts.deny
这两个文件是tcpd服务器的配置文件。Tcpd服务器可以控制外部ip对本机服务的访问。Hosts.allow用来控制可以访问本机的IP地址。Hosts.deny用来控制禁止访问本机的IP地址。如果两个文件有冲突,以host.allow为准。
格式:
服务进程名:主机列表:当规则匹配时可选的命令操作
Server_name:host-list[:command]
示例:
ALL:127.0.0.1 #允许本机访问本机的所有服务进程
Smbd:192.168.0.0/255.255.255.0 #允许192.168.0.网段的IP访问smbd服务
/etc/issue
/etc/issue是一个文本文件,里面的内容会在用户登录前被显示在终端上。/etc/issus.net文件是供网络登录用户使用的。
/etc/motd
/etc/motd是一个文本文件,它是message of today(今天的信息)的缩写,里面的内容会在用户登录后显示。该文件经常用作系统公告。
/etc/skel
新建用户时,用户的家目录默认内容模版
/etc/sudoers
Sudo的配置文件
格式:用户名(组名) 主机名=command(绝对路径)
/proc/filesystems
kernel能够支持的文件系统
/etc/crontab
创建系统级的定时任务配置文件
用户环境配置
.bash_profile
.bashrc
.bash_logout
这三个文件位于用户主目录下,是bash shell 的用户环境配置文件。
.bash_profile 是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile和.login两个文件是.bash_profile的同义词。目的是为兼容其它shell。在debian中使用.profile文件代替.bash_profile文件。
.bashrc 文件会在bash shell调用另一个bash shell时读取,也就是在shell再键入bash命令启动一个新shell时就会去读该文件。
.bash_logout 在退出shell时被读取。我们可以把一些清理工作写入这个文件中。
位于/etc目录的bash.bashrc和profile是系统级的配置文件。当在用户主目录下找不到.bash_profile和.bashrc的时候,就会读取这两个文件。
.bash_history是bash shell的历史记录文件。里面记录了输入过的所有命令。
source .bash_profile 使修改过内容的.bash_profile马上生效。
转载请保留文章来源http://blog.csdn.net/no7oor