一、描述计算机的组成及其功能

    1、现代计算机遵循冯诺依曼结构,由运算器、控制器、存储器、输入设备和输出设备组成。

    2、其中运算器负责数据的算术运算和逻辑运算,即数据的加工处理;

        控制器负责对控制信息进行分析,控制并协调输入、输出操作或内存、外存访问;

        存储器用来存放计算程序及参与运算的各种数据,实现类似人脑记忆功能的部件,分为内存和外存;

        输入设备是用于向计算机传递输入数据、指令等的交互部件,如键盘,鼠标等;

        输出设备用于将计算机的运算处理结果等信息展现的部件,如显示器等。

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

    1、linux发行版按系列分主要有redhat、suse、debian三大流行系列;

        其中redhat红帽子系列以其稳定性在服务器领域应用广泛,其中RHEL(红帽企业版Linux)由红帽官方维护,每18个月发 行一个新版本;另有与RHEL完全兼容的centos(社区企业操作系统);另有fedora可以认为是RHEL的测试版本,每6个月发行一个新版本,在 内核及应用上均比较新的,经充分测试后纳入RHEL。

        SUSE Linux原是以Slackware Linux(基于Softlanding Linux System(SLS)的一个发行版)为基础的产品,是现有 GNU/Linux 发行版中最老的一个。基于开放发展并融合更多的社区力量而发展出了openSUSE。

        debian系列,包括Debian和Ubuntu等。debian是社区类Linux操作系统的典范,是迄今为止最遵循GNU规 范的Linux系统,分为三个版本分支:stable, testing 和 unstable。其中Ubuntu是基于Debian的unstable版本加强而来。

三、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述

    Linux的哲学思想主要有以下几点:

    1、一切皆文件:几乎所有的资源,在linux内部都被看作一个某种格式的文件,通过对文件的管理实现对相应资源的管理。如我们常用的/dev/cdrom就是一个光驱硬件作为文件被管理;

    2、由众多小程序组成,每个程序尽可能实现单一的功能,组合起来完成复杂任务:这一点可以使得程序尽可能的简洁和高度复用,通过linux包管理工具rpm/apt-get等安装过程序就能比较明显得感觉到,某一个功能的实现几乎都是一个单独的包文件;

    3、尽量避免跟用户交互:通过脚本编程完成相关操作,这一特点使其在自动化运维方面具有明显优势;

    4、使用纯文本文件保存配置信息:所有linux配置文件均以文本文件保存,使用简单的文本工具就可以高效灵活的编辑修改,对系统及应用的功能、性能进行调整;

    5、所有的文件都是以根目录(/)成倒树型的模式进行文件存储的;

四、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述

    1、Linux系统上命令的使用格式均为命令 [选项] [参数]的形式(多个选项,多个参数和命令之间使用空白字符分割)。其中

        选项:用于启用或关闭命令的某个或某些功能,分为长选项和短选项;
                        短选项:-c, 例如:-l, -h;多个短选项可命令使用,例如-l -h, 可写作-lh;
                        长选项:–word,例如:–long, –human-readable
        参数:命令的作用对象,向命令提供数据;

    2、ifconfig:配置网络接口

        (1)ifconfig [interface]

        不带任何参数:显示当前活动的网络接口信息

  [root@itop ~]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:1A:4A:1B:BC:42  
          inet addr:172.18.82.100  Bcast:172.18.82.255  Mask:255.255.255.0
          inet6 addr: fe80::21a:4aff:fe1b:bc42/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25688366 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10516116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3675287989 (3.4 GiB)  TX bytes:1133100703 (1.0 GiB)
    lo       Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:266 errors:0 dropped:0 overruns:0 frame:0
          TX packets:266 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:22604 (22.0 KiB)  TX bytes:22604 (22.0 KiB)

        -a:显示所有网络接口信息,包括不活动的网络接口

        指定某个网络接口:显示该网络接口信息

    [root@itop ~]# ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr 00:1A:4A:1B:BC:42  
          inet addr:172.18.82.100  Bcast:172.18.82.255  Mask:255.255.255.0
          inet6 addr: fe80::21a:4aff:fe1b:bc42/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25690039 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10516809 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3675461975 (3.4 GiB)  TX bytes:1133173606 (1.0 GiB)

        (2)ifconfig interface [aftype] options | address …

        启动/关闭指定网卡:

   [root@itop ~]# ifconfig eth0 up
   [root@itop ~]# ifconfig eth0 down

        为指定网卡配置IP地址:注意,该方法仅临时生效,长期有效需修改配置文件/etc/sysconfig/network-scripts/ifcfg-xxx

    [root@localhost ~]# ifconfig eth0 192.168.2.10
    [root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 
    [root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

    3、echo:文本回显
            -n: 禁止自动添加换行符号;

    [root@itop ~]# echo "hello"
    hello
    [root@itop ~]# echo -n "hello"
    hello[root@itop ~]#

            -e: 允许使用转义符;
                \n: 换行
                \t: 制表符

    [root@itop ~]# echo "hello world"    
    hello world
    [root@itop ~]# echo -e "hello \t world"
    hello      world
    [root@itop ~]# echo -e "hello \nworld"
    hello 
    world

            echo "$VAR_NAME": 变量会替换,双引号表弱引用
            echo '$VAR_NAME': 变量不会替换,强引用

            反引号“:命令引用

    [root@itop ~]# echo "$PATH"    
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    [root@itop ~]# echo '$PATH'
    $PATH
    [root@itop ~]# echo `date`
    2016年 07月 07日 星期四 10:11:30 CST

    4、tty:显示连接终端的设备名   

        其中,

        物理终端:直接接入本机的显示器和键盘设备;/dev/console
        虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端/dev/tty#

        模拟终端:图形界面下打开的命令行接口,基于ssh协议或telnet协议等远程打开的界面 /dev/pts/#
    

    5、startx:开启xwindow图形界面,前提示已安装xwindow

    6、export:显示设置环境变量

        直接显示系统环境变量:

  [root@itop ~]# export    
    declare -x CVS_RSH="ssh"
    declare -x G_BROKEN_FILENAMES="1"
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="itop.scal.com.cn"
    declare -x LANG="zh_CN.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"

        设置环境变量:

    [root@itop ~]#   export PATH=$PATH:/opt/au1200_rm/build_tools/bin    
    此设置临时生效,长期生效需修改配置文件/etc/profile(全局),~/.bashrc,~/.bash_profile(针对某个用户)

    7、pwd:显示当前工作目录,其值与环境变量$PWD一致

    [root@itop ~]# echo $PWD    
    /root
    [root@itop ~]# pwd
    /root

    8、history:命令历史

        登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history
        登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中;
        history:
                        -a: 追加本次会话新执行的命令历史列表至历史文件中;
                        -d: 删除历史中指定的命令;
                        -c: 清空命令历史;

        快捷操作:
                    !#: 调用历史中第#条命令;
                    !string:调用历史中最近一个以string开头的命令;
                    !!: 上一条命令

    9、shutdown、poweroff、reboot:关机/重启

        关机:
            halt, poweroff, shutdown, init 0
        重启:
            reboot, shutdown, init 6

        关机或重启:
            halt, poweroff
            reboot
                -f: 强制,不调用shutdown
                -p: 切断电源

        shutdown:
            shutdown [OPTION]…  TIME [MESSAGE]
            -r: reboot
            -h: halt
            -c:cancel

            TIME:
                now: 立刻
                +m: 相对时间表示法,从命令提交开始多久之后;例如 +3;
                hh:mm: 绝对时间表示,指明具体时间;

    10、hwclock:硬件时钟

           -s, –hctosys  硬件时钟同步到系统时钟
           -w, –systohc  系统时钟同步到硬件时钟

    [root@itop ~]# hwclock    
    2016年07月07日 星期四 10时38分37秒  -0.887402 seconds
    [root@itop ~]# hwclock -s
    [root@itop ~]# hwclock -w

    11、date:显示设置系统时钟

        显示时间:
        date [OPTION]… [+FORMAT]
            FORMAT: 格式符号
                %D  08/15/15
                %F  2015-08-15
                %T    08:15:30
                %A    Sunday
                %a  sun

    [root@itop ~]# date "+%F %D"    
    2016-07-07 07/07/16

        设置时间:

           date [MMDDhhmm[[CC]YY][.ss]]
               MM: 月分
               DD:几号
               hh: 小时
               mm: 分钟
               YY: 两位年份
               CCYY: 四位年份
               .ss: 秒钟

            date -s 指定格式

    [root@itop ~]# date "+%F %D"    
    2016-07-07 07/07/16
    [root@itop ~]# date -s 2016-07-08
    2016年 07月 08日 星期五 00:00:00 CST
    [root@itop ~]# date
    2016年 07月 08日 星期五 00:00:01 CST

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

    1、内部命令:
        # help COMMAND

    2、外部命令:
        (1) # COMMAND –help
            # COMMAND -h
        (2) 使用手册(manual)
            # man COMMAND
        (3) 信息页
            # info COMMAND
        (4) 程序自身的帮助文档
            README
            INSTALL
            ChangeLog

    3、man手册页章节

        通常保存在/usr/share/man
                    man1: 用户命令
                    man2: 系统调用
                    man3: C库调用
                    man4: 设备文件及特殊文件
                    man5: 配置文件格式
                    man6: 游戏
                    man7: 杂项
                    man8: 管理类的命令

        注意:有些关键字在不止一个章节中存在帮助手册,通过whatis可以查看;
        要查看指定章节中的手册:man # COMMAND

        手册中的段落说明:
                NAME
                SYNOPSIS
                DESCRIPTION
                OPTIONS
                EXAMPLES
                AUTHOR
                REPORTING BUGS
                SEE ALSO

六、请罗列Linux发行版的基础目录名称命名法则及功用规定

        /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录;
        /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序;
        /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序;
        /lib:基本共享库文件,以及内核模块文件(/lib/modules);
        /lib64:专用于x86_64系统上的辅助共享库文件存放位置;
        /etc:配置文件目录(纯文本文件);
        /home/USERNAME:普通用户家目录;
        /root:管理员的家目录;
        /media:便携式移动设备挂载点;
            cdrom
            usb
        /mnt:临时文件系统挂载点;
        /dev:设备文件及特殊文件存储位置;
            b: block device,随机访问
            c: character device,线性访问
        /opt:第三方应用程序的安装位置;
        /srv:系统上运行的服务用到的数据;
        /tmp:临时文件存储位置;
        /usr: universal shared, read-only data;
            bin: 保证系统拥有完整功能而提供的应用程序;
            sbin:
            lib:
            lib64:
            include: C程序的头文件(header files);
            share:结构化独立的数据,例如doc, man等;
            local:第三方应用程序的安装位置;
                bin, sbin, lib, lib64, etc, share

        /var: variable data files
            cache: 应用程序缓存数据目录;
            lib: 应用程序状态信息数据;
            local:专用于为/usr/local下的应用程序存储可变数据;
            lock: 锁文件
            log: 日志目录及文件;
            opt: 专用于为/opt下的应用程序存储可变数据;
            run: 运行中的进程相关的数据;通常用于存储进程的pid文件;
            spool: 应用程序数据池;
            tmp: 保存系统两次重启之间产生的临时数据;

        /proc: 用于输出内核与进程信息相关的虚拟文件系统;
        /sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统;
        /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置;