第3章 Linux基本命令操作
3.1 Linux终端介绍、Shell提示符、Bash基本语法
3.1.1 认识Linux终端
在Linux系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些“设备特殊文件”与之关联,如tty0、tty1、tty2等。
当用户在控制台终端登录时,使用的是tty1。按Alt+[F1~F6]任意一组合键时,就可以相应地切换到tty1~tty6。tty2~tty6称为虚拟终端,tty0是当前所使用的虚拟终端的一个别名,系统所产生的信息会发送到该终端上。不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。用户可以登录到不同的虚拟终端上,让系统同时有几个不同的会话期存在,如表3-1所示。
表3-1 终端操作表
3种终端仿真器如下。
(1)GNOME桌面的GHOME Terminal。
(2)KDE桌面的Konsole Terminal。
(3)XFace桌面的XFace Terminal。
远程连接终端工具是Xshell和CRT,在后续章节会详细讲解。
例3.1:通过tty命令看到当前所属的虚拟终端。
注意:按Ctrl + Shift +N组合键可快速打开一个终端,按Ctrl + Shift + +组合键可将终端字体放大,按Ctrl + −组合键可将终端字体缩小。
例3.2:不同虚拟终端之间通信。
同时打开两个终端,在第一个终端执行如下命令:
在第二个终端查看,有xuegod输出,如图3-1所示。
图3-1 不同虚拟终端之间通信
例3.3:对所有终端广播消息,系统10分钟后关机。
广播,所有终端都能收到。
命令:wall。
命令使用格式:wall“信息内容”。
3.1.2 认识Shell
简单来说,Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,它解释用户输入的命令并把这些命令传输给系统内核去执行,从而实现把用户的输入命令解释给操作系统,并处理操作系统的输出结果,输出到屏幕反馈给用户,其分层原理如图3-2所示。Shell相当于计算机的操作入口,就像Windows中的桌面一样,只不过两者是不同的程序,但实现的功能是一样的。
Shell有自己的编程语言,它允许用户编写由Shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
1.Shell的分类
Shell分为两类:GUI和CLI。
(1)GUI(Graphic User Interface):图形用户界面(接口)的Shell。
Linux操作系统中的图形用户界面是使用的X-Window,而Windows是图形显示协议,Linux使用的是CS显示架构。Linux图形用户界面有以下几种类型。
图3-2 Shell分层原理图
① Gnome。Gnome是一套纯粹自由的计算机软件,运行在操作系统上,提供图形桌面环境。Gnome包含Panel(用来启动程序和显示目前的状态)、桌面(应用程序和资料放置的地方)及一系列的标准桌面工具和应用程序,并且能让各个应用程序都正常运作。Gnome是使用C语言开发的。
② KDE。KDE的全称是K Desktop Environment,中文意思是桌面环境。它是一种著名的运行于Linux、UNIX及FreeBSD等操作系统上的自由图形桌面环境,整个系统采用的都是TrollTech公司所开发的Qt程序库(现在属于Digia公司)。KDE是Linux操作系统上最流行的桌面环境之一。KDE是使用C++语言开发的。
③ XFace。XFace是开源的基于Web技术的移动应用开发平台,允许开发者使用HTML、CSS及JavaScript技术开发智能移动终端的应用程序。该平台提供跨平台的中间件引擎,支持在智能移动终端的系统(Android、iOS、WindowsPhone等)上运行符合平台规范的HTML应用,具有程序代码一次开发、多平台运行的优点,减少开发及维护的工作量。该平台能降低移动应用的开发门槛,帮助Web开发者以较小的成本完成从传统互联网领域向移动互联网领域的迁移,比较适合使用在嵌入平台上的轻量组桌面。
(2)CLI(Command Line Interface):命令行(接口)的Shell。
Linux命令界面类型包括sh、bash、csh、zsh、ksh、tcsh。
2.Shell的启动
Shell本身也是一个可运行程序,在用户登录时,完成用户名和密码的验证后,会启动Shell,当多个用户登录时,或同一个用户打开多个Shell时,Shell程序只能开启一个,但是Shell会开启多个进程,在Shell进程之间是互不干扰的,各自都是独立的Shell。
Shell本身是一个外部命令,但它启动以后会带有一些Shell内部命令。内部命令是在系统启动时就调入内存,是常驻内存的,所以执行效率高。外部命令是系统软件的功能,用户需要时才从磁盘中读入内存。
区分内外部的命令是type。
命令使用格式如下:type命令。
通过Shell,可以对Linux实现以下操作或管理。
(1)对文件的管理(创建、删除、复制、修改)。
(2)对用户的管理(添加、删除)。
(3)相关权限的管理(授权用户对相关文件的管理,如增删、修改、查找)。
(4)对磁盘的管理(分区、raid、lVM)。
(5)对软件的管理。
(6)对网络的管理。
3.Shell提示符“#”号与“$”号的区别
以上命令中对应的内容含义如下。
4.认识Bash
Bash是一种Linux命令界面,是目前Linux中使用最为广泛的Shell,功能也是最强大的,并且是开源的Shell,是Linux绝大多数默认使用的Shell。
(1)支持命令历史。用户在当前的Bash终端上所执行过的命令,都会按顺序记录下来,用户可以通过按上、下方向键查看和再次执行命令。
(2)支持命令补全、路径补全。
(3)支持管道、重定向。
(4)支持命令别名。
(5)支持命令行编辑。
(6)支持命令行展开。
(7)支持文件名通配。
(8)支持变量。
(9)支持编程(Shell脚本),在Bash下,用户可以将多个执行的命令,以某种程序逻辑组合起来进行编程。
查看Shell类型的命令。
具体使用的是哪一个Shell类型,取决于用户配置,也就是说用户可以看一下/etc/passwd文件的每一行的最后一个字段。