一、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

  目前市面上三大主流Linux发行版

 1、slackware:

      suse:基于slaveware的二次发行版,目前在欧洲很盛行

      opensuse:再基于suse的三次发行版

 2、debian:它是三者之中唯一一个不是由商业组织开发和维护的,最接近原始版本的

      ubuntu:基于debian的二次发行版

      mint:再基于ubuntu的三次发行版

 3、redhat:从redhat7.0版本开始分为个人桌面版和企业版,而从redhat9.0之后个人 桌

           面版放慢了维护的进度,并最后捐给了fedora组织来维护和更新

     rhel(redhat Enterprise Linux):相比于fedora的更新速度慢很多,大约每18

           个月才发行一个新版本,并且它的应用程序和硬件是经过fedora版本稳定测

           试过可吸纳以及使用的

     CentOS:以完全兼容rhel的格式重新编译其源码而发布的免费版本

     fedora:用于测试市面上新程序和新硬件,大约每6个月发行一个新版本

 

  联系:(1)所有的发行版都使用Linux内核;

       (2)所有的Linux发行版都需要遵守GPL协定,即提供源码;

       (3)所有的发行版都有自己的版本号,版本格式基本一样;

                 主版本号.次版本号.发行号或修正号

 

  区别:(1)只有debian是社区组织在维护;

       (2)发行版的本质区别,在于集成不同版本的内核、库和程序

       (3)不同发行版采用了不同的包管理器

 

二、说明Linux系统上命令的使用格式,并配合相应示例来阐述

  1、ifconfig命令

        功能:用于查看网络接口的信息

        格式: ifconfig [-a][-s][-v] [interface]

                ifconfig [-v] interface[aftype] options | address ...

            参数:-a:显示所有接口网络配置的信息

                  -s:显示摘要信息

                  up:激活某个接口状态

                  down:关闭接口的活动状态

                  [-]arp:开启或关闭接口的支持arp协议的功能

                  address:为接口设置IPv4地址

                  add/del:添加或删除接口的IPv6地址的配置

                  brocast:为接口设置广播地址

                  netmask:配置接口的子网掩码

                  mtu:设置接口的最大传输单元

      示例:(1)启动或关闭接口

             # ifconfig ens33 up

             # ifconfig ens33 down

            (2)配置IP地址

             # ifconfig ens33 192.168.10.15network 255.255.255.0

            (3)查看接口的配置信息

             # ifconfig ens33

             # ifconfig -a

 

  

  2、echo命令

        功能:显示文本字符

        格式: echo [SHORT-OPTION]... [STRING]...

                echo LONG-OPTION

            参数:-n:输出结果不换行

                  -e:打开反斜杠转义;若字符串中出现以下字符,则作特别处理

                    \a:发出警告声;

                    \b:删除前一个字符;

                    \c:最后不加上换行符号;

                    \f:换页;

                    \n:换行;

                    \t:插入tab;            

                  -E:关闭反斜杠转义

          示例:输出字符

              # echo -n how are you    不换行输出

              # echo how are you       换行输出

              # echo “VAR_NAME”      弱引用,变量替换显示

              # echo ‘VAR_NAME’      强引用,变量不会替换

  

  3、tty命令

          功能:输出连接到标准输入的终端文件名

          格式:tty [OPTION]...

             参数:-s:什么也不打印,只返回退出状态码

                     状态码:0表示标准输入是一个终端

                             1表示标准输入不是一个终端

                             2表示给定的参数是不正确的参数

                             3表示发生了写错误

                   --version:查看版本信息

          示例:# tty 输出当前终端的文件描述符

                # echo "mytest" >/dev/tty1  在特定终端上显示该字符

 

  4、startx命令

          功能:用于启动x window

          格式:startx [OPTION]

          示例:# startx   在工作站上或X终端上启动X窗口

 

  5、export命令

          功能:设置或显示环境变量

          格式:export [-fnp] [变量名称]=[变量设置值]

             参数:-f:表示[变量名称]为函数名称

                   -n:删除指定的变量,以不被输出到指定的执行环境中

                   -p:列出所有shell赋予程序的环境变量

          示例:# export -p 输出shell中所有的环境变量

                # exportPATH="$PAATH:/opt/app"

                             添加/opt/app目录到环境变量PATH中

 

  6、pwd命令

          功能:输出当前用户的工作目录

          格式: pwd [OPTION]

         示例:# pwd   一般情况下不带任何参数

 

   7、history命令

          功能:输出操作指令历史列表

          用法:history [-c] [-d offset]

                History [-awr] [filename]

             参数:-c:清空历史指令列表

                   -a:手动追加当前会话缓冲区的命令历史添加到历史缓冲区中

                   -w:将当前历史命令缓冲区命令写入历史命令文件中

                   -r:将历史命令文件中的命令读入当前

          示例:# history -d 5  删除历史指令缓冲区中第5条指令

                # history -c    清空历史指令缓冲区列表

                # history 5     显示历史中最近的5条指令

                # history -a    追加当前操作指令到历史指令缓冲区中

 

  8、shutdown命令

          功能:关闭或重启系统

          用法:shutdown [OPTION]... TIME [MESSAGE]

             参数:-r:重启

                   -h:关机

                   -c:取消

                   Time:now    立刻

                         +m     表示从命令提交后m分钟执行

                         hh:mm  指明具体时间

          示例:# shutdown -r now   立刻重启

                # shutdown -h +5    5分钟后关机

                # shutdown -c       取消关机或重启

 

  9、poweroff命令

          功能:关闭系统并切断电源

          用法:poweroff [OPTION...]

             参数:-i:关闭系统之前关闭所有的网络接口

                   -f:强制关闭系统

          示例:# poweroff

                # poweroff -i

                # poweroff -f

 

  10、reboot命令

          功能:重启系统

          用法:reboot [OPTION...]

             参数:-i:关闭网络设置之后再重启系统

                  -n:保存数据后再重启系统

                  -f:强制重启,不调用shutdown指令的功能

          示例:# reboot

                # reboot -n

                # reboot -f

 

  11、hwclock命令

          功能:显示或设置当前硬件时钟

          用法:hwclock [function] [option...]

             参数:-r --show:显示当前硬件时钟和日期

                  -s --hctosys:将系统时钟调整为与硬件时钟一致

                  -w --systohc:将硬件时钟调整为与系统时钟一致

          示例:# hwclock    查看当前硬件时间

                # hwclock -s

                # hwclock -w

 

  12、date命令

          功能:显示或设置当前系统时间

          用法:date [OPTION]... [+FORMAT]

               date [-u|--utc|--universal][MMDDhhmm[[CC]YY][.ss]]

             参数:-s --set=STRING:设置STRING指定的时间

                   -u,--utc,--universal:输出或设置UTC时间

                    FORMAT:表示输出时间的格式

                     常用格式:%D 输出格式 月/日/年

                               %F 输出格式 年-月-日

                               %T 显示当前时间格式 时:分:秒

          示例:# date +%D

                # date +%F

                # date 121022202016.00  以月日时分年.秒的格式来设置系统时间

 

 

 

 

 

三、如何在Linux系统上获取帮助信息,请详细列出,并描述man文档的章节

 (1)对于内建命令和外部命令获取帮助信息的方式各不相同

    内建命令:# help COMMAND

    外部命令:① # COMMAND --help 或 # COMMAND -h

               ② 通常每个命令都有一个简要的使用手册(manual)

                  # man COMMAND

               ③ 获取命令的作用、工作方式、特征码等信息的信息页

                  # info COMMAND

               ④ 获取程序自身的帮助文档

                  一些源码安装程序会自带README、INSTALL、Changelog等帮助信息

               ⑤ 获取程序官方文档

                  打开官方站点获取Documentation的文档

               ⑥ 获取发行版的官方文档

                  可获得较权威的系统使用手册,部分涉及命令使用帮助

               ⑦ 活用网络搜索工具google

 (2)man手册页的存放目录在/usr/share/man下,按不同数字划分手册类别,如下:

    man1:所有用户都有权限使用的普通命令;

    man2:开发程序员常用的系统调用命令;

    man3:标准库调用;

    man4:设备文件及特殊文件;

    man5:说明应用程序的配置文件的格式;

    man6:与游戏相关;

    man7:不好归类的杂项;

    man8:系统管理类的命令; 

 

四、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例

   复制、移动、删除命令统称为文件管理类命令

 (1)复制命令:cp

            格式:cp[OPTION]... [-T] SOURCE DEST

                 cp [OPTION]... SOURCE... DIRECTORY

                 cp [OPTION]... -t DIRECTORY SOURCE...

           参数:-i:交互式,提醒用户是否覆盖复制;

                   -r,-R:目录递归复制;

                   -a:归档复制,即保留原文件的属性不变,相当于-dR-preserv=all

                   -d:保留链接文件;

                   -v:显示复制过程;

                   -f:强制覆盖,不予提示;

    使用方法及示例:

     ① 复制单个文件:如果目标文件不存在,则新建与原文件同名的文件,并将原

  文件的内容填充到目标文件中;如果目标文件存在,则将原文件中的内容覆盖到目标

  文件中,使用-i选项可开启交互式提醒

          例: # cp yum.log yum2.log   在当前目录下复制原文件生成新的文件

               # cp /tmp/yum.log /var  在/var目录下生成一个同名同内容的文件

               # cp /tmp/yum.log /var/111 将原文件的内容覆盖到111文件中

 

     ② 复制多个文件:只有拷贝目标是目录的情况下,命令才能正常执行,其他情形都

   会报错;此处它会把多个文件在目标目录下都新建一个同名的文件,并把各自的文件

   的数据流填充到同名的文件中

          例:  # cp-r /tmp/mageedu/ /var  复制目录必须用递归

 

 

 (2)移动命令:mv

            格式:mv[OPTION]... [-T] SOURCE DEST

                  mv [OPTION]... SOURCE... DIRECTORY

                  mv [OPTION]... -t DIRCTORYSOURCE...

           参数:-i:交互式,提醒用户是否覆盖已有文件;

                   -f:强制覆盖,不予提示;

   使用方法及示例:

     ① 重命名文件:

        例:#mv /tmp/yum.log yum2.log  在当前目录下修改文件名yum.log为yum2.log

 

     ② 移动文件

        例:#mv /tmp/mageedu/* /var/  移动/tmp/mageedu/中的所有文件到/var下

 

 

 (3)删除命令:rm

            格式:rm[OPTION]... FILE...

              参数:-i:交互式,提醒用户是否需要删除文件;

                    -f:强制覆盖,不予提示;

                    -r:递归;

    使用方法及示例:

            # rm -i /tmp/yum.log    系统给予提示是否确认要删除文件

            # rm -rf /var/mageedu/  强制删除/var下的mageedu目录,不予提示

 

 

五、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及示

  例演示

 1)命令的执行结果只分两种:成功或失败;

      命令的执行状态结果被保存在变量”$?”中,不同的执行状态用不同的数字表示,通过查看该变量值可获知最近一条命令的执行状态结果

         成功:返回状态值为0

         失败:根据错误信息的不同返回值在1-255之间

      示例:# ls /var   

            # echo “$?” 此处返回值为0,表示命令成功执行

            # lss /var     

            # echo “$?” 此处返回值为2,表示命令执行失败

      

  (2)命令行展开分为~展开和{}展开两种

     ① ~展开:展开指定用户的主目录

         例:# cd ~            进入当前用户的主目录

             # cd ~USERNAME   进入指定用户的主目录

     ② {}展开:可承载一个以逗号分隔的列表,并将其展开为多个路径;

        例:#/tmp/{a,b} = /tmp/a,/tmp/b

             # /tmp/{tom,jerry}/hi =/tmp/tom/hi,/tmp/jerry/hi

 

 

六、用命令行完成创建目录练习

 (1) # mkdir /tmp/{a,b}_{c,d}

 

 (2) # mkdir -p 

/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run}

 

七、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息

(1)文件的元数据信息用于描述文件的附加信息,包括文件类型、文件权限、文件的修改时间和读取时间等

    例:# ls -l /tmp/yum.log

        -rw-r--r--  1 root root 663 Dec 1315:31 yum.log

 各部分含义如下:

   从左边开始第一个 -,表示文件类型,此处说明yum.log这个文件为普通文件;如果是目录,则应为d;此外还有其他一些不同的文件类型

   随后的九个字符,为 rw-------,它用于表示文件的权限;这九个字符可分成三组:rw-,---,---,分别对应拥有者(owner),拥有组(owner group)和所有其他人(other);第一组表示,如果当前登录用户是该文件的拥有者,则该用户对文件就有读写权限,但并不拥有执行权限(-,如果拥有执行,则为x);第二组表示,如果当前登录用户的属组是该文件拥有组的一员,那么就有对这个文件读的权限;第三组表示,如果当前用户既不是拥有者,也不是拥有组中的一员,那么也只能对这个文件有读的权限

   1表示该文件被硬链接的次数

   左边第一个root表示root用户是该文件的拥有者(owner),文件的拥有者有权更改文件权限(如rwxrw-rw-),而第二个root表示文件的拥有组是root组;注意,Linux的超级用户root,能拥有文件的所有权限

   663表示文件的大小,单位为字节

   Dec 13 15:31 表示文件的最后一次修改的时间

 

(2)文件的时间戳信息包含三种时间:

     Access time:简称atime,访问时间:即最近读取一次文件的时间;

如:more、cat命令等

 Modify time:简称mtime,修改时间:即文件最后一次文件被修改的时间;如:vim、

nano命令等

●   Change time:简称ctime,状态改变时间:文件的属性信息改变的时间

     示例: # touch -a yum.log   修改文件atime,文件的属性改变故ctime也会改变

             # touch -m yum.log   同样地修改文件mtime,ctime也会改变

             # cat yum.log    读取文件只会改变文件的atime,类似的命令如more等

             # vim yum.log    修改文件内容则全部更新文件的时间戳信息,如nano等 

 

八、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(包含其他字符)的文件或目录

    # ls/var/l*[0-9]*[[:lower:]]

 

 

九、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录

    # ls/etc/[0-9]*[^0-9]

 

 

 

十、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录

    # ls/etc/[^a-z][a-z]*

 

 

十一、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件

    #touch /tmp/tfile-"$(date +%F-%H-%M-%S)"

 

 

十二、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中

    # cp-r /etc/*.d /tmp/mytest2/

 

 

十三、复制/etc目录下所有以lmn开头,以.com结尾的文件至/tmp/mytest3目录中

     # cp/etc/{l,m,n}*.conf /tmp/mytest3/