终端
计算机需要执行我们下达的各种指令和任务,然而,计算机只能看懂机器语言,而我们人类也只懂得人类的语言,这时候就需要有一个接口,传达我们下达的指令,并且使得机器能够理解并执行。
这样一种接口就叫做终端(terminal)
终端可以分为两种:图形用户界面(GUI)和命令行用户界面(CLI)
比如windos就提供了强大的图形用户界面(桌面),但他也提供命令行界面(DOS)
linux常见的GUI有GNome和KDE等等。
Linux常见的CLI有bash、zsh、tcsh等等
那么,为什么我们安装完之后,是黑乎乎的命令行呢。
因为,为了阻止你用桌面环境,我们之前的教程特地用了最小化安装,没有桌面(奸笑)。
请你习惯,因为GUI对于Linux来说,也不过是一款可有可无的应用而已。由于Linux发行版多如牛毛,每个发行版默认使用的GUI都是有些差异的,有些差异还不小,你也不想去熟悉一个又一个桌面吧。而且,命令行能做的事情,桌面未必能做。
而且bash几乎成为了每个linux发行版默认支持的CLI,可以说熟悉了bash,其他发行版对你来说问题也不大了。
提到terminal,不得不提及一下对系统的控制方式。
在生产环境中,Linux大多都跑在服务器上,如果我们对系统进行控制,一般采用以下两种方法:
- 在服务器上直接插鼠标、键盘、显示器。
- 利用ssh或telnet等服务通过网络远程连接
我们使用的是虚拟机,那么,当你在vmware workstation中控制它时,相当于第一种方法,此时,系统为你分配的终端名为虚拟终端(tty);linux默认会为你分配6个terminal来让用户登录。如下图,登录系统后,输入tty命令回车,系统会回显你目前使用的虚拟终端编号,此时我使用的是tty1
我们可以按alt+ctl+F[1-6]来切换虚拟终端(如果你的电脑有功能键Fn,可能还需要按下Fn),此时我按下了alt+ctl+Fn+F4(因为我的电脑有功能键,没有功能键的朋友只需要按下alt+ctl+F4)
我并没有登出用户,但此时显示的确实是未登录的状态,接下来我们登录并查看此时的虚拟终端编号,发现已经改变了,是tty4
alt+ctl+F1可以切换回tty1
如果你通过一些软件(如xshell、secureCRT)连接,相当于第二种方法,系统为你分配的终端名为伪终端(pts)。这里暂时不介绍如何用ssh或telnet登录,因为初学者可能还不清楚什么是ip、什么是服务、什么是端口,什么事防火墙,后面不久会给大家介绍网络知识,到时候会顺便给大家讲解。
OK,现在可以想象一下:甲和乙通过ssh连接服务器,分别分配到了伪终端pts0和pts1,丙在机房连显示器键鼠分配到了tty1,他们三个人被分配到了三个终端,他们可以各自做各自的事情而不互相干扰,这就是多用户、多任务
现在,如果我说Linux是一款多用户、多任务的系统,你便可以理解了吧。
谁在用这机器?
我们可以使用who来显示谁登录了这台机器,如下面的截图表示,root用户正在tty1和pts/0这两个终端工作。
w除了可以显示登录用户、终端、登录ip、登录时间、终端空闲时间、JCPU(进程占用的时间,不包括过去的后台作业时间)、PCPU(终端正在执行的进程所占用的时间)、正在执行的进程,如下图。
本节的教程先到这里,大家可以现在虚拟机里玩一玩终端的切换。
接下来,我们将正式开始介绍Linux命令,以及如何学习它。不用担心,命令行没有那么多的死记硬背,关键要找到规律、理解背后的原理并学会如何获取帮助。