1、描述计算机组成及其功能
计算机组成主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备
ENIARC:
CPU:运算器、控制器、寄存器、缓存
存储器:内存,RAM(Random Access Memory)
Input:下指令,提供数据等
Output:输出数据加工的结果
数据在控制器输入命令的控制下,通过输入设备送入计算机的存储器存储。其次当计算开始时,在取指令作用下把程序指令逐条送入控制器。控制器对指令进行译码,并根据指令的操作要求向存储器和运算器发出存储、取数命令和运算命令,经过运算器计算并把结果存放在存储器内。在控制器的取数和输出命令作用下,通过输出设备输出计算结果
各组件的功能
控制器(Control):计算机的中枢神经,控制部件之间的协调,也包括寻址操作
– 保障不同数率传输的数据可以得到缓冲、甄别IO设备传送数据的正错、实现数据与数据之间的交换、接收和识别命令
运算器(Datapath):包含算数逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等,通常只做运算
– 算数逻辑单元(ALU):进行二位元的算术运算,如加减乘(不包括整数除)、移位等
– 累加器(accumulator):储存计算产生的中间结果。保证ALU不用将计算结果写入内存
– 状态寄存器:存放两类信息– 体现当前指令执行结果的状态信息、控制信息
– 通用寄存器组:可用于传送和暂存数据,也可以参与算术逻辑运算,保存运算结果
通用寄存器组包括以下几类:数据寄存器、变址寄存器、指针寄存器、段寄存器、指令指针寄存器
存储器(memory):具有存储数据和读写数据的功能,每一个存储单元为cell,8位二进制为一个存储单元,也就是一个字节
– 最小存储单元 1024*1024*1024*4 Bytes 1024*1024*4 KB 1024*4 MB 4 GB——32位CPU最多只能使用4GB内存
输入设备(Input):作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据输入到计算机
– 常见的输入设备有:键盘、鼠标、磁带机、磁盘机、光盘机等
输出设备(Output):作用是把计算机的中间结果或最后结果、机内的各种数据及文字等信息输出来
– 常见的输出设备有:CRT、打印机、绘图仪等
2、描述罗列Linux的发行版,并描述不同发行版之间的联系和区别
linux版本
红帽企业系统(RedHatEnterpriseLinux,RHEL.)
全球最大的开源技术厂商,全世界内使用最广泛的Linux发布套件。
提供性能与稳定性极强的Linux套件系统并拥有完善的全球技术支持。
社区企业操作系统(Community Enterprise Operating System,Centos)
最初是将红帽企业系统“重新编译/发布”给用户免费使用而广泛使用。
当前已被红帽公司收购。
Fedora最初由红帽公司发起的桌面版系统套件(目前已经不限于桌面版)
用户可免费体验到最新的技术或工具,而功能成熟后加入到RHEL中。
openSUSE
德国著名的Linux系统,全球范围内有着不错的声誉。
Gentoo
具有极高的自定制性,操作复杂,因此适合有经验的人员使用。
Debian提供超过37500种不同的自由软件(2015年数据)且拥有很高的认可度。
对于各类内核架构支持性良好,稳定性、安全性强更有免费的技术支持。
Ubuntu
Ubuntu是一款基于Debian派生的产品,对新款硬件具有极强的兼容能力。
普遍认为Ubuntu与Fedora都是极其出色的LINUX桌面系统
**Redhat系**
名称 |
基于 |
特点 |
Red Hat Enterprise |
RPM管理包 |
红帽的商业版本<br>提供10年服务支持高 |
CentOS |
RedHat |
根据RHEL代码编译的社区版<br>文档充足 |
Fedora |
RedHat |
红帽官方的社区版<br>RH公司新技术测试平台 |
**Slackware系**
名称 |
基于 |
特点 |
Slackware |
SLS |
UNIX风格的Linux发行版<br>KISS(简洁)的设计理念 |
SUSE |
Slackware |
界面华丽<br>照顾欧洲人的使用习惯 |
opensuse |
SUSE |
suse的社区版 |
**Debian系**
名称 |
基于 |
特点 |
Debian |
Dpkg管理包 |
一直为社区版<br>限制较少<br>功能较多<br>要求技术较高 |
Adamantix |
Debian |
关注安全 |
Knoppix |
Debian |
对硬件支持极佳<br>对中日韩环境不够友好 |
Gnoppix |
Knoppix |
Knoppix的GNOME版 |
Ubuntu |
Debian |
界面华丽<br>与Debian、GNOME开源社区关系紧密<br>有资金支持<br> |
Linux Mint |
Ubuntu |
Ubuntu的衍生版<br>开箱即用 |
Ubuntu Kylin |
Ubuntu |
中文定制版 |
BackTrack |
Ubuntu |
专业安全检测操作系统<br>已不再维护 |
Kali Linux |
BackTrack |
BackTrack替代者<br>安全渗透软件 |
其他
名称 |
基于 |
特点 |
Gentoo |
Portage管理包 |
大量程序开放源代码<br>对硬件要求较高 |
ArchLinux |
pacman管理包 |
软件更新速度快<br>包管理简易高效 |
LFS(Linux From scratch) |
高端玩法<br>DIY系统 |
3、描述Linux的哲学思想,并按照自己的理解对其进行解释
1、一切皆文件:把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等
open(), read(), write(), close(), delete(), create()
2、由众多功能单一的程序组成;一个程序只做一件事,并且做好
组合小程序完成复杂任务;
3、尽量避免跟用户交互(任何程序启动开始到结束,中间不需要用户不参与)
目标:易于以编程的方式实现自动化任务;
4、使用文本文件保存配置信息;
文本是最易于实现的底层接口表现形式。通过文本保存,就可以使用文本编辑器实现大多数程序的管理工作
5、提供机制,而非策略
机制,是实现某个功能需要的原语操作和结构
策略,是某功能的具体实现
提供机制,而非策略,指的就是要给用户充分的自主可调配性
4、说明Linux系统上命令的使用格式,详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例说明阐述
命令使用格式
|
COMMAND | OPTIONS | ARGUMENTS |
命令提示符 | 命令 | 选项 | 参数 |
COMMAND: 在命令提示符下,把这个命令启动为一个进程,而命令运行过程中的特性由选项进行修正,并且这个命令将作用
在所给定的参数值上
发起一命令:请求内核将某个二进制程序运行为一个进程;
程序 –> 进程
静态 –> 动态(有生命周期)
命令请求kernel将某个二进制程序运行为一个进程。程序本身只是一个静态文件,只有通过这个请求,才会转化为有生命周
期的动态进程
命令本身是一个可执行的程序文件(内部直接调用了CPU指令集中的所允许库):二进制格式的文件,有可能会调用共享库
文件;
多数系统程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
普通命令:/bin, /usr/bin, /usr/local/bin
管理命令:/sbin, /usr/sbin, /usr/local/sbin
共享库(二进制文件,但不能独立执行,没有程序执行入口):/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local
/lib64
32bits的库:/lib, /usr/lib, /usr/local/lib
64bits的库:/lib64, /usr/lib64, /usr/local/lib64
命令运行有可能会用到库文件——只要命令以动态形式进行编译并链接至库文件,将在运行时调用库
注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
命令必须遵循特定格式规范:exe, msi, ELF(Linux)
~]# file /bin/ls
命令分为两类:
由shell程序的自带的命令:内置命令(builtin)
shell自带的命令是没有程序文件的
独立的可执行程序文件,文件名即命令名:外部命令
shell程序是独特的程序,负责解析用户提供的命令;
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
路径查找次序:自左而右
查看命令类型——type COMMAND
内置命令在各个路径下是不可能与之匹配的文件名
OPTIONS:指定命令的运行特性,或者调整命令时所要执行的代码和实现的功能
选项有两种表现形式:
短选项:-C, 例如-l, -d
注意:有些命令的选项没有–;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
长选项:–word, 例如–help, –human-readable
注意:长选项不能合并;
注意:有些选项可以带参数,此称为选项参数;
长选项通常是由等号来等于,短选项通常是由空格分隔
ARGUMENTS:命令的作用对象;命令对什么生效;
注意:不同的命令的参数,格式是不一样的;有些命令可同时带多个参数,多个之间以空白字符分隔;
例如:ls -ld /var /etc
ifconfig——查看网络接口配置
语法: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:给指定网络接口设备设置最大传输单元
备注:使用此命令对于网络接口的所有操作,在系统重启后均会失效。若需永久生效,需要通过修改配置文件的方式,配置文件的路径一般为
` [root@test ~]# cd /etc/sysconfig/network-scripts/`
`[root@test network-scripts]# ls`
echo——回显
语法:echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION
常用方法:
-n: 不进行换行;
-e:让转义符生效;
\n:换行
\t:制表符
备注:STRING可以使用引号,单引号双引号均可用
单引号:强引用,变量不执行替换
`[root@iZ25test ~]# echo ‘$SHELL’`
`$SHELL`
双引号:弱引用,变量引用会被替换
`[root@iZ25test ~]# `echo “$SHELL”`
`/bin/bash`
注意:变量引用的正规符号
${name}
实例1
[root@localhost ~]# echo “abcdefg”
abcdefg
[root@localhost ~]# echo -n “abcdefg” #不换行直接输出
abcdefg[root@localhost ~]#
实例2
[root@localhost ~]# echo -e “abcdef\bg” #可以理解为删除前一个
abcdeg
[root@localhost ~]# echo -e “abcdef\cg” #不换行直接输出
abcdef[root@localhost ~]#
[root@localhost ~]# echo -e “abcdef\ng” #换行输出
abcdef
g
[root@localhost ~]# echo -e “abcdef\tg” #相当于键入一个tab键
abcdef g
实例3
[root@localhost ~]# echo “$SHELL” #echo “$VAR_NAME”: 变量会替换,双引号表示弱引用
/bin/bash
[root@localhost ~]# echo ‘$SHELL’ #echo ‘$VAR_NAME’:变量不会替换,单引号表示强引用
$SHELL
tty——查看当前的终端设备
语法: tty [OPTION]…
常用方法:`[root@test ~]# 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——显示当前工作目录
语法: pwd [OPTION]..
history——命令历史
语法:BASH BUILTIN COMMANDS
常用方法:
-c: 清空命令历史
-d offset:删除指定命令历史
从304位置开始删除5条历史记录
~]# history -d 304 5
-r: 从文件读取命令历史至历史列表(内存)中
-w:把历史列表中的命令追加至历史文件(内存)中
history #:显示最近的#条命令
shutdown——关机或重启命令
语法:shutdown [OPTION…] [TIME] [WALL…]
常用方法:
OPTIONS:
-h:halt——将系统关机
-r:reboot——重启系统
-c:cancel——取消关机
shutdown -r 重启
shutodwn -h 关机
shutdown -c 取消计划关机
TIME:设置多久时间后执行shutdown指令
now
hh:mm
+m
+0
shutdown +0 马上关机
shutdown +1 一分钟后关机
shutdown -X X分钟后关机
shutdown 20:00 今天20:00关机
poweroff——关机
语法: poweroff [OPTION]…
常用方法:
-n:关闭操作系统时不执行sync操作
-w:不真正关闭操作系统
-d:关闭操作系统时,不将操作写入日志文件
-f:强制关闭系统
-i:关闭系统之前关闭所有的网络接口
-h:关闭操作系统之前将系统中所有的操作设置为备用模式
reboot——重启
语法: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:格式符
参数 |
作用 |
%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 |
完整的年份 |
%F |
相当于%Y-%m-%d |
设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]
实例1
[root@localhost ~]# date 111017002017.30 #格式为date [MMDDhhmm[[CC]YY][.ss]],M表示月,D表示日,h表示时,m表示分,C和Y表示年份,s表示秒
实例2
[root@localhost ~]# date +%F #显示当前年月日,格式与%D不一样
2017-11-10
[root@localhost ~]# date +%D #显示当前年月日
11/10/17
实例3
[root@localhost ~]# date +%H-%M-%S #显示当前时间
17-11-10
Note:date命令显示的是系统时间
5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分
内部命令:help COMMAND
外部命令:
(1) 命令自带简要格式的使用帮助
# COMMAND –help
(2) 使用手册:manual
位置:/usr/share/man
# man COMMAND
SECTION:
NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 报告程序bug的方式
SEE ALSO: 参考
…
SYNOPSIS:
[]:可选内容;
<>:必须提供的内容;
a|b|c:多选一;
…:同类内容可出现多个;
使用手册:压缩格式的文件,有章节之分;
/usr/share/man
man1, man2, …
1:用户命令(普通管理员和管理员都可以运行的命令);
2:系统调用;
3:C库调用;
4:设备文件及特殊文件;
5:文件格式;(配置文件格式)
6:游戏使用帮助;
7:杂项;
8:管理工具及守护进行;
9:含糊的内核规范和接口
~]# man CHAPTER COMMAND
注意:并非每个COMMAND在所有章节下都有手册;
查看命令在那些章节有帮助:
~]# whatis COMMAND
注意:whatis其执行过程是查询数据库进行的;
手动更新数据库:
~]# makewhatis
man命令打开手册以后的操作方法:
翻屏 |
文本搜索 |
退出 |
选项 |
空格键:向文件尾翻一屏; b: 向文件首部翻一屏; Ctrl+d:向文件尾部翻半屏; Ctrl+u:向文件首部翻半屏; 回车键:向文件尾部翻一行; k: 向文件首部翻一行; G:跳转至最后一行; #G: 跳转至指定行; 1G:跳转至文件首部; |
/keyword:从文件首部向文件尾部依次查找;不区分字符大小写 ?keyword:从文件尾部向文件首部依次查找 n: 与查找命令方向相同 N: 与查找命令方向相反 |
q: quit |
-M /PATH/TO/SOMEDIR: 到指定目录下查找命令手册并打开之; |
6、请罗列Linux发行版的基础目录名称命名法则及功能规定
Linux是以树形目录结构的形式来构建系统的。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。
1.FHS 标准(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准)
FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。 FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。 第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
/bin:所有用户可用的基本命令程序文件;
/sbin:供系统管理使用的工具程序;
/boot:引导加载器必须用到的各种静态文件:kernel, initramfs(initrd), grub等;
/dev:存储特殊文件或设备文件;
设备有两种类型:字符设备(线性设备)、块设备(随机设备);
/etc:系统程序的配置文件,只能为静态;
/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;
/root:管理员的家目录;可选;
/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
libc.so.*:动态链接的C库;
ld*:运行时链接器/加载器;
modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点,cdrom, floppy等;
/mnt:其它文件系统的临时挂载点;
/opt:附加应用程序的安装位置;可选路径;
/srv:当前主机为服务提供的数据;
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
/usr:usr Hierarchy,全局共享的只读数据路径;
bin, sbin
lib, lib64
include:C程序头文件;
share:命令手册页和自带文档等架构特有的文件的存储位置
local:另一个层级目录;
X11R6:X-Window程序的安装位置
src:程序源码文件的存储位置
/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var:/var Hierarchy,存储常发生变化的数据的目录;
cache Application cache data
lib Variable state information
local Variable data for /usr/local
lock Lock files
log Log files and directories
opt Variable data for /opt
run Data relevant to running processes
spool Application spool data
tmp Temporary files preserved between system reboots
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward; /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;
2.目录路径
路径
使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录, – 表示上一次所在目录,~ 通常表示当前用户的”home”目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
(注意,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件)
绝对路径:以根”/”目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin
相对路径:相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin (这里假设你当前目录为根目录)。
提示:在进行目录切换的过程中请多使用 Tab 键自动补全,可避免输入错误,连续按两次Tab可以显示全部候选结果
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89223
评论列表(1条)
赞,图文并茂~特别是思维导图的总结,对后续复习很有帮助,继续加油。