美文网首页
第一阶段测试

第一阶段测试

作者: 芷_念 | 来源:发表于2017-07-02 19:39 被阅读0次

    1:yum源的配置与使用

    1. 创建一个本地yum源
      base源指向[https://mirrors.aliyun.com/centos/7/os/x86_64/]
      epel源指向[https://mirrors.aliyun.com/epel/7Server/x86_64/]

    2. 安装开发包组

      移动/etc/yum.repos.d/* 至 ./back 文件夹然后创建文件bash.repo

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

      bash.repo内容如下

      [base]
      name=base
      baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
      gpgcheck=0 [epel]
      name=epel
      baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
      gpgcheck=0
      #清空缓存 yum clean all
      #获取新的repo数据yum repolist yum repolist
      #使用 yum groups list 查看包组信息#安装开发包组
      如果是中文环境: yum groups install 开发包组
      如果是英文环境: yum groups install Development Tools

    2:复制/etc/ssh/sshd_config 到/tmp/中并更名为sshd_config.bak。将/tmp/sshd_config.bak文件中所有以非#号开头与包含空白字符的行保存至/tmp/sshd_config中
    #复制文件
    cp /etc/ssh/sshd_config /tmp/sshd_config.bak
    #将文件中的行保存到/tmp/sshd_config
    cat /tmp/sshd_config.bak |grep -E'#|[[:space:]]*$'>/tmp/sshd_config

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

        #!/bin/bash
      
        echo "=======hostname====== "
        hostname
        echo -e "\n=======release====== "
        cat /etc/centos-release
        echo -e "\n=======kernel====== "
        uname -r
        echo -e "\n=======cpuinfo====== "
        cat /proc/cpuinfo|grep 'model name' 
        echo -e "\n=======free====== "
        free
        echo -e "\n=======disk====== "
        df
        echo "==========end========== "
    

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

    #定义别名,此配置只在当前登录有效 
    alias vimnet='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
    #定义变量 
    export HISTTIMEFORMAT="%Y%m%d-%H%M%S"
    #长期生效写入文件 只针对于root用户,写入/root/.bashrc
     全局生效写入文件,/etc/bashrc
    

    6:指出软链接与硬链接的异同之处:

    软链接是在目录数据块中创建一个地址指向(指向新的inode),inode寻址索引放入的是被链接文件的
    地址;
    硬链接是在目录数据块中直接引用被链接文件的inode软链接可以跨分区,硬链接不可以软链接删除
    可不影响目标文件(特殊参数除外),硬链接链接次数归零则删除硬链接不占用inode 软链接占用
    

    7:下载编译安装httpd 2.4最新版本,写出安装过程

    #下载源码 
    官方网站:http://www.apache.org/
    #解压缩包 (使用tar命令) 
    tar xvf /httpd.2.4.**.tar.bz2 
    #准备开发环境,
    没有安装使用命令yum 命令进行安装 yum groups install Development Tools
    #进入目录,并使用configure生成配置文件,具体参数可以查看INSTALL 或./configure --help ./configure --prefix="/app/apache"
    #编译,安装 make && make install
    

    8:过滤ifconfig命令结果中所有大于0且小于255的三位数

    大于0 小于255的数
    ifconfig |grep -E '\b(([1-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-4]))\b'
    大于0小于255的三位数
    ifconfig |grep -E '\b((1[0-9][0-9])|(2[0-4][0-9])|(25[0-4]))\b'
    

    9:将用户mage被误删除的的家目录恢复,复制/etc/shadow到mage家目录中。并设置只有用户wang可以读取/home/mage/shadow

    #复制模版文件
     cp -r /etc/skel /home/mage
    #更改权限 属主组 
    chown -R mage.mage /home/mage 
    chmod -R 700 /home/mage
    #复制文件 cp /etc/shadow /home/mage/shadow
    #更改权限两种方法,基本的属主属组或ACL 
    #基本的属主方法,将wang用户加入到mage组,设置mage家用户组有读权限,使wang可以访问mage
      家用户 
    groupmems -a wang -g mage 
    chmod g+r /home/mage
    chown wang /home/mage/shadow 
    chmod -R 400  /home/mage/shadow 
    #acl方法,确保挂载时开启了acl功能
     setfacl -m u:wang:rx /home/mage/
     chown root /home/mage/shadow 
    setfacl -m u:wang:r /home/mage/shadow
    

    10:统计/var/log/httpd/access.log日志访问频繁前十的地址,并从大到小排序

    #输出排序,
    cat /var/log/httpd/access.log |cut -d" " -f1|sort |uniq -c|sort -nr|head 1
    220 192.168.1.117 
    1134 192.168.1.31 
    583 192.168.1.113 
    204 172.16.100.76 
    112 172.16.233.133
    110 192.168.1.118 
    83 192.168.1.110 
    68 192.168.1.107 
    68 172.16.250.227
    42 192.168.6.1
    

    11:开启两个终端,将终端1 中输入命令的执行结果输出,并同时输出到终端2

      ###发送信息 
    ttt=`date` ;
    echo "$ttt";
    echo "$ttt">/dev/pts/2 date|tee /dev/pts/2
    

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

    #删除libc.so.6
    1. ldd `which ls`
    2. rm /lib64/libc.so.6 
    #恢复
    3. 直接关闭电源,然后重起
    4. 可以开机进入固件,或开机时 按1次esc 键,设置从光盘引导启动
    5. 进入光盘救援模式, 6 7进入的界面选项根据实际情况选择。
    6. 复制/lib64/libc.so.6 到 /mnt/sysimge/lib647. 关闭selinux ,设置
       /etc/sysconfig/selinux中为disabled8. 重起,
    

    13:误删除rpm包命令,如何恢复之,实验说明

    #恢复
    1.同样进入安全模式
     2.在/mnt目录下创建目录 cdrom
    3.挂载安装光盘到cdrom mount /dev/sr0 /mnt/dcrom
    4.安装 rpm 软件 ,rpm -ivh /mnt/cdrom/Packges/rpm.*****.rpm --force --root
      =/mnt/sysimge
    5.重起
    

    14:计算2+4+6+…+96+98+100之和。

    #bc 实现
     echo {2..100..2} |tr " " "+" |bc
    #循环实现
                       let sum=0 
                       for i in `seq 2 2 100` ;
                          do let sum+=i 
                        done 
                          echo "$sum"
    

    14:取/etc/sysconfig/network-scripts/ifcfg-ens33基名,用两种方法实现。

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

    15:对/etc/目录,分别执行命令,实现以下功能
    #将当前的工作目录设置成为 /etc
    cd /etc
    #显示目录下的文件(大小排序)
    ls -lS
    #显示目录下的隐藏文件 显示目录下所有的隐藏文件,及隐藏目录中的隐藏文件
    ll -a .[^.]*
    # 显示目录下的隐藏文件及文件夹
    ls -A |grep -E "^."
    #只显示目录下的隐藏文件
    find ./ -maxdepth 1 -mindepth 1 -name "." -type f
    #只显示目录
    ls -l |grep ^d ls ./
    / -d find ./ -maxdepth 1 -mindepth 1 -type d
    #按mtime 时间排序
    ls -l -t
    #按atime时间排序
    ls -l -u

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

    #!/bin/bash
    #author:cxj
    #sno:   35
    #desc:This is for check files
    [[ -e $1 ]] || { echo "文件不存在";exit 1 ;}
    R=$([ -r $1 ] && echo "可读"||echo "不可读" )
    W=$([ -w $1 ] && echo "可写"||echo "不可写" )
    X=$([ -x $1 ] && echo "可执行" || echo "不可执行")
    echo "当前用户对$1 $R $W且$X"                       
    

    17:编写/root/bin/create.sh可以生成新的脚本包括作者、联系方式、版本、时间和描述等,并且可以直接对其进行编辑,编辑完后自动加上执行权限。

     #!/bin/bash
     #  判断参数个数
    [[ "$#" -eq 1 ]]||{ echo "usage:cshell.sh shellname " ; exit; }
    touch "$1"
    echo "#!/bin/bash
     #author :cxj
    #sno    :M35
    #phone : 156XXXXXXXX
    #version:2.0
    #date   :`date +%F`
    #desc   :$2" > "$1"
    chmod +x "$1"
    vim "$1"
    

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

    #!/bin/env bash  
     #_____参数检测_________# 
    [[ "${1}" ]] || { echo "参数为空" ; exit 2 ; }
    [[ "${2}" ]] || { echo "参数为空" ; exit 3 ; }
    [[ "${1}" =~ ^[0-9]*$ ]] || { echo "参数非数字" ; exit 4 ; }
    [[ "${2}" =~ ^[0-9]*$ ]] || { echo "参数非数字" ; exit 4 ; }
     #_____数值计算________# 
    echo "=======加=======" 
    echo "${1}+${2}=$(($1+$2))" 
    echo "=======减=======" 
    echo "${1}-${2}=$(($1-$2))" 
    echo "=======乘=======" 
    echo "${1}*${2}=$(($1*$2))" 
    echo "=======除======="
    echo "${1}/${2}=$(($1/$2))"
    

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

    #!/bin/env bash
    dri_name=`find /etc -maxdepth 1 -mindepth 1 -type d |wc -l`
    file_name=`find /etc -maxdepth 1 -mindepth 1 -type f |wc -l`
    nodri_name=`find /etc -maxdepth 1 -mindepth 1 ! -type d |wc -l`
    #结果输出
    echo "文件夹数量为:${dri_name}"
    echo "普通文件的数量为:${file_name}"
    echo "文件的数量为:${nodri_name}"
    echo "相加结果数为:  $((${dri_name}+${nodri_name}))"
    

    20:编写/root/bin/baketc.sh 查找/etc/目录中超过1天未修改的文件,将其压缩备份至/bakup目录。若之前没有备份过则备份之,若存在的备份文件超过了2分钟则备份之,否则退出。备份的格式为YYYY-MM-DD-hh-mm-ss.xz

    #!/bin/bash
    #文件备份函数
    bakup_file()
       {
       file_name="/bakup/`date "+%F-%H-%M-%S"`" 
         find /etc -mtime +1 -type f |xargs tar -Jcf "${file_name}.tar.xz "
      }
    #文件夹测试
      [ -a /bakup ] || mkdir /bakup[ -d /bakup ] || { echo "/bakup 非目录请手动处理" ; exit 3 ; }
    
    #没有备份,则备份。
    ls /bakup/*.tar.xz &>/dev/unll || { echo "没有发生过任何备份"; bakup_file &>/dev/null ;exit 0 ; }
    #文件超过两分钟则备份
    test=`find /bakup -mindepth 1 -name "*.tar.xz" -mmin -2`
    [ "${test}" ] && echo "文件是最新的" || bakup_file &>/dev/null

    相关文章

      网友评论

          本文标题:第一阶段测试

          本文链接:https://www.haomeiwen.com/subject/ibakcxtx.html