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

组成:运算器、控制器、存储器、输入设备、输出设备:

硬件:

控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等

运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理

存储器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息

输入输出设备:输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机.输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来.

软件:Windows系列,MACOS ,linux系列 及第三方应用软件

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

1. Debian

Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库,这给另外几款发行版(比如Ubuntu和Kali等)带来了灵感。Debian这款操作系统派生出了多个Linux发行版。它有37500多个软件包,这方面唯一胜过Debian的其他发行版只有Gentoo。Debian使用apt或aptitude来安装和更新软件。

Debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。Debian支持如今的大多数架构(处理器)。

下载Debian ISO映像文件:http://www.debian.org/distrib/

附有屏幕截图的Debian安装:《Debian 7.0"Wheezy"安装指南》

 

Debian Linux

2. Gentoo

与Debian一样,Gentoo这款操作系统也包含数量众多的软件包。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。连Gentoo社区都觉得Gentoo安装和使用起来很困难;不过它被认为是最佳学习对象,可以进而了解Linux操作系统的内部运作原理。提到Gentoo总有人这么说:"如果你要学用Linux发行版,那就学用该发行版吧;如果你学会了Gentoo,也就学会了Linux。"Gentoo使用portage来安装和更新软件。

Gentoo这款操作系统适合对Linux已经完全驾轻就熟的那些用户。

下载和安装Gentoo:http://www.gentoo.org/main/en/where.xml

 

Gentoo Linux

3. Ubuntu

Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。作为Debian Gnu Linux的一款衍生版,Ubuntu的进程、外观和感觉大多数仍然与Debian一样。它使用apt软件管理工具来安装和更新软件。它也是如今市面上用起来最容易的发行版之一。Ubuntu使用基于apt的程序包管理器。

Ubuntu是新手用户肯定爱不释手的一款操作系统。

下载Ubuntu ISO映像文件:http://www.ubuntu.com/download

附有屏幕截图的Ubuntu安装:《Ubuntu 13.04"Raring Ringtail"安装指南》

 

Ubuntu Linux

4. Damn Vulnerable Linux

当然,大多数人可能对这款发行版前所未闻,不过该发行版在本文中还是占有一席之地。那么,它有何过人之处呢? Damn Vulnerable Linux恰如其名:其字面意思就是"该死的易受攻击的Linux"。Vulnerable Linux(DVL)根本不是一般意义上的优秀的Linux发行版。它有意捆绑了坏的、配置不当的、过时的、很容易被不法分子攻击的软件。

它的目的在于借机训练Linux管理员。还有什么比给Linux管理员一款坏的发行版去排解问题来得更管用的吗?面对Apache、MySQL、PHP、FTP和SSH等比较旧或破的版本,接受训练的管理员够有得忙了。

Damn Vulnerable Linux堪称旨在训练管理员的实验室。

下载Damn Vulnerable Linux(DVL)ISO映像文件:DVL_1.5_Infectious_Disease.iso

 

Damn Vulnerable Linux

5. 红帽企业级Linux

这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证。就全球市场而言,总利润中80%来自支持,另外20%来自培训和认证,不过在印度不是这样。

在印度,红帽的利润中80%来自认证和培训,只有20%来自支持。而Fedora是个平台,而不是开发新产品或新应用程序的测试环境;一旦成为稳定版,就与红帽企业级Linux捆绑在一起,包括支持。红帽提供了非常多的稳定版应用程序,但是众所周知的缺点是,把太多旧程序包打包起来,支持成本确实相当高。不过,如果安全是关注的首要问题,那么红帽企业级Linux的确是款完美的发行版,它使用YUM程序包管理器。

红帽企业级Linux是系统管理员的第一选择,它有众多的程序包,还有非常到位的支持。

由于该发行版是商业化产品,所以不是免费的。不过,你可以下载用于教学用途的测试版。

下载红帽企业级Linux测试版DVD ISO映像文件:RedHat Enterprise Linux(测试版)

附有屏幕截图的RHEL 6安装:《RHEL 6安装指南》

补充说明:通常认为,开发了该发行版的Marc Ewin将该产品命名为红帽,因为他丢失了似乎很心爱的那顶红色帽子,帽子是他爷爷在他过生日时送的礼物。

 

红帽企业级Linux

6. CentOS

CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。

非常稳定的程序包;谁要是想在桌面端测试一下服务器的运作原理,都应该试试这款操作系统。

下载CentOS 6.4 DVD ISO映像文件:http://wiki.centos.org/Download

附有屏幕截图的CentOS 6.4安装:《CentOS 6.4安装指南》

 

CentOS Linux

7. Fedora

小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。Fedora同样使用YUM来管理软件包。

下载Fedora 18(Spherical Cow)DVD ISO映像文件:http://fedoraproject.org/en/get-fedora

附有屏幕截图的Fedora 18(Spherical Cow)安装:《Fedora 18(Spherical Cow)安装指南》

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

1.       一切皆文件,计算机中所有的文件目录,

       包括计算机的硬件设备显示为文件格式。

2.       由许许多多的小程序组成,一个程序完成一个功能,而很多小程序的组合就可以完成一个复杂的任务。

3.       实现脚本编程,自动化完成,尽量避免与用户的交互。不需要用户的确认,就可以自动完成用户交由它的任务。

4.           使用纯文本文件保存配置信息,大大减少的资源的浪费


 

Fedora Linux

8. Kali Linux

Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。它大概在三个月前才发行。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。

毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。

下载Kali Linux DVD ISO映像文件:Kali Linux 6

 

Kali Linux

9. Arch Linux

Arch是一款采用滚动发行方式的操作系统:只要安装一次就够了;每当发行了某个新版本,就可以升级发行版,不需要重新安装。Pacman是Arch Linux的软件包管理器。Arch Linux既支持X86处理器架构,又支持X86_64架构,安装程序可以从光盘或U盘来运行。Arch旨在从开发者的角度而不是从用户的角度做到力求简单。Arch配置和安装起来超容易。它真是一款面向高手的发行版,让你可以了解Linux系统的每一个细枝末节。

下载Arch Linux ISO映像文件:https://www.archlinux.org/download/

 

Arch Linux

10. OpenSuse

OpenSuse这款Linux发行版是免费的,并不供商业用途使用,仍然供个人使用。OpenSuse的真正竞争对手是红帽企业级Linux。它使用Yast来管理软件包。有了Yast,使用和管理服务器应用程序就非常容易。此外,Yast安装向导程序可以配置电子邮件服务器、LDAP服务器、文件服务器或Web服务器,没有任何不必要的麻烦。它随带snapper快照管理工具,因而可以恢复或使用旧版的文件、更新和配置。由于让滚动发行版本成为可能的Tumbleweed,可将已安装的操作系统更新到最新版本,不需要任何的新发行版。

SUSE在管理员当中的名气更大,因为它有Yast以及让系统管理员能够自动管理任务的其他此类应用程序,同样水准的其他发行版没有这项功能。

下载OpenSuse 12.3 DVD ISO映像文件:http://software.opensuse.org/123/en

附有屏幕截图的OpenSuse 12.3安装:《OpenSuse 12.3安装指南》

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

1.       一切皆文件,计算机中所有的文件目录,

       包括计算机的硬件设备显示为文件格式。

2.       由许许多多的小程序组成,一个程序完成一个功能,而很多小程序的组合就可以完成一个复杂的任务。

3.       实现脚本编程,自动化完成,尽量避免与用户的交互。不需要用户的确认,就可以自动完成用户交由它的任务。

4.           使用纯文本文件保存配置信息,大大减少的资源的浪费

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

4.1.ifconfig:

命令格式:

ifconfig [网络设备] [参数]

命令功能:

ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。

命令参数:

up 启动指定网络设备/网卡。

down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。

arp 设置指定网卡是否支持ARP协议。

-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包

-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包

-a 显示全部接口信息

-s 显示摘要信息(类似于 netstat -i)

add 给指定网卡配置IPv6地址

del 删除指定网卡的IPv6地址

<硬件地址> 配置网卡最大的传输单元

mtu<字节数> 设置网卡的最大传输单元 (bytes)

netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。

tunel 建立隧道

dstaddr 设定一个远端地址,建立点对点通信

-broadcast<地址> 为指定网卡设置广播协议

-pointtopoint<地址> 为网卡设置点对点通讯协议

multicast 为网卡设置组播标志

address 为网卡设置IPv4地址

txqueuelen<长度> 为网卡设置传输列队的长度

 

关闭eth0:

 

开启eth0:

 

修改IP地址:掩码地址 跟广播地址自动生成

 


关闭和开启ARP协议:

 

4.2  echo:回显命令。

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

该命令的一般格式为: echo [ -n ] 字符串

其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

功能说明:显示文字。

语   法:echo [-ne][字符串]或 echo [--help][--version]

补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

参 数:-n 不要在最后自动换行

-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般

文字输出:

a 发出警告声;

b 删除前一个字符;

c 最后不加上换行符号;

f 换行但光标仍旧停留在原来的位置;

n 换行且光标移至行首;

r 光标移至行首,但不换行;

t 插入tab;

v 与f相同;

\ 插入字符;

nnn 插入nnn(八进制)所代表的ASCII字符;

–help 显示帮助

–version 显示版本信息

1. 输入一行文本并显示在标准输出上

  

2. 输出一个声明的变量值

 

3.-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般


选项描述

-n不输出末尾的换行符。

-e启用反斜线转义。

\b退格

\\反斜线

\n新行

\r回车

\t水平制表符

\v垂直制表符


   使用echo命令打印所有的文件和文件夹(ls命令的替代)

  

4.3  tty:

Linux tty命令用于显示终端机连接标准输入设备的文件名称。

在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty(teletypewriter)指令查询目前使用的终端机的文件名称。

语法

tty [-s][--help][--version]

参数说明:

-s或--silent或--quiet 不显示任何信息,只回传状态代码。

--help 在线帮助。

--version 显示版本信息。

 

4.4 startx

功能说明:启动X Window。

  语法:startx [程序][--服务器设置]

  补充说明:startx为启动X Window的script文件,实际上启动X Window的程序为xinit。

  参数:

  [程序] 此处所指定的[程序]为X Window所要执行程序的配置文件。

  [--服务器设置] startx预设会去读取.xerverrc中的配置,决定启动X Window的方式。

  以上就是Linux系统startx命令的功能和使用方法了,用startx命令启动X Window后就可以在一个窗口中运行多个程序了。

export

Linux export命令用于设置或显示环境变量。

在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。

语法

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

参数说明:

-f  代表[变量名称]中为函数名称。

-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

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


4.5 pwd

Linux pwd命令用于显示工作目录。

执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

语法

pwd [--help][--version]

参数说明:

--help 在线帮助。

--version 显示版本信息。


4.6  History:

History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 。

1>History命令语法: 

[test@linux]# history [n]

[test@linux]# history [-c]

[test@linux]# history [-raw] histfiles

参数:

n   :数字,要列出最近的 n 笔命令列表

-c  :将目前的shell中的所有 history 内容全部消除

-a  :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles ,

则预设写入 ~/.bash_history

-r  :将 histfiles 的内容读到目前这个 shell 的 history 记忆中

-w  :将目前的 history 记忆内容写入 histfiles

Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值。

如果你键入 history, history会向你显示你所使用的前1000个历史命令,并且给它们编了号,你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000个命令中的所有项目, 当然你也可以加入数字来列出最近的 n 笔命令列表。

linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。

2>运行特定的历史命令

history会列出bash保存的所有历史命令,并且给它们编了号,我们可以使用“叹号接编号”的方式运行特定的历史命令.

语法说明:

[test@linux]# [!number]  [!command] [!!]


参数说明:

number   :第几个指令的意思;

command  :指令的开头几个字母

!        :上一个指令的意思!

3>History命令实战

列出所有的历史记录:

[test@linux] # history

只列出最近10条记录:

[test@linux] # history 10 (注,history和10中间有空格)

使用命令记录号码执行命令,执行历史清单中的第99条命令

[test@linux] #!99 (!和99中间没有空格)

重复执行上一个命令

[test@linux] #!!

执行最后一次以rpm开头的命令(!?  ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)

[test@linux] #!rpm

逐屏列出所有的历史记录:

[test@linux]# history | more

立即清空history当前所有历史命令的记录

[test@linux] #history -c

除了使用history命令,在 shell 或 GUI 终端提示下,你也可以使用上下方向键来翻阅命令历史(向下箭头会向前翻阅),直到你找到所需命令为止。这可以让我们很方便地编辑前面的某一条命令,而不用重复输入类似的命令

4.7   shutdown、poweroff、reboot

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、init及poweroff,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。

  1.shutdown

  shutdown命令安全地将系统关机。

  有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导

  致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。

  而在系统关机前使用shutdown命令﹐系

  统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重

  启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮

  件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。

  shutdown执行它的工作是送信号〔signal〕给

  init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel

  6是用来重新激活〔reboot〕系统﹐而runlevel

  1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机

  〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。

  shutdown 参数说明:

  [-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。

  [-r] 重启计算器。

  [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。

  [-h] 关机后关闭电源〔halt〕。

  [-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。

  [-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。

  [-f] 在重启计算器〔reboot〕时忽略fsck。

  [-F] 在重启计算器〔reboot〕时强迫fsck。

  [-time] 设定关机〔shutdown〕前的时间。

  2.halt—-最简单的关机命令

  其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

  参数说明:

  [-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。

  [-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。

  [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。

  [-f] 没有调用shutdown而强制关机或重启。

  [-i] 关机〔或重启〕前﹐关掉所有的网络接口。

  [-p] 该选项为缺省选项。就是关机时调用poweroff。

  3.reboot

  reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多。

  4.init

  init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown

  就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init

  1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit

  -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

  5.poweroff在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应,当然路由器等嵌入系统不支持ACPI的,所以这个无效。

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

在终端中输入 type 可以查看命令是内部命令还是外部命令。格式为:

    type  要查看的命令

例如,我们要查看 cd 命令是否为内部命令,可以键入 type cd。从返回的结果可以看出, cd 是一个内部命令。 

 

我们再来看一个命令 shutdown。键入 type shutdown 可以看到,它是一个外部命令。该命令的路径为 /sbin/shoutdown。

 

 help命令用于显示shell内部的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。

man命令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。man是在程序安装的时候安装的帮助文档,可以在系统的目录下找到,如果软件有配套的页面,就可以使用man来查找。比如通过指令:ls /user/share/man我们可以看到很多man帮助文档的存储,我们从中看到有很多歌man#文件,linux的一些man指令文档就存在于这些文件内。

info指令是man 指令的详细内容。但man 使用起来要方便的多。一个man 只有一页,而info总是将它们的内容组织成多个区段(节点),每个区段也可能包含子区段(子节点)。info工具可显示更完整的最新的GNU工具信息。通常man中若包含的信息概要在info中也有时,。

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

目录名称内容

/:根目录

/bin:最核心的操作系统命令

/boot:内核和加载内核所需的文件

/dev:伪终端、磁盘、打印机等的设备项

/etc:关键的启动文件和配置目录

/home:用户默认的主目录

/lib:库、共享库和部分C编译器

/media:可移动介质上的文件挂载点

/mnt:可移动介质的临时挂载点

/opt:可选的应用软件包

/proc:所有正在运行进程的信息

/root:超级用户的主目录

/sbin:系统最小规模运行所需的命令

/tmp:每次重新引导就消失的临时文件

/usr:次要文件和命令的层次结构

/usr/bin:大多数命令和可执行文件

/usr/include:编译C程序的头文件

/usr/lib:库;供标准程序使用的支持文件

/usr/locol:本地软件(用户所编写或者安装的软件);/usr的镜像结构

/usr/sbin:不太关键的系统管理命令和修复命令

/usr/share:多种系统共同的东西

/usr/share/man:联机用户手册

/var:系统专用数据和配置文件

/var/adm:各种不同的东西:日志、系统设置记录、奇怪的管理信息

/var/log:各种系统日志文件

/var/spool:供打印机、邮件等使用的假脱机目录

/var/tmp:更多的临时空间(在重新引导后,文件予以保留)