马哥教育网络班22期+第一周课程练习

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

计算机由硬件系统、操作系统和应用软件所组成,没有安装任何软件的计算机称为裸机。

1.1、硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部分组成,遵循冯、诺依曼原理。

控制器:读取分析指令,向其它部分发出控制信号,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。 

运算器:对数据进行各种运算,例如加、减、乘、除、逻辑判断、比较、移位等操作。 

存储器:指的是硬盘和内存,用来存储数据和各种信号等信息,并在需要时提供这些信息。 

输入设备:常见的输入设备有键盘、鼠标等,用于输入信息。

输出设备:常用的输出设备有显示器、打印机等,用于输出信息。

1.2、操作系统:是管理和控制计算机硬件与软件资源的计算机程序,位于底层硬件与用户之间,是两者沟通的桥梁。主要有:unix,linux,windows。功能:提供资源管理,程序控制和人机交互等。为用户分配cpu,内存,为高级编程提供标准的硬件接口,模块,库等。

1.3、应用软件:专门为某一应用目的而编制的软件,一般运行于操作系统之上。功能:拓宽计算机硬件的应用领域,放大硬件的功能,满足人们的特定需要。

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

Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

linux的发行版主要有以下九种及其特点如下:

2.1、Fedora Core

它是一套从Red Hat Linux发展出来的免费Linux系统,允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat, Inc. 的支持。可运行的体系结构包括 x86(即i386-i686), x86_64 和 PowerPC。 

2.2、Debian

Debian以其稳定性著称,它的目标是提供一个稳定容错的Linux版本。虽然它的早期版本Slink有一些问题,但是它的现有版本Potato已经相当稳定了。这个版本更多的使用了 pluggable authentication modules (PAM),综合了一些更易于处理的需要认证的软件(如winbind for Samba)。

Debian的安装完全是基于文本的,它仅仅使用fdisk 作为分区工具而没有自动分区功能,所以它的磁盘分区过程令人十分讨厌。磁盘设置完毕后,软件工具包的选择通过一个名为dselect的工具实现,但它不向用户提供安装基本工具组(如开发工具)的简易设置步骤。最后需要使用anXious工具配置X Windows,这个过程与其他版本的XWindows配置过程类似。完成这些配置后,Debian就可以使用了。

支持Debian的不是某家公司,而是许多在其改进过程中投入了大量时间的开发人员。Debian主要通过基于Web的论坛和邮件列表来提供技术支持。

作为服务器平台,Debian提供一个稳定的环境。为了保证它的稳定性,开发者不会在其中随意添加新技术,而是通过多次测试之后才选定合适的技术加入。当前最新正式版本是Debian 6,采用的内核是Linux 2.6.32。Debian 6 第一次包含了一个100%开源的Linux内核,这个内核中不再包含任何闭源的硬件驱动。所有的闭源软件都被隔离成单独的软件包,放到Debian软件源的 "non-free" 部分。由此,Debian用户便可以自由地选择是使用一个完全开源的系统还是添加一些闭源驱动。 

2.3、Mandrake

作为Red HatLinux的一个分支,Mandrake将自己定位在桌面市场的最佳Linux版本上,也支持服务器上的安装,而且成绩并不坏。

Mankdrake的目标是尽量让工作变得更简单,安装非常简单明了,它完全使用GUI界面,还为磁盘分区制作了一个适合各类用户的简单GUI界面。软件包的选择非常标准。

Mandrake主要通过邮件列表和Mandrak 自己的Web论坛提供技术支持。

Mandrak没有重大的软件缺陷,只是它更加关注桌面市场,较少关注服务器市场。 

2.4、Ubuntu

Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。

Ubuntu基于Debian发行版和unity桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。随着云计算的流行,ubuntu推出了一个云计算环境搭建的解决方案,可以在其官方网站找到相关信息。

2.5、Red Hat Linux

可能这是最著名的Linux版本了,Red Hat Linux是公共环境中表现上佳的服务器。它拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。拥有大多数人都需要使用的主体软件包。

Red Hat Linux的安装过程也十分简单明了。它的图形安装过程提供简易设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工具完成,即使对于 Linux新手来说这些都非常简单。选择软件包的过程也与其他版本类似;用户可以选择软件包种类或特殊的软件包。系统运行起来后,用户可以从Web站点和 Red Hat那里得到充分的技术支持。一个符合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。

Red Hat的唯一缺陷是带有一些不标准的内核补丁,这使得它难于按用户的需求进行定制。 Red Hat通过论坛和邮件列表提供广泛的技术支持,它还有自己公司的电话技术支持,后者对要求更高技术支持水平的集团客户更有吸引力。 

2.6、SuSE

总部设在德国的SuSEAG在商界已经奋斗了8年多它一直致力于创建一个连接数据库的最佳Linux版本。为了实现这一目的,SuSE与Oracle 和IBM合作,以使他们的产品能稳定地工作。SuSE还开发了SuSE Linux eMail ServerIII,一个非常稳定的电子邮件群组应用。

基于2.4.10内核的SuSE 7.3,在原有版本的基础上提高了易用性。安装过程通过GUI完成,磁盘分区过程也非常简单,但它没有为用户提供更多的控制和选择。在SuSE 操作系统下,可以非常方便地访问Windows磁盘,这使得两种平台之间的切换,以及使用双系统启动变得更容易。SuSE的硬件检测非常优秀,该版本在服务器和工作站上都用得很好。

SuSE拥有界面友好的安装过程,还有图形管理工具,可方便地访问Windows

磁盘,对于终端用户和管理员来说使用它同样方便,这使它成为了一个强大的服务器平台。 SuSE也通过基于Web的论坛提供技术支持,另外它有电话技术支持。 

2.7、Linux Mint

Linux Mint是一份基于Ubuntu的发行版,其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件。它与Ubuntu软件仓库兼容。Linux Mint 是一个为pc和X86电脑设计的操作系统。

linux Mint可以很好的在一个单系统的电脑上运行,但是它也可以自动检测其他操作系统并与其互动,例如,如果你安装Linux Mint在一个安装了Windows版本的(xp,vista或者其他版本),它会自动检测并建立双启动以供您在开机的时候选择启动哪个系统。并且你可以在Linux Mint下访问Windows分区。Linux是更安全,更稳定,更有效并且日益易于操作的甚至可以和Windows相媲美的系统。 

2.8、Gentoo

Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统 ——Portage包管理系统。 

2.9、centos

CentOS(CommunityENTerprise Operating System)是Linux发行版之一,它是来自于Red HatEnterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red HatEnterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。

CentOS 是RHEL(Red HatEnterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。

RHEL在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式

其它:

Redhat,应该称为Redhat系列,包括RHEL(RedhatEnterprise Linux,也就是所谓的Redhat Advance Server收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

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

Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有多个版本可供选择,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。

FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。

FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

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

3.1、一切皆文件:把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;open(), read(), write(), close(), delete(), create()

3.2、由众多功能单一的程序组成;一个程序只做一件事,并且做好;组合小程序完成复杂任务;

3.3、尽量避免跟用户交互;目标:易于以编程的方式实现自动化任务;

3.4、使用文本文件保存配置信息;

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

命令使用格式:COMMAND OPTIONS ARGUMENTS,短选项可以合并,例如:ls -ld 

4.1、ifconfig:查看和配置网络设备。

4.2、echo:回显,打印,格式化输出

echo [SHORT-OPTION]… [STRING]…

-n: 不进行换行;

-e:让转义符生效;

\n:换行

\t:制表符

STRING可以使用引号,单引号和双引号均可用;

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

~]# echo '$SHELL'

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

~]# echo "$SHELL"

示例:

[root@centos6 ~]# echo "hello"

hello

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

hello[root@centos6 ~]# 

[root@centos6 ~]# 

[root@centos6 ~]# echo '$SHELL'

$SHELL

[root@centos6 ~]# echo "$SHELL"

/bin/bash

[root@centos6 ~]#

  4.3、tty:显示自己终端名

[root@centos6 ~]# tty

/dev/pts/1

[root@centos6 ~]# 

4.4、startx:启动图形输界面

4.5、export:设置全局变量

4.6、pwd:显示当前路径

4.7、history:查看历史命令

            -c

            -d

            -数字 历史命令的顺序号,再次执行相关命令

4.8、shutdown:安全关机或重启

            -h 关闭系统在断电

            -r 重启

            -k 给所有在线用户发出警告信息

            -c 取消关机命令

4.9、poweroff:关闭电源

            -f –force 强制重启

            -n –no-sync 直接重启,不将内存的数据写入磁盘

4.10、reboot:正常重启

4.11、hwclock:硬件时钟

            -s,–hctosys以硬件时间为准

            -w,–systohc以系统时间为准

4.12、date:系统时钟

显示日期时间:date [OPTION]… [+FORMAT]

             FORMAT:格式符

             %F

             %T

             %Y

             %m

             %d

             %H

             %M

             %S

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

            

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

5.1、获取命令的帮助信息

            help+COMMAND

            COMMAND+–help(-h)

            man+COMMAND

            info+COMMAND

            程序自身的帮助文档:/usr/share/doc/COMMAND.VERSION

            查看程序官方文档

            发行版的官方文档

            Google,百度

5.2、man手册页各节及内容

             man1 用户命令及应用程序

             man2 系统调用和内核出错代码

             man3 库调用

             man4 设备驱动程序和网络协议

             man5 标准文件格式

             man6 游戏和演示

             man7 各种文件和文档

             man8 系统管理命令

             man9 含糊的内核规范和接口

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

/:根

/boot/:系统启动目录,内核文件vmlinuz,引导文件,启动加载器boot loader,grub(开机设置文件相关);

/root/:root用户家目录;

/home/用户名:普通用户家目录;

/bin/:一般命令存放目录;

/sbin/:开机或单用户模式还能操作的命令;

/etc/:配置文件存放目录,init.d下存放了各种软件的启动脚本;

/dev/:任何设备与接口设备都是以文件的形式存放在此目录,通过访问目录下的文件,就等于访问某个设备,这就相当于是设备的入口,类似有/dev/null,/dev/zero,dev/tty,/dev/sd*,/dev/lp*,/dev/hd*等设备文件;

/lib/:基本共享库,内核模块文件/lib/modules;

/lib64:专用于x86_64系统上的辅助共享库文件存放位置;

/usr/:Unix Software Resource,Linux系统安装完成软件的默认安装目录。相当于Windows下的C:\Windows\和C:\Program files\两个目录的综合。/usr/的子目录包括:

/usr/bin/用户可使用命令

/usr/include/包含文件

/usr/lib/软件的函数库,目标文件以及不被一般用惯用的执行文件或脚本。

/usr/sbin/非系统正常运行所需的系统命令。

/usr/local/本地软件或用户安装的软件目录

/usr/share/放置共享文件的目录,其中有/usr/share/man在线帮助文档,/usr/share/doc软件杂项文档说明,/usr/share/zoneinfo与时区有关的时区文件。

/usr/src/一般源码放置位置。

/var/:常态性变动的文件,包括缓存(cache)、登录文件(log file)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),也许有MySQL数据库的文件等。/var/的子目录包括:

/var/lib

/var/cache程序运行过程中产生的缓存文件

/var/lock锁文件

/var/log日志文件

/var/run

/var/mail邮件

/var/spool程序数据池

/var/spool/cron

/var/spool/mail

/var/spool/mqueue

/var/spool/lpd

/opt/:第三方软件安装目录

/mnt/:临时挂载目录

/media/:如cdrom,floppy等暂存媒体;

/sys/:属于虚拟文件系统,内存中的数据,如内核、文件系统等。

/proc/:属于虚拟文件系统,内存中的数据,如内核、程序进程、外部设备的状态,网络状态等,处于动态变化中。

/srv/:service,一些网络服务启动后,这些服务所需要取用的数据目录。常见的服务有关www,FTP等,不同服务在不同的子文件夹中。

/tmp/:临时存放目录,所用用户都能访问,

Lost+found当文件发生错误时,将一些丢失的片段放置到这个目录下。

原创文章,作者:可可偶,如若转载,请注明出处:http://www.178linux.com/34967