第九周作業

2022-08-23 14:57:09 字數 2249 閱讀 5963

1、編寫指令碼,接受二個位置引數,magedu和/www,判斷系統是否有magedu,如果沒有則自動建立magedu使用者,並自動設定家目錄為/www。

解答:指令碼如下:

#!/bin/bash

[ $# -ne 2 ] && echo 「must be two parameter」 && exit 1

if !id $1 \&> /dev/null;then

useradd -d /www $1

else

echo "user: $1 is existed!"

fi

2、使用expect實現自動登入系統。

解答:編寫指令碼pingtest如下:

#!/usr/bin/expect

set ip 192.168.163.6

set port 22

set pass 123456

spawn ssh root@$ip -p $port

expect

"password"

}interact

3、簡述linux作業系統啟動流程

解答:

a.啟動第一步:載入bios資訊。包括cpu的相關資訊,裝置啟動順序資訊、硬碟資訊、記憶體資訊、時鐘資訊、pnp特性等。開機時將rom中的指令將rom中的指令對映到ram的低位址空間,cpu讀取到這些指令,硬體的健康狀況進行檢查,按照bios中設定的啟動裝置來啟動。

b.啟動第二步:讀取mbr。硬碟上第0磁軌第乙個扇區被稱為mbr,也就是master boot record,即主引導記錄,它的大小是512位元組,其中前446位元組為主引導記錄,後64位元組為分割槽表資訊,最後2個位元組為對應的校驗。系統找到bios所指定的硬碟的mbr後,就會將其複製到0×7c00位址所在的物理記憶體中。被複製到物理記憶體的內容就是boot loader,那就是lilo或者grub了

c.啟動第三步:boot loader。 bootloader就是作業系統核心執行之前執行的一段小程式。bootloader供乙個選單,允許使用者選擇要啟動的系統或不同的核心版本;把使用者選定的核心裝載到ram中的特定空間中,解壓、展開,而後把系統控制權移交給核心。

d.啟動第四部:載入核心。根據grub設定的核心映像所在路徑。系統讀取記憶體映像來解壓縮核心,同時還會載入核心所需的驅動程式檔案,從而對核心進行掛載以及驅動根檔案系統。initrd,它在stage2這個步驟就被拷貝到記憶體中,這個檔案時在安裝系統時產生的,時乙個臨時的根檔案系統(rootfs)。因為kernel為了精簡,只保留了最基本的模組,因此kenerl上沒有各種硬體的驅動程式,也就無法識別rootfs所在的裝置,故產生了initrd這個檔案,該檔案裝載了必要的驅動模組,當kernel啟動時,可以從initrd檔案中裝載驅動模組,直到掛載真正的rootfs,然後將initrd從記憶體中移除。

e.啟動第五步:核心被載入後,第乙個執行的程式便是/sbin/init,該檔案會讀取/etc/inittab檔案,並根據此檔案來進行初始化工作。其實/etc/inittab檔案最主要的作用就是設定linux的執行等級,其設定形式時「:id:5:initdefault」,這就表明linux需要執行在等級5上。

f.啟動第六步:init程序執行rc.sysinit

在設定了執行等級後,linux系統執行的第乙個使用者層檔案就是/etc/rc.d/rc.sysinit指令碼程式,包括設定path,網路,啟動swap分割槽,設定/proc等

g.啟動第七步:啟動系統核心模組,執行不同執行級別的指令碼程式。具體是依據/etc/modules.conf檔案或/etc/modules.d目錄下的檔案來**核心模組。根據執行級別的不同,系統會執行rc0.d到rc6.d中相應的指令碼程式,來完成相應的初始化工具和啟動相應的服務。

h.啟動第八步:執行/etc/rc.d/rc.local

i.啟動第九步:啟動mingetty,進入系統登陸介面。執行/bin/login程式,等待使用者登陸。

4、破解centos7 密碼。

解答:

1.啟動時任意鍵暫停啟動,按e鍵進入編輯模式

2.將游標移動linux16開始的行,新增核心引數rd.break,按ctrl-x啟動

3.重新掛載根/sysroot,mount –o remount,rw /sysroot

4.切根,chroot /sysroot。輸入passwd重置即可,一般退出重啟,那麼重置密碼即完成了。

第九周作業

1 編寫指令碼,接受二個位置引數,magedu和 www,判斷系統是否有magedu,如果沒有則自動建立magedu使用者,並自動設定家目錄為 www vim create user.sh bin bash if ne 2 then echo 0 username directory exit 1 ...

第九周作業

cat data canshu.sh bin bash user 1 dir 2if 2 then echo 請輸入兩個引數 exit else id dev null if 0 then mkdir dev null useradd d dev null echo 使用者 建立成功 else ec...

第九周作業

資料庫介紹 建立與資料庫的鏈結 建立並修改資料庫表 查詢資料庫 插入 檢視及更新資料 刪除資料和資料庫表 statistics.sh指令碼的執行結果截圖 20162309 行數 新增 累積 部落格量 新增 累積 學習時間 新增 累積 重要成長 目標5000行 400小時 第一周90 90 1 120...