Linux腳本實踐

1、編寫腳本,接受兩個位置參數,magedu和/www,判斷系統是否有magedu,如果沒有則自動創建magedu用戶,並自動設置家目錄爲/www

#!/bin/bash
if [ $# -ne 2 ]; then
    echo "You must input two args"
    exit
fi

id magedu &> /dev/null
if [ $? -ne 0 ]; then
    useradd -d $2 $1
    echo "Create user $1 successful,his home directory is $2"
else
    echo "User $1 has been exist"
fi

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

腳本login.exp如下

#/usr/bin/expect
set ip "192.168.0.12"
set user "root"
set password "oplk1234"
set timeout 30

spawn ssh $user@$ip
expect {
    "yes/no" {exp_send "yes\n"; exp_continue}
    "*password*" {send "$password\n"}
}
interact

執行腳本

expect login.exp 

3、簡述linux操作系統啓動流程

根據init程序的不同,Linux不同發行版的啓動流程存在一些不同之處
CentoS6系統的init程序是Upstart,啓動流程如下:

  1. 開機後加載BIOS的硬件信息,獲取第一個啓動設備
  2. 讀取第一個啓動設備MBR的引導加載程序(grub)的啓動信息
  3. 加載內核,解壓縮vmlinuz文件,並嘗試驅動所有的硬件設備
  4. 內核執行init程序Upstart,進入默認的運行級別
  5. init程序執行/etc/rc.d/rc.sysinit文件,以可讀寫的方式重新掛載根文件系統
  6. 加載內核的外部模塊
  7. init啓動設置爲開啓啓動的服務
  8. init執行/etc/rc.d/rc.local文件裏的命令
  9. 執行/bin/login程序,等待用戶登錄
  10. 用戶登錄系統之後開始以Shell控制主機

CentOS7及之後的CentOS8系統的init程序是systemd,啓動流程和CentOS6不一樣

  1. 進行UEFI或BIOS初始化,運行POST開機自檢
  2. 選擇啓動設備
  3. 引導裝載程序grub2加載裝載程序的配置文件
  4. 加載initramfs驅動模塊
  5. 加載內核選項
  6. 內核初始化,centos7使用systemd代替Upstart
  7. 執行initrd.target所有單元,包括掛載/etc/fstab
  8. 從initramfs根文件系統切換到磁盤根目錄
  9. systemd執行默認target配置,配置文件/etc/systemd/system/default.target
  10. systemd執行sysinit.target初始化系統及basic.target準備操作系統
  11. systemd啓動multi-user.target下的本機與服務器服務
  12. systemd執行multi-user.target下的/etc/rc.d/rc.local
  13. Systemd執行multi-user.target下的getty.target及登錄服務
  14. 如果系統被設置爲開機進入圖形界面,systemd還要啓動graphical.target需要的服務

4、破解centos7 密碼

方法一

1、開機後在選擇內核的界面按任意鍵打斷倒計時
2、按e鍵進入編輯模式
3、將光標移動到linux開頭的行,在這一行的末尾添加參數rd.break
4、按Ctrl + X啓動系統
5、執行`mount -o remout,rw /sysroot`命令,重新掛載系統
6、執行`chroot /sysroot`命令,切換根路徑爲系統的根目錄
7、執行`passwd root`命令,修改root密碼
8、CentOS7系統默認啓用了Selinux功能。如果沒有禁用Selinux,需要額外執行`touch /.autorelabel`命令
9、執行`exit`命令,退出登錄
10、執行`reboot`命令,重啓系統

方法二

1、開機後在選擇內核的界面按任意鍵打斷倒計時
2、按e鍵進入編輯模式
3、將光標移動到linux開頭的行,在這一行裏的“ro”修改爲“rw init=/sysroot/bin/sh”
4、按Ctrl + X啓動系統
6、執行`chroot /sysroot`命令,切換根路徑爲系統的根目錄
7、執行`passwd root`命令,修改root密碼
8、如果沒有禁用Selinux,需要額外執行`touch /.autorelabel`命令
9、執行`exit`命令,退出登錄
10、執行`reboot`命令,重啓系統
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章