第一二章作业 Linux
第一二章作业
作业
1、描述计算机的组成及其功能。
2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
6、请罗列Linux发行版的基础目录名称命名法则及功用规定
*
*
*
1、 描述计算机的组成及其功能。
计算机的组成分为两大部分:硬件系统和软件系统
一.硬件系统主要组成的五大部分:
控制器、运算器、存储器、输入设备、输出设备,CPU集成了运算器和控制器。
控制器
控制器是整个计算机系统的控制中心,它指挥着计算机各个部分协调工作,控制器从存储器中逐条取出指令,根据其要求进行控制,统一指挥整个计算机完成指令所规定的操作。
运算器
运算器的主要功能是对各种数据进行各种运算(算数运算和逻辑运算)系对数据进行加工处理。通常把控制器和运算器合称为中央处理器(CPU)。
存储器
存储器的主要功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
输入设备
用于向计算机属输入各种原始数据和程序的设备称之为输入设备,它们将各种形式的信息转化为计算机能够识别的二进制代码。常见的输入设备:键盘、鼠标、图形输入板、扫描仪等。
输出设备
从计算机输出各类数据、信息的设备称之为输出设备,它们将计算机加工处理后的结果转换为人或其他设备所能接收和识别的信息(文字、图像、声音等)。常见的输出设备:显示器、打印机、绘图仪等。
二.软件部分
1.系统软件:用来运行或控制硬件所开发的计算机软件,如操作系统、编译器、数据库等等
常见的系统软件包含:
操作系统:控制与管理硬件及软件资源,并提供用户操作接口,完成人机交互的软件,常见的有Unix、GNU/Linux、 MAC OS X、Microsoft Windows等
编译器:将使用汇编语言编写的代码,转换成计算机可识别的机器语言,常见的有GCC
解释器:将高级编程语言一行一行解释运行。它的好处是可以消除编译整个程序的负担,缺点则是运行速度比较缓慢,且使用解释器的代码在运行过程中,不可脱离解释器。常见的使用解释器的语言包括Perl、Python、Ruby等
连接器:将由汇编器或编译器产生的目标文件和外部程序库链接为一个可执行文件
加载器:负责将程序加载到内存中,并配置内存与相关参数,使之能够运行
2.应用软件:为了某种特定用途而被开发的软件。它可以是一个特定的程序,也可以是一个由众多独立程序组成的庞大的软件系统,如CAD软件、聊天软件、各种游戏等
2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
1、Debian:三大主流发行版之一,以社区方式运作,没有商业公司支持
knopix是基于Debian的二次发行
ubuntu是基于Debian的二次发行
knUbuntu是基于ubuntu的二次发行
nUbuntu是基于ubuntu的二次发行
Mint是基于ubuntu的二次发行
2、slackware:三大主流发行版之一,
slackware是SLS的一个分支
slackware中有一个著名的子分支-S.U.S.E。
S.U.S.E企业版分支-SLES。
S.U.S.E个人版分支-openSUSE。
3、redhat:三大主流发行版之一,
redhat个人版分支-Fedora Core
redhat企业版分支-Red Hat Enterprise
CentOS是基于Red Hat Enterprise版的二次发行
Oracle Enterprise是基于Red Hat Enterprise版的二次发行
4、Gentoo:Gentoo是基于enoch二次发行版
5、ArchLinux:是Linux新贵
在Linux发行版中,通常均使用软件包管理系统,不同的操作系统,软件包管理系统也不尽相同。比较常见的软件包管理系统有以下几种
dpkg:一般为Debian系使用,前端管理工具为apt-get
rpm(The RPM Package Manager):一般为Red Hat系使用,S.u.S.E也有使用,前端工具包含多种:
yum:作为RHEL及CentOS的前端工具
dnf:作为Fedora的前端工具
ZYpper:作为S.u.S.E及opensuse的前端工具
urpmi:作为Mandriva Linux及Mageia的前端工具
3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
一切皆文件;由众多单一目的的小程序,一个程序只实现一个功能,多个程序组合完成复杂任务;组合小程序完成复杂任务;文本文件保存配置信息;尽量避免与用户交互。
- 一切皆文件:
把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等; - 由众多功能单一的程序组成;
一个程序只做一件事,并且做好;组合小程序完成复杂任务; - 尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务; - 使用文本文件保存配置信息
修改配置信息只需要任意一款文本编辑器就可以进行。 - 组合小程序完成复杂任务
通过连接多个简单的程序实现复杂的功能
4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
命令格式
COMMAND [OPTIONS] ARGUMENTS
COMMAND: 发起一个命令
命令请求kernel将某个二进制程序运行为一个进程。程序本身只是一个静态文件,只有通过这个请求,才会转化为有生命周期的动态进程。
命令本身是一个可执行的二进制格式程序文件(Linux哲学思想:一切皆文件),一般都存放在这些目录下
普通命令:/bin,/usr/bin,/usr/local/bin
管理命令:/sbin,/usr/sbin,/usr/local/sbin
命令往往会调用到许多库文件,这些库可能许多程序都会遇到,我们形象的称之为共享库。
这些共享库也是二进制文件,但是由于其没有程序执行入口,所以不能独立执行。只能被其他有执行入口的程序调用时才能执行,一般这些库都存放在这些目录下
32bits的库:/lib,/usr/lib,/usr/local/lib
64bits的库:/lib64,/usr/lib64,/usr/local/lib64
注意:并非所有的命令都有一个在某目录与之相对应的可执行程序文件
命令的格式:命令必须遵循特定格式规范:比如说win的exe,msi,对于linux而言则是ELF
命令的分类:
由shell程序自带的命令:内置命令:shell程序是一种独特的程序,它的作用是负责解析用户提供的命令。
独立的可执行程序文件:文件名即命令名:外部命令
查看命令类型: type COMMAND
OPTIONS:
指定命令的运行特性
一般选项有两种表现形式:
短选项:-C
例如-l -d
注意:
有些命令的选项没有-
如果同一命令使用多个短选项,多数可以合并,比如说 -l -d就可以写作-ld
短选项一般使用“ ”(空格)来分割
长选项:–word
例如–help --human-readable
注意: 长选项不能合并
长选项一般用“=”来表示
ARGUMENTS
命令的作用对象,以及命令对什么生效
注意:有些命令可以同时带多个参数,多个参数之间以空白字符分割 下面详细列出命令
ifconfig
ifconfig(interface configuration)是在Unix-like系统中用于查看以及配置网络接口设备的系统管理工具。其作用等同于ip addr或ip link
作用:作用于类Unix系统中,用于配置、控制及查询TCP/IP网络接口的系统管理工具
语法:ifconfig [interface]
ifconfig interface options | address …
常用方法:
ifconfig:查看当前系统中存活的网络接口设备信息
ifconfig eth#:查看指定的网络接口设备的信息
ifconfig -a:查看所有网络接口设备(通过此命令,非运行状态的网卡也可显示)
ifconfig eth# up:启动指定网络接口设备
ifconfig eth# down:关闭指定网络接口设备
ifconfig eth# add 33ffe:3240:800:1005::2/64:为指定网络接口设备添加IPv6地址
ifconfig eth# del 33ffe:3240:800:1005::2/64:为指定网络接口设备删除IPv6地址
ifconfig eth# hw ether 00:16:3E:10:60:B5 : 修改指定网络接口设备MAC地址
ifconfig eth# xxx.xxx.xxx.xx:给指定网络接口设备配置指定ip地址
ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 :给指定网络接口设备配置指定ip地址及子网掩码
ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 broadcast 192.168.120.255:给指定网络接口设备配置指定ip地址及子网掩码、广播地址
ifconfig eth# mtu 1500:给指定网络接口设备设置最大传输单元
备注:使用此命令对于网络接口的所有操作,在系统重启后均会失效。若需永久生效,需要通过修改配置文件的方式,配置文件的路径一般为
[[email protected] ~]# cd /etc/sysconfig/network-scripts/ [[email protected] network-scripts]# ls
echo
echo用来将字符串输出到终端上。它通常在shell脚本中使用,以将状态信息输出到屏幕或文件中
作用:显示文字
语法:echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION
常用方法:
-n 不进行换行
-e 让转义符生效
转义符如下
\a 发出警告声
\b 删除前一个字符
\c 最后不加上换行符号
\f 换行但光标仍旧停留在本身的位置
\n 换行
\r 光标移至行首,但不换行
\t 制表符
\v 等同于\f
\ 插入\字符
–help 显示帮助
–version 显示版本信息
备注:STRING可以使用引号,单引号双引号均可用
单引号:强引用,变量不执行替换
[[email protected] ~]# echo 'SHELL
双引号:弱引用,变量引用会被替换
[[email protected] ~]# echo “$SHELL”
/bin/bash
tty
作用:查看当前的终端设备
语法: tty [OPTION]…
常用方法:[[email protected] ~]# tty
/dev/pts/0
startx
作用:用来启动X Window,实际上是启动X Window程序
常用方法:
startx:在服务器上启动x会话
startx -w:在服务器上强制启动x会话
export
作用:用于将shell变量输出为环境变量,或将shell函数输出为环境变量
语法:BASH BUILTIN COMMANDS
常用方法:
-f:代表【变量名称】中为函数名称
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中】
-p:列出所有shell赋予程序的环境变量
pwd
显示当前工作目录print name of current/working directory
作用:以绝对路径的方式显示用户当前工作目录。
语法: pwd [OPTION]…
常用方法:
–help:显示帮助信息
–version:显示版本信息
pwd命令用于显示当前工作目录,一般而言,涉及pwd,就会涉及到三个环境变量
PATH:执行文件路径的变量
OLDPWD:表示前一次的工作目录
PWD:表示当前的工作目录
history
作用:
用于显示指定数目的指令命令
读取历史命令文件中的目录到历史命令缓冲区
将历史命令缓冲区写入命令文件
语法:BASH BUILTIN COMMANDS
常用方法:
-c:清空当前历史命令
-a:将历史命令缓冲区中命令写入历史命令文件中
-r:将历史命令文件中的命令读入当前历史命令缓冲区
-w:将当前历史命令缓冲区命令写入历史命令文件中
n:打印最近n条历史命令(n为数字)
shutdown
作用:
系统关机
关闭所有程序
按照用户需要重启或关机
语法:shutdown [OPTION…] [TIME] [WALL…]
常用方法:
-c:取消关机
-f:重新启动时不执行fsck
-F:重新启动时执行fsck
-h:将系统关机
-k:送出信息给所有用户,但不会实际关机
-n:不调用init程序进行关机,而由shutdown自己控制
-r:重启系统
TIME:设置多久时间后执行shutdown指令
WALL:要传送给所有登入用户的信息
poweroff
作用:用来关闭计算机操作系统并且切断系统电源
语法: poweroff [OPTION]…
常用方法:
-n:关闭操作系统时不执行sync操作
-w:不真正关闭操作系统
-d:关闭操作系统时,不将操作写入日志文件
-f:强制关闭系统
-i:关闭系统之前关闭所有的网络接口
-h:关闭操作系统之前将系统中所有的操作设置为备用模式
reboot
作用:用来重新启动正在进行的Linux操作系统
语法:reboot [OPTION]…
常用方法:
-d:重新开机时不把数据写入数据文件/var/tmp/wtmp
-f:强制重新开机,不调用shutdown指令的功能
-i:在重开机之前,先关闭所有网络界面
-n:重开机之前不检查是否有未结束的程序
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件
Hwclock
作用:是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可以设置系统时间为硬件时钟的时间
语法: hwclock [functions] [options]
常用方法:
–adjust:校正目前的硬件时钟
–debug:显示hwclock执行时详细的信息
–hctosys:将系统时钟调整与当前的硬件时钟一致
–set –date=<日期与时间>:设定硬件时钟
–show:显示硬件时钟的时间与日期
–systohc:将硬件始终调整为与当前的系统时钟一致
–test:测试程序
–utc:使用格林威治时间
–version:显示版本信息
date
作用:显示或设置系统时间与日期
语法:date [OPTION]… [+FORMAT]
常用方法:
-d<“字符串”>:显示字符串所指的日期与时间
-s<“字符串”>:根据字符串设置的日期与时间
+FORMAT:格式符
%F:年月日
%T:小时分钟秒
%Y:年
%m:月
%d:日
%H:小时(24小时进制)
%S:秒
%s:秒(从1970-01-01 00:00:00 开始到命令执行那一刻的秒数 unix元年)
设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]
参考网址:http://www.178linux.com/87011
5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
命令分内置命令和外部命令
内置命令(builtin):由shell程序的自带命令
外部命令:独立的可执行程序文件,文件名即命令名
使用type命令查看命令是否为内置命令。下面的截图中,ls是ls --color=auto的别名,是一个外部命令;而pwd则是一个内部命令
• 获取命令的使用帮助信息
内置命令:help COMMAD
外部命令:
命令自带简要格式的使用帮助 COMMAND --help
使用手册:manual
位置:/usr/share/man
命令:man COMMAND
获取命令的在线文档:info COMMAND
查看应用程序自带的帮助文档
位置:/usr/share/doc/App-Version。App-Version表示软件或命令名称加版本号
Linux主流发行版的官方文档
应用程序的官方文档
利用google搜索引擎
man文档的章节划分如下
章节 说明
man 1 提供给普通用户使用的可执行命令说明
man 2 系统调用、内核函数说明
man 3 C库调用
man 4 系统设备手册,包括设备文件和特殊文件
man 5 配置文件格式手册
man 6 游戏的使用手册
man 7 杂项
man 8 系统管理手册,这些工具只有根用户才能使用
可以使用whatis command查看一个命令在哪些章节下面有帮助文档。whatis的执行结果是查看数据库得到的,由于数据库内容不一定是最新的(比如新安装了一些文件),所以我们要手动更新数据库:makewhatis
如果一个命令在多个章节里都有内容,可以在man命令里指定要查看哪个章节,比如:man 5 passwd。
参考网址:https://www.cnblogs.com/jacky1982/p/7652872.html
6、请罗列Linux发行版的基础目录名称命名法则及功用规定
/bin
存放的系统命令
/boot
存放着系统的启动文件和内核
/dev
设备文件主目录(设备不在这里,具体设备信息/proc目录中)
/proc
系统进程和系统硬件信息
/etc
系统主配置文件主目录
windows下安装QQ,安装目录在E:盘,C盘也会写入相应的QQ软件的信息
c:盘的QQ文件称之为主配置文件(系统文件)—/etc
E盘的QQ安装目录里的文件称之为配置文件(功能型文件)—/var
/var
系统配置文件主目录
/home
普通用户的家目录
/lib&/lib64
系统库文件存放的目录
.dll
/usr
系统帮助文档以及源码包安装位置
源码包不属于RedHat,属于广大的爱好开发者
usr目录是最庞大的目录,要用的应用程序和文件几乎都在这个目录
/sbin
超级用户使用的命令存放的目录
/mnt
用户挂载目录
/run
存放当前运行程序库的目录,当前运行目录
/root
超级用户root家目录
/tmp
临时文件存放目录
系统启动过程中会产生一些临时文件,这些临时文件就存放在tmp目录下。如果说tmp目录没有存储空间,系统一定启动不起来
/media
可移动介质挂载点
/opt
第三方应用程序文件存放目录
/srv
常用语各种非RedHat版本的网络服务器
Linux版本号的命名规则
3部分组成:主版本号、次版本号、末版本号
次版本号,可以确定Linux内核版本的类型
—开发版,次版本号数字为奇数
–稳定版,次版本号数字为偶数
参考网址:https://www.jianshu.com/p/9e44756e701b