– 描述计算机的组成及其功能。
– 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
– 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
– 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
– 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
– 请罗列Linux发行版的基础目录名称命名法则及功用规定。
Ⅰ、描述计算机的组成及其功能.
(参考网址:http://share.onlinesjtu.com/course/view.php?id=3#)
一、硬件(Hardware):基础
1、计算机硬件是组成计算机的所有电子器件和机电装置的总称。 2、计算机硬件分为:运算器、控制器、存储器、输入输出设备、总线。 3、其中运算器和控制器等部件集成在一起统称为中央处理单元,又叫CPU。它对于一个计算机来说,就相当于人类的大脑,可以程序控制、操作控制、时间控制、数据控制等,它是由运算器、控制器、寄存器组和总线等部件组成。
冯·诺伊曼体系结构
* 主要特点:使用二进制数和存储程序 * 设计思想:存储程序并按地址顺序执行 * 程序及操作数据一同存储
哈佛体系结构(Harvard Architecture)
* 源自Harvard Mark I计算机,程序与操作数据分开存储 * 现代冯·诺伊曼计算机在设计中展示出了某些哈佛体系结构的特性,如高速缓存Cache
二、软件(Software):灵魂
* 计算机软件是程序的有序集合 * 程序则是指令的有序集合
1.软件系统:一台计算机中全部程序的集合,统称为这台计算机的软件系统。
*计算机软件按其功能可分为应用软件和系统软件两大类: 1)应用软件是为解决某种应用问题而编制的程序 2)系统软件用于实现计算机系统的管理、调度、监视和服务等功能
2.程序设计语言。
1)机器语言 *早期人们直接用机器语言(即机器指令代码)编写程序,计算机完全可以“识别”并执行,所以又叫做目的程序 *但是用机器语言编写程序需要耗费大量的人力和时间,且容易出错 2)汇编语言: *指令助记符:用约定的文字、符号和数字按规定格式表示各种不同指令,每条基本指令都被指定一个表示其功能又便于记忆的短的名字 *汇编语言(Assembly Language):用指令助记符表示的指令来编写程序 *汇编程序(Assembler):把汇编语言程序转换为计算机可理解的、用机器语言表示的目的程序 *机器语言及汇编语言,对特定类型计算机而言是唯一的 3)算法语言: *算法语言 *按实际需要规定好的一套基本符号,以及由这套基本符号构成程序的规则 *接近数学语言,直观通用,与具体机器无关 *能够便利地表达程序员的设计思想,减少程序错误 *源程序(Source) *用算法语言编写的程序,不能由机器直接识别和执行 *必须“翻译”为机器语言后才能由机器识别和执行 *源程序“翻译”方法 a、编译程序(Compiler) *把用算法语言编写的源程序翻译成目的程序,然后在运行系统中执行目的程序,得出计算结果 *编译程序和运行系统合称为编译系统 b、解释程序(Interpreter) *进行解释执行,即逐个解释并立即执行源程序的语句 *不是编译出目的程序后再执行,而是逐一解释语句并立即得出计算结果
3.操作系统:管理计算机资源(如处理器、存储器、外围设备和各种编译、应用程序)
*管理计算机资源(如处理器、存储器、外围设备和各种编译、应用程序) *自动调度用户的作业程序 *使多个用户能有效地共用一套计算机系统
4.数据库
*大量数据和表格按一定的规律组织起来,形成数据库(Database,DB) *数据库就是实现有组织、动态地存储大量相关数据,方便多用户访问的计算机软、硬件资源所组成的系统 *数据库和数据库管理软件一起,组成了数据库管理系统(Database Management System,DBMS)
三、固件:
* 随着大规模集成电路技术的发展和软件硬化的趋势 *任何操作,既可由软件实现,也可由硬件实现 *任何指令的执行,既可由硬件完成,也可由软件完成 *计算机系统的软件与硬件可互相转化,互为补充 * 软件固化 *把复杂、常用的程序用ROM制作成固件(Firmware) *就其功能而言是软件,但从形态来说又是硬件 *本来软件实现的某些功能,可通过硬件直接解释执行
Ⅱ、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
(参考地址:http://www.cnblogs.com/otosis/p/5914102.html)
1、Linux是一个诞生于网络、成长于网络且成熟于网络的奇特的操作系统。1991年,芬兰大学生Linus Torvalds萌发了开发一个自由的UNIX操作系统的想法,当年,Linux就诞生了,为了不让这个羽毛未丰的操作系统矢折,Linus将自已的作品Linux通过Internet发布。从此一大批知名的、不知名的电脑黑客、编程人员加入到开发过程中来,Linux逐渐成长起来。 2、Linux一开始是要求所有的源码必须公开,并且任何人均不得从Linux交易中获利。然而这种纯粹的自由软件的理想对于Linux的普及和发展是不利的,于是Linux开始转向GPL,成为GNU阵营中的主要一员。 3、Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。 4、Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get /dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。 5、Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有多个版本可供选择,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。 6、Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。 7、FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。 8、FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
Ⅲ、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
-哲学思想-
1、一切皆文件; 2、由众多单一目的的小程序,一个程序只实现一个功能,多个程序组合完成复杂任务; 3、文本文件保存配置信息; 4、尽量避免捕获用户接口; 5、提供机制,而非策略。
-开源共享精神-
开源的特点简单来说就是将软件程序与源代码一起打包提供,让用户可以不受限制的使用某个软件的功能并且随意修改,甚至修改成衍生产品再发布出去。具有使用自由、修改自由、重新发布自由以及创建衍生品的自由,这正好符合了黑客、极客们的追求,因此国内外开源社区的根基都很壮大,人气也很高。坦白来讲,每个从事于Linux行业的技术人或者程序员只要听到开源项目的兴起就会由衷的自豪,这是一种从骨子里带有的独特情怀,开源企业不单纯为了利益,而是互相扶持,努力服务好更多的用户。
-分享的责任与获取的自由-
自由:不是愚昧无知愚蠢任性的自由,而是在明白前因后果的前提下的无约束发挥创造力 分享:不是无条件得将自己思考与成就交给全世界,而是分享给内行,分享给值得分享得人
Ⅳ、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
*Linux系统常用命令格式 command [options] [arguments] command:命令 options:参数 --单词(长选项) 或 -单字(短选项),可合并 argument:对象(目录名称或其他)
1、ifconfig用于获取网卡配置与网络状态等信息:格式为"ifconfig [网络设备] [参数]"。
查看本机当前的网卡配置与网络状态等信息,咱们主要就是看每段开头的网卡名称、inet参数后面的IP地址、ether参数后面的物理mac地址以及RX、TX的接收与发送数据包的大小:
[root@UncleZ ~]# ifconfig eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.12 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::20c:29ff:fe0f:cb88 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:0f:cb:88 txqueuelen 1000 (Ethernet) RX packets 450 bytes 48481 (47.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 409 bytes 41997 (41.0 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 12 bytes 1078 (1.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 1078 (1.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2、echo命令用于在终端显示字符串或输出变量提取后的值,格式为:“echo [字符串 | $变量]”。
将指定字符串输出到终端屏幕:
[root@UncleZ ~]# echo linux linux
使用$变量的方式提取变量值并输出到屏幕:
[root@UncleZ ~]# echo $SHELL /bin/bash
3、tty命令用于显示终端机连接标准输入设备的文件名称。tty [-s][–help][–version]
在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty(teletypewriter)指令查询目前使用的终端机的文件名称。
-s或--silent或--quiet 不显示任何信息,只回传状态代码。 --help 在线帮助。 --version 显示版本信息。
显示当前终端
[root@UncleZ ~]# tty /dev/pts/1
4、startx命令用于启动X Window。startx [程序][–服务器设置]
startx为启动X Window的script文件,实际上启动X Window的程序为xinit。
[程序] 此处所指定的[程序]为X Window所要执行程序的配置文件。 [--服务器设置] startx预设会去读取.xerverrc中的配置,决定启动X Window的方式。
5、export命令用于设置或显示环境变量。export [-fnp][变量名称]=[变量设置值]
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。
-f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p 列出所有的shell赋予程序的环境变量。
列出当前所有的环境变量
[root@UncleZ ~]# export -p declare -x HISTCONTROL="ignoredups" declare -x HISTSIZE="1000" declare -x HOME="/root" declare -x HOSTNAME="UncleZ" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s" declare -x LOGNAME="root"
定义环境变量
[root@UncleZ ~]# export ZWP [root@UncleZ ~]# export -p |grep 'ZWP' (查看是否定义成功) declare -x ZWP
定义环境变量并赋值
[root@UncleZ ~]# clear [root@UncleZ ~]# export NUM=21 [root@UncleZ ~]# export -p | grep 'NUM' declare -x NUM="21"
6、pwd命令用于显示当前所处的工作目录,格式为:“pwd [选项]”。
[root@UncleZ ~]# pwd /root
7、history命令用于显示历史执行过的命令,格式为:“history [-c]”。
history命令默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值。它能显示出当前用户在本地计算机中执行过的所有命令记录,您可以使用-c参数来清空里面的历史数据,还可以使用“!编码数字”的方式来重复执行某一次的命令:
[root@UncleZ ~]# history 1 cd 2 mkdir /mnt 3 mount /dev/sr0 /mnt 4 vim /etc/fstab 5 mount 6 ifcofnig 7 ifconfig 8 systemctl restart network 9 ifconfig 10 vim /etc/yum.repos.d/rhel7.repo 11 mount 12 umount /dev/cdrom 13 mount /dev/cdrom /mnt 14 mount 15 ifconfig
历史命令会被保存到用户家目录中的".bash_history"文件中。Linux系统中以点(.)开头的文件均代表隐藏文件,一般会是系统文件。
清空该用户在本机中执行过命令的历史记录:
[root@UncleZ ~]# history -c [root@UncleZ ~]# history 1 history
8、shutdown命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
shutdown [-t seconds] [-rkhncfF] time [message] -t seconds : 设定在几秒钟之后进行关机程序 -k : 并不会真的关机,只是将警告讯息传送给所有只用者 -r : 关机后重新开机 -h : 关机后停机 -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机 -c : 取消目前已经进行中的关机动作 -f : 关机时,不做 fcsk 动作(检查 Linux 档系统) -F : 关机时,强迫进行 fsck 动作 time : 设定关机的时间 message : 传送给所有使用者的警告讯息
立即关机
[root@UncleZ ~]# shutdown -h now
指定5分钟后关机
[root@UncleZ ~]# shutdown +5 “System will shutdown after 5 minutes” //5分钟够关机并显示警告信息
9、reboot命令用于重启系统,格式为:"reboot"。
-n : 在重开机前不做将记忆体资料写回硬盘的动作 -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里 -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫重开机,不呼叫 shutdown 这个指令 -i : 在重开机之前先把所有网络相关的装置先停止
重启计算机这种操作会涉及到对硬件资源的管理权限,因此默认只能使用root用户来重启您的电脑:
[root@UncleZ ~]# reboot
10、poweroff命令用于关闭系统,格式为:"poweroff"。
关机命令也同理,默认只有root用户才可以关闭您的电脑:
[root@UncleZ ~]# poweroff
11、hwclock命令用于显示与设定硬件时钟。
在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test][--utc][--version][--set --date=<日期与时间>] --adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。 --debug 显示hwclock执行时详细的信息。 --directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。 --hctosys 将系统时钟调整为与目前的硬件时钟一致。 --set --date=<日期与时间> 设定硬件时钟。 --show 显示硬件时钟的时间与日期。 --systohc 将硬件时钟调整为与目前的系统时钟一致。 --test 仅测试程序,而不会实际更改硬件时钟。 --utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。 --version 显示版本信息。
显示当前时间
[root@UncleZ ~]# hwclock Fri 02 Dec 2016 02:25:08 PM CST -0.726912 seconds
查看版本信息
[root@UncleZ ~]# hwclock -v hwclock from util-linux 2.23.2
12、date命令用于显示及设置系统的时间或日期,格式为:"date [选项] [+指定的格式]"。
强大的date命令只需键入以"+"号开头的参数即可按照指定格式来输出系统的时间或日期,这样日常工作时咱们便可以将打包数据的备份命令与指定格式输出的时间信息结合到一起,使得咱们可以更加便捷的区分每个文件的备份时间啦,date命令常见的格式如下: 参数 作用 %t 跳格[TAB键] %H 小时(00-23) %I 小时(00-12) %M 分钟(00-59) %S 秒(00-59) %X 相当于%H:%M:%S %Z 显示时区 %p 显示本地AM或PM %A 星期几 (Sunday-Saturday) %a 星期几 (Sun-Sat) %B 完整月份 (January-December) %b 缩写月份 (Jan-Dec) %d 日(01-31) %j 一年中的第几天(001-366) %m 月份(01-12) %Y 完整的年份
按照默认的格式查看当前的系统时间:
[root@UncleZ ~]# date Fri Dec 2 13:00:56 CST 2016
按照"年-月-日 小时:分钟:秒"的格式查看当前的系统时间:
[root@UncleZ ~]# date "+%Y-%m-%d %H:%M:%S" 2016-12-02 13:01:45
设置当前的系统时间为2016年9月1日8点30分:
[root@UncleZ ~]# date -s "20160901 8:30:00" Thu Sep 1 08:30:00 CST 2016
再次按照默认的格式查看当前的系统时间:
[root@UncleZ ~]# date Thu Sep 1 08:30:44 CST 2016
查看今天是一年中的第几天:
[root@UncleZ ~]# date "+%j" 245
Ⅴ、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
Linux命令分为内部命令和外部命令。
内置命令:#help COMMAND 外部命令: (1)命令自带简要格式的使用帮助 #COMMAND --help #COMMAND -h (2)使用帮助手册(manual) #man CHAPTER COMMAND (3)info COMMAND 获取命令的在线文档 (4)绝大多数程序都有相应的帮助文档,并保存在/usr/share/doc文件夹中
Man 文档的章节划分: 手册分为man1-man8。
man1:用户命令; man2:系统调用; man3:C库调用; man4:设备文件及特殊文件; man5:文件格式:(配置文件格式); man6:游戏使用帮助; man7:杂项; man8:管理工具及守护进行。 帮助手册路径:/usr/share/man 语法格式:#man COMMAND 注:1、并非每个COMMAND在所有章节下都有手册。 2、可以通过whatis查看命令存在哪些章节。 3、whatis执行过程是查询数据进行的, 但是如果有新命令需要手动更新数据库:#makewhatis
man命令的常用操作按键:
按键 用处 空格键 向下翻一页。 [Page Down] 向下翻一页。 [Page Up] 向上翻一页。 [HOME] 直接前往首页。 [END] 直接前往尾页。 /关键词 从上至下搜索某个关键词,如"/linux"。 ?关键词 从下至上搜索某个关键词,如"?linux"。 n 定位到下一个搜索到的关键词。 N 定位到上一个搜索到的关键词。 q 退出帮助文档.
一般来讲帮助文件都很长很多,如果你想翻看的话,就要理解帮助文档的目录结构与操作方法:
结构名称 代表意义 NAME 命令的名称 SYNOPSIS 参数的大致使用方法 DESCRIPTION 介绍说明 EXAMPLES 演示(附带简单说明) OVERVIEW 概述 DEFAULTS 默认的功能 OPTIONS 具体的可用选项(带介绍) ENVIRONMENT 环境变量 FILES 用到的文件 SEE ALSO 相关的资料 HISTORY 维护历史与联系方式
Ⅵ、请罗列Linux发行版的基础目录名称命名法则及功用规定。
FHS(Filesystem Hierarchy Standard)文件系统层次结构标准是根据无数开发者的经验总结而来的,多数Linux版本采用这种文件组织形式,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理,并且会维持更新。FHS根据文件系统使用的频繁与否以及是否允许用户随意改动将目录定义为4种交互式形态:
/bin 存放系统的命令 /boot 存放系统的启动文件和内核 /dev 设备文件主目录(设备文件具体的内容不再/dev,在/proc目录下面) /etc 系统主要配置文件主目录。 /home 普通用户的家目录 /lib&lib64 系统库文件存放目录(.dll库文件) /media 可移动介质挂载点 /mnt 用户挂在目录 /opt 第三方应用程序文件存放目录 /proc 系统主配置文件主目录 /root 超级用户的家目录 /sbin 超级用户使用的命令存放的目录 /srv 常用语言各种非RedHat版本版的网络适配器 /tmp 临时文件存放目录(系统启动过程中会产生一些临时文件,这些临时文件就存放在/tmp目录中,如果/tmp目录空间沾满了,系统就启动不起来) /usr 系统的帮助文档和源码包安装位置(源码包不属于RedHat属于广大的开发爱好者) /var 系统配置文件主目录 /run 运行程序存放的目录,当前于逆行目录
原创文章,作者:N25-赵叔,如若转载,请注明出处:http://www.178linux.com/62002
评论列表(1条)
总结的很好,有例子有说明,加油