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

1、运算器

  运算器的主要功能是对数据进行各种运算。这些运算除了常规的加、减、乘、除等基本的算术运算之外,还包括能进行“逻辑判断”的逻辑处理能力,即“与”、“或”、“非”这样的基本逻辑运算以及数据的比较、移位等操作。

2、控制器

  控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。

  控制器从存储器中逐条取出指令,分析每条指令规定的是什么操作以及所需数据的存放位置等,然后根据分析的结果向计算机其它部分发出控制信号,统一指挥整个计算机完成指令所规定的操作。因此,计算机自动工作的过程,实际上是自动执行程序的过程,而程序中的每条指令都是由控制器来分析执行的,它是计算机实现“程序控制”的主要部件。通常把控制器与运算器合称为中央处理器(Central Processing Unit-CPU)。工业生产中总是采用最先进的超大规模集成电路技术来制造中央处理器,即CPU芯片。它是计算机的核心部件。它的性能,主要是工作速度和计算精度,对机器的整体性能有全面的影响。

3、存储器

  存储器的主要功能是存储程序和各种数据信息,并能在计算机运行过程中高速、自动地完成程序或数据的存取。

4、输入设备

  用来向计算机输入各种原始数据和程序的设备叫输入设备。输入设备把各种形式的信息,如数字、文字、图像等转换为数字形式的“编码”,即计算机能够识别的用1和0表示的二进制代码(实际上是电信号),并把它们“输入”(INPUT)到计算机内存储起来。键盘是必备的输入设备、常用的输入设备还有鼠标器、图形输入板、视频摄像机等。

5、输出设备

  从计算机输出各类数据的设备叫做输出设备。输出设备把计算机加工处理的结果(仍然是数字形式的编码)变换为人或其它设备所能接收和识别的信息形式如文字、数字、图形、声音、电压等。常用的输出设备有显示器、打印机、绘图仪等。

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

基于Debian
基于Slackware
基于Red Hat
基于Mandriva
基于Gentoo
其它
  • Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管 理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。

  • Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资 料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

  • Slackware与其他的发行版本(、 Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力图成为“UNIX风格”的Linux发行版本。只吸收稳定版本的应用程序,并且缺少其他linux版 本中那些为发行版本定制的配置工具。在当今systemd大势所趋的情况下,Slackware仍然坚持BSD启动风格。Slackware主要为x86 PC开发,从2005年起开始出现针对System/390架构的官方移植。同时ARM、DEC Alpha、SPARC和PowerPC也存在一些非官方的移植。Slackware官方维护着一个开发版本(Slackware Current),不断有新的软件被加入到这个源,用户可以实现类似Archlinux的滚动升级,等到一个开发版本足够稳定,便会发布一个稳定版。 Slackware是支持x86、amd64(即x86_64)、ARM、Alpha、SPARC、PowerPC的一套操作系统,其正式发布由PatrickVolkerding 负责。

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

1、一切皆文件

  在LINUX系统中,不仅普通的文件、目录、字符设备、块设备、 套接字等都是以文件被对待。对任何东西的操作都可以open read write close 使用这些基本文件系统调用来实现。

2、由众多单一目的小程序组成

  一个程序实现一个功能,而且要做好,组合小程序完成复杂任务

3、尽量避免跟用户交互

  目标在于实现脚本编程,以自动完成某些功能

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

  一款文本编辑器即能完成系统配置工作

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

  • ifconfig

  命令语法

ifconfig [网络设备][down up -allmulti -arp -promisc][add
<地址>
][del
<地址>
][
<网络设备类型>
<硬件地址>
][io_addr
][irq
][media
<网络媒介类型>
][mem_start
<内存地址>
][metric
<数目>
][mtu
<字节>
][netmask
<子网掩码>
][tunnel
<地址>
][-broadcast
<地址>
][-pointopoint
<地址>
][IP地址]

  命令参数

up 启动指定网络设备/网卡down 关闭指定网络设备/网卡-arp 设置指定网卡是否支持ARP协议-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包-a 显示全部接口信息-s 显示摘要信息(类似于 netstat -i)add 给指定网卡配置IPv6地址del 删除指定网卡的IPv6地址
<硬件地址>
 配置网卡最大的传输单元mtu
<字节数>
 设置网卡的最大传输单元 (bytes)netmask
<子网掩码>
 设置网卡的子网掩码tunel 建立隧道dstaddr 设定一个远端地址,建立点对点通信-broadcast
<地址>
 为指定网卡设置广播协议-pointtopoint
<地址>
 为网卡设置点对点通讯协议multicast 为网卡设置组播标志为网卡设置IPv4地址txqueuelen
<长度>
 为网卡设置传输列队的长度

  实例

[root@localhost ~]# ifconfig   #处于激活状态的网络接口[root@localhost ~]# ifconfig -a  #所有配置的网络接口,不论其是否激活[root@localhost ~]# ifconfig eth0  #显示eth0的网卡信息[root@localhost ~]# ifconfig eth0 down  #关闭eth0网卡[root@localhost ~]# ifconfig eth0 up    #开启eth0网卡[root@localhost ~]# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64  #为网卡添加IPv6地址[root@localhost ~]# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 #为网卡删除IPv6地址[root@localhost ~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE  #修改MAC地址[root@localhost ~]# ifconfig eth0 192.168.1.56  #给eth0网卡配置IP地址[root@localhost ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0  #给eth0网卡配置IP地址,并加上子掩码[root@localhost ~]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255   #给eth0网卡配置IP地址,加上子掩码,加上个广播地址[root@localhost ~]# ifconfig eth0 mtu 1500  #设置能通过的最大数据包大小为 1500 bytes[root@localhost ~]# ifconfig eth0 arp   #开启arp功能[root@localhost ~]# ifconfig eth0 -arp  #关闭arp功能
  • echo

  命令参数

-n 不要在最后自动换行-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\a 发出警告声;\b 删除前一个字符;\c 最后不加上换行符号;\f 换行但光标仍旧停留在原来的位置;\n 换行且光标移至行首;\r 光标移至行首,但不换行;\t 插入tab;\v 与\f相同;\\ 插入\字符;\nnn 插入nnn(八进制)所代表的ASCII字符;--help 显示帮助--version 显示版本信息每一个shell支持的echo指令可能都不太相同。-n 不输出最后的\n-e解释转义字符-E不解释转义字符

  实例

[root@linux test]# echo "11111" #输出11111[root@linux test]# echo -n "11111" #输出11111,不带尾部回车/home/test/etc> echo The back-up files are: *.bak     #可以使用模式匹配,通配符,正则匹配The back-up files are: 0001.bak 0028.bak 0085.bak 0111.bak
  • tty

  命令参数

  -s, --silent, --quiet 什么也不显示,只返回退出状态值      --help            显示此帮助信息并退出      --version         显示版本信息并退出

  实例

[root@linux ~]# tty   #显示当前终端/dev/pts/4

  • startx

startx  启动图形界面

 命令语法

startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]

  • export

  命令参数

-f 带边环境变量为函数名称-n 删除指定的环境变量-p 列出所有的环境变量

   实例

[root@localhost ~]# aaa=bbb         #设置一个变量[root@localhost ~]# export aaa      #加入环境变量[root@localhost ~]# env |grep aa    #查看环境变量aaa=bbb[root@localhost ~]# export -n aaa   #删除环境变量[root@localhost ~]# env |grep aa    #查看[root@localhost ~]# export PATH=$PATH:/usr/local/bin  #将/usr/local/bin加入环境变量中
  • pwd

  命令参数

   -L, --logical          显示当前目录   -P, --physical          显示当前目录的实际物理地址   --help  帮助   --version  版本

  实例

[root@rudder home]# pwd  #显示当前目录/home[root@web mail]# pwd -P   #目录是软连接,显示实际物理地址/var/spool/mail[root@web mail]# pwd -L   #-L显示,逻辑地址/var/mail
  • history

  命令参数

n 显示n个最近的记录-a 添加记录-r 读取记录,但不会添加内容记录-w 覆盖原有的history 文件-c 清除记录-d
<编号>
[n] 删除指定n条记录-n
<文件>
 读取指定文件-r
<文件>
 读取文件但不记录-w
<文件>
 覆盖原有文件
  • shutdown

  语法命令

shutdown [-t seconds] [-rkhncfF] time [message]

  命令参数

-t seconds : 设定在几秒钟之后进行关机程序-k : 并不会真的关机,只是将警告讯息传送给所有使用者-r : 关机后重新开机-h : 关机后停机-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机-a : 取消目前已经进行中的关机动作-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)-F : 关机时,强迫进行 fsck 动作time : 设定关机的时间message : 传送给所有使用者的警告讯息

   实例

[root@linux ~]# shutdown –h now   #关机 [root@linux ~]# shutdown –h 23:00   #晚上11点关机[root@linux ~]# shutdown –r now   #重启[root@linux ~]# shutdown –r +30 'reboot now'   #30分钟后重启,并且提示reboot now
  • poweroff

  命令参数

-n:关闭操作系统时不执行sync操作; -w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中; -d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录; -f:强制关闭操作系统; -i:关闭操作系统之前关闭所有的网络接口; -h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
  • reboot

  语法命令

reboot [-dfinw]

  命令参数

-d  重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有"-n"参数的效果。-f  强制重新开机,不调用shutdown指令的功能。-i  在重开机之前,先关闭所有网络界面。-n  重开机之前不检查是否有未结束的程序。-w  仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
  • hwclock

hwclock --systohc  //系统时钟和硬件时钟同步hwclock --hctosys(hc代表硬件时间,sys代表系统时间) //硬件时钟与系统时钟同步:hwclock --show  //查看硬件时间hwclock --set --date="07/07/06 10:19" (月/日/年 时:分:秒) //设置硬件时间
  • date

  语法命令

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

  日期格式字符串列表

%H 小时,24小时制(00~23)%I 小时,12小时制(01~12) %k 小时,24小时制(0~23) %l 小时,12小时制(1~12) %M 分钟(00~59) %p 显示出AM或PM %r 显示时间,12小时制(hh:mm:ss %p) %s 从1970年1月1日00:00:00到目前经历的秒数 %S 显示秒(00~59) %T 显示时间,24小时制(hh:mm:ss)%X 显示时间的格式(%H:%M:%S) %Z 显示时区,日期域(CST) %a 星期的简称(Sun~Sat) %A 星期的全称(Sunday~Saturday) %h,%b 月的简称(Jan~Dec) %B 月的全称(January~December) %c 日期和时间(Tue Nov 20 14:12:58 2012) %d 一个月的第几天(01~31) %x,%D 日期(mm/dd/yy) %j 一年的第几天(001~366) %m 月份(01~12) %w 一个星期的第几天(0代表星期天) %W 一年的第几个星期(00~53,星期一为第一天) %y 年的最后两个数字(1999则是99)

    实列

date +%Y%m%d         //显示现在天年月日date -s //设置当前时间,只有root权限才能设置,其他只能查看。date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00date -s 01:01:01 //设置具体时间,不会对日期做更改date -s “01:01:01 2008-05-23″ //这样可以设置全部时间date -s “01:01:01 20080523″ //这样可以设置全部时间date -s “2008-05-23 01:01:01″ //这样可以设置全部时间date -s “20080523 01:01:01″ //这样可以设置全部时间

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

1、内部命令

help COMMAND

  • hash命令

shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中

  • history命令:

    命令作用:

      登陆shell时,会读取命令历史文件中记录下的命令:~/.bash_history

      登录进shell后新执行的命令只会记录在缓存中,这些命令会在用户退出时“追加”至命令历史文件中

    命令选项:

      -a:追加本次会话新执行的命令历史列表至历史文件中

      -d:删除历史中指定的命令

      -c:清空命令历史

    快捷操作:

      !#:调用历史中的第#条命令

      !string:调用历史中最近一个以string开头的命令

      !!:上一条命令       

2、外部命令

  • COMMAND --help

    COMMAND -h

  • 使用手册(manual)

    man COMMAND

  • 手册页:/usr/share/man

    • 1 – User Commands 一般用户命令

    • 2 - System Calls 系统调用命令,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

    • 3 - C library Functions C函数库命令,如printf,fread

    • 4 - Devices and Special files 是特殊文件,也就是/dev下的各种设备文件 man hd

    • 5 - File formats and conventions 是指文件的格式,比如man 5 passwd, 就会得到说明这个文件/etc/passwd中各个字段的含义

    • 6 - games for linux是给游戏留的,由各个游戏自己定义

    • 7 - Miscellanea 杂项, 例如宏命令包、惯例等。

    • 8 - System administration tools and Deamons 是系统管理用的命令,这些命令只能由root使用,如ifconfig

    • 9 -其他(Linux特定的), 用来存放内核例行程序的文档。

    • n 新文档, 可能要移到更适合的领域。

    • o 老文档, 可能会在一段期限内保留。

    • l 本地文档, 与本特定系统有关的。

  • 信息页

       info COMMAND

  • 程序自身的帮助文档

       READMEINSTALLChangeLog

  • 程序官方文档

    官方站点:Documentation

    发行版的官方文档Google

六、请罗列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相关的安全策略等信息的存储位置