N26-博客作业-week10

1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)

N26-博客作业-week10

2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;
  (1) 为硬盘新建两个主分区;并为其安装grub;
  (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs;
  (3) 为rootfs提供bash、ls、cat程序及所依赖的库文件;
  (4) 为grub提供配置文件;
  (5) 将新的硬盘设置为第一启动项并能够正常启动目标主机;

~]# fdisk /dev/sdb                                               
~]# mke2fs -t ext4 /dev/sdb{1,2}                                
~]# mount /dev/sdb1 /mnt                                         
~]# grub-install --root-directory=/mnt /dev/sdb                  
~]# cp /boot/initramfs-2.6.32-504.el6.i686.img /mnt/initramfs    
~]# cp /boot/vmlinuz-2.6.32-504.el6.i686 /mnt/vmlinuz            
~]# vim /mnt/boot/grub/grub.conf                                 
    default=0
    timeout=5
    title CentOS6(test)
    root (hd0,0)
    kernel /vmlinuz ro root=/dev/sda2 selinux=0 init=/bin/bash
    initrd /initramfs
~]# umount /dev/sdb1                                              
~]# mount /dev/sdb2 /mnt                                          
~]# mkdir -p /mnt/{bin,sbin,lib,lib64,etc,home,root,media,mnt,dev,tmp}
~]# mkdir -p /mnt/{usr/{bin,sbin,lib,lib64},var{lib,lib64,log,local,cache},proc,sys,selinux}
~]# cp /bin/{bash,ls,cat} /mnt/bin
~]# cp `ldd /bin/{bash,ls,cat}|grep -eo "/lib.*[[:space:]]"| sort -u` /mnt/lib                                             
~]# sync                                                          
~]# init 6                                                        
重启后进入BIOS设置 调整硬盘启动顺序后保存退出。

3、制作一个kickstart文件以及一个引导镜像。描述其过程。

可以直接手动编辑或使用创建工具在桌面模式下用system-config-kickstart (CentOS 6)来创建ks.cfg#命令段firewall --disabled                                    //禁用防火墙install                                                //执行新安装cdrom                                                  //用光盘安装rootpw --iscrypted $1$TxkJ7T6B$obLELgEGcn0uzgA3QTAPl/  //管理员加密密码auth  --useshadow  --passalgo=sha512                   //屏蔽密码算法graphical                                              //安装图形环境firstboot --disable                                    //首次引导禁用代理keyboard us                                            //安装键盘类型lang en_US                                             //默认语言selinux --enforcing                                    //激活selinuxlogging --level=info                                   //信息等级timezone  Asia/Hong_Kong                               //系统时区bootloader --location=mbr                              //在MBR上安装引导程序clearpart --all                                        //删除所有现存分区  part /boot --fstype="ext4" --size=500                  //分区挂载part / --fstype="ext4" --size=10000#脚本段%pre                                                   //安装前脚本echo "start"%end%post                                                  //安装后脚本echo "end"%end#程序包段%packages@chinese-support                                       //中文支持@development                                           //开发工具@graphical-admin-tools                                 //图形化工具@remote-desktop-clients                                //远程桌面客户端git-ibus-table-cangjie-ibus-table-erbi-ibus-table-wubi%end

4、写一个脚本
  (1) 能接受四个参数:start, stop, restart, status
   start: 输出“starting 脚本名 finished.”
   …
  (2) 其它任意参数,均报错退出;

#!/bin/bash
#
cat << EOF
Please make a choice!
start
stop
restart
status
======================
EOF

read -p "Your choice: " choice

case $choice in
    
    start)
        echo "starting script $choice finished."
    ;;
    
    stop)
        echo "starting script $choice finished."
    ;;
    
    restart)
        echo "starting script $choice finished."
    ;;
    
    status)
        echo "starting script $choice finished."
    ;;
    
    *)
        exit 1
esac

5、写一个脚本,判断给定的用户是否登录了当前系统;
  (1) 如果登录了,则显示用户登录,脚本终止;
  (2) 每3秒钟,查看一次用户是否登录;

#!/bin/bash
#
read -p "Give a username: " username

while true; do
    if who | grep "^$username\>" &> /dev/null; then
        break
    fi
    sleep 3
done

echo "$username logged on"  

6、写一个脚本,显示用户选定要查看的信息;
   cpu) display cpu info
   mem) display memory info
   disk) display disk info
   quit) quit
   非此四项选择,则提示错误,并要求用户重新选择,只到其给出正确的选择为止;

#!/bin/bash
#
cat << EOF
cpu) display cpu information
mem) display memory infomation
disk) display disks information
quit) quit
===============================
EOF

read -p "Enter your option: " option

while [ "$option" != "cpu" -a "$option" != "mem" -a "$option" != "disk" -a "$option" != "quit" ]; do
    echo "cpu, mem, disk, quit"
    read -p "Enter your option again: " option
done

if [ "$option" == "cpu" ]; then
    lscpu
elif [ "$option" == "mem" ]; then
    free -m
elif [ "$option" == "disk" ]; then
    fdisk -l /dev/[hs]d[a-z]
else
    echo "quit"
    exit 0
fi

7、写一个脚本
  (1) 用函数实现返回一个用户的UID和SHELL;用户名通过参数传递而来;
  (2) 提示用户输入一个用户名或输入“quit”退出;
    当输入的是用户名,则调用函数显示用户信息;
    当用户输入quit,则退出脚本;进一步地:显示键入的用户相关信息后,再次提醒输出用户名或quit:

#!/bin/bash
#
userinfo() {
    local user=$1
    awk -F: '/^'"$user"'/{printf "%s:%s:%s\n",$1,$3,$NF}' /etc/passwd
}

while true; do
    read -p "Please enter a username or "quit": " choice
    if [[ "$choice" == "quit" ]]; then
        break   
    else
        userinfo $choice
    fi
done

exit 0

原创文章,作者:浙江-咲,如若转载,请注明出处:http://www.178linux.com/72894

(0)
浙江-咲浙江-咲
上一篇 2017-04-09
下一篇 2017-04-09

相关推荐

  • 谈shell命令的神奇组合以及对脚本的影响

    shell命令是我们与机器交互的基本沟通翻译官。我们要告诉计算机的很多事情都由它来翻译,而shell的神奇之处就在于支持命令联合使用,现在我就来讲讲基本的命令组合引用。1.管道应用:命令 | 命令  ,前面的命令的结果可以直接作为后面命令的输出,省却了一个变量做存储。2.文本段落提取;我们可以用 组合命令 通常为 cat 某文件 | (head -…

    Linux干货 2017-04-02
  • rsync+inotify实现实时同步案例

    随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,…

    Linux干货 2016-10-30
  • N25-第二周作业

    1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 linux上处理目录的常用命令:     ls :列出目录     cd :切换目录     pwd:显示当前工作路径    &nbs…

    Linux干货 2016-12-13
  • 如何监控Linux文件系统事件:inotify使用指南

    如何监控Linux文件系统事件:inotify使用指南 §·inotify初识 Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。 §·inoti…

    Linux干货 2016-10-30
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 答:     复制目录:cp -R /etc/skel /home/tuser1     修改权限:chmod -R go=- /home/tuser1 2、编辑/etc/group文件…

    Linux干货 2016-12-07
  • Linux系统认知

    前言 在认识Linux系统之前先介绍下计算机的组成构造及其功能: 1,简单来说计算机可以划分为软件系统和硬件系统: (1)软件系统自不必说就是各种不同的程序,协助用户更好地使用电脑。 (2)硬件系统指的是主机、显示器、鼠键等硬件设备。 2,按冯诺依曼体系可将计算机按逻辑构成分为: (1)CPU(运算器、控制器)。运算器是数据处理装置,用来完成对数据的算术运算…

    Linux干货 2016-09-20

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-13 09:41

    总结的比较不错~继续加油~