Linux终端简介
介绍
本教程是教授 Linux 基础知识以帮助新用户站起来的系列教程中的第一篇,涵盖了终端入门、Linux 命令行和执行命令。 如果您是 Linux 新手,您需要熟悉终端,因为它是与 Linux 服务器交互的标准方式。 使用命令行似乎是一项艰巨的任务,但如果您从基础开始,然后从那里培养您的技能,它实际上非常容易。
如果您想充分利用本教程,您将需要一个 Linux 服务器来连接和使用。 如果您还没有,可以通过以下链接快速启动一个:如何创建 DigitalOcean Droplet。 本教程基于 Ubuntu 14.04 服务器,但一般原则适用于任何其他 Linux 发行版。
让我们先了解一下终端仿真器是什么。
终端仿真器
终端仿真器是允许在图形环境中使用终端的程序。 由于大多数人使用具有图形用户界面 (GUI) 的操作系统来满足日常计算机需求,因此对于大多数 Linux 服务器用户来说,使用终端仿真器是必不可少的。
以下是一些免费的、常用的操作系统终端仿真器:
- Mac OS X:终端(默认),iTerm 2
- Windows:腻子
- Linux:终端、KDE Konsole、XTerm
每个终端仿真器都有自己的一组功能,但所有列出的功能都很好用并且易于使用。
贝壳
在 Linux 系统中,shell 是一个命令行界面,它解释用户的命令和脚本文件,并告诉服务器的操作系统如何处理它们。 有几种shell被广泛使用,例如Bourne shell(sh
)和C shell(csh
)。 每个 shell 都有自己的功能集和复杂性,关于如何解释命令,但它们都具有输入和输出重定向、变量和条件测试等功能。
本教程是使用 Bourne-Again shell 编写的,通常称为 bash
,它是大多数 Linux 发行版的默认 shell,包括 Ubuntu、CentOS 和 RedHat。
命令提示符
当您第一次登录服务器时,通常会看到 Message of the Day (MOTD),它通常是一条信息性消息,其中包括杂项信息,例如服务器的 Linux 发行版的版本在跑。 在 MOTD 之后,您将进入命令提示符或 shell 提示符,您可以在其中向服务器发出命令。
用户可以自定义命令提示符处显示的信息,但以下是默认 Ubuntu 14.04 命令提示符的示例:
sammy@webapp:~$
以下是命令提示符组成的细分:
sammy
:当前用户的用户名webapp
:服务器的主机名~
:当前目录。 在默认 shellbash
中,~
或波浪号是扩展为当前用户的 主目录 的路径的特殊字符; 在这种情况下,它代表/home/sammy
$
:提示符。 这表示命令提示符结束,之后将出现用户的键盘输入
以下是命令提示符的示例,如果以 root
身份登录并在 /var/log
目录中:
root@webapp:/var/log#
请注意,结束命令提示符的符号是 #
,它是 root
的标准提示符符号。 在 Linux 中,root
用户是 superuser 帐户,这是一个特殊的用户帐户,可以执行系统范围的管理功能——它是一个不受限制的用户,有权执行任何任务服务器。
执行命令
可以通过指定可执行文件的名称在命令提示符下发出命令,该可执行文件可以是二进制程序或脚本。 操作系统安装了许多标准 Linux 命令和实用程序,允许您导航文件系统、安装和软件包,以及配置系统和应用程序。
运行命令的实例称为 进程 。 当在 foreground 中执行命令时,这是命令执行的默认方式,用户必须等待进程完成才能返回命令提示符,此时他们可以继续发出更多命令。
需要注意的是,Linux 中的几乎所有内容都区分大小写,包括文件和目录名称、命令、参数和选项。 如果某些东西没有按预期工作,请仔细检查命令的拼写和大小写!
我们将通过几个示例来介绍执行命令的基础知识。
注意: 如果您还没有连接到 Linux 服务器,现在是登录的好时机。 如果您有 Linux 服务器但无法连接,请点击此链接:如何使用 SSH 连接到您的 Droplet。
没有参数或选项
要执行不带任何参数或选项的命令,只需输入命令的名称并点击 RETURN
。
如果您运行这样的命令,它将显示其默认行为,该行为因命令而异。 例如,如果您不带任何参数运行 cd
命令,您将返回到当前用户的主目录。 ls
命令将打印当前目录的文件和目录的列表。 不带任何参数的 ip
命令将打印一条消息,向您展示如何使用 ip
命令。
尝试运行不带参数的 ls
命令以列出当前目录中的文件和目录(可能没有):
ls
带参数
许多命令接受 参数 或 参数 ,这会影响命令的行为。 例如,使用 cd
命令的最常见方法是向它传递一个参数,该参数指定要更改到哪个目录。 例如,要切换到安装了许多标准命令的 /usr/bin
目录,您可以发出以下命令:
cd /usr/bin
cd
组件是命令,第一个参数 /usr/bin
跟在命令后面。 请注意命令提示符的当前路径是如何更新的。
如果您愿意,请尝试运行 ls
命令来查看新当前目录中的文件。
ls
带选项
大多数命令接受 options,也称为 flags 或 switches,用于修改命令的行为。 由于它们是特殊参数,因此选项跟在命令之后,并由单个 -
字符后跟一个或多个 options 表示,它们由单独的大写或小写字母表示。 此外,某些选项以 --
开头,后跟单个多字符(通常是描述性词)选项。
有关选项如何工作的基本示例,让我们看一下 ls
命令。 以下是使用 ls
时派上用场的几个常用选项:
-l
:打印“长列表”,其中包括额外的详细信息,例如权限、所有权、文件大小和时间戳-a
:列出目录文件的 all 文件,包括隐藏文件(以.
开头)
要将 -l
标志与 ls
一起使用,请使用以下命令:
ls -l
请注意,该列表包含与以前相同的文件,但包含有关每个文件的附加信息。
如前所述,选项通常可以组合在一起。 如果你想同时使用 -l
和 -a
选项,你可以运行 ls -l -a
,或者像下面的命令一样组合它们:
ls -la
请注意,由于 -a
选项,列表中包含隐藏的 .
和 ..
目录。
带有选项和参数
运行命令时,几乎总是可以组合选项和参数。
例如,您可以通过运行以下 ls
命令检查 /home
的内容,而不管当前目录如何:
ls -la /home
ls
是命令,-la
是选项,/home
是指示要列出哪个文件或目录的参数。 这应该打印出 /home
目录的详细列表,其中应该包含服务器上所有普通用户的主目录。
环境变量
环境变量是命名值,用于更改命令和进程的执行方式。 首次登录服务器时,默认会根据几个配置文件设置好几个环境变量。
查看所有环境变量
要查看为特定终端会话设置的所有环境变量,请运行 env
命令:
env
可能会有很多输出,但请尝试查找 PATH
条目:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PATH
环境变量是一个以冒号分隔的目录列表,当发出命令时,shell 将在其中查找可执行程序或脚本。 例如,env
命令位于 /usr/bin
中,我们可以在不指定其完全限定位置的情况下执行它,因为它的路径在 PATH
环境变量中。
查看变量的值
可以通过在变量名称前加上 $
来检索环境变量的值。 这样做会将引用的变量扩展为其值。
例如,要打印出 PATH
变量的值,您可以使用 echo
命令:
echo $PATH
或者您可以使用默认设置为用户主目录的 HOME
变量更改为您的主目录,如下所示:
cd $HOME
如果您尝试访问尚未设置的环境变量,它将被扩展为空; 一个空字符串。
设置环境变量
既然您知道如何查看环境变量,那么您应该学习如何设置它们。
要设置环境变量,您需要做的就是以变量名开头,紧跟 =
符号,紧跟其所需值:
VAR=value
请注意,如果您设置现有变量,则原始值将被覆盖。 如果变量一开始不存在,它将被创建。
Bash 包含一个名为 export
的命令,它导出一个变量,以便子进程继承它。 简单来说,这允许您使用从当前会话中引用导出的环境变量的脚本。 如果您仍然不清楚这意味着什么,请暂时不要担心。
您还可以在设置变量时引用现有变量。 例如,如果您将应用程序安装到 /opt/app/bin
,则可以使用以下命令将该目录添加到 PATH
环境变量的末尾:
export PATH=$PATH:/opt/app/bin
现在验证 /opt/app/bin
是否已使用 echo
添加到 PATH
变量的末尾:
echo $PATH
请记住,以这种方式设置环境变量只会为您当前的会话设置它们。 这意味着如果您注销或以其他方式更改到另一个会话,您对环境所做的更改将不会被保留。 有一种方法可以永久更改环境变量,但这将在后面的教程中介绍。
结论
现在您已经了解了 Linux 终端(和一些命令)的基础知识,您应该为扩展您的 Linux 命令知识打下良好的基础。 阅读本系列的下一篇教程,了解如何导航、查看和编辑文件及其权限。