Linux 终端

2025年3月17日 | 阅读11分钟

引言

Linux 终端是与 Linux 服务器交互的标准方式。

命令行应用程序可能看起来像一项艰巨的任务,但如果我们从基础开始并在此基础上发展技能,它将非常方便。

让我们从介绍终端模拟器开始。

终端模拟器

Linux Terminal

终端模拟器可以定义为一个程序,它允许在图形环境中使用终端。大多数人在日常计算机需求中都使用带有 GUI 的操作系统,因此终端模拟器的使用对于大多数 Linux 服务器用户来说至关重要。

以下是一些操作系统常用的免费终端模拟器:

  • Windows: PuTTy
  • Linux: XTerm, KDE Konsole, Terminal
  • Mac OS X: iTerm2, Terminal (默认)

所有终端模拟器都有其功能集,但上面提到的每一个都易于使用并且效果很好。

Linux 终端简介

Linux 终端也称为命令行、控制台shell。它是我们计算机的文本界面。我们可以使用这个系统程序来解释命令并编写我们的脚本。

初看起来可能有些困难,但一旦我们熟悉了它,使用起来就会很容易。

注意:所有 Linux 发行版都附带命令行。Linux 终端为我们提供了一个界面,我们可以在其中输入命令并以文本形式查看结果。我们可以使用终端来完成导航目录或移动文件等任务,而无需使用 GUI。这些终端只传输信息。我们需要一个 shell 来让操作系统了解这些信息。

我们可以通过在 Linux 命令行的终端中键入来手动执行命令。我们还可以使用Shell 脚本来自动化命令。

Linux 终端历史

在计算的早期,有一个名为Unix的操作系统。它被开发用于在大型机上作为多用户系统运行。许多用户通过终端远程连接到它。

注意:终端非常普遍,因为它们只能传输按键并显示屏幕上的数据。

由于文本对资源占用少,用户可以高效快速地进行交互。用户可以通过此文本界面执行所有操作。用户将连接到一个主程序来协调不同程序的执行。

用户权限被封装在 shell 程序中。用户可以编写共享脚本,自动化冗长的 shell 命令序列,使复杂任务更容易。

此外,Linux 可以被描述为 Unix 的后代。Linux 的核心部分被开发为与 Unix 系统类似。最好的 shell 由Stephen Bourne设计,并发布在 1979 年发布的 Unix 7 版本中。随着时间的推移,它已成为 Linux 系统的默认 shell。

Shell

Shell 可以定义为命令行界面,它解释 Linux 系统中用户的脚本文件和命令,并告诉服务器的操作系统如何处理它们。有几种广泛使用的 shell,如C shell (csh) 和Bourne shell (sh)。

所有 shell 都有自己的一套功能和与命令如何被解释相关的复杂性,但这些 shell 功能输出和输入重定向、条件测试、变量等等。

通常,Bourne-Again shell 被称为bash。它是几乎所有 Linux 发行版的默认 shell,包括RedHat、CentOSUbuntu

命令提示符

当我们第一次登录服务器时,通常会看到一个每日消息 (MOTD)。通常,它是一个包含杂项信息的消息,例如服务器正在运行的 Linux 发行版的版本。在 MOTD 之后,我们将进入 shell 提示符或命令提示符,我们可以在其中向服务器发出命令。

命令提示符上显示的信息可以由用户自定义。下面是 Ubuntu 14.04 默认命令提示符的示例

这是命令提示符的组成 breakdown:

  • sammy: 这是当前用户的用户名
  • webapp: 这是服务器的主机名
  • ~: 这是当前目录。波浪号 (~) 是一个特殊字符,在 bash 中,默认 shell 会将其扩展为当前用户的主目录的路径。在这种情况下,它表示 /home/sammy
  • $: 这是提示符符号。它表示命令提示符的完成,之后将发生用户的键盘输入。

当以 root 用户登录并位于var/log 目录内时,下面是一个命令提示符示例:

注意:# 是完成命令提示符的符号,它是 root 的标准提示符符号。root 用户是一个超级用户帐户,这是一个特殊的帐户,可以在 Linux 中执行系统范围的管理功能。它是一个不受限制的用户,包括在服务器上执行任何操作的权限。

执行命令

可以通过描述可执行文件的名称(可以是脚本或二进制程序)在命令提示符处发出命令。有许多标准的 Linux 实用程序和命令可以使用操作系统安装,这些命令允许我们导航文件系统、安装软件程序包以及配置应用程序和系统。

执行命令的一个实例称为进程。如果命令在前台运行(命令运行的默认路径),用户将必须等待进程完成,然后才能返回到命令提示符,此时他们可以继续发出其他命令。

请注意,大多数 Linux 都区分大小写,包括选项、参数、命令、目录名文件名。当某些内容没有按预期实现时,请仔细检查命令的大小写和拼写。

我们将通过一些基本术语的执行命令示例。

注意:如果我们没有连接到任何 Linux 服务器,现在是登录的好时机。

无选项或参数

要执行没有选项或参数的命令,我们可以直接键入命令名称然后按RETURN

如果我们这样执行命令,它将显示其默认行为,该行为因命令而异。

假设如果我们不带参数执行 cd 命令,我们将返回到当前用户的主目录。ls命令将打印当前目录的文件和目录列表。ip命令不带参数将打印一条消息,显示我们如何应用该命令。

尝试执行不带参数的ls命令以列出当前目录中的文件和目录。

带参数

几个命令接受参数,这些参数可以影响命令的行为。让我们举一个使用 cd 命令最基本的方法的例子。它是通过传递一个描述要切换到的目录的单个参数来实现的。

假设要切换到/usr/bin目录,其中可以安装几个标准命令,我们将发出此命令

命令是cd组件,第一个参数/usr/bin紧跟在命令后面。

注意:命令提示符的当前路径已更新。

如果愿意,请尝试执行ls命令以查看我们新当前目录中的文件。

带选项

大多数命令都接受选项,也称为开关标志,它们会改变命令的行为。因为它们是唯一的参数,所以选项紧跟在命令后面,并且用一个-字符后跟由单个大小写字母表示的多个选项来指示。

一些选项也以- -开头,后跟单个或多个字符(通常是描述性单词)选项。

为了一个常见的选项工作示例。让我们看看ls命令。以下是一些使用ls时非常常见的基本选项:

-l: 它打印长列表,其中包含额外信息,如时间戳、文件大小、所有权和权限。

-a: 它列出目录中的所有文件,包括未知文件(以 . 开头)。

要将ls-l一起使用,请应用此命令

注意:列表包含与之前相同的文件,但包含有关所有文件的附加详细信息。

如前所述,选项通常可以组合在一起。如果您希望同时使用-a-l选项,我们可以运行 ls -l -a,或者只将它们合并,如下面的命令所示

注意:由于 -a 选项,列表中包含隐藏文件和目录。

带参数和选项

在执行命令时,参数和选项几乎总是可以合并的。

例如,我们可以检查/home的内容,无论我们当前目录在哪里,都可以通过执行ls命令

命令是ls,选项是-la,参数是/home,它说明要列出哪个目录或文件。它必须打印/home目录的详细列表,其中必须包含服务器上每个普通用户的家目录。

环境变量

这些变量称为可以用来改变进程和命令运行方式的值。当我们首次登录服务器时,根据一些配置文件,各种环境变量将默认设置。

查看所有环境变量

要查看为特定终端会话设置的所有环境变量,请执行env命令

可能有很多输出,但请查找PATH条目

PATH环境变量可以定义为冒号分隔的目录列表,当发出任何命令时,shell 会在该列表中查找可执行脚本或程序。例如,env命令位于/usr/bin,由于其路径在PATH环境变量中,因此我们可以执行它而无需描述其完全限定位置。

查看变量的值

可以通过在变量名前面加上$来获取环境变量的值。这样做会将引用的变量扩展为该值。

要打印PATH变量的值,我们可以应用echo命令

或者,我们可以应用默认设置为用户主目录的HOME变量,通过以下方式切换到我们的主目录

如果我们尝试授权一个尚未设置的环境变量,它将被扩展为空;即空字符串。

设置环境变量

现在我们知道如何查看环境变量,我们必须了解如何设置它们。

要设置环境变量,我们只需要从变量名开始,紧接着是=号,然后紧接着是所需的值

注意:当我们设置现有变量时,实际值将被覆盖。如果变量最初不存在,它将被创建。

Bash 包含一个名为 export 的命令,它可以导出变量;因此,它将被子进程继承。它允许我们使用通常需要导出环境变量的脚本,通过我们当前的会话。但是,如果我们不清楚它的意思,暂时不要在意。

此外,我们在设置任何变量时可以引用现有变量。例如,当我们安装了任何应用程序到opt/app/bin时,我们可以将该目录添加到我们的PATH环境变量的末尾,并使用此命令

现在,使用 echo 验证/opt/app/bin已添加到我们的PATH变量的末尾

请记住,以这种方式设置环境变量只会为我们当前的会话设置它们。这意味着如果我们注销或切换到其他会话,我们对环境所做的修改将不会被保留。此外,还有一种永久修改环境变量的方法。

如何启动终端

Linux Terminal

方法 1:活动

  1. 点击屏幕左上角的“活动”。
  2. 搜索提示符、命令、shell 或终端。
  3. 选择终端选项启动它。这里我们有了我们的终端或提示符。现在它只是一个外观普通的屏幕。

如果您使用的是其他 Linux 版本,由于其他应用程序启动器,终端会位于类似的位置。如果您找不到它,请使用第二种方法。

方法 2:键盘快捷键

这是访问 Linux 终端最简单的方法。单击CTRL+ALT+T可立即打开终端。

注意:我们可以选择更改它,因为它是默认快捷键。为此,请进入“设置”>“键盘快捷键”。

在这里,我们可以看到所有键盘快捷键,如下所示:

按下启动终端旁边的快捷键。在“设置快捷键”窗口中输入新快捷键,然后按“设置”,即可完成。

假设我们将快捷键更改为 CTRL+T,如下所示:

如何处理文件

既然我们已经检查了终端,可以尝试一些基本命令。命令是我们提供给计算机以执行某些操作的指令。

按窗口以确保我们的按键被输入。终端上检测到的奇怪文本称为提示符。这是计算机表示它已准备好接受任何命令的方式。

pwd

像这样在命令中输入然后按 enter。

启动终端时,我们位于用户的主目录中。通常,它看起来像"/home/user name"。此命令打印工作目录命令使我们能够了解我们所在的目录。

它提供的方式是绝对路径。绝对路径从根目录开始,根目录可以定义为 Linux 文件系统的基础。它由'/'(斜杠)表示。

ls

另一个基本命令是lsls命令用于显示当前目录中的所有文件和目录。输入 ls 然后按 enter。

要查看隐藏文件,我们可以向命令添加-a

我们还可以将其他选项添加到命令中以查找特定信息。

选项描述
ls -x按扩展名排序
ls -t按日期和时间排序
ls -s列出文件大小
ls -S按文件大小排序
ls -r反向列表
ls -R递归列出目录树
ls -ls长格式列出文件大小
ls -lh长格式列出可读文件大小
ls -la长格式列出包含隐藏文件
ls -l长格式显示权限列表
ls -d列出目录并附带 '*/'

cd

这是一个更改目录命令。我们的当前目录是我们正在工作的目录。在切换目录之前,让我们了解一下相对路径和绝对路径。

绝对路径从系统根目录开始,相对路径则从当前目录开始。

我们可以用以下命令切换回之前的目录

当前目录之上的目录是父目录。要导航到父目录,我们可以使用

要向上移动多个级别,我们可以使用

要导航到我们的主目录,我们可以使用

如何创建文件和文件夹

在 Linux 中创建文件夹和文件非常方便。让我们开始创建一个名为"Cake"的新目录。我们将使用命令

要验证目录是否已创建,我们可以使用ls命令

此外,我们可以使用mkdir创建多个目录,我们可以使用

注意:名称之间不要有空格。如果有,它会在我们创建的目录名之间添加空格。

我们可以通过包含-p来在一个目录中创建多个目录。例如,我们想在 Cakes 中的 Cake1 中创建 Cake2,我们将使用

要查看目录结构,我们将使用


下一个主题Linux sudo