3-Linux用户区与终端
本文简要介绍一下Linux用户区中的C语言函数库、Shell和终端的概念。
Linux用户区
C语言函数库
系统调用接口提供的功能往往比较单一,如果纯用系统调用在用户区完成某功能的话,需要用到大量系统调用,很麻烦。
于是C语言函数库/标准库就诞生了,它封装了系统调用接口,使用方便,经过优化效率高。
Shell
用户通过shell来与操作系统交互,它本身提供了多种功能,比如各种命令,还有重定向等功能。
此外,Shell还有许多种类,最常使用的就是bash。sh是第一个shell,不过现在推荐用zsh。
终端
早期
早期终端还不属于操作系统:
这就是最早的终端:一台电传打字机,早期的unix系统是一个多用户的操作系统,每个用户通过该设备与shell交互,终端把数据传递给shell,shell处理完毕后再发会终端。
现在
用户使用终端和shell交互的设计理念从未变过。现在的操作系统会模拟出一个终端,我们可以通过该终端与shell交互:
- windows GUI,dos。
- Linux GUI,命令行终端。
- mac GUI,命令行终端。
终端的简写是tty
,这是因为以前电传打字机的英文是Teletype
,tty
是它的简写。
现在,虚拟终端是操作系统的一部分了。
Linux的终端
Linux的终端有两种(*是一个数字):
tty/*
:是Linux默认提供的终端,就是Linux系统自带的黑窗口。pts/*
:就是虚拟终端,我们通常用到的就是这个。远程连接和图形界面都是虚拟终端。
如上图所示,在Ubuntu终端中输入w
命令查看当前登录的用户,可以发现目前就我zeroize
一个用户,使用tty2
。输入tty
命令可以查看tty2
到底是什么,可以发现是pts/0
。
参考资料
- Linux系统编程 - 飘零的落花
- Linux基础课 - Acwing