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 shellsh)和C shellcsh)。 每个 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:服务器的主机名
  • ~当前目录。 在默认 shell bash 中,~ 或波浪号是扩展为当前用户的 主目录 的路径的特殊字符; 在这种情况下,它代表 /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,也称为 flagsswitches,用于修改命令的行为。 由于它们是特殊参数,因此选项跟在命令之后,并由单个 - 字符后跟一个或多个 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 命令知识打下良好的基础。 阅读本系列的下一篇教程,了解如何导航、查看和编辑文件及其权限。