text.1

1.在CentOS中,检查已经安装ext4文件系统并已经挂载的分区/dev/sad5是否正常,若是故障,可自动修复的命令及参数是什么?

  fsck -a /dev/sad5

2.请描述linux的哲学思想。

  1.一切皆文件

2.由众多的功能单一的小程序组成,却可以实现复杂任务:

  3.使用纯文本文件保存程序的配置信息;

            提供用户身份验证

  4.尽量不与用户交互

3.如何删除当前目录下超过30天未被访问的文件。

  find  -atime +29 | xargs rm -rf

4.写出OSI参考模型各层名称及功能?

  1)应用层:为应用程序进程(电子邮件、文件传输)提供网络服务

  2)表示层:数据表示:

            确保接受系统可以独处该数据、格式化数据、构建数据、协商用于应用层的数据传输语法、提供加密

            把人能看懂的信息转化为计算机能看懂的信息

  3)会话层:

           主机间通信:点到点

           建立、管理和终止在应用程序之间的会话

  4)传输层

           1.确保数据传输的可靠性

           2.建立维护和终止虚拟电路

           3.通过错误检测和恢复

           4.信息流控制来保障可靠性


5.sed '/^[[:space:]]\*$/d' file


6.如何让history命令记录并显示命令执行的具体时间?

   1.临时的显示

      [root@localhost ~]# export HISTTIMEFORMAT="%F %T"

      [root@localhost ~]# history

      1  2017-06-08 19:03:43mount -o remount /mnt/b1

      2  2017-06-08 19:03:43quotacheck -cumg /mnt/b1

      3  2017-06-08 19:03:43df -h

      4  2017-06-08 19:03:43mount

      5  2017-06-08 19:03:43ls /mnt/b1

 2.永久的显示  

     编辑/etc/bashrc文件

     添加HISTTIMEFORMAT="%F %T"

     export HISTTIMEFORMAT  

     保存并退出,exit退出当前的shell,再次登陆时就可以了

7.简述raid0,raid1,raid5三种工作模式的工作原理及特点。

   磁盘阵列的类别:

        外接式磁盘阵列:

            最长被使用在大型的服务器上,具有热交换的特性,不过这类产品的价格都很贵。

        内接式磁盘阵列:

            价格便宜,需要较高的安装技术。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能×××能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作。

        利用软件来仿真:

            是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合×××量的服务器。

   raid0: 

      条带卷

      优点:整倍的提高硬件的容量

      缺点:没有冗余容错能力,如果一个磁盘损坏,则所有的数据都无法使用

      最少使用两块磁盘

    raid1:

      镜像卷

      优点:具有很好的冗余容错能力

      缺点:成本成倍的增加,磁盘的利用率仅为50%,

      至少需要两块磁盘

    raid5:

      分布式奇偶校验得 独立磁盘结构

      读、写性能提升

   需要计算校验信息

   可用空间:(N-1)*min(S1,S2,...)

   有容错能力:允许最多1块磁盘损坏

   最少磁盘数:3, 3+

8.列举几个linux系统中场常用的压缩和解压缩的命令。

   gzip:

  gzip, gunzip, zcat - compress or expand files

 -d:解压缩

 -#:以指定的压缩比进行压缩,1-9,9为最高级;默认6

 -c:将压缩结果输出到标准输出,不会对原文件进行压缩;

gzip -c /PATH/TO/FILE > /PATH/TO/COMPRESS_FILE.gz


   bzip2:

 bzip2, bunzip2 - a block-sorting file compressor, v1.0.4

    bzcat - decompresses files to stdout

  -d:解压缩

  -#:指定压缩比进行压缩,1-9,默认为6

  -k:保留原文件不删除,创建新的压缩文件;


   xz:

 xz, unxz, xzcat - Compress or decompress .xz files

-d:解压缩

  -#:指定压缩比进行压缩,1-9,默认为6

  -k:保留原文件不删除,创建新的压缩文件;

9./etc/fstab文件中有一行 

/dev/volgroup/logvol  / ext3  fefaults  1  1各字段的含义。

   /dev/volgroup/logvol  挂载设备

   /      挂载点

   ext3   文件系统类型


    fefaults    指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗隔开来

       ro       以只读模式加载该文件系统

       sync      不对该设备的写操作进行缓冲处理

       user      允许普通用户加载该文件系统

       quota      强制在该文件系统上进行磁盘定额限制


   1  该选项被”dump”命令使用来检查一个文件系统应该以多快频率进行转储,若不需要就是0;


    1  该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,/   文件系统”对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动

      时扫描则设置该字段为0

 10.vi编辑器是一个基于模式的全屏编辑器,请描述其具体有哪些工作模式?

    末行模式、插入模式、编辑模式,可视化模式、替换模式


 11.简述软连接与硬链接有什么区别?

  硬链接:

数据块指针指向同一个数据块的文件;

不能跨文件系统创建硬链接

目录文件不能创建硬链接

每次创建硬连接都会增加inode的引用计数


符号链接(软链接)

用于存储被链接文件的路径的文件

可以跨文件系统创建

也可以对目录创建

每次都必须进行两组路径的查找

 12.请解释机械式磁盘的以下术语:磁道,扇区,柱面。

    磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。

    柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面。

    扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区

 13,CentOS系统提供的用户接口有哪些?常用的是什么?

    CLI:bash

        ksh

        sh

    GUI:GNOME

        KDE

        XFACE

14.

在RHEL系或CentOS系统的linux大型版本中,默认的用户账户和组账户认证库和解析库分别是那些文件?并描述

用户账户认证库的每个字段的含义。

    用户账户的认证库:/etc/shadow

    用户账户的解析库:/etc/passwd

    组账户的认证库:/etc/gshadow

    组账户的解析库:/etc/group

 

  用户账户的认证库:/etc/shadow:

      login name : encrypted password : date of last password change : minimum password age : maximum password age : password warning period : password inactivity period : account expiration date : reserved field


      login name:用户的登录名;

      encrypted password:加密了的密码

       格式:$算法$salt$真正意义的加密密码

            如果该位置为!,则表明用户的密码被禁用;如果 该位置为*,则表明该用户为系统用户,不能登录;如果该字段为空,则表明用户可以无需输入密码即可登录系统;不推荐使用;

      date of last password change:

            相对时间概念,相对于1970年1月1日到最后一次修改密码的那天的天数;

      minimum password age:

            在多长时间之内无法修改密码,默认值为0,意即:随时可以修改密码;如果是非0的其他数字,意思是在这么长的天数里不能改密码;

      maximum password age:

            在多长时间之后密码过期,默认为99999,意思是永久有效;

      password warning period:

           密码过期之前的友善提醒天数,默认为7天;

      password inactivity period:

           密码过期之后的宽限期,默认为-1,意思是永久宽限期;

      account expiration date:

          一个用户账户密码过期的日期,这是一个绝对的过期期限,XXXX/XX/XX;

      reserved field:

          保留字段,以备以后使用;

15.请写出基本正则表达式的元字符及其含义;

    *: 0个货多个在*字符之前出现的那个普通字符  

        例如:例子:hel*o    可以表示helo、hello、helllo等等

    .:匹配任意字符(只匹配单个字符)

        例如:.7 可以表示已任何单个字符开始以结尾的字符串

    ^: 行首锚定或后面字符的非

        例如:^you 匹配以you开头的行

    $:行尾锚定

        例如:you$    匹配以you结尾的行

    []:匹配字符集和

        例如:[0-9]匹配0-9之间的莫个字符

    \:转义字符,屏蔽一个元字符的特殊含义

    \<\>:精确匹配符号

        例如:\<you\> 精确匹配you这个单词

    \{n\}:匹配前面字符穿线N次

        例如:yo\{3\}u  重复字符o出现3次

    \{n,\}:匹配前面的字符至少出现n次

        例如:yo\{3,\}u  重复字符o至少出现3次、

    \{n,m\}:匹配前面的字符出现n-m次

        例如:yo\{3,5\}u  重复字符o至少出现3-5次


16.请说明在变量的赋值运算中,let VAR2=VAR1++ 和 let 

  VAR2=++VAR1两个赋值语句的区别?

  let VAR2=VAR1++ : 先赋值再运算

  let VAR2=++VAR1 : 先运算再赋值

17.在bash中,常用的声明数组的方式有哪些?

  1.declare命令

    declare -i NAME:将NAME声明为整型变量;

    declare -x NAME:将NAME声明为环境变量;


    declare -a NAME:将NAME声明为索引数组(如果支持);

    declare -A NAME:将NAME声明为关联数组(如果支持);


    declare -a NAME=("value1" "value2" "value3" ...)

    declare -a NAME=([0]="value1" [1]="value2" [5]="value3" ...)


  2.直接声明数组:

    直接为数组赋值:

      ARRAY_NAME=("value1" "value2" "value3" ...) 声明稠密数组;

      ARRAY_NAME=([0]="value1" [1]="value2" [5]="value3" ...) 声明稀疏数组;


   定义数组的元素而创建数组:

      ARRAY_NAME[0]=value1

      ARRAY_NAME[1]=value2

 例:

   1.数组取值:

     adobe=('Flash' 'Flex' 'Photoshop')

     echo ${adobe[0]}

     # 打印

     # Flash

   2.数组长度:

    使用“@”这个特殊的下标,可以将数组扩展成列表,然后就可以使用bash中的获取变量长度的操作符“#”来获取数组中元素的个数了:

    adobe=('Flash' 'Flex' 'Photoshop')

    echo ${#adobe[@]}

    # 打印

    # 3

   3.获取数组的一部分

     adobe=('Flash' 'Flex' 'Photoshop' 'Dreamweaver' 'Premiere')

     echo ${adobe[@]:1:3}

     # 打印

     # Flex Photoshop Dreamweaver

     echo ${adobe[@]:3}

     # 打印

     # Dreamweaver Premiere

   4.链接两个数组

     adobe=('Flash' 'Flex' 'Photoshop' 'Dreamweaver' 'Premiere')

    adobe2=('Fireworks' 'Illustrator')

    adobe3=(${adobe[@]} ${adobe2[@]})

    echo ${#adobe3[@]}

    # 打印

    # 7

18.bash的常用特性

   1.引用  2.命令的别名  3.快捷键  4.命令补全

   5.命令行的展开

   6.命令的执行状态结果】

   7.通配符

   8.命令历史

   9.变量

   10.IO重定向

   11.管道

   12.bash的配置文件

   13.转义功能

19.请解释硬件设施的设备号的含义?

   major:主设备号,区分设备的类型,用于标明设备所需的驱动程序;

   minor:次设备号,区分同种类型下的不同设备,是特定设备的访问入口;

20.bash有买那些配置文件?简述其作用。

  配置文件的作用:使得我们赖以生存的配置信息可以长期有效,只要不修改配置文件中的内容, 每一次打开shell都会使曾经的配置生效;

  profile类:

    全局:对所有用户都生效的配置文件;

      /etc/profile

      /etc/profile.d/*.sh


  注意:在RHEL或CentOS系列的操作系统中,通常情况下,如果一个配置文件内容很多,格式复杂,我们会将其切割成多个片段,将切割出来的片段统一的存放在"程序名称.d"目录中;在这样目录中所保存的片段文件,大多以统一的文件后缀名来命名;


    用户个人:仅仅只是针对某个用户有效的配置文件;

      ~/.bash_profile


    profile类配置的文件的作用:

      1.用于定义用户的环境变量;

      2.用于运行脚本或执行命令;


  bashrc类:

    全局:

      /etc/bashrc

    用户个人:

      ~/.bashrc


    bashrc类配置的文件的作用:

      1.用于定义本地变量;

      2.用于定义命令的别名;

      3.定义umask;


  注意:只有超级用户root可以修改全局类的配置文件;普通用户只能修改其家目录中的个人配置文件;


交互式登录的shell进程,会按照顺序加载下列配置文件:

  /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc


非交互式登录的shell进程,会按照顺序加载下列配置文件:

  ~/.bashrc --> /etc/bashrc  --> /etc/profile.d/*.sh


注意:所有在命令行中执行的命令的操作,只要没涉及到文件的修改的,一般都只是针对当前的shell生命周期有效;只要shell进程结束,所有的设置均失效;