一. 计算机的组成及其功能

         电子计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行计算,还具有存储记忆功能。

        计算机的组成主要分为硬件(hardware)软件(software)两部分。

    硬件部分

            硬件部分主要分为运算器、存储器、控制器、输入设备、输出设备五部分。

            运算器(Datapath):实现算术运算和逻辑运算(与控制器组成CPU)。

            存储器(memory):将输入设备接收到的信息以二进制的数据形式存到存储器中。

            控制器(Control): 将指令逐条从存储器中取出,经译码分析后向全机发出相应的操作控制信号作用于其他部件,使各部件有条不紊地协调工作(与运算器组成CPU)。

            输入设备(Input): 将数据、程序、文字符号、图象、声音等信息输送到计算机中。

            输出设备(Output):将计算机的运算结果或者中间结果打印或显示出来。

    软件部分

            操作系统(Operating System,OS):管理、控制和监督计算机软、硬件资源协调运行的程序系统,由一系列具有不同控制和管理功能的程序组成,它是直接运行在计算机硬件上的、最基本的系统软件,是系统软件的核心。

            汇编语言(assembly language):一种用于CPU的低级语言。它使用助记符代替机器指令(二进制语言),方便人类的阅读及操作。一种汇编语言只能与相对应的计算机系统结构对应,无法在不同平台之间直接移植。

二.Linux的发行版,及不同发行版间的联系与区别

        Linux的发行版按照程序包管理器的不同,通常被分成了不同的派系。

        Debian以社区的方式运作,没有商业公司支持

               ubuntu:基于Debian的二次发行,界面华丽

                    mint:基于ubuntu的二次发行

               knopix:基于Debian的二次发行

        slackware:SLS的一个分支,UNIX风格的Linux发行版本

        S.u.S.E:基于slackware的二次发行,界面华丽,符合欧洲人的使用习惯

                SLES:S.u.S.E的企业版

                OpenSUSE:S.u.S.E的开源个人桌面版

        Redhat:早期主要是个人桌面版,Redhat9.0之后,主要分为RHEL(Red Hat Enterprise Linux)和Fedora Core

                RHEL(Red Hat Enterprise Linux):Redhat企业版

                         CentOS(Community ENTerprise OS):基于RHEL的二次发行

                Fedora Core:Redhat个人桌面版,每六个月发布新版本

        Gentoo:基于Linux的自由操作系统,能为几乎任何应用程序或需求自动地作出优化和定制。

        ArchLinux:轻量简洁,Linux新贵

 联系:

  1. 所有发行版都是使用Linux内核;

  2. 都需要遵循遵循GNU  GPL;

  3. 所有的发行版都有自己的版本号,版本格式约定基本一样(主版本号.次版本号.发行号.修正号)。

区别:发行版的本质区别,在于继承不同版本的内核,库,程序。按软件包管理系统的不同,主要分为

  1. rmp包管理系统:SLES、Fedora、OpenSUSE、CentOS、RHEL

  2. DPKG包管理系统:Debian、Ubuntu

三.Linux的哲学思想,并对其进行解释性描述

  1.  一切皆文件

    把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等;

    比如:物理终端:/dev/console

              虚拟终端:/dev/tty# (#为1~6)

              串行终端:/dev/ttyS#

              伪终端:/dev/pts/#

  2. 由众多功能单一的程序组成

    一个程序只能做一件事,并且做好;组合小程序完成复杂任务

  3. 尽量避免跟用户交互

    目标:易于以编程的方式实现自动化任务

  4. 使用文本文件保存配置信息

    通过文本保存,就可以使用文本编辑器实现大多数程序的管理工作

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

首先要了解命令的语法通用格式:# COMMAND OPTIONS ARGUMENTS

COMMAND: 

            发起一个命令:请求内核将某个二进制程序运行为一个进程;

                   程序 --> 进程

                    静态 --> 动态(有生命周期)

            命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;多数系统程序文件都存放在:

                    普通命令:/bin, /usr/bin, /usr/local/bin

                    管理命令:/sbin, /usr/sbin, /usr/local/sbin

            命令往往会调用到许多库文件,这些库可能许多程序都会遇到,我们形象的称之为共享库这些共享库也是二进制文件,但是由于其没有程序执行入口,所以不能独立执行。只能被其他有执行入口的程序调用时才能执行,一般这些库都存放在这些目录下

                    32bits的库:/lib, /usr/lib, /usr/local/lib

                    64bits的库:/lib64, /usr/lib64, /usr/local/lib64

            注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件

            命令必须遵循特定格式规范:exe, msi, ELF(Linux)

            命令分为两类:

                    由shell程序的自带的命令:内置命令(builtin)

                    独立的可执行程序文件,文件名即命令名:外部命令

            shell程序是独特的程序,负责解析用户提供的命令;

            环境变量:

                    PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;

                    查找次序:自左而右;

            查看命令类型:type COMMAND

OPTIONS:

            指定命令的运行特性;

            选项有两种表现形式:

                        短选项:-C, 例如-l, -d  

                                注意:有些命令的选项没有-;  如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld

                        长选项:--word, 例如--help, --human-readable

                                注意:长选项不能合并;

                        注意:有些选项可以带参数,此称为选项参数;

ARGUMENTS:

            命令的作用对象;命令对什么生效;

            注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;

ifconfig用于查看活动接口的IP地址,其作用等同于ip addr list

    常用方法:[root@SilasSZL ~]# ifconfig

      [root@SilasSZL ~]# ip addr list

echo:是个内建命令,用来将字符串输出到终端上。使用help echo来获取echo的帮助信息。

         语法:echo [SHORT-OPTION]... [STRING]...

              -n 关闭自动换行功能

            -e让转义符生效

                  \n:换行

                  \t:制表符

                  \b:退格(删除前一个字符)

        备注:STRING可以使用引号,单引号双引号均可用

            单引号:强引用,变量不执行替换

    常用方法:[root@SilasSZL ~]# echo '$SHELL'

        $SHELL

            双引号:弱引用,变量引用会被替换

    常用方法:[root@SilasSZL ~]# echo "$SHELL"

      /bin/bash

tty:查看当前的终端设备

    语法: tty [OPTION]… 

    常用方法:[root@SilasSZL ~]# tty

      /dev/pts/0

startx:在某一虚拟终端接口运行命令

export:用于将查看环境变量,或给变量赋值

    查看环境变量:export

    变量赋值:export name=value

pwd(printing working directory)显示当前工作目录(以绝对路径的方式

    语法: pwd [OPTION]..

    常用方法:[root@SilasSZL ~]# pwd

      /root

    PATH:执行文件路径的变量

        $PWD:当前工作目录

        $OLDPWD:上一次的工作目录

history:管理命令历史

    定制history的功能,可通过环境变量实现:

            HISTSIZE:shell进程可保留的命令历史的条数;

            HISTFILE:持久保存命令历史的文件;

            HISTFILESIZE:命令历史文件的大小;

     命令用法:

            history [-c] [-d 偏移量] [n]  或 history -anrw [文件名]    或 history -ps 参数 [参数...]

            -c: 清空命令历史;

           -d offset:删除指定命令历史;

            -r: 从文件读取命令历史至历史列表中;

            -w:把历史列表中的命令追加至历史文件中;

           history #:显示最近的#条命令;

      控制命令历史记录的方式:

            环境变量:HISTCONTROL

                    ignoredups:忽略重复的命令;

                    ignorespace:忽略以空白字符开头的命令;

                    ignoreboth:以上两者同时生效

shutdown:系统关机、关闭所有程序、按照用户需要重启或关机 

        语法:shutdown [OPTION…] [TIME] [WALL…]

        常用方法:

                 -c:取消关机 

                 -h:将系统关机 

                 -r:重启系统

                 TIME:设置多久时间后执行shutdown指令

                         now:立刻

                         +m:提交多少分钟后

                         hh:mm:具体时间

                WALL:要传送给所有登入用户的信息

poweroff:用来关闭计算机操作系统并且切断系统电源

        语法: poweroff [OPTION]…

        常用方法:

                -f:强制关闭系统 

reboot:用来重新启动正在进行的Linux操作系统

        语法:reboot [OPTION]…

        常用方法:

                -f:强制重新开机

                -p:切断电源

hwclock修改时钟包括系统时间和硬件时间

       语法: hwclock [functions] [options]

        常用方法:

                -s, --hctosys:以硬件为准,把系统时间调整为与硬件时间相同;

                -w, --systohc:以系统为准,把硬件时间调整为与系统时间相同;

date显示或设置系统时间与日期

    语法:显示日期时间:date [OPTION]... [+FORMAT]

                设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]

     常见方法:

                %F:年月日 

               %T:小时分钟秒 

               %Y:年

               %m:月

               %d:日

               %H:小时(24小时进制)

               %S:秒 

               %s:秒(从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数)

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

Linux的帮助有内部命令(内建命令)和外部命令之分。内部命令和外部命令的功能基本相同,但存在的位置有差异。

        内部命令:shell程序的一部分,其包含的往往是一些简单的linux系统命令。

                 help 作用:用于显示shell内部命令的帮助信息

                语法:help(选项)(参数)

         外部命令:由以下几个途径:

  1.   通过命令自带的帮助信息

    # COMMAND --help

    # COMMAND --h

  2. 使用手册(manual)

    Man手册段落含义(SECTION):

         NAME:功能性说明

         SYNOPSIS:语法格式

         DESCRIPTION:描述

         EXAMPLES:使用示例

         AUTHOR: 作者

         BUGS: 报告程序bug的方式

         SEE ALSO: 参考

    通过man命令获取目录的帮助信息页当中有一些用符号标记的内容,这些符号的意义:

         []:可选内容

         <>:必须提供的内容

         a|b|c:多选一

         ...:同类内容可出现多个

    man命令的操作方法:

    翻屏操作:

        空格键:向下翻一页

        PaGe Down键:向下翻一页

        PaGe Up键:向上翻一页

        Ctrl+d:向下翻半页

        Ctrl+u:向上翻半页

        回车键:向下翻一行

        k:向上一行

        G:跳转至最后一行

        #(数字)G:跳转至指定行

        1G:跳转至文件首部

    文本搜索:

        /keyword:从文件首部向文件尾部依次查找,不区分字符大小写

        ?keyword:从文件尾部向文件首部依次查找

        n:与查找命令方向相同

        N:与查找命令方向相反

    退出:q: quit

  3. 信息页(info COMMAND)

    获取命令的在线文档;

  4. 程序自身的帮助文档

    README:程序的相关的信息;

    INSTALL: 安装帮助;

    CHANGES:版本迭代时的改动信息;

  5. 程序的官方文档

    官方站点上的“Document”

  6. 发行版的官方文档

    例如 Radhat:http://www.redhat.com/doc

  7. 善用搜索引擎

    提供两种帮助搜索的小: 1)keyword filetype: 2)keyword site:domain.tld

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

Linux各种发行版都遵循LSB(LinuxStandards Base)规则,使用一致的相同的基础目录名称,使用根文件系统结构(root filesystem),使用FHS(files Hierarchy Standard)层次结构。

        /bin:所有用户可用的基本命令程序文件;

        /sbin:供系统管理使用的工具程序;

        /boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;

        /dev:存储特殊文件或设备文件;

        /etc:系统程序的配置文件,只能为静态;

        /home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;

        /root:管理员的家目录;

        /lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块;

        /lib64:64位系统特有的存放64位共享库的路径;

        /media:便携式设备挂载点,cdrom, floppy等;

        /mnt:其它文件系统的临时挂载点;

        /opt:附加应用程序的安装位置;

        /srv:当前主机为服务提供的数据;

        /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

        /usr:usr Hierarchy,全局共享的只读数据路径;

                  bin:存放了保证系统拥有完整功能而提供的应用程序;

                  sbin:存放了保证系统拥有完整功能而提供的应用程序,系统管理命令;

                  include: C程序的头文件;

                  share:结构化独立的数据;

                  local:第三方应用程序的安装位置:bin, sbin, lib, lib64, etc, share;

        /usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;

        /var:/var Hierarchy,存储常发生变化的数据的目录;

                  cache:应用程序缓存数据目录;

                  lib:存放系统正常运行时,随时会改变的文件

                  local:专用于为/usr/local下的应用程序存储可变数据;

                  lock:锁文件

                  log:日志目录及文件;

                  opt:专用于为/opt下的应用程序存储可变数据;

                  run:运行中的进程相关的数据;通常用于存储进程的pid文件;

                  spool:应用程序数据池;

                  tmp:保存系统两次重启之间产生的临时数据;

        /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数;

        /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;