zoukankan      html  css  js  c++  java
  • 第二次测试

    第一部分:简答题

    1、操作系统的五大功能

     ①硬件驱动 ②进程管理 ③内存管理 ④网络管理 ⑤文件管理

    2、Linux的哲学思想

    ①一切皆文件 ②小型,单一用途的程序(也可以说短小精悍)③连接程序,共同完成复杂的任务 ④避免令人困惑的用户界面 ⑤配置数据存储在文本中

    3、RAID级别以及简述

    RAID0:也称为带区集。它将两个以上的磁盘并联起来,称为一个大容量的磁盘。在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并处理,所以在所有的级别中,RAID0的速度是最快的。但是RAID0既没有冗余能力,也不具备容错能力,如果一个物理磁盘损坏,所有数据都会丢失。

    RAID1:两组以上的N个磁盘相互镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID0相同。另外写入速度有微小的降低。只要一个磁盘正常即可维持运作,可靠性最高。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写入一样的数据。当主物理硬盘损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做备份,所以RAID1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID1,仅算一个磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。

    RAID5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID5至少需要三块盘,它不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储在不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。DAID5可以理解为RAID0和RAID1的折中方案。RAID5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间的利用率要比镜像高。RAID5具有和RAID0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬块的速度略慢,同时由于多个数据对应一个奇偶校验信息,RAID5的磁盘空间利用率比RAID1高,便宜。

    RAID1 0:RAID1 0是先镜像再分区数据,再将所有硬盘分为两组,视为是RAID0的最低组合,然后将这两组各自视为RAID1运作。

    4、一台计算机有哪些部件构成

    5、介绍linux安全模型

     3A  认证  授权  审计

    6、OSI网络模型以及介绍

    物理层: 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人

    数据链路层: 决定访问网络介质的方式,在此层将数据分帧,并处理流控制。本层 指定拓扑结构并提供硬件寻 址。相当于邮局中的装拆箱工人

    网络层: 使用权数据路由经过大型网络。相当于邮局中的排序工人

    传输层: 提供终端到终端的可靠连接。相当于公司中跑邮局的送信职员

    会话层: 允许用户使用简单易记的名称建立连接。相当于公司中收寄信、写信封与拆信封的秘书

    表示层: 协商数据交换格式。相当公司中简报老板、替老板写信的助理

    应用层: 用户的应用程序和网络之间的接口老板

    7、简述三次连接,四次断开

     三次连接(握手):

     第一次握手:建立连接时,客户端A发送SYN(J)包到服务器B,并进入SYN_SEND状态,等待服务器确认

    第二次握手:服务器B收到SYN(J)包,必须确认客户ASYN(ACK J+1)包,同时自己也发送一个SYN(K)包,即SYN+ACK包,此时服务器B进入SYN_RECV状态

    第三次握手:客户端A收到服务器BSYN+ACK包后,向服务器B发送确认包ACK(ACK K+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手,之后就可以进行数据传送了

    四次断开(挥手):

     第一次挥手:客户端向服务器发送一个FIN包,序列号为M,此时客户端进入FINWAIT_1状态

     第二次挥手:服务器收到客户端发送的FIN包,向客户端回一个ACK确认包,序列号为M+1,此时客户端进入FINWAIT_2状态

     第三次挥手:服务器向客户端发送FIN(N)包,请求关闭连接,同时服务器进入CLOSE_WAIT状态

     第四次挥手:客户端收到服务器发送的FIN包,向服务器发送ACK(N+1)包,然后客户端进入TIME_WAIT状态;服务器收到客户端的ACK包以后,就关闭连接;此时。客户端等待2MSL(两个最大传输值为了保证在链路上传输的数据包能够完全到达客户端)后依然没有收到回复,则证明服务器已正常关闭。此时,客户端也可以关闭连接了

    8、简述linux启动流程

    ①POST加电自检,加载应用程序BIOS的硬件信息,获取第一个启动设备

    ②读取第一个启动设备的MBR的boot loader,由boot loader引导加载程序(grub)的启动信息

    ③加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

    ④核心执行init程序,并获取默认的运行信息

    ⑤init程序执行/etc/rc.d/rc.sysinit文件

    ⑥启动核心的外挂设备

    ⑦init执行运行的各个批处理文件(scripts)

    ⑧init执行/etc/rc.d/rc.local

    ⑨执行/bin/login程序,等待用户登录

    ⑩登录之后开始以shell控制主机

     第二部分:练习题

    1、定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式backupYYYY-mm-dd,备份过程可见

     alias baketc="cp -arv /etc/ /testdir/backup`date +%F`"

    知识补充:

    cp常用的选项:

      -a :归档,相当于 -dR --preserv=all

      -r ,-R:递归复制目录及内部所有内容

      -v :显示操作过程信息

    2、计算1+2+3+4+..+99+100的总和

    四种方法如下:

      ①echo {1..100}|tr -s “ ” +|bc

      ②awk ‘BEGIN{{i=1;do {print sum+=i;i++}while(i<=100)}}’|tail -1

      ③awk ‘BEGIN{for (i=1;i<=100;i++) sum+=i;{printf(“%d ”,sum)}}’

          Print中不能使用%s,%d或者%c,所以这里用printf

          Print自动换行,printf没有自动换行

      ④#!/bin/bash

          i=1

          sum=0

          while [ $i -le 100 ] ;do

             let sum+=i

             let i++

          done

        echo $sum

    3、设计一套密码安全管理体系

    ①使用数字、大写字母、小写字母及特殊字符中至少三种

    ②足够长

    ③使用随机密码

    ④定期更换,不要使用最近曾经使用过的密码

    4、Linux系统软件安装和卸载的常见方法以及优缺点

    安装:①rpm:rpm方便进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。rpm不能根据依赖关系自动安装依赖包。

        ②yum:基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次性安装所有依赖包。

    卸载:①rpm -e XXX.rpm (无法卸载依赖包,如若想一并卸载依赖包,则加--nodeps)

        ②yum remove xxx.rpm   这种方法非常不建议使用,卸载过程会将待卸载的软件包所依赖的软件包一并卸载掉,很容易造成系统缺少某些包而崩溃等问题

    5、如何修改linuxIP地址、网关和主机名

    即时生效:ifconfig eth0 192.168.37.100 netmask 255.255.255.0

    启动生效:修改对应网卡的IP地址的配置文件

           vim /etc/sysconfig/network-scripts/ifcfg-eth0

           DEVICE=eth0  #描述网卡对应的设备别名

           BOOTPROTO=static   #静态指定

           IPADDR=192.168.37.100  #指定静态IP地址

           PREFIX=24   #指定子网掩码

           ONBOOT=yes #启动时激活此设备

    修改主机名:vim /etc/sysconfig/network(centos6)

            vim /etc/hostname(centos7)

    6、设计一个20台主机的局域网(列出设备及拓扑图)

    7、每周2,4,7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd

          #先创建/logs目录:mkdir /logs

          #corntab -e

          0 0 * * 2,4,7 /bin/cp /var/log/messages /logs/messages-$(date +\%Y\%m\%d) &> /dev/null

    8、写一个阶乘的脚本n!=1x2x3x4...xn

        #!/bin/bash
        num=$1
        expr $num + 1 &>/dev/null
        read -p "please input a int:" num
        [ $num -le 0 ] && echo "please input a number bigger than 0" && exit 3
        s=1
        for i in `seq 1 $num`
        do
        s=$(($s*$i))
        done
        echo $s

    9、生成10个随机数保存于数组中,并找出其最大值和最小值

        #!/bin/bash

       declare -a rand

       declare -i min
       declare -i max
       for i in {0..9}
       do
       rand[$i]=$RANDOM
       [ $i -eq 0 ] && { min=${rand[$i]};max=${rand[$i]}; }
       [ $min -gt ${rand[$i]} ] && min=${rand[$i]}
       [ $max -lt ${rand[$i]} ] && max=${rand[$i]}
       done
       echo "all number are ${rand[*]}"
       echo "max=$max"
       echo "min=$min"

     第三部分:选择题

    1、下面哪些命令可以将losf-4.82-5.el6.x86_64.rpm安装到当前系统(ABC)

     A.rpm -ivh losf-4.82-5.el6.x86_64.rpm                 B.rpm -Uvh losf-4.82-5.el6.x86_64.rpm

     C.yum localinstall losf-4.82-5.el6.x86_64.rpm     D.rpm -e losf-4.82-5.el6.x86_64.rpm

     知识补充:

     -e<套件档>或--erase<套件档>:删除指定的套件;  

     -h或--hash:套件安装时列出标记;

     -i:显示套件的相关信息; -i<套件档>或--install<套件档>:安装指定的套件档;

     -U<套件档>或--upgrade<套件档>:升级指定的套件档;

     -v:显示指令执行过程;

     yum localinstall package 从本机目录安装软件包

    2、yum一个仓库的gpgkey不存在与当前系统上,如何能够成功安装此仓库中的软件包(AD)

     A.修改仓库对应的repo文件,添加gpgkey参数,并制定对应的key所在的url

     B.修改仓库对应的repo文件,删除gpgkey参数

     C.修改仓库对应的repo文件,删除gpgcheck=1

     D.修改仓库对应的repo文件,删除gpgcheck=0

    3、计划明天凌晨5点,将线上一台的服务器的httpd停止,并且启动nginx,要完成这一任务,最合适的工具是(C)

     A.crontab                B.batch                C.at                    D.when

     知识补充;

     at命令一次性任务计划

     batch命令创建的也是一次性任务计划和at的用法几乎一致,但batch不需要指定时间会让系统自行选择空闲的时间去执行指定的任务

     crontab命令周期性任务计划

    4、如何快速查看当前nginx进程的所有pid(CD)

    A.ps|grep nginx         B.pidof -s nginx           C.pidof nginx         D.ps aux|grep nginx

    知识补充:

     Ps:

       -a:显示一个终端的所有进程,除了回话引线

       -u:选择有效的用户id或者是用户名

       -x:显示没有控制终端的进程,同时显示各个命令的具体命令

     Pidof

       pidof命令用于查找指定名称的进程的进程号id

       -s:仅返回一个进程号

    5、以下哪些命令可以查看当前系统的TCP连接(CD)

    A.Top           B.htop         C.ss            D.netstat

    知识补充:

    Top命令经常用来监控linux的系统状态,比如cpu、内存的使用

    Htoplinux系统下一个基本文本模式的、交互式的进程查看器,主要用于控制台或shell,可以替代top,或者说是top的高级版

    Ss命令用于显示socket状态,是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具

    netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态

    6、下面哪一个字符集表示非空格字符(ABD)

    A.[:graph:]         B.[:digit:]         C.[:space:]         D.[:alpha:]

    知识补充:

    [:graph:] :匹配打印字符,相当于'[:alnum:]' +'[:punct:]'.

    [:digit:] :任何数字

    [:space:] :空白字符

    [:alpha:] :任何字母

     7、test表达式中,以下哪一个运算符可以判断文件不是空(C)

    A.-z            B.-n                    C.-s              D.-S

     知识补充:

     test –n 字符串 #字符串的长度非零

     test –z 字符串 #字符串的长度是否为零

     test –s File   #文件是否是非空白文件

     test -S file   #如果文件为一个套接字特殊文件,则为真;
    8、关于shell CLI中的提示符论述正确的是(D)

     A.PS1控制默认命令行提示的格式      B.PS2控制第二层命令行提示符的格式

     C.PS3控制第三层命令行提示符的格式   D.以上说法都对

     知识补充:

     PS1--默认的交互提示符,通过改变PS1,就可以在提示符显示一些对我们有用的信息,如用户名、工作目录、系统时间等

     PS2--多行交互提示符

     PS3 --shell脚本中使用select时的提示符

     9、在添加新用户时,哪个参数为新用户指定密码(B)

     A.-d             B.-p             C.-r                 D.-P

     知识补充:

     -d:指定用户登录时的主目录,替换系统默认值/home/<用户名>

     -p:指定密码

     -r:建立系统账号

     第四部分:开放题

     1、简述你的优缺点

     小提示:最好条理化总结,简洁明了

     2、简述工作中最难忘的一次工作经历

     小提示:无关紧要的话不要说太多,略显啰嗦

    谢谢浏览,多多向小编提出疑问哦~~

  • 相关阅读:
    047.Python前端html
    Python利用PyExecJS库执行JS函数-实战破解字段加密
    Frida用法之函数操作
    Frida的安装步骤基于Android系统组合Python语言
    利用Python多线程来测试并发漏洞
    微信公众号:Mysticbinary
    Windows系统下解决PhPStudy MySQL启动失败
    crontab 定时任务没有响应 检测步骤
    解决Android killer APK 编译失败,无法继续下一步签名
    Python操作MySQL的一些坑
  • 原文地址:https://www.cnblogs.com/Qian-free/p/7613925.html
Copyright © 2011-2022 走看看