Linux簡單腳本和Linux啓動過程概述

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

位置變量:在腳本代碼中調用通過命令行傳遞給腳本的參數;
$1,$2,…對應第1、第2等參數,shirft[n]換位置;
$0 代表命令本身;
$* 傳遞給腳本的所有參數,全部參數整合爲一個字符串;
$@ 傳遞給腳本的所有參數,每個參數爲獨立字符串;
$# 傳遞給腳本的參數的個數;
【示例1】
編寫創建新用戶腳本,傳遞$1,$2兩個參數,爲增加的用戶指定特定的家目錄;
#!/bin/bash
set -e 
set -u
if id $2 &>/dev/null;then
      echo -e "\033[1;31mUSER $2 is existed\033[0m"
      exit 10
else
      useradd -d $1 $2 && echo -e "\033[1;32mUSER $2 is created\033[0m"
fi

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

Expect相關命令:
spawn 啓動新進程
send 用於向進程發送字符串
expect 從進程接受字符串
interact 允許用戶交互
exp_continue 匹配多個字符串在執行動作後加此命令;
【示例1】
#!/usr/bin/expect
spawn ssh 192.168.37.119
expect {
         "yes/no" { send "yes\n";exp_continue }
         "password" { send "1qaz@QAZ\n" }
 }
interact
#expect eof

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

1)  UEFI或BIOS初始化,運行POST開機自檢;
2)  選擇啓動設備;
3)  引導內核,做部分內核初始化工作,加載initramfs;
4)  啓動systemd進程,systemd進程此時工作在initramfs環境下;
5)  Systemd執行sysinit.target所有單元,包括掛載/etc/fstab、從ramdisk的根虛擬文件系統切換到真正的根文件系統;
6)  Systemd執行默認target配置,其配置文件爲/etc/system/default.target;
7)  Systemd執行sysinit.target初始化系統及basic.target準備操作系統;
8)  Systemd啓動multi-user.target下的本機與服務器服務;
9)  Systemd執行multi-user.target下的/etc/rc.d/rc.local;
10) Systemd執行multi-user.target下的getty.target讓用戶登錄;
11) 啓動shell進程並初始化,最終進入命令行;

4 破解centos7 密碼

1)  重置操作系統,在grub提供的菜單的界面下,輸入e進入編輯模式;
2)  通過箭頭方向移動光標至Linux16這一行,然後在行尾添加rd.break,之後ctrl+x引導系統;
3)  此時根目錄被臨時掛載在/sysroot目錄下,且是隻讀掛載,所以先以讀寫方式重新掛載,然後chroot切換到根環境下修改密碼,最後創建/.autorelabel;
     mount -o remount,rw /sysroot
     chroot /sysroot
     touch /.autorelabel
4)  重啓操作系統,使用新密碼登錄;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章