Linux入门-第八周
1、用shell脚本实现自动登录机器
#!/usr/bin/expect
set ip 192.168.2.192
set user root
set password root
spawn ssh $user@$ip
expect {
	"yes/no" { send "yes\n";exp_cotinue}
	"password" {send "$password\n"}
}
interact
2、shell 判断一个值bone是否在数组arrayZ=( one two three four five five )中
[root@N37012 ~]# cat 2.sh 
#!/bin/bash
var=( "one" "two" "three" "four" "five" "five" )
for i in `seq $[${#var[*]}-1]`;do
	echo ${var[$i]}
	if [ ${var[$i]} == bond ];then
		echo yes
	else
		echo no
	fi
done
unset var
[root@N37012 ~]# bash 2.sh 
two
no
three
no
four
no
five
no
five
no
[root@N37012 ~]#
3、用命令或者脚本实现 0057AF051EFF 变为 00:57:AF:05:1E:FF
[root@N37012 ~]# cat 3.sh 
a=0057AF051EFF
echo ${a:0:2}:${a:2:2}:${a:4:2}:${a:6:2}:${a:8:2}:${a:10:2}
[root@N37012 ~]# bash 3.sh 
00:57:AF:05:1E:FF
[root@N37012 ~]#
4、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位密码的脚本
[root@N37012 ~]# cat 4.sh 
#!/bin/bash
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 i=$[$RANDOM%${#a[*]}]
echo -e "${a[$i]:0:20}\c"
done
[root@N37012 ~]# bash 4.sh 
jkA{C{5=%4a4;_yNv=/x[root@N37012 ~]# 
[root@N37012 ~]#
5、详细叙述centos7开机流程
第一步:POST加电自检
主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表为CMOS)芯片上的BIOS(Basic Input/Output System)程序;例如BIOS会检测CPU、Memory以及I/O设备是否能够正常运行,如果是个人计算机的话可能还会检测一下显示器。只要一通电,CPU就会自动去加载ROM芯片上的BIOS程序,是这样来实现的。而检测完成之后就进行硬件设备的初始化
第二步:Boot Sequence(选择启动设备以加载MBR)
主要实现的功能是选择要启动的硬件设备,选择了之后就可以读取这个设备上位于MBR里头的bootloader了。这一步的实现是这样的:根据BIOS中对启动顺序的设定,BIOS自己会依次扫描各个引导设备,然后第一个被扫描到具有引导程序(bootloader)的设备就被作为要启动的引导设备。
第三步:加载bootloader(MBR)
这一步实现起来的步骤比较多,前面的BIOS通过读取并执行启动设备的MBR中的bootloader,而bootloader要实现的功能就是提供一个菜单给用户,让用户去选择要启动的系统或不同的内核版本,然后把用户选择的内核版本加载至RAM中的特定空间,接着在RAM中解压、展开,而后把系统控制权移交给内核。
第四步:Kernel自身初始化
    Kerenl在得到系统控制权之后,首先要进行自身初始化,而初始化的主要作用是:
(1)探测可识别到的所有硬件设备
(2)加载硬件驱动程序,即加载真正的根文件系统所在设备的驱动程序
(3)以只读方式挂载根文件系统(4)运行用户空间的第一个应用程序:/sbin/init.
(4)运行用户空间的第一个应用程序:/sbin/init.
第五步:init管理用户空间服务进程
这一步的流程是:/sbin/init --> 根据init配置文件设置默认运行级别 --> 运行系统初始化脚本/etc/rc.d/rc.sysinit,完成系统初始化 --> 关闭或启动用户选定的默认运行级别所对应的服务 --> 启动终端,打印登录提示符
根据init配置文件设置默认运行级别
    对于CentOS 5来说,初始化程序init是SysV init,其配置文件为:/etc/inittab;
    对于CentOS 6来说,初始化程序init是upstart,其配置文件为:/etc/inittab, /etc/init/*.conf,也就是upstart将配置文件拆分成多个,在/etc/init/目录下以conf结尾的都是upstart风格的配置文件,而/etc/inittab仅用于设置默认运行级别;
    对于CentOS 7来说,初始化程序init是systemd,其配置文件为:/usr/lib/system/systemd/*, /etc/systemd/system/*;
6、编写Nginx的systemd配置文件, 实现nginx进程开机启动
首先安装 yum install -y gcc-c++ && pcre && pcre-devel && zlib && zlib-devel && openssl && openssl-devel
然后./configure && make && make install
[root@N37012 nginx]# cd /lib/systemd/system/
[root@N37012 system]# vim nginx.service
[root@N37012 system]# systemctl enable nginx.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@N37012 system]# systemctl start nginx.service 
[root@N37012 system]# systemctl status nginx.service 
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-05-12 20:32:47 CST; 6s ago
  Process: 20325 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 20326 (nginx)
   CGroup: /system.slice/nginx.service
           ├─20326 nginx: master process /usr/local/nginx/sbin/nginx
           └─20327 nginx: worker process
May 12 20:32:47 N37012 systemd[1]: Starting nginx...
May 12 20:32:47 N37012 systemd[1]: Started nginx.
[root@N37012 system]#
时间匆忙,随便写了点。没有整理
Linux入门-第八周的更多相关文章
- 20135302魏静静——linux课程第八周实验及总结
		
linux课程第八周实验及总结 实验及学习总结 1. 进程切换在内核中的实现 linux中进程切换是很常见的一个操作,而这个操作是在内核中实现的. 实现的时机有以下三个时机: 中断处理过程(包括时钟中 ...
 - Linux入门-第六周
		
1.总结IP地址规划 IP地址的合理规划是网络设计中最重要的一环,在大型网络中必须对IP地址进行统一规划并得到实施.IP地址规划的好坏影响到网络路由协议算法的效率,影响到网络的性能,影响到网络的拓展, ...
 - linux入门教程(八)  Linux磁盘管理
		
[查看磁盘或者目录的容量 df 和 du] df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k –m等 -i 使用inode ...
 - Linux入门-第五周
		
1.磁盘lvm管理,完成下面要求,并写出详细过程: 1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv; ...
 - Linux入门-第三周
		
1.总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim [options] [file ..] +# 打开文件后,让光标处于第#行的行首,(默认行尾) 举例vim +10 /etc/ ...
 - linux作业--第八周
		
1.创建私有CA并进行证书申请. 配置文件存放路径 /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everythi ...
 - Linux入门-第七周
		
1.编写脚本实现传入进程PID,查看对应进程/proc下CPU.内存指标. #!/bin/bash read -p "Input PID Value: " pid #读取PID进程 ...
 - Linux内核设计第八周 ——进程的切换和系统的一般执行过程
		
Linux内核设计第八周 ——进程的切换和系统的一般执行过程 第一部分 知识点总结 第二部分 实验部分 1.配置实验环境,确保menu内核可以正常启动 2.进入gdb调试,在shedule和conte ...
 - Linux内核分析——第八周学习笔记20135308
		
第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 (1)进程分类 第一种分类 I/O-bound:等待I/O CPU-bound: ...
 
随机推荐
- poj1082  Calendar Game (博弈)
			
题意是:Adam和Eve两人做游戏,开始给出一个日期,截止日期是2011.11.4,游戏规则如下: 每个人只能将天数增加一天或者将月份增加一天.如果下个月没有这一天,那么只能增加天数. 游戏胜利定义为 ...
 - 练习二十二:python兵乓求比赛顺序练习,关于连个兵乓球队进行比赛
			
已知有两支兵乓球队进行比赛,每队各出3人: 甲队有a,b,c三人,乙队有x,y,z三人,已抽签决定比赛名单 问题:有人向队员打听比赛名单.a说他不和X比,c说他不和x,z比,程序找出比赛对手 方法一: ...
 - spring boot之 Bean的初始化和销毁(4)
			
原文:https://blog.csdn.net/z3133464733/article/details/79189699 -------------------------------------- ...
 - 【ACM】吝啬的国度 - DFS (图)
			
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市, ...
 - windows下apache服务器的下载,安装,配置
			
1.进行apache官网->Download->Files for Microsoft Windows->ApacheHaus,然后选择合适的版本下载 2.将下载下来的压缩包解压到合 ...
 - Java多线程与并发——进程与线程
			
1.什么是进程 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念.而进程是程序在处理机上的一次执行过程,它是一个动态的概念. 进程是一个具有一定独立功能的程序,一个实体,每一个进 ...
 - C# 读写XML文件的方法
			
C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...
 - @b.windows.last.use
			
@b.windows.last.use @b.windows.first.use be_true 一般用在step文件中
 - Oracle单行函数。。。
			
单行函数 --字符函数--1.ASCII 返回与指定的字符对应的十进制数;select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') spa ...
 - 我对USB的认识
			
一.USB协议规范 (1) 基本概念 每一个设备(device)会有一个或者多个的逻辑连接点在里面,每个连接点叫endpoint.每个endpoint有四种数据传送方式:控制(Contr ...