shell脚本应用
复习题:
1.写出三个以上文件测试的常见操作选项及其含义?
答:-d: 测试是否为目录。
-e: 测试目录或文件是否存在。
-f: 测试是否为文件。
-r: 测试当前用户是否有权限读取。
-w: 测试当前用户是否有权限写入。
-x: 测试是否设置有可执行权限。
2.[ -d /media/cdrom ] && echo $? 命令的作用是什么?
答:测试/media/cdrom是否是目录,如果该条件成立,则输出该条测试命令的返回值。
3.写出三个以上用于整数值比较的常用操作符及其含义 ?
答: -eq: 第一个数等于第二个数。
-ne: 第一个数不等于第二个数。
-gt: 第一个数大于第二个数。
-lt: 第一个数小于第二个数。
-le: 第一个数小于等于第二个数。
-ge: 第一个数大于等于第二个数。
4.简述用于字符串比较的常用操作符及其含义?
答: =: 第一个字符串与第二个字符串相同。
!=: 第一个字符串与第二个字符串不相同。
-z: 检查字符串是否为空,对于未定义或赋予空值的变量将视为空串。
5.[ $LANG != "zh.CN" ] && echo "Not zh.CN"命令的作用是什么?
答:判断当前系统的语言环境,当不为 "zh.CN"时,则输出提示信息"Not zh.CN"。
6.简述逻辑测试的常用操作及其含义?
答:&&:逻辑与,表示“而且”,只有当前后两个条件都成立时,整个测试命令的返回值才为0(结果成立)。
使用test命令测试时,可改为“-a”。
||:逻辑或,表示“或者”,只要前后两个条件中有一个成立,整个测试命令的返回值即为0(结果成立)
使用test命令测试时,可改为“-o”。
!:逻辑否,表示“不”,只有当指定的条件不成立时,整个测试命令的返回值才为0(结果成立)
7.uname -r | awk -F. '{print $1}'命令的作用是什么?
答:从uname -r(显示当前系统内核)显示的信息中,提取出以.作为分割的第一列的值。
8.图示单分支if语句的执行流程?
答:
9.图示双分支if语句的执行流程?
答:
10.图示多分支if语句的执行流程?
答:
循环小考
1.写出for循环语句的语法结构。
答: for 变量值 in 取值列表
do
命令序列
done
2.图示for循环语句的执行流程。
答:
3.for循环的取值列表中,多个取值之间以什么进行分隔?
答:多个取值之间用空格隔开
4.写出while循环语句的语法结构。
答:while 条件测试操作
do
命令序列
done
5.图示while循环语句的执行流程。
答:
6.for循环与while循环语句中,位于什么之间的命令序列称为循环体?
答:位于do…done之间的命令序列称为循环体。
7.写出case分支语句的语法结构。
答:case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
默认命令序列
esac
8.图示case分支语句的执行流程。
答:
9.case分支语句中的双分号”;; ”表示什么含义?
答:表示命令序列的结束。
10.case分支语句适用于什么场景中?
答:某个变量存在多个取值,需要对其中的每一种取值分别执行不同的命令序列。
预习:
1.简述基础正则表达式与扩展正则表达式的区别。
答:基础正则表达式是常用的正则表达式的最基础的部分,而扩展正则表达式范围更广。
2.简述sed与awk的区别。
答:sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”
然后再进行处理。
3.Linux系统中下执行awk-F: ‘/bash$/{print | “wc-l”}’/etc/passwd命令的作用是什么?
答:调用wc-l命令统计使用bash的用户个数。
shell脚本应用
1.正则表达式的作用:
通过一些特殊符号,实现快速查找,删除,替换某个特定的字符串
2.列出Linux系统中支持正则表达式的命令工具,并说起支持的正则表达式的类型?
基本:Grep和sed
扩展:egrep,awk
3.Linux系统下执行“grep -n ‘sh[io]rt’ test.txt”命令的作用:
在显示行数的test.txt文件中查找以“sh”开头,以”rt”结尾,中间是“i”或是“o”的字符
4.Linux系统下执行什么命令可以查询test.txt文件中不以字母开头的行:
Grep -n ‘^[^a-zA-Z]’ test.txt
5.Linux系统下执行“egrep -n ‘A(xyz)+C’ test.txt”命令的作用:
查询开头是“A”结尾为“C”中间有一个以上的“xyz”的字符串
6.使用扩展正则表达式如何过滤掉yum.conf文件中的空行与“#”号注释的行:
Egrep -v ‘^$ | ^#’ yum.conf
7.Linux系统下执行 “sed -n ‘ / \<wood\>/p’ test.txt” 命令的作用是什么:
打印输出包含单词wood的行。
8.Linux系统下执行”sed ‘ /the/s/o/O/g’ test.txt” 命令的作用是什么:
将包含the的所有行中的o都替换成O
9.简述awk命令的工作原理
Awk将文本文件中的一行视为一个记录,而将一行中的某一部分(列)作为记录中的一个字段(域),awk借用shell中类似于位置变量的方法,用$1,$2,$3.....顺序的表示行(记录)中的不同字段,另外awk用$0表示整个行(记录)。
10.Linux系统下执行 “awk -F : ‘/bash$/{print | “wc -l “}’ /etc/passwd” 命令的作用是什么:
调用 wc -l 命令统计使用bash的用户个数。
预习:
1.sshd_cconfig文件中 “ListenAddress 172.16.16.22” 与 “UseDNS no”配置项的作用分别是什么:
Listenadderss 172.16.16.22 : 监听地址为172.16.16.22
Usedns no :禁止dns反向解析
2.ssh -p 2345 jerry@172.16.16.22命令中“-p”选项的作用:
指定端口号
3.Linux系统中TCP Wrappers机制对应的允许,拒绝策略文件分别是什么:
/etc/hosts.allow /etc/hosts.deny
1.Sshd_config文件中“ListenAddress 172.16.16.22”与“UserDNS no”配置项的作用分别是什么?
前者为监听地址,后者为禁用DNS反向解析
2.如何禁止root用户与密码为空的用户登录sshd服务
在/etc/ssh/sshd_config配置文件中
PermitRootLogin no:禁用root
PermitEmptyPasswords no:禁用空密码用户
3.简述SSH服务的两种登录验证防止,分析各自的缺点
密码验证:简便,安全性差.
密钥对验证:安全
4.Sshd_config配置文件中通过什么配置项指定公钥数据文件
AuthorizedKeysFile项
5.“ssh -p 2345 jerry@172.16.16.22”命令中“-p”选项的作用是什么
指定端口号
6.Windows7平台上使用什么工具可以与OpenSSH服务器进行通信
Xshell,SecureCRT,Putty
7.简述SSH密钥对验证的实现过程
在客户端创建密钥对
将公钥文件上传至服务器
在服务器中导入公钥文本
在客户端使用密钥对验证
8.“ssh-copy-id-i ~/.ssh/id_ecdsa.pub lisi@172.16.16.22”命令的作用是什么
上传并验证密钥文件。-i指定公钥文件
9.Linux系统中TCP Wrappers机制对应的允许,拒绝策略文件分别是什么
Hosts.allow:同意
Hosts.deny:拒绝
10.使用TCP wrappers 设置仅允许10.10.1.0/24网段的主机访问sshd服务,其他地址被拒绝
先配置hosts allow配置文件
Sshd:10.10.1.*
在配置hosts deny配置文件
Sshd:ALL
预习
1.YUM仓库配置文件中至少包含哪几个配置项,其作用分别是什么
[base]:仓库类别
Name:仓库名字
Baseurl:URL访问路径
Enabled:启用次软件仓库
Gpgcheck:验证软件包的签名
Gpgkey:GPG公钥文件的位置
2.搭建PXE网络体系必须满足哪几个前提条件
网卡支持pxe协议;DHCP服务器自动分配地址,指定引导文件位置;TFTP提供引导镜像文件和内核文件的下载
3.在系统安装自动应答文件中%packages到%end配置段的作用是什么
软件包安装脚本
YUM仓库服务于PXE网络装机
1.YUM软件仓库中的repodata数据文件的作用是什么?
答:用户自己收集的软件包,需要在repodata目录下手动创建 Repomd.xml,用来收集软件包的头部信息,要不然不能自动解决依赖关系
2.YUM软件仓库通常借助于那些协议来进行发布,实现对网络中的客户机提供软件源服务?
答:HTTP,FTP
3.YUM软件仓库配置文件中至少包含哪几个配置项,其作用分别是什么?
答:仓库类别,仓库名称,baseurl=:URL访问路径,enabled=:启用此软件仓库,gpgcheck检查软件
4.Yum命令查询软件包时对应的子命令list,info,search的作用分别是什么?
答:list:查询软件包列表,info:查询软件包的描述信息,search:查询指定的软件包
5.Yum命令管理软件包时,结合什么子命令可以针对软件分组进行安装,升级,卸载操作?
答:-y groupinstall 安装,-y groupremove 卸载,-y groupupdate 升级。
6.搭建PXE网络体系必须满足哪几个前提条件?
答:客户机的网卡支持PXE协议,网络中有一台DHCP服务器,服务器通过TFTP提供引导镜像文件的下载
7.简述搭建PXE远程安装服务器流程?
答:准备CentOS 7安装源,安装并启用TFTP服务,准备Linux内核,初始化镜像文件,准备PXE引导程序,启动菜单文件,安装并启用DHCP服务,网络安装。
8.启动菜单文件default中prompt,label,append,method配置项的作用分别是什么?
答:prompt:用来设置是否等待用户选择,label:用来定义并分隔启动项,append:用来定义引导参数,method:指定主机文件
9.在系统安装自动应答文件中%packages到%end配置段的作用是什么?
答:包含以@开头的软件包列表,将不需要的软件名删除。
10.在启动菜单文件default,添加ks引导参数的作用是什么?
答:指定ks.cfg应答文件的URL路径。
预习题
1.“rsync -rl /etc/fstab /boot/grub /opt”命令的作用是什么?
答:将文件/etc/fstab ,目录/boot/grub同步备份到/opt目录下。
2. rsync 命令的 “——delete”选项的作用是什么?
答:——delete:删除目标位置有而原始位置没有的文件。
3. inotifywait 与 inotifywatch 辅助工具的作用分别是什么?
答:inotifywait:可监控modify(修改),create(创建),move(移动),delete(删除),attribute(属性更改)等各种事件。
Inotifywatch:可用来收集文件系统变动情况,并在运行结束后输出汇总的变化情况。
rsync远程同步
复习题:
1.使用rsync同步工具时,“发起端”、“同步源”的含义是什么?
答:发起端:负责发起rsync同步操作时的客户机称为发起端
同步源:负责响应来自客户机的rsync同步操作的服务器称为同步源
在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置具有读取权限。
发起端:安装inotify
同步源:安装rsync
2./etc/rsyncd.conf 文件中的auth users与secrets file配置项的作用是什么?
答:auth users:授权账户
secrets file:存放账户信息的数据文件。
3.在Linux系统中执行什么命令可以使rsync以守护进程运行?
答:“rsync --daemon”
4.在Linux系统中执行什么命令可以关闭rsync服务?
答:kill $(cat /var/run/rsyncd.pid)
5.写出两种rsync同步源的资源表示方式?
答:(1)用户名@主机地址::共享模块名
(2)rsync://用户名@主机地址/共享模块名
6. rsync命令的--delete选项的作用是什么?
答:--delete: 删除目标位置有而原始位置没有的文件。
7,在执行同步命令时可以通过什么选项来指定同步用户的密码文件?
答:“--password-file=/etc/server.pass”
8.inotify机制提供的max_queue_events、max_user_instances、max_user_watches参数的作用分别是什么?
答:max_queue_events: 表示监控事件队列
max_user_instances: 表示最多监控实例数
max_user_watches: 表示每个实例最多监控文件数。
9.inotifywait与inotifywatch辅助工具的作用分别是什么?
答:inotiftwait: 可监控modify(修改),create(创建),move(移动),delete(删除),attrib(属性更改)等各种事件,一旦有变动立即输出结果,用于持续监控。
Inotifywatch: 可用来收集文件系统变动情况,并在运行结束后输出汇总的变化情况,用于短期监控。
10.inotifywait -mrq -e modify,create,move,delete /test命令的作用是什么?
答:用于实时监控test目录,先执行inotifywait命令,然后向/test目录下添加,修改,移动和删除文件时,跟踪屏幕输出结果。
预习题:
1.Squid包含哪两种基本的代理类型?简述其区别
答:传统代理: 也就是普通的代理服务,适用于Internet,需明确指定服务端。
透明代理: 适用于共享上网网关,不需要指定服务端
而是通过默认路由,防火墙策略将web访问重定向,实际仍然交给代理服务器处理。
2.在Squid主配置文件中http_port配置行加上一个“transparent”配置项的作用是什么?
答:用于做透明代理。
3.在Squid主配置文件中httpd_access配置项的作用是什么?
答:对已定义的列表做“允许”或“拒绝”访问控制规则。
第13章 squid代理服务器
4.图示代理服务的缓存机制
答:
1.简述传统代理与透明代理各自的特点、适用环境
答:传统代理:必须在客户机的浏览器上手动设置代理服务器的地址和端口,才能使用代理服务器。
透明代理:不用指定代理服务器的地址,而是通过默认路由,防火墙策略将web访问重定向,实际仍然交给代理服务器处理。
2.在使用./configure编译安装Squid时通过什么配置项指定配置文件所在目录?
答:--sysconfdir
3.squid.conf配置文件中cache_effective_user配置项的作用是什么?
答:用户缓存
4.写出Squid服务进行配置文件语法检查与初始化缓存目录的命令
答:检查:squid-k parse 初始化:squid –z
5.在squid.conf配置文件中设置reply_body_max_size 10 MB配置项的作用是什么?
答:通过代理下载的文件大小限制为10MB
6.构建Squid代理服务器时,开启IP转发(ip_forward)功能的作用是什么?
答:实现本机中不同地址的转发。
7.在Squid主配置文件中http_port配置行加上一个“transparent”配置选项的作用是什么?
答:开启透明模式
8.Squid服务提供的ACL访问控制的定义访问控制列表的格式是什么?
答:acl 列表名称 列表类型 列表内容 …
9.在Squid主配置文件中httpd_access配置项的作用是什么?
答:对已定义的列表做“允许”或“拒绝”访问的控制。
预习题
1.通过什么命令查看Intel或ADM服务器的CPU是否支持虚拟化?
答:inter:cat /proc/cpuinfo | grep vmx
AMD:cat /proc/cpuinfo | grep smv
2.在Linux系统中依次执行什么命令可以挂起虚拟机并从挂起状态恢复虚拟机?
答:挂起:virsh suspend test01
恢复:virsh resume test01 , virsh list --all
3. virt-clone -o test01 -n test02 -f /data_kvm/store/test02.qcow2命令的作用是什么?
答:从test01克隆到test02.
部署KVM虚拟化平台
1. 在已安装好的CentOS系统上,通过YUM安装KVM,所必需的软件包含哪些?
GNOME Desktop:安装GNOME桌面环境
qemu-kvm:KVM模块
qemu-kvm-tools:KVM调试工具
virt-install:构建虚拟机的命令行工具
qemu-img:qemu组件,创建磁盘,启动虚拟机等
bridge-utils:网络支持工具
libvirt:虚拟机管理工具
virt-manager:图形界面管理虚拟机
2. 通过什么命令查看Intel或ADM服务器的CPU是否支持虚拟化?
intel:kvm
AMD:svm
3. ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target命令的作用是什么?
将系统默认运行target改为graphical.targe。重启后系统将进入图形化界面
4. Linux系统中acpid服务的作用是什么?
Acpid是一个 用户空间 的服务进程,它充当linux 内核 与应用程序之间通信的接口,负责将kernel中的 电源管理 事件转发给应用程序。
5. 在Linux系统中依次执行什么命令可以挂起虚拟机并从挂起状态恢复虚拟机?
virsh suspend 虚拟机名称
virsh resume 虚拟机名称
6. 在Linux系统中执行什么可以配置虚拟机test01伴随宿主机自动启动?
virsh autostart 虚拟机名称
7. 在Linux系统中依次执行什么命令可以将虚拟机raw格式磁盘转换至qcow2格式?
virsh shutdown 虚拟机名称
qemu-img convert -f raw -O qcow2 /data_kvm/store/虚拟机类型 /data_kvm/store/虚拟机文件名
8. virt-edit -a /data_kvm/store/test01.qcow2 /etc/resolv.conf命令的作用是什么?
编辑文件
9. virt-clone -o test01 -n test02 -f /data_kvm/store/test02.qcow2命令的作用是什么?
将test01克隆test02虚拟机
10. 在Linux系统中依次执行什么命令可以创建虚拟机、根据快照版本号恢复虚拟机?
virsh snapshot-create 虚拟机名称
virsh snapshot-revert 虚拟机名称 快照编码