一. 计算机的组成及其功能
电子计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行计算,还具有存储记忆功能。
计算机的组成主要分为硬件(hardware)和软件(software)两部分。
硬件部分
硬件部分主要分为运算器、存储器、控制器、输入设备、输出设备五部分。
运算器(Datapath):实现算术运算和逻辑运算(与控制器组成CPU)。
存储器(memory):将输入设备接收到的信息以二进制的数据形式存到存储器中。
控制器(Control): 将指令逐条从存储器中取出,经译码分析后向全机发出相应的操作控制信号作用于其他部件,使各部件有条不紊地协调工作(与运算器组成CPU)。
输入设备(Input): 将数据、程序、文字符号、图象、声音等信息输送到计算机中。
输出设备(Output):将计算机的运算结果或者中间结果打印或显示出来。
软件部分
操作系统(Operating System,OS):管理、控制和监督计算机软、硬件资源协调运行的程序系统,由一系列具有不同控制和管理功能的程序组成,它是直接运行在计算机硬件上的、最基本的系统软件,是系统软件的核心。
汇编语言(assembly language):一种用于CPU的低级语言。它使用助记符代替机器指令(二进制语言),方便人类的阅读及操作。一种汇编语言只能与相对应的计算机系统结构对应,无法在不同平台之间直接移植。
二.Linux的发行版,及不同发行版之间的联系与区别
Linux的发行版按照程序包管理器的不同,通常被分成了不同的派系。
Debian:以社区的方式运作,没有商业公司支持
ubuntu:基于Debian的二次发行,界面华丽
mint:基于ubuntu的二次发行
knopix:基于Debian的二次发行
slackware:SLS的一个分支,UNIX风格的Linux发行版本
S.u.S.E:基于slackware的二次发行,界面华丽,符合欧洲人的使用习惯
SLES:S.u.S.E的企业版
OpenSUSE:S.u.S.E的开源个人桌面版
Redhat:早期主要是个人桌面版,Redhat9.0之后,主要分为RHEL(Red Hat Enterprise Linux)和Fedora Core
RHEL(Red Hat Enterprise Linux):Redhat企业版
CentOS(Community ENTerprise OS):基于RHEL的二次发行
Fedora Core:Redhat个人桌面版,每六个月发布新版本
Gentoo:基于Linux的自由操作系统,能为几乎任何应用程序或需求自动地作出优化和定制。
ArchLinux:轻量简洁,Linux新贵
联系:
所有发行版都是使用Linux内核;
都需要遵循遵循GNU GPL;
所有的发行版都有自己的版本号,版本格式约定基本一样(主版本号.次版本号.发行号.修正号)。
区别:发行版的本质区别,在于继承不同版本的内核,库,程序。按软件包管理系统的不同,主要分为
rmp包管理系统:SLES、Fedora、OpenSUSE、CentOS、RHEL
DPKG包管理系统:Debian、Ubuntu
三.Linux的哲学思想,并对其进行解释性描述
一切皆文件
把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等;
比如:物理终端:/dev/console
虚拟终端:/dev/tty# (#为1~6)
串行终端:/dev/ttyS#
伪终端:/dev/pts/#
由众多功能单一的程序组成
一个程序只能做一件事,并且做好;组合小程序完成复杂任务
尽量避免跟用户交互
目标:易于以编程的方式实现自动化任务
使用文本文件保存配置信息
通过文本保存,就可以使用文本编辑器实现大多数程序的管理工作
四.说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述
首先要了解命令的语法通用格式:# COMMAND OPTIONS ARGUMENTS
COMMAND:
发起一个命令:请求内核将某个二进制程序运行为一个进程;
程序 --> 进程
静态 --> 动态(有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;多数系统程序文件都存放在:
普通命令:/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
注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
命令必须遵循特定格式规范:exe, msi, ELF(Linux)
命令分为两类:
由shell程序的自带的命令:内置命令(builtin)
独立的可执行程序文件,文件名即命令名:外部命令
shell程序是独特的程序,负责解析用户提供的命令;
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
查找次序:自左而右;
查看命令类型:type COMMAND
OPTIONS:
指定命令的运行特性;
选项有两种表现形式:
短选项:-C, 例如-l, -d
注意:有些命令的选项没有-; 如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
长选项:--word, 例如--help, --human-readable
注意:长选项不能合并;
注意:有些选项可以带参数,此称为选项参数;
ARGUMENTS:
命令的作用对象;命令对什么生效;
注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;
ifconfig:用于查看活动接口的IP地址,其作用等同于ip addr list
常用方法:[root@SilasSZL ~]# ifconfig
[root@SilasSZL ~]# ip addr list
echo:
是个内建命令,用来将字符串输出到终端上。使用help echo来获取echo的帮助信息。
语法:echo [SHORT-OPTION]... [STRING]...
-n: 关闭自动换行功能;
-e:让转义符生效
\n:换行
\t:制表符
\b:退格(删除前一个字符)
备注:STRING可以使用引号,单引号双引号均可用
单引号:强引用,变量不执行替换
常用方法:[root@SilasSZL ~]# echo '$SHELL'
$SHELL
双引号:弱引用,变量引用会被替换
常用方法:[root@SilasSZL ~]# echo "$SHELL"
/bin/bash
tty:查看当前的终端设备
语法: tty [OPTION]…
常用方法:[root@SilasSZL ~]# tty
/dev/pts/0
startx:在某一虚拟终端接口运行命令
export:用于将查看环境变量,或给变量赋值
查看环境变量:export
变量赋值:export name=value
pwd(printing working directory):显示当前工作目录(以绝对路径的方式)
语法: pwd [OPTION]..
常用方法:[root@SilasSZL ~]# pwd
/root
PATH:执行文件路径的变量
$PWD:当前工作目录
$OLDPWD:上一次的工作目录
history:管理命令历史
定制history的功能,可通过环境变量实现:
HISTSIZE:shell进程可保留的命令历史的条数;
HISTFILE:持久保存命令历史的文件;
HISTFILESIZE:命令历史文件的大小;
命令用法:
history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 [参数...]
-c: 清空命令历史;
-d offset:删除指定命令历史;
-r: 从文件读取命令历史至历史列表中;
-w:把历史列表中的命令追加至历史文件中;
history #:显示最近的#条命令;
控制命令历史记录的方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;
ignorespace:忽略以空白字符开头的命令;
ignoreboth:以上两者同时生效;
shutdown:系统关机、关闭所有程序、按照用户需要重启或关机
语法:shutdown [OPTION…] [TIME] [WALL…]
常用方法:
-c:取消关机
-h:将系统关机
-r:重启系统
TIME:设置多久时间后执行shutdown指令
now:立刻
+m:提交多少分钟后
hh:mm:具体时间
WALL:要传送给所有登入用户的信息
poweroff:用来关闭计算机操作系统并且切断系统电源
语法: poweroff [OPTION]…
常用方法:
-f:强制关闭系统
reboot:用来重新启动正在进行的Linux操作系统
语法:reboot [OPTION]…
常用方法:
-f:强制重新开机
-p:切断电源
hwclock:修改时钟包括系统时间和硬件时间
语法: hwclock [functions] [options]
常用方法:
-s, --hctosys:以硬件为准,把系统时间调整为与硬件时间相同;
-w, --systohc:以系统为准,把硬件时间调整为与系统时间相同;
date:显示或设置系统时间与日期
语法:显示日期时间:date [OPTION]... [+FORMAT]
设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]
常见方法:
%F:年月日
%T:小时分钟秒
%Y:年
%m:月
%d:日
%H:小时(24小时进制)
%S:秒
%s:秒(从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数)
五.如何在Linux系统上获取命令的帮助信息,请详细列出,描述man文档的章节是如何划分的
Linux的帮助有内部命令(内建命令)和外部命令之分。内部命令和外部命令的功能基本相同,但存在的位置有差异。
内部命令:shell程序的一部分,其包含的往往是一些简单的linux系统命令。
help 作用:用于显示shell内部命令的帮助信息
语法:help(选项)(参数)
外部命令:由以下几个途径:
通过命令自带的帮助信息
# COMMAND --help
# COMMAND --h
使用手册(manual)
Man手册段落含义(SECTION):
NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 报告程序bug的方式
SEE ALSO: 参考
通过man命令获取目录的帮助信息页当中有一些用符号标记的内容,这些符号的意义:
[]:可选内容
<>:必须提供的内容
a|b|c:多选一
...:同类内容可出现多个
man命令的操作方法:
翻屏操作:
空格键:向下翻一页
PaGe Down键:向下翻一页
PaGe Up键:向上翻一页
Ctrl+d:向下翻半页
Ctrl+u:向上翻半页
回车键:向下翻一行
k:向上翻一行
G:跳转至最后一行
#(数字)G:跳转至指定行
1G:跳转至文件首部
文本搜索:
/keyword:从文件首部向文件尾部依次查找,不区分字符大小写
?keyword:从文件尾部向文件首部依次查找
n:与查找命令方向相同
N:与查找命令方向相反
退出:q: quit
信息页(info COMMAND)
获取命令的在线文档;
程序自身的帮助文档
README:程序的相关的信息;
INSTALL: 安装帮助;
CHANGES:版本迭代时的改动信息;
程序的官方文档
官方站点上的“Document”
发行版的官方文档
例如 Radhat:http://www.redhat.com/doc
善用搜索引擎
提供两种帮助搜索的小建议: 1)keyword filetype: 2)keyword site:domain.tld
六.请罗列Linux发行版的基础目录名称命名法则及功用规定
Linux各种发行版都遵循LSB(LinuxStandards Base)规则,使用一致的相同的基础目录名称,使用根文件系统结构(root filesystem),使用FHS(files Hierarchy Standard)层次结构。
/bin:所有用户可用的基本命令程序文件;
/sbin:供系统管理使用的工具程序;
/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;
/dev:存储特殊文件或设备文件;
/etc:系统程序的配置文件,只能为静态;
/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;
/root:管理员的家目录;
/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点,cdrom, floppy等;
/mnt:其它文件系统的临时挂载点;
/opt:附加应用程序的安装位置;
/srv:当前主机为服务提供的数据;
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
/usr:usr Hierarchy,全局共享的只读数据路径;
bin:存放了保证系统拥有完整功能而提供的应用程序;
sbin:存放了保证系统拥有完整功能而提供的应用程序,系统管理命令;
include: C程序的头文件;
share:结构化独立的数据;
local:第三方应用程序的安装位置:bin, sbin, lib, lib64, etc, share;
/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var:/var Hierarchy,存储常发生变化的数据的目录;
cache:应用程序缓存数据目录;
lib:存放系统正常运行时,随时会改变的文件
local:专用于为/usr/local下的应用程序存储可变数据;
lock:锁文件
log:日志目录及文件;
opt:专用于为/opt下的应用程序存储可变数据;
run:运行中的进程相关的数据;通常用于存储进程的pid文件;
spool:应用程序数据池;
tmp:保存系统两次重启之间产生的临时数据;
/proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数;
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;