问题一:描述计算机的组成及其功能。

计算机的组成分为两大部分,分别是硬件组成部分和软件组成部分

硬件组成分为五个部分:运算器,控制器,存储器,输入设备,输出设备

马哥linux第一周作业---基本班_第1张图片

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

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

外设的访问等。

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

4、输入设备(input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设。输入设备的作用是将程序,原始数据、文字、字符,控制命令或采集的数据等信息输入到计算机中,常见的输入设备有键盘、鼠标、光电输入机、磁带机、磁盘机,光盘机等。

5、输出设备(output system):输出设备把计算机的中间结果或最后结果、机内的各种数据

符号及文字或各种控制信号等信息输出出来。计算机常用的输出设备有终端CRT,打印机等

Cpu=控制器+运算器   主板=I/O总线,输入输出系统  存储器=内存+硬盘

I/O设备:键盘,鼠标,扫描仪,显示器等等

 

软件组成分为两部分:系统软件和应用软件

系统软件:系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预和各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得他们可以协调工作。

应用软件(applicationsoftware)是用户可以使用的各种程序设计语言,以及各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。应用软件包是利用计算机解决某类问题而设计的程序的集合,供多用户使用。

 

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

ArchLinux,一个基于KISS(Keep It Simple and Stupid)的滚动更新的操作系统。

CentOS,从Red Hat发展而来的发行版,由志愿者维护,旨在提供开源的,并与Red Hat 100%兼容的系统。

Chakra,一个从ArchLinux派生出来,只使用KDE桌面的半滚动更新发行版。

Debian,一个强烈信奉自由软件,并由志愿者维护的系统。

Elementary OS:基于Ubuntu,接口酷似Mac OS X。

Fedora,是Red Hat的社区版,会经常引入新特性进行测试。

Gentoo,一个面向高级用户的发行版,所有软件的源代码需要自行编译。

Knoppix,第一个Live CD发行版,可以从可移动介质运行,Debian的派生版。

Kubuntu,使用KDE桌面的Ubuntu。

Linux Mint,从Ubuntu派生并与Ubuntu兼容的系统。

Mandriva,最初为Red Hat的派生版,现在由法国一个同名的公司维护。

OpenGEU,Ubuntu的派生版。

openSUSE,最初由Slackware分离出来,现在由Novell维护。

PCLinuxOS,Mandriva的派生版本,由社区维护的非常流行的发行版。

Red Hat Enterprise Linux,Fedora的商业版,由Red Hat维护和提供技术支持。

Slackware,最早的发行版之一,1993年创建,由Patrick J. Volkerding维护。

Ubuntu,一个非常流行的桌面发行版,由Canonical维护。

gOS和其他上网本用的系统

 

Debian:三大主流发行版之一,以社区方式运作,没有商业公司支持

      knopix是基于Debian的二次发行

ubuntu是基于Debian的二次发行

 knUbuntu是基于ubuntu的二次发行

nUbuntu是基于ubuntu的二次发行

Mint是基于ubuntu的二次发行 

  slackware:三大主流发行版之一,

       slackware是SLS的一个分支

       slackware中有一个著名的子分支-S.U.S.E。

       S.U.S.E企业版分支-SLES。

      S.U.S.E个人版分支-openSUSE

redhat:三大主流发行版之一,

       redhat个人版分支-Fedora Core

       redhat企业版分支-Red Hat Enterprise

       CentOS是基于Red Hat Enterprise版的二次发行

Gentoo:Gentoo是基于enoch二次发行版

ArchLinux:是Linux新贵

 

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

Linux作为自由软件(GNU),同时也遵循自由软件的思想:

(1) 自由使用

(2) 自由学习和修改

(3) 自由分发

(4) 自由创建衍生版

Linux的哲学思想

( 1 )一切皆文件:把几乎所有资源,包括硬件设备都组织为文件格式

( 2 )由众多单一目的小程序组成:一个程序只实现一个功能,而且要做好

( 3 )组合小程序完成复杂任务

( 4 )尽量避免跟用户交互(目标:实现脚本编程,以自动完成某些功能)

( 5 )使用纯文本文件保存配置信息(目标:一款合用的文本编辑器即能完成系统配置工作)

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

命令的语法通用格式:

  ~]# command options arguments

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

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

   命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件。

   多数系统程序文件都存放在:/bin, /sbin,/usr/bin, /uer/sbin, /usr/local/bin, /usr/local/sbin

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

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

   共享库:存放在:/lib, lib64, /usr/lib /usr/lib64  /usrlocal/lib, /usr/local/lib64

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

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

 

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<长度> 为网卡设置传输列队的长度

 

echo命令

功能:echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。

格式:echo [选项] [参数]

参数:参数为指定要打印的变量

选项:

使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \\ 插入\字符; \nnn 插入nnn(八进制)所代表的ASCII字符;

 

Tty命令

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

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

格式:tty[-s][--help][--version]

参数:

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

--help在线帮助。

--version显示版本信息

startx命令

功能:startx命令用来启动X Window,实际上启动X Window的程序为xinit

格式:startx(参数)

参数:

    客户端及选项:X客户端及选项; 服务器及选项:X服务器及选项。

 

Export命令

功能:export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。 一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

格式:export(选项)(参数)
   
选项:-f:代表[变量名称]中为函数名称;

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

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

参数:变量:指定要输出或者删除的环境变量。

 

Pwd命令

功能:pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称

格式:pwd(选项)

选项:--help:显示帮助信息; --version:显示版本信息。

History命令

功能:history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。 历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。

格式:history(选项)(参数)

选项:-c:清空当前历史命令;

-a:将历史命令缓冲区中命令写入历史命令文件中;

-r:将历史命令文件中的命令读入当前历史命令缓冲区;

-w:将当前历史命令缓冲区命令写入历史命令文件中。

参数:n:打印最近的n条历史命令。

 

Shutdown命令

功能:shutdown命令用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

格式:shutdown(选项)(参数)

选项:-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;

-f:重新启动时不执行fsck;

-F:重新启动时执行fsck;

-h:将系统关机;

-k:只是送出信息给所有用户,但不会实际关机;

-n:不调用init程序进行关机,而由shutdown自己进行;

-r:shutdown之后重新启动;

-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。

参数:

    [时间]:设置多久时间后执行shutdown指令;

[警告信息]:要传送给所有登入用户的信息。

        

poweroff命令

功能:poweroff命令用来关闭计算机操作系统并且切断系统电源。

格式:poweroff(选项)

选项:-n:关闭操作系统时不执行sync操作;

-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;

-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;

-f:强制关闭操作系统;

-i:关闭操作系统之前关闭所有的网络接口;

-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

  

 reboot命令
    功能:reboot命令用来重新启动正在运行的Linux操作系统。

格式:reboot(选项)

选项:-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;

-f:强制重新开机,不调用shutdown指令的功能;

-i:在重开机之前,先关闭所有网络界面;

-n:重开机之前不检查是否有未结束的程序;

-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

hwclock命令

功能:hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

格式:hwclock(选项)

选项: --adjust:hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟;

--debug:显示hwclock执行时详细的信息;

--directisa:hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟;

--hctosys:将系统时钟调整为与目前的硬件时钟一致; --set--date=<日期与时间>:设定硬件时钟; --show:显示硬件时钟的时间与日期;

--systohc:将硬件时钟调整为与目前的系统时钟一致;

--test:仅测试程序,而不会实际更改硬件时钟;

--utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作;

--version:显示版本信息。

 

date命令

功能:date命令是显示或设置系统时间与日期。很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

格式:date(选项)(参数)

选项:-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号; -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号; -u:显示GMT; --help:在线帮助;--version:显示版本信息。

参数:<+时间日期格式>:指定显示时使用的日期时间格式。

日期格式字符串列表:

    %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)

 

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

1、内建命令可以通过help COMMAND

2、外部命令可以通过man手册获取帮助,COMMAND --help

man命令的分段机制:1-8:

   1:用户命令

   2:系统调用

   3:库调用

   4:设备文件

   5:文件格式

   6:游戏

   7:杂项

   8:管理命令

 

 

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

Linux文件系统 <逻辑视图>

    根文件系统(rootfs):

        root filesystem

    LSB,FHS:(FileSystem HeiracheStandard)

 

        /boot: 引导文件存放目录,内核文件(vmlinuz),引导加载器(bootloader,grub)都存放于此目录.

        /bin: 供所有用户使用的基本命令,不能关联至独立分区,OS启动即会用到的程序.

        /sbin: 管理类的基本命令,不能管理至独立分区,OS启动即会用到的程序.

        /lib: 基本共享库文件,以及内核模块文件(/lib/modules).

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

        /etc: 配置文件目录(纯文本文件).

        /home/USERNAME: 普通用户家目录.

        /root: 管理员的家目录(有些发行版管理员是没有家目录的,因为不使用管理员登录,权限太大,风险太大,使用su,sudo).

        /mnt: 临时文件系统挂载点

        /media: 便携式移动设备挂载点

            cdrom

            usb

        /dev: 设备文件及特殊文件存放位置

            b:block device   块设备,可随机访问

            c:character device 字符设备,线性访问,有时间先后

        /opt: 第三方应用程序的安装位置

        /srv: 系统上运行的服务用到的数据

        /tmp: 临时文件存储位置

        /usr: universalshared,read-only data;

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

            sbin:

            lib:

            lib64:

           include: C程序的头文件(headerfiles).

            share:结构化独立数据,例如doc,man等

            local:第三方应用程序安装位置.

               bin,sbin,lib,lib64,etc

        /var: variable datafiles

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

            lib: 应用程序状态信息数据

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

            lock: 锁文件

            log: 日志目录及文件

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

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

            spool:应用程序数据池

            tmp: 保存系统重启

        /proc: 用于输出内核与进程信息相关的虚拟文件系统

        /sys: 用于输出当前系统上硬件设备相关信息的虚拟文件系统

        /selinux: securityenhanced linux,selinux相关的安全策略等信息的存储位置