购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 Linux命令行概述

Linux命令行概述

说到Linux命令行,通常会提到Shell和Bash等相关概念。

2.1.1 什么是Shell

Shell接收用户命令,并协助用户完成与系统内核的交互,以完成命令的执行。我们可以从以下3个方面来理解Linux中Shell的功能和含义。

(1)Shell是Linux操作系统的用户界面。Shell提供了用户与系统内核进行交互操作的接口。与目前广泛使用的GUI交互方式不同,Shell提供的是一种命令行交互方式。Shell本身不是Linux内核的一部分,但是它调用了系统内核的大部分功能来执行程序。Shell支持个性化的用户环境配置,这种配置通常由Shell初始化配置文件实现。

(2)Shell是一个命令解释程序,它能解释用户在命令行界面输入的命令。Shell拥有自己内建的命令集,它能执行的命令包括内部命令和外部命令。典型的Shell解释程序包括Bourne Shell、C Shell、Korn Shell、POSIX Shell及Bourne Again Shell(Bash)等。大多数Linux发行版默认使用Bash作为Shell解释程序。Bash基于Bourne Shell,它吸收了C Shell和Korn Shell的一些特性。Bash提供了几百个内部命令,尽管这些命令的功能不同,但它们的使用方式和规则是统一的。

(3)Shell是一种程序设计语言。使用Shell语言编写的程序文件称为Shell脚本(Shell Script)。Shell作为一种程序设计语言,有自己完整的语法规则,支持分支结构、循环结构和函数定义等。Shell脚本中还可以直接调用常用的Linux命令。通过编写Shell脚本,可以实现更为复杂的管理功能。

2.1.2 Linux命令行界面

命令行界面是操作Linux最常用的人机交互界面。读者既可以通过终端仿真器进入命令行界面,也可以将计算机系统配置成启动后默认进入命令行界面,还可以直接使用远程登录的方式进入命令行界面。不同类型Linux发行版的命令行界面会略有差别。通过不同方式进入命令行界面后,其界面样式也存在细微差异。

大多数Linux发行版中都配置了终端仿真器(Terminal Emulator)。这是一种GUI环境下的终端窗口(Terminal Window)应用程序,方便用户使用命令行方式与Linux内核交互。用户启动终端仿真器时,系统将自动启动一个默认的Shell解释程序(通常是Bash),以解释用户在终端窗口中输入的命令。用户可以看到Shell的提示符,用户在提示符后输入一串字符,Shell解释程序将对这一串字符进行解释。我们可以使用以下多种方式打开终端仿真器。

➢单击桌面左上角的“活动”按钮,在进入的界面中浏览/搜索“终端”(或“gnome-terminal”)。

➢在文件系统中查找gnome-terminal可执行文件。路径通常是/usr/bin/gnome-terminal。

➢读者也可以设置键盘快捷键。其中命令设置为“/usr/bin/gnome-terminal”,快捷键建议设置为Ctrl+Alt+T。因为在Ubuntu等操作系统中默认预置该快捷键。

【实例2—1】 查看默认Shell解释程序和所有有效的Shell解释程序。

在命令行界面中输入echo $SHELL,可以查看当前使用的Shell解释程序。绝大多数Linux发行版默认Shell解释程序都是Bash。文件/etc/shells中保存了当前系统中有效的Shell程序列表,读者可以通过cat命令查看该文件内容。执行如下命令。


[zp@localhost ~]$ echo $SHELL
[zp@localhost ~]$ cat /etc/shells

执行效果如图2—1所示。

图2—1 当前系统的Shell程序列表

2.1.3 Linux命令提示符

打开Linux命令行界面后,通常会在界面的最后一行显示标准的Linux命令提示符。完整的Linux命令提示符包括当前用户名、登录的主机名、当前所在的工作目录和提示符。Linux命令提示符的基本格式如下:


[当前用户名@主机名 当前目录] 提示符

【实例2—2】 查看Linux操作系统命令提示符。

图2—2展示了CentOS Stream操作系统命令提示符的典型样式及其变化情况。

图2—2 Linux操作系统命令提示符(普通用户)

图2—2的第1行显示的命令提示符格式为“[zp@ localhost ~]$”。其内容表明:当前用户名为zp,主机名是localhost,“~”代表当前登录用户的主目录。需要注意的是,不同用户的主目录通常并不相同。本实例中,“~”表示当前工作目录是用户zp的主目录,即/home/zp。提示符$表示当前登录用户为普通用户。常见的提示符有两个:$和#。#表示当前用户为root用户。以root用户身份登录系统时,完整的命令提示符样式如图2—3所示。root用户具有最高的权限,但使用root用户身份操作存在较大的风险,一旦操作不当容易导致极具破坏性的结果,因此不建议读者频繁以root用户身份登录。不同发行版的Linux命令提示符并不完全相同。Linux命令提示符每一部分的样式都可以根据需要进行修改,有兴趣的读者可以自行查阅资料尝试修改。

图2—3 Linux操作系统命令提示符(root用户)

用户在命令提示符$或者#之后输入Linux命令,然后按“Enter”键执行该命令。例如,在图2—2的第1行中,我们输入了命令“cd /home/”,命令cd用于改变Shell工作目录,输入的命令表示将工作目录切换成“home”。用户进行目录切换等操作后,当前工作目录会发生变化,原来显示“~”的位置,其内容也随之变成“home”。与此类似,在图2—3中的第1行,我们输入了命令“cd ..”,其中“..”代表当前目录的父目录,本实例中该父目录为根目录“/”。 mVlEO3FqlwamaSTb2mFN6h4SrEFj1VVBmqB7mdgcj9ExpP4zen5UJ9BSiHh9azS7

点击中间区域
呼出菜单
上一章
目录
下一章
×