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

week1作业:
1.描述计算机的组成及其功能。
   计算机的组成:
   CPU:控制器、运算器、寄存器、CPU缓存(RAM,一级、二级、三级缓存)
   控制器(Control):是整个计算机的中枢神经,其功能是对程序规
定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算各部分工作及内存与外设的访问等。
   运算器(Datapath):其功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
   寄存器:用来暂存指令、数据和地址;
   分类:
   指令寄存器(IR)
   程序寄存器(PC)
   CPU缓存:RAM,数据交换的缓冲区;
          由于CPU的运算速率远远高于内存的读写速率,这样会使CPU花费很长时间等待数据到来或把数据写入内存,
                                    CPU缓存就是为了缓减这种矛盾而出现;CPU缓存中的数据是内存中的一小部分,但是这一部分是CPU能够短时高速访问的;
                                    当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快CPU读取速率,因此,CPU缓存能够大幅提高CPU的性能;
   存储器:内存,RAM(Random Access Memory,随机访问存储器)
   其功能是存储程序、数据和各种信号、命令等信息;
   Input设备:输入设备,下指令,提供数据等;
   其功能是将程序、原始数据、文字、字符、控制命令等各种数据信息输入到计算机;常见的输入设备有键盘、鼠标等;
   Output设备:输出数据加工的结果;
   其功能是把计算机处理的各种结果(如,中间数据、最后数据、控制信号等)输出出来;常见的输出设备有显示器、打印机等;
   备注:
   程序=指令+数据,存储于内存中;
   CPU包含控制器和运算器;
   外设(外部设备)=输入设备+输出设备
2.按系列罗列linux的发行版,并描述不同发行版之间的联系与区别。
   linux的发行版大体分为2类:商业版(Enterprise)和社区版(Community);商业版如Redhat、Solaris等,社区版如FreeBSD、Debian、CentOS等;
   Linux大体可以分为4大家族:
   (1)Redhat系列包括RHEL、Fedora、CentOS,使用Yum方式管理软件包,使用人群较大,较为流行;RHEL有一套完善的认证体系;
   CentOS是其社区克隆版本,二者稳定性非常好,适合服务器使用;Fedora的稳定性较差;
   (2)Debian系列包括Debian和Ubuntu等,使用apt-get/dpkg 包管理方式;
                    据我所接触到的很多游戏公司以及一些国外的软件开发公司偏好使用。
   ubuntu是基于debian发行版,是一个以桌面应用为主的linux操作系统,在桌面化linux操作系统上较为流行,目前ubuntu有一套完整的ubuntu生态体系(手机、平板、PC端、服务器端、云端);
   Linux Minit也是基于Debian的一个发行版;
   (3)SUSE系列包括SLES,openSUSE等,是Noverll公司产品;SLES是企业版,openSUSE是社区版;
            SUSE采用Yast包管理方式,是基于RPM为基础的;
   (4)其它发行版本如Gentoo、Arch等,Gentoo、Arch定制性很强,上手比较困难;
3.描述linux的哲学思想,并按照自己的理解对其进行解释性描述。
   linux的哲学思想:
   (1)一切皆文件;
   linux系统上所有的东西都是以文件形式出现的;如磁盘设备、驱动、进程、管道等都被抽象成了文件;
   (2)能简写,绝不全写;
   linux上很多命令基本上选项参数都带有简写模式,设置一些"命令+参数"都被定义别名,使用一个命令来表示;
   (3)尽量避免捕获用户接口;
   (4)作用范围越小的越是最终生效的;
   在linux上很多服务配置文件中都分为全局配置和局部配置,如果有重复的参数配置时,通常都是以局部配置的参数配置为准,作用域小的最终生效;
   (5)组合小命令完成复杂任务;
   linux上的命令通过一些参数的配合具有很强大的能力,通过合适的命令组合通常都能够完成非常复杂的任务;
   如查看当前系统上tcp的连接情况:
   netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
   使用netstat和awk命令的组合就能快速地统计到结果;
4.说明linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
   (1)ifconfig命令
   #ifconfig -a:列出所有接口的详细信息;
   [root@director1 ~]# ifconfig -a
   eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
   inet 10.0.0.3  netmask 255.255.255.0  broadcast 10.0.0.255
   inet6 fe80::20c:29ff:fe59:396f  prefixlen 64  scopeid 0x20<link>
   ether 00:0c:29:59:39:6f  txqueuelen 1000  (Ethernet)
   RX packets 444  bytes 41402 (40.4 KiB)
   RX errors 0  dropped 0  overruns 0  frame 0
   TX packets 372  bytes 53149 (51.9 KiB)
   TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
   eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
   inet 172.16.0.1  netmask 255.255.255.0  broadcast 172.16.0.255
   inet6 fe80::20c:29ff:fe59:3979  prefixlen 64  scopeid 0x20<link>
   ether 00:0c:29:59:39:79  txqueuelen 1000  (Ethernet)
   RX packets 0  bytes 0 (0.0 B)
   RX errors 0  dropped 0  overruns 0  frame 0
   TX packets 12  bytes 888 (888.0 B)
   TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
   lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
   inet 127.0.0.1  netmask 255.0.0.0
   inet6 ::1  prefixlen 128  scopeid 0x10<host>
   loop  txqueuelen 0  (Local Loopback)
   RX packets 0  bytes 0 (0.0 B)
   RX errors 0  dropped 0  overruns 0  frame 0
   TX packets 0  bytes 0 (0.0 B)
   TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
   #ifconfig <interface>:查看指定接口的网络信息;
   [root@director1 ~]# ifconfig eth0
   eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
   inet 10.0.0.3  netmask 255.255.255.0  broadcast 10.0.0.255
   inet6 fe80::20c:29ff:fe59:396f  prefixlen 64  scopeid 0x20<link>
   ether 00:0c:29:59:39:6f  txqueuelen 1000  (Ethernet)
   RX packets 482  bytes 44862 (43.8 KiB)
   RX errors 0  dropped 0  overruns 0  frame 0
   TX packets 404  bytes 59267 (57.8 KiB)
   TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
   #ifconfig <interface> <address>[/<prefixlen>]|[netmask] [broadcast]:添加子网卡并配置临时地址;
   [root@director1 ~]# ifconfig eth1:0 172.16.0.100/24
   [root@director1 ~]# ifconfig eth1:0
   eth1:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
   inet 172.16.0.100  netmask 255.255.255.0  broadcast 172.16.0.255
   ether 00:0c:29:59:39:79  txqueuelen 1000  (Ethernet)
   #ifconfig <interface> up|down:临时启用或关闭网卡;
   [root@director1 ~]# ifconfig eth1 down
   [root@director1 ~]# ifconfig 
   eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
   inet 10.0.0.3  netmask 255.255.255.0  broadcast 10.0.0.255
   inet6 fe80::20c:29ff:fe59:396f  prefixlen 64  scopeid 0x20<link>
   ether 00:0c:29:59:39:6f  txqueuelen 1000  (Ethernet)
   RX packets 1150  bytes 106278 (103.7 KiB)
   RX errors 0  dropped 0  overruns 0  frame 0
   TX packets 913  bytes 129375 (126.3 KiB)
   TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
   lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
   inet 127.0.0.1  netmask 255.0.0.0
   inet6 ::1  prefixlen 128  scopeid 0x10<host>
   loop  txqueuelen 0  (Local Loopback)
   RX packets 0  bytes 0 (0.0 B)
   RX errors 0  dropped 0  overruns 0  frame 0
   TX packets 0  bytes 0 (0.0 B)
   TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#ifconfig <address> mtu <NUM>:设置网卡的最大传输单元,默认是1500;
   [root@director1 ~]# ifconfig eth0 mtu 1460
   [root@director1 ~]# ifconfig eth0|grep mtu
   eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1460
   (2)echo命令
   用法:echo [参数] [字符串]
   参数:
   -n:输出不换行;
   -E:不启用反斜杠转义功能,默认;
   -e:启用反斜杠转义功能;
   \\:插入'\'字符;
   \a:发出警告声;
   \b:删除前一个字符;
   \c:最后不加入换行符号;
   \v|\f:换行但光标仍旧停留在原来位置;
   \n:换行且光标移至行首;
   \r:光标移至行首,但不换行;
   \t:插入tab符;
   示例:
   [root@director1 ~]# echo 'hello \n world'
   hello \n world
   [root@director1 ~]# echo -e 'hello \nworld'
   hello 
   world
   特殊用法:
   输出颜色文本
   [root@director1 ~]# echo -e "\033[44;31;1m HELLO \033[0m world"
   \033[44;31;1m HELLO:设置背景为蓝色,前景为红色,加粗的HELLO;
   \033[0m:重新设置屏幕到默认设置;
   (3)tty命令
   打印连接到标准输出的终端文件名称
   用法: tty [参数]
   参数: 
   -s,--slient,--quiet:不显示输出,指返回退出状态码;
   --help:显示帮助信息;
   --version:显示tty版本;
   示例: 
   [root@director1 ~]# tty
   /dev/pts/0
   [root@director1 ~]# tty -s
   [root@director1 ~]# echo $?
   0
   [root@director1 ~]# tty --version
   tty (GNU coreutils) 8.22
   Copyright (C) 2013 Free Software Foundation, Inc.
   License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
   This is free software: you are free to change and redistribute it.
   There is NO WARRANTY, to the extent permitted by law.
   Written by David MacKenzie.
(4)startx命令
   启动X Windows服务;
   用法: startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]
   (5) export命令
   用法:export [-fn] [名称[=值] ...] 或 export -p
   -f:指定shell函数
   -n:删除每个NAME名称的导出属性
   -p:显示所有导出的变量和函数的列表
   (6) pwd命令
   显示出当前/活动目录的名称
   示例:
   [root@kvm apache2]# pwd
   /usr/local/apache2
   (7) history命令
   显示当前终端输入过的历史命令信息;
   用法:history [参数]
   参数:
   -c:清空历史命令;
   -d offset:删除offset位置的历史条目;
   NUM:读取最新的NUM个历史命令;
   -r:读取历史文件的内容,使用它们作为当前历史;
   -w:将当前历史列表写入到历史文件,覆盖原有内容;
   示例:
   [root@kvm apache2]# history 4
   1017  man history
   1018  history -3
   1019  history 
   1020  history 4
   [root@kvm apache2]# history -c
   [root@kvm apache2]# history 
     22  history 
   (8) shutdown命令:
   用于关闭系统,可以指定立即或一段时间之后关闭系统;
   用法:shutdown [-t sec] [-arkhncfF] time [warning-message]
   参数: 
   -a:使用 /etc/shutdown.allow 来验证身份;
   -t sec:通知 init在转换到其它运行级别前,发送警告 (warning) 信号后延时 (sec) 秒数后再发送关闭 (kill) 信号;
   -k:并非关机,只是向所有人显示警告信息;
   -r:重启;
   -h:停机;
   -f:重启时跳过磁盘检测;
   -F:重启时强制磁盘检测;
   -c:取消运行中的shutdown进程;
   time:指定关机时间
   warning-message:指定发送所有用户的告警信息;
   示例: 
   [root@kvm apache2]# shutdown -h +5 "shutdown after 5 minutes "
   Shutdown scheduled for 二 2016-08-09 14:12:39 CST, use 'shutdown -c' to cancel.
   [root@kvm apache2]# 
   Broadcast message from root@kvm (Tue 2016-08-09 14:07:39 CST):
   shutdown after 5 minutes 
   The system is going down for power-off at Tue 2016-08-09 14:12:39 CST!
   shutdown -c
   Broadcast message from root@kvm (Tue 2016-08-09 14:07:43 CST):
   The system shutdown has been cancelled at Tue 2016-08-09 14:08:43 CST!
   (9) poweroff命令
   用来关闭系统并切断电源;
   用法:poweroff [参数]
   可不加参数;
   参数: 
   -n:关闭操作系统时不执行sync操作; 
   -w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中; 
   -d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录; 
   -f:强制关闭操作系统; 
   -i:关闭操作系统之前关闭所有的网络接口; 
   -h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
   (10) reboot命令
   用来重启系统;
   用法:reboot [参数]
   可不加参数; 
   参数:
   -d:重新启动时不把数据写入记录文件/var/tmp/wtmp;
   -f:强制重新开机,不调用shutdown指令的功能;
   -n:保存数据后再重新启动系统;
   -w:仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件;
   -h:在系统关机或poweroff之前,将所有的硬盘处于待机模式;
   -i:关闭网络设置之后再重新启动系统;
   (11) hwclock命令
   可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间;
   用法: hwclock [参数]
   功能:
   -r:读取硬件时钟并打印结果;
   -s,--hctosys:从硬件时钟设置系统时间;
   -w,--systohc:从当前系统时间设置硬件时钟;
   -c:定期将系统时钟与CMOS时钟相比较;
   -v:显示版本信息
   (12) date命令
   显示或设置日期时间;
   用法:
   date [OPTION]... [+FORMAT] 
   date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
   常用参数:
   -u:显示目前的格林威治时间
   %H:小时(00..23)
   %M:分钟(00..59)
   %S:秒(00..60) 
   %T:相当于%H:%M:%S
   %Y:年份,如2016
   %m:月份(01..12)
   %d:天,如01,11;
   %F:相当于%Y-%m-%d
   %D:直接显示日期(mm/dd/yy)
   %a|%A:显示星期
   示例:
   [root@kvm apache2]# date +"%F %T"
   2016-08-09 14:32:57
5.如何在linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
   获取命令帮助信息的方法:
   (1)COMMAND -h 
   (2)COMMAND --help 
   (3)help COMMAND 
   (4)man COMMAND 
   (5)info COMMAND
   man文档章节分类:
   1:普通的命令;
   2:系统调用;
   3:库函数;
   4:特殊文件,如/dev目录下各种文件;
   5:文件格式;
   6:游戏相关;
   7:其它内容相关;
   8:系统管理命令相关;
   9:内核例程相关;
6.请罗列linux发行版的基础目录名称法则及其功用规定。
   [root@director1 ~]# tree -L 1 /
   /
   ├── bin -> usr/bin
   ├── boot
   ├── dev
   ├── etc
   ├── home
   ├── lib -> usr/lib
   ├── lib64 -> usr/lib64
   ├── media
   ├── mnt
   ├── opt
   ├── proc
   ├── root
   ├── run
   ├── sbin -> usr/sbin
   ├── srv
   ├── sys
   ├── tmp
   ├── usr
   └── var
   /:根目录,文件系统入口;
   /bin:存放一般用户都可使用的二进制可执行命令;
   /boot:存放Linux内核及系统引导程序所需的文件;
   /dev:存放特殊设备文件;
   /etc:系统管理和配置文件;
   /home:普通用户的家目录;
   /lib:标准程序设计库或动态链接共享库,根文件系统上的程序所需的共享库;
   /media:空目录,可用于用户临时挂在其它文件系统;
   /mnt:空目录;
   /opt:给主机安装额外软件预留的目录;
   /proc:虚拟目录,是系统内存的映射;
   /root:root用户的家目录;
   /sbin:超级管理命令,通常存放的是系统管理员使用的命令;
   /srv:服务启动之后需要访问的数据目录;
   /sys:伪文件系统,是系统内核的映射;
   /tmp:临时目录;
   /usr:应用程序存放的目录;
   /var:某些大文件的溢出区,如日志文件;

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

(0)
上一篇 2016-08-15 14:31
下一篇 2016-08-15 14:31

相关推荐

  • lvs初探

    1,lvs是什么 lvs是Linux Virtual Server缩写,linux虚拟服务器,担任负载调度器(load balance)的角色,它不提供任何服务,用户请求到这里的时候,它是将客户需求转发至后端真正提供服务的服务,LVS分为两部分组成,ipvsadm管理集群服务的命令行工具,ipvs,是内核模块。由于ipvs采用基于ip负载均衡技术,所以具有很…

    Linux干货 2016-10-30
  • shell与kernel的理解

    Shell 的英文释义是外壳,与kernel 内核名词遥相呼应,一外一内,一壳一核。内核就像瑞士银行的金库,存放着客户的黄金等众多的(硬件)资产,闲杂人等(包括客户)当然是严格禁止入内的,而作为客户要存取金库中的资产则需要通过专门的特定管理人员代为操作完成,并把存取(操作)的结果呈现给客户。在Linux操作系统中,shell的职能就类似于金库的操作人员,客户…

    Linux干货 2016-02-14
  • Hadoop伪分布式模型

    # java -version # vim /etc/profile.d/java.sh export JAVA_HOME=/usr # yum install java-1.8.0-openjdk-devel # mkdir /bdapps # tar xf hadoop-2.7.4.tar.gz -C /bdapps/ # cd /bdapps # ln…

    2017-12-08
  • 迁移home到独立分区

    1,fdisk  /dev/sda  创建10G的分区 Lsblk 查看下新创建分区是否同步 partx  -a  /dev/sda 同步 2,mkfs.ext4  /dev/sda6  -L  /home 创建文件系统跟卷标 3,mkdir  /mnt/home  创建一个挂载点 mount  /dev/sda6  /mnt/home 挂载 4,cp  -…

    2017-12-14
  • bash脚本编程之数组、高级字符串处理、高级变量操作、用户环境配置

    概述:     承接之前脚本编程部分,本篇将介绍一下脚本编程基础语法的最后一部分内容,具体分为:         1、数组简介         2、高级字符串处…

    Linux干货 2016-08-24
  • 用户管理类命令

    2018-03-18

    Linux干货 2018-03-18

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-17 15:46

    写的很好,排版还可以在漂亮一点,加油,有些字都看不到了