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
评论列表(1条)
写的很好,排版还可以在漂亮一点,加油,有些字都看不到了