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.www58058.com/72894

(0)
浙江-咲浙江-咲
上一篇 2017-04-09 11:19
下一篇 2017-04-09 14:08

相關推薦

  • mageedu_20160802

     用戶的管理權限設置與更改以及ACL的存在及其實用意義      一.用戶的管理權限如何設置與更改以及umask值的含義    由于linux系統是一個多用戶使用的系統,對于各個用戶指定的文件或目錄必須存在一套管理系統,以防止多用戶對相同文件的混淆使用。于是催生出了linux系統文件的用戶權限設置?!?/p>

    Linux干貨 2016-08-03
  • nl命令使用解析

    nl    命令功用: nl – number lines of files 顯示文件內容,并列出行號   命令樣式: nl [OPTION]… [FILE]…   命令選項: -b:正文行號,參數為樣式style -n:行號格式,參數為格式format -w:設定行號所占位數,參數為…

    Linux干貨 2016-10-20
  • Linux系統終端類型

    引言 終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。在早期計算機系統中,由于計算機主機昂貴,因此一個主機一般會配置多個終端,這些終端本身不具備計算能力,僅僅承擔信息輸入輸出的工作,運算和處理均由主機來完成,在個人計算機時代,個人計算機可以運行稱為終端仿真器的程序來模仿一個終端的工作。 &…

    Linux干貨 2016-10-19
  • iptables實驗2

    IPTABLES   實驗2       實驗大體結構圖       相關概念及公式 源地址轉換:    SNAT   POSTROUTING 目標地址轉換:DNAT  PREROUTING   每次重啟網絡后…

    Linux干貨 2016-10-24
  • N26_第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名。同一個用戶多次登錄,只顯示一次 [root@node1 ~]# who |cut -d ‘ ‘ -f 1 | sort-u root zhh   2、取出最后登錄到當前系統的用戶的相關信息 [root@node1 ~]# id `last | head -1 | cut -d&#…

    Linux干貨 2017-05-26
  • 22期第三周課堂作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who |cut -d" " -f 1 |uniq     2、取出最后登錄到當前系統的用戶的相關信息。 […

    Linux干貨 2016-08-29

評論列表(1條)

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

    總結的比較不錯~繼續加油~

欧美性久久久久