第一周课程练习
1、描述计算机的组成及其功能?
1.1 现代主流的计算机(冯·诺依曼体系)主要由五部分组成,分别是控制器、运算器、存储器、输入和输出设备。控制器和运算器对应我们现实计算机看到的CPU,存储器对应内存和硬盘等存储设备,输入设备对应鼠标键盘等其它外设,输出设备对应显示器、音响、打印机等其它外设。
1.2 控制器、运算器、存储器、输入和输出设备功能如下:
1.2.1 控制器:控制器是整个计算机的枢纽,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
1.2.2 运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对从控制器取来的数据进行加工处理。
1.2.3 存储器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
1.2.4 输入设备:输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。
1.2.5 输出设备:把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。
2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别?
2.1 linux主流的三大原始发行版分别是,slackware、debian、redhat;当然还有一些其它的独立发行版如,ArchLinux、Gentoo等……
2.1.1 slackware
slackware是现存的最古老的linux发行版,对于配置人员的技术性要求较高,是一款高灵活性和高透明性的linux发行版。它的二次发行版是SUSE Linux,是一款欧洲非常出名的linux系统,它的衍生发行版是OpenSUSE,是一款完全免费的linux发行版,它们之间的关系就像RHEL和Fedora一样相辅相成。
2.1.2 debian
Debian GNU/Linux,简称Debian,一款Linux发行版,是为数极少的纯社区驱动的Linux发行版,优点是相对于其它linux版本稳定性较好,对硬件的性能要求较低,但是开发速速相对保守,无法将最新的技术囊获进来,版本更新周期较慢(每一到三年才会推出一个稳定版本)。它的二次发行版是ubuntu系统,ubuntu拥有较为优美的图形界面,如果只是从普通用户的角度,其良好的界面可以说是linux界的Windows。ubuntu每6个月发布一个新版本。ubuntu之下还有一个mint linux发行版,该版本也有一定名气。在国外使用debian和Ubuntu作为企业服务器或者个人计算机的用户较多。
2.1.3 redhat
redhat的主流发行版是RHEL,即Red Hat Enterprise Linux的缩写,是Red Hat公司的Linux系统。RHEL是国内用的比较多的一套linux发行版,该版本广泛应用于企业服务器,注重性能和稳定性以及对硬件的支持,每18个月发行一个新版本。红帽公司为了支持RHEL的发展,对原本的桌面版Red Hat Linux(已停止支持)发行套件与来自开源社区的 Fedora 合并,成为 Fedora Core 发行版本,许多新的技术都会在Fedora中检验,如果稳定的话红帽公司则会考虑加入RHEL中,其实可以这么认为,Fedora就是Red Hat发行Red Hat企业版linux的一个实验版本,拿用户做测试,为Red Hat企业版发布做基础。CentOS是RHEL的二次编译版本,除了logo标志其它组件基本和RHEL相同,由于RHEL里面的一部分代码是开源的,所以CentOS是合法的。使用CentOS可以获得与RHEL一样的功能和性能,其命令行下的人性化做得比较好,稳定,有着强大的英文文档与开发社区的支持。在网上有大量关于CentOS的文档支持和教学视频,适合想从事linux工作的初学者学习。
3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述?
3.1 一切皆文件。
在linux上,几乎所有资源,包括硬件设备组织都是以为文件格式存在;
3.2 单一目的的小程序。
linux系统是由由众多单一目的小程序组成,每一个程序只实现一个功能,可以通过组合多个小程序完成复杂任务;
3.3 使用纯文本文件保存配置信息。
linux系统使用使用文本编辑器即能完成系统配置工作;
3.4 尽量避免跟用户交互。
实现脚本编程,以自动完成某些功能;
3.5 提供机制,而非策略。
所谓机制就是“提供什么功能”;策略就是“实现什么功能”。这种独特的设计思想为设计者提供了更大的 空间使其更好的实现它;
PS,从别的博客摘抄:在Linux 内核中有这样一个概念,它是这样描述的“每个线程都在等待其他线程持有的锁,但是绝没有一个线程会释放它们一开始就持有的锁,所以没有任何锁会释放后被其 他线程使用。这种类型的死锁叫做致命拥抱(deadly embrace)。”其实这段描述语言的例子在我们现实中是经常存在的。例如:有甲乙两人,一开始甲有一个苹果,乙有一个橘子(姑且这样比喻,这时甲非常想要一个橘子,而乙非常想要一个苹果(将这种“非常想 要”夸张的理解为如果得不到各自所需要的水果,两人可能会die),但同时两人又都不想放弃其已拥有的水果,结果两人只能同时终结自己的“完美人生”。人何尝不是如此呢?握着手中已有的东西,又想得到新的东西,却又不肯放弃自己已得的东西,最后的结果只能是“一无所有”。我一直相信,世界是处在一种守恒的状态,得到的和失去的是成正比的。可能你正在经历失败,但是你得到了教训和经验;可能你正处于人生的失落的状态,但是你却得到前所未有的机会去认真审慎自己;可能你的人生是非常不幸的人,但是你却成为了最有故事的人。我从不相信有什么好运,因为幸运只能是一时的,而非一世。
4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述?
4.1 命令使用格式:
COMMAND [OPTIONS……] [ARGUMENTS……] 选项:启用或关闭命令的某个或某些功能; 短选项:-c,例如:-l,-h 个短选项可合并使用,例如-l -h,可写出-lh 长选项:--word例如: --long,--human-readable 参数:命令的作用对象,向命令提供数据:
4.2 ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用格式及实例
4.2.1 ifconfig:查看和配置网络接口IP,掩码,网关等信息;
命令格式:ifconfig [网络设备] [参数]
常用参数:
up 启动指定网络设备/网卡。
down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp 设置指定网卡是否支持ARP协议。
-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a 显示全部接口信息
-s 显示摘要信息(类似于 netstat -i)
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
<硬件地址> 配置网卡最大的传输单元
mtu<字节数> 设置网卡的最大传输单元 (bytes)
netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
使用实例:
1、显示活跃的网络设备信息
root@CentOS6 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:DA:5A:22 inet addr:10.201.106.129 Bcast:10.201.106.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feda:5a22/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:126389 errors:0 dropped:0 overruns:0 frame:0 TX packets:88796 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:74922060 (71.4 MiB) TX bytes:10006606 (9.5 MiB) Interrupt:19 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:8712 errors:0 dropped:0 overruns:0 frame:0 TX packets:8712 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:766876 (748.9 KiB) TX bytes:766876 (748.9 KiB)
2、启动和关闭网卡
[root@CentOS6 ~]#ifconfig eth0 up [root@CentOS6 ~]#ifconfig eth0 down
3、配置网卡IP地址等信息
[root@CentOS6 ~]#ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255
4、显示所有网络接口,包括down掉的
[root@CentOS6 ~]#ifconfig -a
4.2.2 echo:显示器上显示一段文字,一般起到一个提示的作用。
命令格式: echo [ -n ] 字符串
常用参数:
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息
使用实例:
1、默认输出
[root@CentOS6 ~]# echo qq qq
2、不换行输出
[root@CentOS6 ~]# echo -e \nqq nqq
3、取消转义字符
[root@CentOS6 ~]# echo -e \nqq /*\n默认是换行的意思*/ nqq
4.2.3 tty:输出连接到系统的设备名,如ssh,或者console口直连。
[root@CentOS6 ~]# tty /dev/pts/2
4.2.4 startx:打开一个X(图形)会话。
[root@CentOS6 ~]#starx &
4.2.5 export:设置或显示环境变量。
命令格式:export [-fnp][变量名称]=[变量设置值]
参数:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
使用实例:
1、查看环境变量
[root@CentOS6 ~]# export $PATH -bash: export: `/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin'
2、定义环境变量(重启失效)
export PATH="$PATH:/NEW_PATH"
4.2.6 pwd:输出当前工作目录。
命令格式:pwd [选项]
参数:
-L:目录连接链接时,输出连接路径
-P:输出物理路径
使用实例:
1、显示当前路径
[root@CentOS6 ~]# pwd /root
2、显示当前物理路径
[root@CentOS6 ~]# cd /etc/init.d/ [root@CentOS6 init.d]# [root@CentOS6 init.d]# pwd -P /etc/rc.d/init.d [root@CentOS6 init.d]# [root@CentOS6 init.d]# pwd /etc/init.d
3、显示链接路径
[root@CentOS6 init.d]# pwd -L /etc/init.d [root@CentOS6 init.d]# pwd /etc/init.d
4.2.7 history:主要用于显示历史指令记录内容, 下达历史纪录中的指令。
命令格式:history [n]
参数:
n:数字,要列出最近的 n 笔命令列表
-c :将目前的shell中的所有 history 内容全部消除
-a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles,则预设写入~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
-w :将目前的 history 记忆内容写入 histfiles。Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中
使用实例:
1、显示历史中最近的#条命令
[root@CentOS6 ~]# history 5 1034 man pwd 1035 man history 1036 type history 1037 history --help 1038 history 5
2、调用历史中的命令
!#:重复执行第#条指令: !!:上一条命令 !string:最近一个已字串开头的命令 调用上一条命令的最后一个参数: !$: ESC,. Alt+.
4.2.8 shutdown:安全关闭或者重新启动系统。
命令格式:shutdown [选项]… 时间
参数:
now:现在关机
+m:几分钟后关机
+hh:mm:指定指令下达之后一天内某个小时分钟关机
-k:不要真的关机,只是发送警告信息出去! -r:在将系统的服务停掉之后就重新启动(常用) -h:将系统的服务停掉后,立即关机。 (常用) -n:不经过init程序,直接以shutdown的功能来关机 -c:取消已经在进行的shutdown命令内容。
使用实例:
1、立刻关机
# shutdown -h now
2、指定系统10分钟后关机
# shutdown -h +10
3、系统30分钟后重启
# shutdown -r +30
4、仅发出告警信息
# shutdown -k now 'This system will reboot'
4.2.9 poweroff:最简单的关机命令。
命令格式:poweroff [选项]…
参数:
-f:强制关机,不调用shutdown程序
-p:断电停机,默认参数;
-w:只是显示关机警告,不调用shutodnw命令,记录写到/var/log/wtmp
使用实例:关机
[root@CentOS6 ~]# poweroff /*为了系统安全重启或关机推荐用init或者shutdown*/
4.2.10 reboot:默认重启系统,不调用shutdonw命令关闭相应进程。
命令格式:reboot [选项]…
参数:
-f:强制重启,不调用shutdown程序
-p:断电重启,默认参数;
-w:只是显示关机警告,不调用shutodnw命令,记录写到/var/log/wtmp
使用实例:重启
[root@CentOS6 ~]# reboot /*为了系统安全重启或关机推荐用init或者shutdown*/
4.2.11 hwclock:显示和设置硬件时钟。
命令格式:hwclock [功能] [选项]
参数:
-s,–hctosys:将系统时钟调与目前硬件时钟一致;
-w,–systohc:将硬件时钟调与目前系统时钟一致;
–set –date=<日期与时间>:设定硬件时钟;
–debug:显示hwclock执行时详细的信息;
–utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作;
使用实例:
1、查看当前的硬件日期和时
[root@CentOS6 ~]# hwclock
2015年11月12日 星期四 15时17分10秒 -0.458630 seconds
2、将系统时钟调与目前硬件时钟一致
[root@CentOS6 ~]# hwclock --hctosys
4.2.12 date:显示或设定系统的日期与时间。
命令格式:date [参数]… [+格式]
参数
必要参数:
%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 市区。
%a 星期的缩写。
%A 星期的完整名称。
%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小时(必要)
mm 分钟(必要)
ss 秒(选择性)
选择参数:
-d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u 显示GMT。
使用实例:
1、显示今天为周几
[root@CentOS6 ~]# date +%A 星期日
2、设定当前系统时间
[root@CentOS6 ~]# date -s "2016/6/26 19:30" 2016年 06月 26日 星期日 19:30:00 CST
3、显示今天的日期,形如:08/15/15?
[root@CentOS6 ~]# date +%D 06/26/16
4、显示月份和日数
[root@CentOS6 ~]# date '+%T%n%D' 19:31:59 06/26/16
5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的?
5.1 命令分为内部命令和外部命令。
内部命令:当我们登录Linux系统时便处于某个shell中。而隶属于这个已经打开的shell程序的命令就是我们说的内部命令了;
外部命令:在系统的某个路径一个与命令名称对应的可执行文件的命令。我们可以用which+Command(命令名)查找命令的位置。
我们使用type + COMMAND(命令名):可以来区分命令是内部命令或外部命令。
[root@CentOS6 ~]# type cd cd is a shell builtin /*内置命令*/ [root@CentOS6 ~]# type ls ls is aliased to `ls --color=auto' /*外部命令*/
5.2 命令帮助获取的方法
内部命令:#help COMMAND
外部命令:
(1)使用 –help
格式:#命令名 –help
(2)使用手册(manual)
格式: #man COMMAND
(3)info命令可以获取在线帮助文档,通常 info 命令是作为 man 命令的补充;
格式:#info COMMAND
(4)程序自身的帮助文档
通常在存放在目录 /usr/share/doc,如README,INSTALL,ChangeLog;
(5)程序官方文档
官方站点:Documentation
(6)Linux发行版的官方文档
(7)Google
5.3 man详细使用方法
5.3.1 man命令分段机制:manual 手册是分章节的;man # Command (#表示章节号)
数字"1":可执行命令或shell命令 数字"2":系统调用(functions provided by the kernel) 数字"3":C语言库函数 数字"4":设备或特殊文件(通常在/dev下) 数字"5":文件格式和规则(例如/etc/passwd) 数字"6":游戏 数字"7":杂项(宏、包及其他杂项) 数字"8":系统管理员相关的命令(通常只给root)
5.3.2 man手册中常用的段落说明:
NAME:简短的指令,数据名称的说明; SYNOPSIS: 简短的指令下达语法(syntax)简介; SYNOPSIS: []:可选内容 a|b:二选一 <>:必选内容 ……:同一内容出现多次 {}:定界,只对哪些内容2选1,或多选1,辅助符号; DESCRIPTION:较为完整的功能介绍; OPTIONS:针对SYNOPSIS部分中,有列举的所有可用的选项说明; COMMANDS:当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令; FILES:这个程序或数据所使用或参考或连结到的某些档案; SEE ALSO:可以参考的,跟这个指令或数据有相关的其他说明; EXAMPLE:一些可以参考的范例; AUTHOR:作者 BUGS:是否有相关的漏洞; 一般看看EXAMPLE,再看看OPTIONS就可以,如果还不能解决问题,再SEE ALSO。
5.3.3 man命令的简单操作方法:
Space,^V,^f,^F:向文件尾翻屏操作; b,^B:向文件首部翻屏; d,^D:向文件尾部翻半屏; u,^U:向文件首部翻半屏; RETURN or ^N or e or ^E or j or ^J:向文件尾部翻一行; y or ^Y or ^P or k or ^K:向文件首部翻一行; q:退出; #:跳转至第#行;键入数字直接回车,跳到第几行 1G:回到文件首部 G:翻至文件尾部 文本搜索: /keyword: 以KEYWORD指令的字符串为关键字,从当前位置向文件尾部搜索:不区分字符大小写; n:向下翻,下一个 N:向上继续查,上一个 ?KEYWORD 以KEYWORD指令的字符串为关键字,从当前位置向文件首部搜索:不区分字符大小写; n:跟搜索命令相同方向,下一个 N:跟搜索命令相反方向,上一个
6、请罗列Linux发行版的基础目录名称命名法则及功用规定
6.1常用linux目录如下:
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录; /bin【普通用户命令】:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序; /sbin【管理员命令】:管理类的基本命令,不能关联至独立分区,OS启动即会用到的程序; lib:基本共享库文件,以及内核模块文件(/lib/modules),几乎所有的应用程序都须用这些共享库; /lib64:专用于x86_64系统上的辅助共享库文件存放位置; /etc【Host-specific system configuration】:配置文件目录(纯文本文件),这个目录用来存放系统 管理所需要的配置文件和子目录; /etc/opt,/etc/X11,/etc/sgml,/etc/xml /home/USERNAME:普通用户家目录; /root:管理员的家目录, /mediea:便携式移动设备挂载点;如cdrom、usb /mnt:临时文件系统挂载点; dev:设备文件及特殊文件存储位置; b:block device,随机访问; c:character device,线性访问; /opt:第三方应用程序的安装位置; /srv:系统上运行的服务用到的数据; /tmp:临时文件存放位置; /usr【universal shared,read-only data】:包含bin,include,lib,local,sbin,share目录 /usr/bin:保证系统拥有完整功能而提供的应用程序; /usr/sbin:保证系统拥有完整功能而提供的应用程序,管理员级别; /usr/lib:基本共享库文件 /usr/lib64:专用于x86_64系统上的辅助共享库文件存放位置 /usr/include:C程序的头文件存放位置(header files); /share:结构化的独立的数据,例如doc,man等; /local:第三方应用程序的安装位置; 同样包含bin,sbin,lib64,lib,etc,share等目录 /var【variable date file】:这个目录存放那些不断扩充的东西,为了保持usr的相对稳定, 那些经常被修改的目录可以放在这个目录下; /cache:应用程序缓存数据目录; /lib:应用程序状态信息数据; /local:专用于为/usr/local下的应用程序存储可变数据; /lock:锁文件; /log:日志目录及文件; /opt:专用于为/usr/local下的应用程序存储可变数据; /run:运行中的进程相关的数据;通常用于存储进程pid文件; /spool:应用程序数据池; /tmp:保存系统两次重启之间产生的数据; /proc:用于输出内核与进程信息相关的虚拟文件系统; /sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统; /selinux:security enhanced Linux,selinux相关的安全策略等信息的存储位置; /lost+found:这个目录平时是空的,当系统不正常关机后,这里就是一些无家可归文件的避难所; /proc:这个目录是一个虚拟目录,它是系统内存映射,我们可以直接通过访问这个目录来获取系统信息。也就 是说,这个目录的内容不在硬盘上而是在内存中; Linux上的应用程序的组成部分: 二进制程序:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin 库文件:/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64 配置文件:/etc:/etc/DIRECTORY:/usr/local/etc 帮助文件:/usr/share/man:/usr/share/doc:/usr/local/share/man:/usr/local/share/doc
原创文章,作者:Net21_仲樂,如若转载,请注明出处:http://www.178linux.com/20216
评论列表(2条)
写的很好,排版也很漂亮,加油
@马哥教育:谢谢,还有很多不足可以改进的,以后会做的更好的;