1、列举常见的内核参数以及参数的意义

    | 参数名 |  取值  | 说明 |
    |  net.ipv4.ip_forward |    0,1 |  是否开启数据包转发 |
    |  net.ipv4.conf.default.rp_filter  | 0,1 |  对从默认网卡进来的数据包进行反向路径校验 |
    | net.ipv4.conf.default.accept_source_route  | 0,1 | 是否接受含有源路由信息的ip包 |
    | net.ipv4.tcp_max_tw_buckets | size | 处于time_wait状态的最大数值,超过则立刻被清除 |
    | net.ipv4.ip_local_port_range | start end |对外连接端口范围 |
    | net.ipv4.tcp_max_syn_backlog| size | SYN队列的长度 |
    | fs.file-max | size | 系统打开的最大文件句柄数 |
    | kernel.hostname |string| 主机名 |
    | net.ipv4.icmp_echo_ignore_all | 0,1 | 忽略所有ping

2、如何通过/proc查看top中展示的进程状态

    top命令参数及意义:

        参数名  对应/proc路径  说明
        PID列   为/proc目录下的数字目录    进程ID,每个进程的PID数字做为目录名称
        USER  为/proc/PID/status文件中的以Uid开头行的第一列数字  进程的所属用户
        PR       在/proc/PID/stat文件中第18列数值  任务的调度优先级
        NI         在/proc/PID/stat文件中第19列数值
        VIRT    在/proc/PID/statm文件中第1列数值(单位为页)虚拟内存大小(KiB),任务使用的虚拟内存总量。 它包括所有代码,数据和共享库以及已换出的页面和已映射但未使用的页面
        RES    在/proc/PID/statm文件中第2列数值(单位为页  表示驻留内存大小(KiB) ,任务正在使用的非交换物理内存
        SHR   在/proc/PID/statm文件中第3列数值(单位为页) 表示共享内存大小(KiB),可能与其他进程共享的内存
        S        这行显示的进程状态   为/proc/PID/status文件中State
        %CPU   CPU使用率,自上一次屏幕刷新以来占用的CPU时间与总CPU时间的百分比。(通过计算得到)
        %MEM  内存使用(RES)任务当前使用的可用物理内存份额。(通过计算RES与总内存比率得到)
        TIME+   在/proc/PID/stat文件中体现为两个时间之和 :第14列该任务在用户态运行的时间 和第15列该任务在核心态运行的时间  任务自启动以来使用的总CPU时间,显示百分之一秒的精度
        COMMAND  /proc/#/status文件中以Name开头的行  进程名

3、分别用while、for循环检测10.0.0.1/24网段存活的IP地址

while循环:
            #!/bin/bash
            declare -i uphosts=0
            declare -i downhosts=0
            declare -i i=1

             hostping(){
                    if ping -W 1 -c 1 $1 &> /dev/null; then
                            echo "$1 is up."
                            return 0
                    else
                            echo "$1 is down."
                            return 1
                    fi
                    }
            while [ $i -le 254 ];do
                    hostping 10.0.0.$i
                    [ $? -eq 0] && let uphosts++ || let downhosts++
                    let i++
            done
            echo "Up hosts: $uphosts. Down hosts: $downhosts."          

for循环:
            #!/bin/bash

            declare -i uphosts=0
            declare -i downhosts=0
            for i in {1..254}; do
                    if ping -W 1 -c 1 10.0.0.$i &> /dev/null; then
                            echo "10.0.0.$i is up."
                            let uphosts+=1
                    else
                            echo "10.0.0.$i is down."
                            let downhosts+=1
                    fi
            done
            echo "Up hosts: $uphosts. Down hosts: $downhosts."

4、说明initrd的作用

initrd 的英文含义是 boot loader initialized RAM disk,即由引导程序初始化的RAM磁盘。initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起, 并作为内核引导过程的一部分进行加载。内核然后会将这个initrd文件作为其阶段引导过程的一部分来加载模块,这样才能在以后的引导过程中使用真正的文 件系统,并挂载实际的根文件系统。根文件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以想象内核 会多么庞大、臃肿。所以可以把initrd看做是在启动过程中连接内核与根文件系统的一个桥梁。