第一阶段测试题

1.将用户mage被误删除的的家目录恢复,复制/etc/shadowmage家目录中。并设置只有用户wang可以读取/home/mage/shadow(5)

rm -rf /home/mage

cp -a /etc/skel/ /home/mage

chown -R mage.mage /home/mage

cp /etc/shadow /home/mage

setfacl -m u:wang:rx /home/mage/

setfacl -m u:wang:r /home/mage/shadow

su - wang

cat /home/mage/shadow

2.下载编译安装httpd 2.4最新版本,写出安装过程(5)

et apr-1.5.0.tar.bz2 apr-util-1.5.2.tar.bz2 httpd-2.4.10.tar.bz2

yum install pcre-deve

安装apr

tar -xvf apr-1.5.0.tar.bz2

cd apr-1.5.0/

./configure --prefix=/usr/local/apr

make

make install

安装apr-util

tar -xvf apr-util-1.5.2.tar.bz2

cd apr-util-1.5.2/

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make

make install

安装apache

tar -xvf httpd-2.4.10.tar.bz2

cd httpd-2.4.10

./configure  --prefix=/usr/local/rjnnhttp

             --sysconfdir=/etc/rjnnhttp

             --with-pcre

             --with-apr=/usr/local/apr

             --with-apr-util=/usr/local/apr-util

make

make install

vim /etc/profile.d/rjnn.sh export PATH=$PATH:/usr/local/rjnnhttp

vim /etc/man_db_conf

MANDATORY_MANPATH           /usr/local/rjnnhttp/man

links

3.过滤ifconfig命令结果中所有大于0且小于255的三位数(5)

ifconfig |grep -E '\<(([1-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-4]))\>'

ifconfig |grep -E '\<((1[0-9][0-9])|(2[0-4][0-9])|(25[0-4]))\>'

4.误删除/lib64/libc.so.6系统库文件,如何恢复之,实验说明(5)

##删除 libc.so.6

1、查找libc.so.6   ldd `which ls`

2、rm  -rf/lib64/libc.so.6
##如何恢复

3、重启计算机,在开机界面的时候按下一次esc,设置为从光盘引导启动。

##注:此处linux的环境是面vmware 虚拟机中。别的机器光盘启动方式不同。

4、进入光盘求援模式,6 7的界面选项根据实际情况选择。

6、复制/lib64/libc.so.6 /mnt/sysp_w_picpath/lib64

7、关闭selinux

vim /etc/sysconfig/selinux

将SELINUX=enforcing 改成 SELINUX=disabled

8、重启计算机

5.计算2+4+6++96+98+100之和(5)

echo {2..100..2} | tr " " "+" | bc

6.yum源的配置与使用(5)

创建一个本地yum源

base源指向https://mirrors.aliyun.com/centos/7/os/x86_64/

epel源指向https://mirrors.aliyun.com/epel/7Server/x86_64/

vim /etc/yum.repos.d/CentOS.repo

[base]

name=base

baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/

gpgcheck=0

enabled=1

[epel]

name=epel

baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/

gpgcheck=0

enabled=1

7.编写脚本/root/bin/sysinfo.sh显示当前主机系统信息,包括主机名,操作系统版本,内核版本,CPU型号,内存大小,硬盘分区(5)

#!/bin/bash

#

echo "HOSTNAME=`uname -n`"

echo "IPADDR=`ifconfig |grep inet|head -1|tr -s " " |cut -d " " -f3`"

echo "OPERATION=`uname -o`"

echo "RELEASE=`uname -r`"

echo "CPUTYPE=` lscpu |grep "Model name" `"

echo "MEMSIZE=`free`"

echo "DISKINFO=`lsblk`"

8.统计/var/log/httpd/access.log日志访问频繁前十的地址,并从大到小排序(5分)

cat /var/log/httpd/access.log | cut -d" " -f1 | sort | uniq -c | sort -nr  | head -10

9.误删除rpm包命令,如何恢复之,实验说明 (5)

[root@localhost ~]# which rpm

/usr/bin/rpm

[root@localhost ~]# rm -rf /usr/bin/rpm

1、与上题一样进入救援模式

2、mkdir /mnt/cdrom

3mount /dev/cdrom /mnt/cdrom  ##挂载光盘 

4、安装rpm软件, rpm -ivh /mnt/cdrom/Packages/rpm-4.11.3-17.el7.x86_64.rpm  --force

--root=/mnt/sysp_w_picpath

5、重新启用计算机

10.编写脚本/root/bin/sysinfo.sh显示当前主机系统信息,包括主机名,操作系统版本,内核版本,CPU型号,内存大小,硬盘分区(5)

#!/bin/bash

#

echo "HOSTNAME=`uname -n`"

echo "IPADDR=`ifconfig |grep inet|head -1|tr -s " " |cut -d " " -f3`"

echo "OPERATION=`uname -o`"

echo "RELEASE=`uname -r`"

echo "CPUTYPE=` lscpu |grep "Model name" `"

echo "MEMSIZE=`free`"

echo "DISKINFO=`lsblk`"

11.给root用户定义别名命令vimnet,相当于vim /etc/sysconfig/network-scripts/ifcfg-ens33,并使root执行history命令时,显示每个命令执行的具体时间。(5分)

echo "alias vimnet='vim /etc/sysconfig/network-scripts/ifcfg-eno16777736'" >>  /root/.bashrc

. /root/.bashrc

vimnet

echo 'HISTTIMEFORMAT="%F %T"' >>/root/.bashrc

. /root/.bashrc

history

12.开启两个终端,将终端1 中输入命令的执行结果输出,并同时输出到终端2 (5)

[root@localhost ~]# tty

/dev/pts/0

[root@localhost ~]# date | tee  /dev/pts/1

Sat Jun 17 19:23:39 CST 2017

## 另一个终端

[root@localhost ~]# Sat Jun 17 19:23:32 CST 2017

Sat Jun 17 19:23:39 CST 2017

13.编写/root/bin/excute.sh,实现与用户交互,判断用户给予的参数是否可读,可写,可执行(5)

[root@localhost ~]# excute.sh /etc/passwd

Can read

Can write

[root@localhost ~]# excute.sh /bin/ls    

Can read

Can write

Can execute

[root@localhost ~]# cat /root/bin/excute.sh

#Author: jin.ren

#QQ: 1922006891

#Version: 3.0

#Date :2017-06-13-19-39-34

#test

[ -r $1 ] && echo "Can read"

[ -w $! ] && echo "Can write"

[ -x $1 ] && echo "Can execute"

14.写一个脚本,让它可以传递两个参数后,实现对该参数的加、减、乘、除运算并输出运算后的值(5)

[root@localhost ~]# vim /root/bin/let.sh

[root@localhost ~]# let.sh

Please input Number133

Please input Number22

33+2=35

33-2=31

33*2=66

33/2=16

[root@localhost ~]# cat /root/bin/let.sh

#Author: jin.ren

#QQ: 1922006891

#Version: 3.0

#Date :2017-06-13-19-44-55

#operation

read -p "Please input Number1" NUM1

read -p "Please input Number2" NUM2

ADD=$[$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"

15.指出软链接与硬链接的异同之处(至少四处)(5)

硬链接:1相于当给文件增加了一个新名在添加链接时会增加链接数,其inode结点数不会增加

2支持绝对路径与相对路径

3不能跨分区来创建链接

4硬链接不能对目录来创建

5硬链接链接到文件被删除时,依旧可以通过链接文件来访问被删文件的数据

软链接:1链接到一个文件时,相当于创建了一个新的文件,inode结点会增加

2软链接链接到的文件被删除时,不可以通过链接文件来访问被删的数据

3软链接支持跨分区链接

4软链接支持绝对路径与相对路径但要注意的是不要相对于当前的工作目录

16.取/etc/sysconfig/network-scripts/ifcfg-ens33基名,用两种方法实现(5)

echo "/etc/sysconfig/network-scripts/ifcfg-ens33" |rev|cut -d"/" -f1|rev

echo "/etc/sysconfig/network-scripts/ifcfg-ens33" |grep  -o '[^/]*$'

basename /etc/sysconfig/network-scripts/ifcfg-ens33

17.复制/etc/ssh/sshd_config /tmp/中并更名为sshd_config.bak。将/tmp/sshd_config.bak文件中所有以非#号开头与包含空白字符的行保存至/tmp/sshd_config中。(5)

[root@localhost ~]# cp /etc/sshd_config /tmp/sshd_config.bak

cat /tmp/sshd_config.bak  |grep -Ev '^#|^[[:space:]]*$'>/tmp/sshd_config

18.编写/root/bin/baketc.sh 查找/etc/目录中超过1天未修改的文件,将其压缩备份至/bakup目录。若之前没有备份过则备份之,若存在的备份文件超过了2分钟则备份之,否则退出。备份的格式为YYYY-MM-DD-hh-mm-ss.xzY表示年,M表示月,D表示日,h表示时,m表示分,s表示秒)(5)

#!/bin/bash

# Author: Jin.Ren

# Date: 20170611

#

DATE=`date +"%Y-%m-%d-%H-%M-%S"`

WCFILE=`ls /backup | wc -l`

[ -d /backup ] || mkdir /backup

[ $WCFILE -eq 0 ] && find /etc/ -mtime +1 >> /dev/null | xargs tar -Jcvf /backup/$DATE\.tar.xz

FILE=$[`ls -lt /backup/* | cut -d" " -f9 | head -1 |tr -dc [:digit:]`+200]

echo "new file old time add two minute was: $FILE"

NOW=$[`date  +"%Y%m%d%H%M%S"`]

echo "NOW system time is: $NOW"

[ $FILE -lt $NOW ] && find /etc/ -mtime +1 | xargs tar -Jcvf /backup/$DATE\.tar.xz

19.对/etc/目录,分别执行命令,实现以下功能(5)

(1)按从大到小顺序显示文件列表

(2)只显示隐藏文件

(3)只显示目录

(4)按mtime时间显示文件列表

(5)按atime时间显示文件列表

1)ls -Sl /etc/

2)ls -d /etc/.*

3)ls -ld /etc/

4)ls -lt /etc

5)ls -lut /etc

20.编写/root/bin/wcfile.sh统计/etc目录中的目录的个数,文件的个数,并求出/etc/目录中的目录和文件个数的总和(5)

[root@localhost ~]# wcfile.sh

file number was 3099

directory number was 729

file and directory was 3828

[root@localhost ~]# cat /root/bin/wcfile.sh

#Author: jin.ren

#QQ: 1922006891

#Version: 3.0

#Date :2017-06-17-21-02-52

#wc etc file

FILE=`find /etc/ -not -type d | wc -l`

DIR=`find /etc/ -type d | wc -l`

AND=$[$FILE+$DIR]

echo "file number was $FILE"

echo "directory number was $DIR"

echo "file and directory was $AND"

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章