2、如何通过/proc查看top中展示的进程状态
PID:进程id,对应为/proc/#,/proc目录下,以数字命名的目录。
USER:进程属主,/proc/#/status文件中,以Uid开头行的第一列数字。
PR:优先级。
NI:nice值。
VIRT:虚拟内存集。
RES:常驻内存集占,/proc/#/status文件中以VmRSS开头的行。
SHR:共享内存集,/proc/#/status文件中以VmLib开头的行。
S:进程状态,/proc/#/status文件中以State开头的行。
%CPU:占用CPU时间百分比。
%MEM:占用物理内存百分比,/proc/#/status文件中以VmRSS开头的行。
TIME+:进程运行的CPU时长。
COMMAND:进程名,/proc/#/status文件中以Name开头的行。
3、分别用while、for循环检测10.0.0.1/24网段存活的IP地址
for循环:
#!/bin/bash
#
declare -i a=0
for a in {1..255};do
if ping -w 2 -c 2 10.0.0.$a &>/dev/null;then
echo "10.0.0.$a is up"
else
echo "10.0.0.$a is down"
fi
done
while循环:
#!/bin/bash
#
declare -i a=0
declare -i b=0
declare -i c=0
while [ $a -le 255 ];do
if ping -w 2 -c 2 10.0.0.$a &>/dev/null;then
echo "10.0.0.$a is up"
else
echo "10.0.0.$a is down"
fi
let a++
done
4、说明initrd的作用
initrd 是 boot loader initialized RAM disk的缩写,表示由 boot loader 初始化的内存盘。在 linux内核启动前, boot loader 会将磁盘等存储介质中的 initrd 文件先加 载到内存,内核启动时会先访问该内存中的 initrd 文件系统然后才访问真正的根文件系统。启动过程被分为两个过程,第一过程是执行内存中的 initrd 文件系统中 的初始化文件(在Linux2.4 内核是/linuxrc 文件,是由文件系统镜像生成的;在Linux2.6内核是/init文件,是使用 cpio 工具生成),负责加载内核访问根文件系统 存储介质的驱动模块, 以及加载根文件系统。第二过程是执行真正的根文件系统中的 /sbin/init 进程。
initrd的主要作用:
(1)使linux 发行版适应各种不同的硬件架构
Linux发行版在内核中只编译了基本的硬件驱动,在安装过程中通过检测系统硬件,生成包含安装系统硬件
驱动的 initrd。linux 发行版必须适应各种不同的硬件架构,但又不可能把所有的驱动编译进内核,否则内
核会变得臃肿庞大。所以Initrd成为linux 发行版的必备部件。
(2)livecd适应复杂的硬件环境。
livecd是一种从CD光盘中直接引导出一个可用的Linux系统。这种方式面临更为复杂的硬件环境,也需要使
用Initrd技术
(3)usb启动盘必备技术
因为usb从驱动加载到设备真正可用大概需要几秒钟时间。如果将 usb 驱动编译进内核,那在内核访问 usb
设备时, usb 设备通常没有初始化完毕。所以改为在 initrd 中加载 usb 驱动,然后休眠几秒中,等待 usb
设备初始化完毕后再挂载 usb 设备中的文件系统。
(4)实现个性化 bootsplash
Boot-splash通过对内核打补丁来改变linux控制台对图像显示的支持,通过用户空间程式来定制启动logo、
设定控制台背景和显隐启动时的字符信息,甚至能够支持开机画面的动画显示。在 linuxrc 脚本中可以很方
便地启用个性化 bootsplash。