本文共 5567 字,大约阅读时间需要 18 分钟。
1、yum源的配置与使用(5分)
1) 创建一个本地yum源[base]Mount /dev/cdrom /mntname=local_basebaseurl=file:///mnt/gpgcheck=02) 安装开发包组
yum grouplist
yum groupinstall development tools2、复制/etc/ssh/sshd_config 到/tmp/中并更名为sshd_config.bak。将/tmp/sshd_config.bak文件中所有以非#号开头与包含空白字符的行保存至/tmp/sshd_config中。(5分)
cp /etc/ssh/sshd_config /tmp/sshd-config.bak
cd /tmpcat sshd_config.bak | egrep "^[^#].[[:space:]]+." > sshd_config3、编写脚本/root/bin/sysinfo.sh显示当前主机系统信息,包括主机名,操作系统版本,内核版本,CPU型号,内存大小,硬盘分区(5分)
#!/bin/bash
echo '----------------------------------'echo 'system infomation'echo 'hostname:'hostname
echo 'system-release:'cat /etc/centos-release
echo 'kernel:'uname -r
echo 'cpu:'lscpu | egrep -i "型号名称" | tr -s ' ' | cut -d' ' -f2-7
echo 'mem:'free -h | egrep -i "mem" | tr ':' ' ' | tr -s ' ' | cut -d' ' -f2
echo 'hd:'lsblk | egrep "sda\>" | tr ':' ' ' | tr -s ' '| cut -d' ' -f5
echo '----------------------------------' 4、给root用户定义别名命令vimnet,相当于vim /etc/sysconfig/network-scripts/ifcfg-ens33,并使root执行history命令时,显示每个命令执行的具体时间。(5分)
vim .bashrc
alias vimnet= 'vim /etc/sysconfig/network-scripts/ifcfg-ens33'. .bashrcvim .bash_profileHISTTIMEFORMAT="%F %T ". .bash_profile5、指出软链接与硬链接的异同之处(至少四处)(5分)
一,软链接可以针对文件夹,硬链接不行
二,硬链接和源文件有相同的inode码,软链接和源文件是不同的inode码(inode就是索引字节,用来 存储数据信息,系统能通过indoe值最快的找到相对应的文件)三,硬链接不能跨分区,软链接可以跨分区四,删除软链接源文件软链接会失效,删除硬链接源文件硬链接能正常使用6、下载编译安装httpd 2.4最新版本,写出安装过程(5分)
cdtar –xf httpd-2.4.25.tar.bz2cd httpd-2.4.25vim README:qvim INSTALL:qyum groupinstall development toolsmkdir /app/apache24./configure --prefix=/app/apache24make&&make install7、过滤ifconfig命令结果中所有大于0且小于255的三位数(5分)
Ip a | egrep -o "\<[0-2][0-9][0-9]\>" | egrep -v "2[5-9]{2}"
8、将用户mage被误删除的的家目录恢复,复制/etc/shadow到mage家目录中。并设置只有用户shixintao可以读取/home/mage/shadow(5分)
cp –r /etc/skel /home/mage #cp -r 递归处理,将指定目录下的所有文件与子目录一并处理cd /home/magechown –R mage:mage magecp /etc/shadow .chmod 000 shadowsetfacl –m u:shixintao:r shadowsetfacl –m u:shixintao:rx /home/mage9、统计/var/log/httpd/access.log日志访问频繁前十的地址,并从大到小排序(5分)
cat /var/log/httpd/access_log | egrep -o "(\<[0-2][0-9]{1,2}.){3}\<[0-2][0-9]{1,2}\>" | sort | uniq -c | tr -s ' ' | sort -t' ' -k2 -rn | head -n10
10、开启两个终端,将终端1 中输入命令的执行结果输出,并同时输出到终端2 (5分)
开终端可以在本地用ctrl+alt+F1-6开启,Xshell可以直接新开终端
终端1为pts/0 终端2为pts/1ls / |tee /dev/pts/111、误删除/lib64/libc.so.6系统库文件,如何恢复之,实验说明(5分)
一,在光盘挂载的情况下重启
二,在读取进度条的时候按下Esc然后使用CD-ROM进行启动三,选择进入救援模式“rescue”四,进入救援模式后从当前/lib64中复制一份libc.so.6到/mnt/sysimage/lib64中五,退出救援模式重启机器完成恢复12、误删除rpm包命令,如何恢复之,实验说明 (5分)
一,在光盘挂载的情况下重启
二,在读取进度条的时候按下Esc然后使用CD-ROM进行启动三,选择进入救援模式“rescue”四,进入救援模式后输入 mkdir /cd创建文件夹五,mount /dev/sr0 /cd 将光盘挂在/cd上六,rpm -ivh /cd/Packages/rpm-4.11.3-21.e17.x86_64.rpm --root=/mnt/sysimage/ 将光盘中的rpm包以原来根为基础安装七,退出救援模式重启机器完成恢复13、计算2+4+6+…+96+98+100之和(5分)
echo {2..100..2} | tr ' ' '+' | bc
14、取/etc/sysconfig/network-scripts/ifcfg-ens33基名,用两种方法实现(5分)
1.echo /etc/sysconfig/network-scripts/ifcfg-ens33 | egrep -o "\<[_0-9a-zA-Z-]+/?$" # \?:匹配其前面的字符1次或0次
2.echo /etc/sysconfig/network-scripts/ifcfg-ens33 | rev | egrep -o "^/?[0-9a-zA-Z-]+\>" | rev备注: rev命令将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推。3.basename /etc/sysconfig/network-scripts/ifcfg-ens334..echo /etc/sysconfig/network-scripts/ifcfg-ens33 | egrep -o "\<[[:alpha:]]*\>$"15、对/etc/目录,分别执行命令,实现以下功能(5分)
(1)按从大到小顺序显示文件列表 -S 以文件大小排序。ll –S /etc(2)只显示隐藏文件l. /etcls –d . /etc(3)只显示目录 -d 将目录象文件一样显示,而不是显示其下的文件ls –d /etc//(4)按mtime时间显示文件列表 -t 以时间排序。ls –t /etc(5)按atime时间显示文件列表 -u 以文件上次被访问的时间排序。ls –u /etc16、编写/root/bin/excute.sh,实现与用户交互,判断用户给予的参数是否可读,可写,可执行(5分)vim excute.sh
#!/bin/baseread -p "please input file:" fileif [ -e "$file" ] ; then[ -r "$file" ] && [ -w "$file" ] && [ -x "$file" ] && echo "参数可读可写可执行" && exit[ -r "$file" ] && [ -w "$file" ] && echo "参数可读可写不能执行" && exit[ -r "$file" ] && [ -x "$file" ] && echo "参数可读可执行不能写" && exit[ -r "$file" ] && echo "参数可读不能写不能执行" && exit[ -w "$file" ] && [ -x "$file" ] && echo "参数可写可执行不能读" && exit[ -w "$file" ] && echo "参数可写不能执行不能读" && exit[ -x "$file" ] && echo "参数可执行不能读不能写" && exitecho "该参数没有任何权限"elseecho "该文件不存在"exitfi17、编写/root/bin/create.sh可以生成新的脚本包括作者、联系方式、版本、时间和描述等,并且可以直接对其进行编辑,编辑完后自动加上执行权限(5分)
vim /root/bin/create.sh
[ -a "$1" ] && echo "file is exist" && exittouch "$1"echo '#!/bin/bash' >> "$1"echo "#name:$1" >> "$1"echo '#author:sxt' >> "$1"echo '#email:sxt@qq.com' >> "$1"echo '#version:1.0' >> "$1"echo '#number:02' >> "$1"echo '#time:'date +%F
>> "$1"chmod u+x "$1"vim + "$1"exit 18、写一个脚本,让它可以传递两个参数后,实现对该参数的加、减、乘、除运算并输出运算后的值(5分)
(加减乘除等号与参数之间不要有空格)#!/bin/bashread -p "input your Number1: " Num1read -p "input your Number2: " Num2ADD=$[ $Num1+$Num2 ]SUB=$[ $Num1-$Num2 ]RID=$[ $Num1$Num2 ]DIV=$[ $Num1/$Num2 ]echo "$Num1 + $Num2 = $ADD"echo "$Num1 - $Num2 = $SUB"echo "$Num1 $Num2 = $RID"echo "$Num1 / $Num2 = $DIV"exit19、编写/root/bin/wcfile.sh统计/etc目录中的目录的个数,文件的个数,并求出/etc/目录中的目录和文件个数的总和(5分)
#!/bin/bashdnum=find /etc -type d | wc -l
echo /etc中目录个数为"$dnum"个fnum=find /etc -not -type d | wc -l
echo /etc中文件个数为"$fnum"个num=$[dnum+fnum]echo /etc中文件和目录总数为"$num"个unset dnumunset numunset fnumexit 20、编写/root/bin/baketc.sh 查找/etc/目录中超过1天未修改的文件,将其压缩备份至/bakup目录。若之前没有备份过则备份之,若存在的备份文件超过了2分钟则备份之,否则退出。备份的格式为YYYY-MM-DD-hh-mm-ss.xz(Y表示年,M表示月,D表示日,h表示时,m表示分,s表示秒)(5分)
(# .xz压缩包格式)vim /root/bin/baketc.shif [ -z "$a" ];then
find /etc -mtime +0 |xargs tar -cJf /bakup/"$shijian".xz 2&> /dev/nullecho "备份创建成功"elif [ -n "$b" ];then
rm -f "$b"find /etc -mtime +0 |xargs tar -cJf /bakup/"$shijian".xz 2&> /dev/nullecho "备份创建成功,旧备份已删除"else
echo "上次备份未超过两分钟"fi转载于:https://blog.51cto.com/13859849/2160974