UNIX环境术语与概念详解
1. 基础术语与文件类型
在UNIX环境中,有许多基础术语和不同类型的文件。以下是一些常见的基础术语和文件类型的介绍:
| 术语或文件类型 | 定义 |
| — | — |
|
#
(Octothorpe) | 通常表示注释 |
|
$HOME
| 指向用户登录目录的环境变量 |
|
$PATH
| 路径名环境变量,包含用于搜索UNIX命令的目录集合 |
|
.c
| C源文件 |
|
.C
、
.cc
、
.cxx
| C++源文件 |
|
.conf
| 配置文件 |
|
.db
| 数据库文件 |
|
.html
| HTML文档 |
|
.jpg
| JPEG图形文件 |
|
.pdf
| Adobe Acrobat文件 |
|
/
| 根目录 |
|
/dev
| 设备目录 |
|
/dev/null
| 用于发送不需要查看的输出的地方,也可在没有输入但程序需要时作为输入源,也称为位桶 |
|
/dev/printer
| 本地打印请求的套接字 |
|
/etc/cshrc
| 包含C shell中所有用户通用的shell环境特征的文件 |
|
/etc/group
| 包含组信息、组成员和其他用户访问所需密码的文件 |
|
/etc/inittab
| 包含启动时要启动的进程列表的文件,定义标准运行级别 |
|
/etc/motd
| 每日消息文件,通常包含系统管理员认为用户需要知道的重要信息,用户登录系统时会显示 |
|
/etc/passwd
| 包含用户信息和密码的文件,密码可能存储在另一个影子密码文件中以防止攻击 |
|
/etc/profile
| 包含Bourne和Korn shell中所有用户通用的shell环境特征的文件 |
|
/usr/local
| 本地开发的公共可执行文件目录 |
|
/var/spool
| 各种假脱机目录 |
2. 编程语言与工具
UNIX环境中有多种编程语言和工具,以下是一些重要的介绍:
-
C语言
:由Brian W. Kernighan和Dennis M. Ritchie开发,具有高度可移植性,可在许多平台上使用,包括大型机、PC和UNIX系统。
-
awk语言
:由A.V. Aho、P.J. Weinberger和Brian W. Kernighan开发,基于C语法,包含grep的正则表达式搜索功能,并添加了C语言中缺少的高级字符串和数组处理功能。nawk、gawk和POSIX awk是该语言的版本。
-
bash
:GNU Bourne Again shell,基于原始命令解释器Bourne shell(sh)。
-
grep
:用于在文件中搜索模式的常用工具,egrep和fgrep是较新的版本。egrep允许使用扩展正则表达式,fgrep使用有限表达式以实现更快的搜索。
-
emacs
:一个免费的编辑器,现在是GNU软件分发的一部分,最初由Richard M. Stallman于20世纪70年代末在MIT编写,可用于许多平台,具有极高的可扩展性,并拥有自己的编程语言。
3. 系统操作与管理
在UNIX系统中,有许多操作和管理相关的概念和工具:
-
启动(boot或boot up)
:启动操作系统(UNIX)的过程。
-
备份(backup)
:将UNIX系统、应用程序和数据文件存储在可移动媒体上以便将来检索的过程。
-
目录导航(directory navigation)
:通过目录移动的过程称为导航。当前目录称为当前工作目录,登录目录称为默认或主目录。可以使用
cd
命令在目录树结构中上下移动。
-
DNS(Domain Name Server)
:用于在Internet上的机器名称(name.domain.com)和数字地址(123.45.111.123)之间进行转换。
-
防火墙(firewall)
:用于从外部(通常是Internet)为内部网络提供受控入口点,反之亦然。用于防止外部或未经授权的系统访问内部网络上的系统。
-
文件压缩(file compression)
:应用数学公式对数据进行处理,通常使数据占用更少的空间。压缩文件可以解压缩以恢复原始文件。当压缩/解压缩过程能精确恢复原始文件时,称为无损压缩;如果丢失了原始文件的信息,则称为有损压缩。数据和程序需要无损压缩,而图像和声音可以承受有损压缩。
mermaid格式流程图展示文件压缩过程:
graph LR
A[原始文件] --> B(压缩)
B --> C[压缩文件]
C --> D(解压缩)
D --> E[原始文件]
4. 网络与通信
UNIX环境在网络与通信方面也有很多重要的概念和协议:
-
TCP/IP(Transmission Control Protocol/Internet Protocol)
:构成Internet基础的协议对,也是一组工具和协议的通用名称,最初用于连接系统到ARPAnet。
-
FTP(File Transfer Protocol)
:一种独立于系统的文件传输协议,用于通过TCP/IP连接的系统之间传输文件,确保文件传输正确,即使传输过程中出现错误。通常可以处理字符集转换(ASCII/EBCDIC)和记录终止符解析(UNIX使用换行符,MS/PC - DOS使用回车符和换行符)。
-
IRC(Internet Relay Chat)
:一种基于服务器的应用程序,允许一组人通过文本对话同时进行通信,类似于民用波段无线电或某些公告板上的聊天室。聊天可以是私人的(仅邀请人员之间)或公共的(任何人都可以加入),现在也支持声音文件和文件交换。
-
NFS(Network File System)
:一种将挂载到远程系统的磁盘连接到本地系统的方法,就像它们是物理连接的一样。
-
NIS(Network Information Service)
:为网络上的所有机器提供必要信息的服务,如NFS对主机和客户端的支持、密码验证等。
-
NNTP(Netnews Transport Protocol)
:用于在TCP/IP之上传输Netnews或Usenet消息的协议。
5. 对象与编程概念
在编程方面,有许多对象和编程概念:
-
类(class)
:具有属性(数据)和行为(代码或函数)的对象模型,也可视为抽象形式的对象集合。
-
继承(inheritance)
:一种面向对象软件复用的方法,通过使用现有类的属性和行为并添加新内容来开发新类。例如,以汽车为基础对象,跑车会修改其属性(如发动机更大、马力更强,车轮可能包括合金轮毂和高速轮胎)和行为(如更快的加速、更紧的转弯半径、更快的减速)。
-
多态性(polymorphism)
:允许以通用方式编写代码来处理现有和未来相关的类。正确开发后,相同的行为可以根据作用的派生对象而表现不同。例如,汽车的加速行为对于旅行车和赛车可能不同,但函数名仍然是
accelerate()
,编译器会处理具体的实现。
-
封装(encapsulation)
:将数据(属性)和函数(行为以代码形式)组合成对象的过程。数据和函数在对象内部紧密耦合,封装将复杂的接口隐藏在更简单的接口后面,促进代码复用和标准化的数据处理方法。
6. 进程与权限
在UNIX系统中,进程和权限是重要的管理方面:
-
进程(process)
:UNIX下离散运行的程序,用户的交互式会话也是一个进程。一个进程可以调用(运行)并控制另一个程序,被控制的程序称为子进程。最终,用户所做的一切都是操作系统的子进程。
-
父进程(parent process)
:控制另一个进程(通常称为子进程或子进程)的进程。
-
权限(permissions)
:应用于文件时,是控制文件访问的属性。有三个访问级别:所有者(文件创建者)、组(由系统管理员确定的相关人员组)和其他(其他人)。权限通常用
r
(读)、
w
(写)和
x
(执行)表示,执行权限标志也用于控制谁可以搜索目录。
表格展示权限相关信息:
| 访问级别 | 权限含义 |
| — | — |
| 所有者 | 对文件有完全的控制权限,可以进行读、写和执行操作 |
| 组 | 属于该组的成员具有特定的读、写和执行权限 |
| 其他 | 其他用户具有相应的读、写和执行权限 |
7. 其他重要概念
还有一些其他重要的概念:
-
信号(signal)
:操作系统和其他程序用于向程序传达特殊事件的特殊标志或中断。
-
符号链接(link, symbolic)
:目录项,为另一个文件(可以在另一个文件系统中)提供别名。多个条目可以在目录中为一个物理文件出现,而无需复制内容,通过链接文件实现。
-
虚拟内存(memory, virtual)
:使用磁盘空间代替基于硅的内存。操作系统使用二级存储(磁盘)使程序能够使用比物理可用内存更多的内存。磁盘的一部分用作分页文件,程序及其数据的部分在它和实际内存之间移动。对程序来说,它就像在实际内存中一样,硬件和操作系统会在程序认为使用的内存地址和实际存储位置之间进行转换。
-
正则表达式(regular expression)
:用于shell(文件名通配符)、grep(文件搜索)、sed和awk中指定和匹配字符串的方法。
-
脚本(script)
:为UNIX实用程序(包括shell、awk、Perl、sed等)编写的程序。
mermaid格式流程图展示脚本执行过程:
graph LR
A[用户输入脚本命令] --> B(解释器解析脚本)
B --> C{脚本中是否有命令调用}
C -- 是 --> D(调用相应程序执行命令)
C -- 否 --> E(脚本执行完成)
D --> E
UNIX环境术语与概念详解(续)
8. 输入输出与重定向
在UNIX系统里,输入输出及重定向是关键的操作概念:
-
stdin
:程序的正常输入,默认从键盘获取。可以将其重定向,使其从文件或其他程序的输出获取输入。
-
stdout
:程序的正常输出,默认发送到屏幕。能够将其重定向到文件或作为其他程序的输入。
-
stderr
:程序的正常错误输出,默认发送到屏幕,也可重定向到文件。
-
重定向(redirection)
:把数据流从默认方向改变的过程。输入可重定向为从文件或其他程序的输出获取数据;正常输出能发送到其他程序或文件;错误信息也能发送到其他程序或文件。
列表说明重定向的常见操作:
-
command > file
:将
command
的标准输出重定向到
file
文件,如果文件已存在则覆盖。
-
command >> file
:将
command
的标准输出追加到
file
文件末尾。
-
command < file
:将
file
文件的内容作为
command
的输入。
-
command 2> errorfile
:将
command
的错误输出重定向到
errorfile
文件。
9. 打印与设备管理
打印和设备管理也是UNIX系统管理的重要部分:
-
lp
:行式打印机。
-
lpc
:行式打印机控制程序。
-
lpd
:行式打印机守护进程。
-
lpq
:打印机假脱机队列检查程序。
-
lprm
:打印机假脱机队列作业删除程序。
-
设备文件(device file)
:用于实现对物理设备的访问。在UNIX下,这为存储介质的访问提供了一致的方法,数据文件和设备(如磁带和通信设施)都以文件形式实现。对程序员来说,它们没有实质区别。
表格展示打印相关程序及其功能:
| 程序名称 | 功能描述 |
| — | — |
| lp | 用于向打印机发送打印任务 |
| lpc | 对打印机进行控制,如启动、停止等操作 |
| lpd | 负责管理打印机假脱机队列,接收打印任务 |
| lpq | 查看打印机假脱机队列中的作业情况 |
| lprm | 从打印机假脱机队列中删除指定的作业 |
10. 网络协议与连接
网络协议和连接方面有众多重要的概念和协议:
-
PPP(Point - to - Point Protocol)
:通过串行链路(调制解调器)的Internet协议。
-
SLIP(Serial Line Internet Protocol)
:通过串行线路(调制解调器)的Internet协议,该协议对线路上的TCP/IP数据包进行帧处理和传输控制。
-
SNA(System Network Architecture)
:IBM的网络架构。
-
MPTN(Multiprotocol Transport Network)
:IBM用于将大型机连接到TCP/IP网络的网络协议。
mermaid格式流程图展示网络连接过程:
graph LR
A[本地设备] --> B(调制解调器)
B --> C{选择网络协议}
C -- PPP --> D(建立PPP连接)
C -- SLIP --> E(建立SLIP连接)
D --> F[连接到网络]
E --> F
11. 窗口系统与图形界面
在图形界面方面,有重要的窗口系统和相关概念:
-
X Window System(X11)
:由MIT开发的窗口和图形系统,用于客户端/服务器环境。
-
GUI(Graphical User Interface)
:图形用户界面。
-
GNOME(GNU Network Object Model Environment)
:由Red Hat Linux发行版推广的桌面环境,以高度可定制的软件包形式提供现代桌面操作系统的所有功能,可从http://www.gnome.org 下载。
-
KDE
:另一个流行的桌面环境,比GNOME更稳定,提供许多相似的功能,可从http://www.kde.org/ 下载。
列表说明不同桌面环境的特点:
- GNOME:具有高度的可定制性,适合喜欢个性化设置的用户。
- KDE:稳定性较好,功能丰富,提供了类似Windows的操作体验。
12. 数据库与服务器
数据库和服务器相关的概念在UNIX环境中也很重要:
-
数据库服务器(server, database)
:专门运行数据库软件(通常是关系数据库,如Oracle、SQL Server、Sybase等)的系统,其他系统连接到该系统以获取数据(客户端应用程序)。
-
ISAM(Indexed Sequential Access Method)
:在UNIX和其他系统中,指以键控或顺序方式访问数据的方法。UNIX操作系统不直接支持ISAM文件,通常由程序员或使用独立软件供应商(ISV)的工具来实现。
表格展示不同数据库服务器的特点:
| 数据库服务器 | 特点描述 |
| — | — |
| Oracle | 功能强大,适用于大型企业级应用,具有高可靠性和可扩展性 |
| SQL Server | 与Windows系统集成度高,易于管理和使用,适合中小型企业 |
| Sybase | 性能优越,在金融等领域有广泛应用 |
13. 命令行操作与参数
命令行操作是UNIX用户常用的方式,涉及到命令行参数和相关概念:
-
命令行参数(command - line parameters)
:通过命令行传递给命令或程序的数据。可以是控制命令的选项(见选项),也可以是命令操作的参数。有些参数根据其在命令行上的位置有特殊含义。
-
选项(options)
:程序或命令特定的指示符,用于控制程序的行为,有时也称为标志。例如,
ls
命令的
-a
选项会显示以
.
开头的文件(如
.profile
、
.kshrc
等),没有该选项时,无论使用什么通配符,这些文件都不会显示。
列表说明常见命令行参数的使用:
-
ls -l
:以长格式列出目录内容。
-
cp -r source destination
:递归复制
source
目录及其内容到
destination
目录。
-
rm -f file
:强制删除
file
文件,不进行确认提示。
14. 环境变量与替换
环境变量在UNIX系统中用于存储数据和值,并且有相关的替换操作:
-
环境变量(variables, environmental)
:在shell控制的区域中存储数据和值(字符串和整数)的地方,可供当前进程和子进程使用。可以仅在当前shell中局部使用,也可以导出到子shell。
-
变量替换(variables, substitution)
:解释环境变量以获取其值的过程。
mermaid格式流程图展示环境变量的使用过程:
graph LR
A[定义环境变量] --> B(在命令中引用环境变量)
B --> C(进行变量替换)
C --> D(执行命令)
15. 总结
UNIX环境包含了众多丰富且复杂的术语、概念和工具。从基础的文件类型、编程语言,到系统操作、网络通信,再到对象编程、进程管理等各个方面,每个部分都有其独特的作用和重要性。掌握这些知识,对于UNIX系统的使用、管理和开发都具有至关重要的意义。无论是新手还是有经验的用户,都需要不断学习和实践,才能更好地利用UNIX系统的强大功能。
通过对这些概念的深入理解,我们可以更高效地进行文件操作、网络连接、程序开发和系统管理等工作。同时,这些知识也为进一步学习和研究更高级的UNIX技术奠定了坚实的基础。在实际应用中,我们可以根据具体的需求和场景,灵活运用这些概念和工具,以达到最佳的效果。
超级会员免费看

被折叠的 条评论
为什么被折叠?



