一、描述计算机的组成及其功能
组成:运算器、控制器、存储器、输入设备、输出设备:
硬件:
控制器:是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等
运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理
存储器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息
输入输出设备:输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机.输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来.
软件: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:更多的临时空间(在重新引导后,文件予以保留)