一、shell中的for和while循环
(1)for循环:
格式: for 变量名 in 列表;do
循环体
done
执行机制:
依次将列表中的元素赋值给“变量名”; 每次赋值后即执
行一次循环体; 直到列表中的元素耗尽,循环结束
例子:1. 打印九九乘法表
for i in {1..9};do
for j in `seq $i`;do
echo -n “$j*$i=$[i*j] ”
done
echo
done
例子:2.打印等腰三角形
read -p “Please input ni xisng yao de ceng shu: ” k
for i in `seq $k`;do
n=$[k-i]
for j in `seq $n`;do
echo -n ” ”
done
l=$[2*i-1]
for m in `seq $l`;do
echo -ne “\033[5m*\033[0m”
done
echo
done
(2)while循环
while CONDITION; do
循环体
done
例子:1. 打印九九乘法表
i=1
while [ “$i” -le 9 ];do
j=1
while [ “$j” -le “$i” ];do
echo -n “$j*$i=$[i*j] ”
let j+=1
done
echo
let i+=1
done
例子:2.打印三角形
read -p “Please Input length : ” n
i=1
while [ “$i” -le “$n” ];do
k=1
m=$[n-i]
while [ “$k” -le “$m” ];do
echo -n ” ”
let k+=1
done
j=1
l=$[2*i-1]
while [ “$j” -le “$l” ];do
echo -n “*”
let j+=1
done
echo
let i+=1
done
二、Linux的组成
1. Linux由kernel内核+rootfs 组成
(1)kernel的功能:进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能
(2)rootfs:程序和glibc库文件
库文件就是函数集合,function,调用接口
过程调用:procedure,无返回值
函数调用:function
程序:二进制执行文件
2.内核设计流派:
(1)单内核:Linux ————>把所有功能都集成于同一个程序
(2)微内核:Windows,Solaris—->每种功能使用一个单独子系统实现
3.Linux内核特点:
(1)支持模块化:.ko(内核对象)如:文件系统,硬件驱动,网络协议等
(2)支持内核模块的动态装载和卸载
(3)组成部分:
核心文件:/boot/vmlinuz-VERSION-release
ramdisk:辅助的伪根系统
CentOS 5: /boot/initrd-VERSION-release.img
CentOS 6,7: /boot/initramfs-VERSION-release.img
模块文件:/lib/modules/VERSION-release
三、系统启动的步骤
(1)步骤:POST加电自检——>MBR引导——>GRUB——>加载内核——>启动init进程
——>读取/etc/inittab文件 /etc/init/*.conf文件——>……
(2) 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控制主机
(3)POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部
分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接
口、键盘、CD-ROM光驱等硬件情况的检测。
(4)ROM:BIOS,Basic Input and Output System,保存着有关计
算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和
系统启动自举程序等。
(5)RAM:CMOS互补金属氧化物半导体,保存各项参数的设定
按次序查找引导设备,第一个有引导程序的设备为本次启动设备
(6) bootloader:
Windows: ntloader
Linux:
LILO
GRUB
(7)MBR:
446:bootloader ,64:分区表,2:55AA
(8)GRUB:
primary boot loader : 1st stage,1.5 stage
secondary boot loader :2nd stage,分区文件
(9)kernel:
自身初始化:
探测可识别到的所有硬件设备
加载硬件驱动程序(借助于ramdisk加载驱动)
以只读方式挂载根文件系统
运行用户空间的第一个应用程序:/sbin/init
(10)ramdisk:
内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件访
问,并加载相应的硬件驱动
ramdisk文件的制作:
mkinitrd命令:
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
(11)init程序的类型
init读取其初始化文件:/etc/inittab
初始运行级别(RUN LEVEL)
系统初始化脚本
对应运行级别的脚本目录
捕获某个关键字顺序
定义UPS电源终端/恢复脚本
在虚拟控制台生成getty
在运行级别5初始化X
CentOS 7:
CentOS 6:
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90469