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

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

    计算机的组成部分分为硬件部分与软件部分

        硬件部分: I/O设备 + 运算器 + 存储器 + 控制器

        软件部分:  kernel + Application

说完了硬件部分逻辑层面上的组成,那么我们实际能看到的这些是什么呢:

    通常意义而言CPU就是控制器+运算器;内存,磁盘,固态等存储设备即为硬件部分的存储器;那么这里剩下的只有I/O设备没有提到了,其中I代表的是input,即为输入设备,最最常见的输入设备就是我现在正在用来敲博客的键盘,还有一些比如说扫描仪等,这里的O代表的是output,是指输出设备,显示器是输出设备,还有哪些呢,稍微想了下,也就想到了另一个设备,投影仪,为了方便我自己记忆(即使这个博客是我写的,难免会忘),所有能让我告诉计算机干什么的,都是输入设备;所有让我看到计算机反馈结果的都是输出设备。

    其实上面提到了I/O设备在我心中的理解,书面上所表达的内容就不赘述了。说到控制器与运算器的结合体,那么就是指CPU了,CPU架构我所知道的就是  Inter公司的x64架构以及x86架构,I还有其他公司的,例如IBM公司,惠普公司他们自己家研发的且是我所没用过一些架构就不多提了,其实我也不知道这些架构具体区别在哪里,听马老师视频内容里面提到的是微指令集的不同,以及开放的接口有所不同(天啊,老师,您说的丑陋的底层接口,到底是指啥啊)。所谓控制器,网上查阅的资料反正是没看懂,通俗意义上来说应该是通过指令集来控制整个计算机。运算器负责进行逻辑运算和算数运算,根据资料,逻辑运算分为三种:逻辑与,逻辑或,逻辑非(这都是啥啊,知识的掌握有待加强)。最后不得不提到就是存储器了,首先是内存,有一句话是这样说的,所有的进程都是跑在内存里面的,断电所有内存中的数据丢失,为了解决数据丢失的问题,就又有了机械硬盘,当然还有速度更加强大的固态硬盘,简单总结下就是,内存是用来跑程序的,断电数据丢失;硬盘用来存数据的,断电数据不丢失。

软件部分:

    kernel,中文翻译为内核,狭义上的操作系统,是通常意义上操作系统的最底层,负责硬件的驱动以及提供系统所需要的各种功能,例如:防火墙,程序管理,文件系统等。可以理解为硬件与软件之间的桥梁。

    Application,中文翻译为应用,跑在内核之上的程序,用来完成具体的功能的实现,比如说,画图,总要有一个画图软件的吧,那这个画图软件就是Application。

2.按系列罗列linux的发行版并描述不同发行版之间的联系与区别

    三大主流系列:Redhat   Debian   slackeare

    三大主流系列的区别:包管理方式的不同,以及包管理前端软件的不同。

                 包管理        前端软件        

    Redhat:        rpm          Yum

     Debian:        dpkg          Apt

     S.U.S.E        rpm          zypper(S.U.S.E是slackware的二次发行版)   

    还有一些比较著名的linux发行版,比如说Gentoo,archlinux

    还有一个比较特殊的linux发行版,LFS,提供的是一本书,教我们如何从零构建Linux

    Redhat–>Centos Centos是Redhat的社区版,有着相同的源码

        –>Fedora 为Redhat测试软件,是桌面版的

    

    Debian–>Ubuntu Debian的二次发行版,有着漂亮的界面

        –>Knopix Debian的二次发行版

    slackware–>S.U.S.E slackware的二次发行版,流行与欧洲

            S.U.S.E–>opensuse opensuse是S.U.S.E的社区版,由社区支持,完全免费。

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

    

    1、一切皆文件;    系统中所有的一切,包括设备等,都是以文件的形式出现。

    2、单一目的的小程序; 每个小程序完成一种功能,并且尽量保证这一个小程序出现的bug少。

    3、组合小程序完成复杂任务;  通过拼凑各种功能的小程序,来完成一件复杂的任务。

    4、文本文件保存配置信息;    所有软件的配置文件都是以文本文件的形式来进行保存的,方便通过修改配置文件来完成软件不同功能的实现。

    5、尽量避免捕获用户接口;  方便编程完成自动化操作

  理解:以上应该是linux的设计理念吧,那为什么要设计成上面这个样子呢?那得问设计者。不过提到哲学思想,linux是开源的代表,自由和分享是开源的精神思想,就好像老师在课中提到的共产主义。自由不是狭义上的软件源代码获取的自由,而是外界对于你形成帮助的自由,在你还是新人时无需为获得的帮助付出金钱上的代价,代码的免费获取,文档资料的获取,都是自由的,没有背负金钱的枷锁。当你通过自由得到的各种资源,成为一个技术达人,或者说,成为了一个小有成就的,在面对那些需要帮助的人,在力所能及的范围内提供无私的分享以及帮助,在各种论坛上分享经验,写技术博客。

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

命令的使用格式:命令 [选项] [参数] 

为了对命令的解释更加简洁明了,这里将以相对简单的方式来解释这些命令。

不得不说的是,我选择了minimal的安装方式,没有办法完成对ifconfig的解释!!!

这里就用ip addr list代替下吧,就是用来显示网络设备状态的,有图有真相

blob.png

有没有看到eno16777736,这玩意就是我的网卡,至于上面那个lo肯定就是环回口了。环回口干嘛的,我也不知道啊


echo  功能是显示文本  语法格式 echo [-ne] [字符串]  echo会将输入的字符串间以空白符隔开,并在最后加上换行符号

blob.png

blob.png

tty 功能是显示终端链接标准输入设备的文件名称 语法格式: tty [-s] 试了下,不知道后面加个s能干嘛

blob.png

startx 问题又来了,我是minimal安装,没有桌面,我倒是想装,可是我不会啊。正题来了,这是一个用于启动x-window程序的命令

用法是 startx & 你在哪个虚拟终端启动的,哪个虚拟终端就是你的x-window,这个我真的没图啊。

export 设置或显示环境变量 语法:export [-fnp][变量名称]=[变量设置值] 没看懂这个,不知道怎么去操作


pwd 显示当前的工作目录

blob.png

history 功能是列出之前用过的命令 语法: history [N] [-arw] [文件名]

blob.png

shutdown   功能是关机 语法: shutdown [选项] [秒数] [时间] [警告信息]

我的实例时 shutdown -h now  立即关机,图就没有了。


poweroff 语法:poweroff [选项] 这是一种不安全的关机方式,可能导致数据丢失,建议使用shutdown

用法就是直接 poweroff


reboot 语法: reboot [选项] 重新启动计算机

#reboot 先关闭所有的网络接口设备后,再重新开机

hwclock 功能是显示与设置硬件时钟 语法: hwclock [选项]

blob.png

date  显示和设置系统系统时间  语法 date [选项] [参数] 

blob.png

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

内部命令使用 help 命令(中间有空白符隔开)来查看命令的帮助

外部命令使用 man 命令 来查看系统里面自带的帮助文档

       info 命令 来查看在线的帮助文档(这个文档主要是对man帮助的不足,以及命令的信息)

         应用程序自带的帮助文档在/usr/share/doc/ 里面

程序官方站点,主流发行版官网文档,搜索引擎这些就非狭义上的linux上获取命令的帮助信息。

着重介绍man命令

man帮助里面的文档位置在/usr/share/man/ 下,其中不同部分的作用分别是一下内容:

    NAME:简单命令、数据名称说明

    SYNOPSIS:简短的命令语法(sysntax)简介
    DESCRIPTION:较为完整的说明,需要认真阅读
    OPTION:针对SYNOPSIS中列举的所有可用选项说明
    COMMANDS:当这个软件在执行的时候,可用在此软件中使用命令
    FILES:这个软件或数据所使用或参考或链接到的文件
    SEE ALSE:可以参考的,与这个命令有关的其他说明
    EXAMPLE:一些可以参考的范例,这个最好用

    BUGS:是否有相关的bug

    …同类可以重复使用

man文档章节划分(需要注意的是有的命令里会同时出现在不同的章节里)

    1:用户命令;

    2:系统调用;

    3:C库调用;

    4:设备文件及特殊文件;

    5:文件格式;(配置文件格式)

    6:游戏使用帮助;

    7:杂项;

    8:管理工具及守护进行;

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

FHS:

Filesystem Hierarchy Standard

/bin:所有用户可用的基本命令程序文件;

/sbin:供系统管理使用的工具程序;

/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;

/dev:存储特殊文件或设备文件;

设备有两种类型:字符设备(线性设备)、块设备(随机设备);

/etc:系统程序的配置文件,只能为静态;

/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;

/root:管理员的家目录;可选;

/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块

libc.so.*:动态链接的C库;

ld*:运行时链接器/加载器;

modules:用于存储内核模块的目录;

/lib64:64位系统特有的存放64位共享库的路径;

/media:便携式设备挂载点,cdrom, floppy等;

/mnt:其它文件系统的临时挂载点;

/opt:附加应用程序的安装位置;可选路径;

/srv:当前主机为服务提供的数据;

/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

/usr:usr Hierarchy,全局共享的只读数据路径;

bin, sbin

lib, lib64

include:C程序头文件;

share:命令手册页和自带文档等架构特有的文件的存储位置

local:另一个层级目录;

X11R6:X-Window程序的安装位置

src:程序源码文件的存储位置

/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;

/var:/var Hierarchy,存储常发生变化的数据的目录;

cache Application cache data

lib Variable state information

local Variable data for /usr/local

lock Lock files

log Log files and directories

opt Variable data for /opt

run Data relevant to running processes

spool Application spool data

tmp Temporary files preserved between system reboots

/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward;

/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口.  

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

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-17 16:04

    写的很好,排版还可以在漂亮一点,加油

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code