一、编写脚本,接受二个位置参数,magedu和/www,判断系统是否有magedu,如果没有则自动创建magedu用户,并自动设置家目录为/www
脚本:
if [ ! $# -eq 2 ];then
echo "Usage:$0 username HOME"
elif [[ ! $2 =~ \/.* ]];then
echo "Please enter a correct directory! "
else
id $1 &>/dev/null
if [[ $? -eq 0 ]];then
echo "User $1 already exists! "
else
useradd -d $2 $1;echo "User $1 is created."
fi
fi
实现如下:
二、使用expect实现自动登录系统。
脚本:
#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
spawn ssh [email protected]$ip
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$password\n" }
}
interact
实现如下:
三、简述linux操作系统启动流程
第一步:加载BIOS
启动电源,加载BIOS内的硬件信息,硬件自检,根据BIOS设置找到启动设备。
第二步:读取MBR
找到启动设备硬盘上的第0磁道第一个扇区的前512字节(即主引导记录MBR),存放了预启动信息、分区表。然后复制到内存中,就是BootLoader。
第三步:启动BootLoader
通过引导加载程序(grub)的启动信息初始化硬件设备,建立内存空间映射图,准备启动操作系统内核。
第四步:加载内核
加载核心操作系统,尝试加载驱动硬件设备(通常需要透过虚拟文件系统 /boot/initramfs-release.img来加载驱动程序),呼叫/sbin/init开始后续启动流程。
第五步:运行/sbin/init
运行用户空间第一个程序/sbin/init,读取/etc/inittab文件获取设定系统运行信息。
第六步:init进程执行rc.sysinit
执行/etc/rc.d/rc.sysinit系统初始化脚本程序(包括设置主机名、欢迎信息、**Udex和selinux,挂载/etc/fstab定义的文件系统,检测根文件系统、设置时钟、根据/etc/sysctl.conf设置内核参数,**LVM和软RAID、**swap、加载额外设备驱动、执行清理操作)。
第七步:启动内核模块
根据/etc/sysconfig/modules文件目录下的文件来装载内核模块。
第八步:启动对应run-level的各个服务
运行设定运行级别对应rc0.d到rc6.d中的相应启动脚本程序,完成初始化工作,启动相应服务。
第九步:执行/etc/rc.d/rc/local
执行用户自定义的启动设置。
第十步:执行/bin/login
进入登录状态,等待用户登录。
四、pojie centos7 密码。
方法一(rd.break):
① 启动时任意键暂停启动
② 按e键进入编辑模式
③ 将光标移动linux16开始的行,添加内核参数rd.break
④ 按ctrl-x启动
⑤ 挂载根目录,切根,修改密码
mount –o remount,rw /sysroot
chroot /sysroot
passwd root
⑥ 退出重启
touch /.autorelabel 注:selinux禁用的情况下,不需要执行,这句是为了selinux生效
exit
reboot
方法二(init):
① 启动时任意键暂停启动
② 按e键进入编辑模式
③ 将光标移动linux16开始的行,改为rw init=/sysroot/bin/sh
④ 按ctrl-x启动
⑤ 切根,修改密码
chroot /sysroot
passwd root
touch /.autorelabel 注:selinux禁用的情况下,不需要执行,这句是为了selinux生效
⑥ 退出并重启
exit
reboot
使用修改后的密码登陆OK