第一题 shell 实现自动登录机器
#!/usr/bin/expect
set ip 192.168.111.133
set user root
set passwd 123456
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "$passwd\n"}
}
interact
第二题 shell判断一个值是否在 数组中
#!/bin/bash
declare -a arrayZ
aarayZ=( "one" "two" "three" "four" "five" )
for i in ` seq $[${#aarayZ[@]}-1]`;do
if [ bone == ${aarayZ[$i]} ] ;then
echo bone 在aarayZ数组中
else
echo bone 不在aarayZ数组中
fi
done
第三题 用命令或者脚本实现0057AF051EFF变为00:57:AF:05:1E:FF
# a=0057AF051EFF
# echo ${a:0:2}:${a:2:2}:${a:4:2}:${a:6:2}:${a:8:2}:${a:10:2}
第四题 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 ! @ # $ % ^ & * ( ) - _ = + \ / ' " ; : [ ] { } , . ? 结合数组实现一个随机生成20位密码的脚本
declare -a a
a=( a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+ \\ \/ \' \" \; \: \[ \] \{ \} \, \. \? )
for i in `seq 0 19`;do
let num=$[$RANDOM%${#a[@]}]
echo -e "${a[$num]:0:20}\c"
done
第五题 详细centos 7 开机流程
POST加电自检 主要是检测各个硬件设备是否能够正常启动POST 加电自检 负责对硬件情况 检查是否正常使用
bootloader 引导加载器 提供一个菜单,让用户自己选择要启动的系统或不同的内核版本,
把用户选择的装载到内存中特定的空间中,解压,展开并把系统控制权交给内核
读取MBR扇区里面前446个字节 引导程序stage1阶段,用于加载stage1.5阶段,通过1.5阶段就能识别stage2文件系统
/boot/grub2/grub.conf这个文件定义了内核文件,以及根在哪
kernel 内核初始化 加载第一个程序systemd
执行initrd.target所有单元,挂载/etc/fstab 分区文件系统
从initramfs根文件系统切换到磁盘根目录
systemd执行默认target配置/etc/systemd/system/default.target
systemd执行sysinit.target初始化系统及basic.target准备操作系统
systemd启动multi-user.target下的本机与服务器服务
systemd执行multi-user.target下的/etc/rc.d/rc/local
systemd执行multi-user.target下的getty.target及登录服务
systemd执行graphical需要的服务
出现登录页面
第六题 编写Nginx的systemd配置文件,实现nginx的开机启动
[Unit] #对服务的说明
Description=nginx #描述服务
After=network.target # 服务类别
[Service] #服务的一些具体运行参数的设置
Type=forking #后台运行的形式
PIDFile=/usr/local/nginx/logs/nginx.pid #文件的路径
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #启动命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload #重启命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop #停止命令
PrivateTmp=true # 分配临时空间
[Install]
WantedBy=multi-user.target #用户 模式
systemctl daemon-reload #需要先重载到内存
systemctl enable nginx.service #开机自启