介绍
本教程是Linux基础知识系列教程的第一篇,涵盖终端入门、Linux命令行以及命令运行。如果您是Linux新手,应该先熟悉终端,因为它是与Linux服务器交互的标准方式。.
如果您想充分利用本教程,您需要一台 Linux 服务器进行连接和使用。如果您还没有服务器,可以点击此链接快速搭建一台:如何创建 Digital Ocean Droplet。本教程以 Ubuntu 22.04 Server 为例编写,但其中的基本原理也适用于其他 Linux 发行版。.
我们先来解释一下什么是终端模拟器。.
终端模拟器
终端模拟器是一种允许你在图形环境下使用终端的程序。由于大多数人日常使用带有图形用户界面 (GUI) 的操作系统来满足计算需求,因此对于大多数 Linux 服务器用户来说,使用终端模拟器是必不可少的。.
以下是一些按操作系统分类的最受欢迎的免费终端模拟器:
- macOS:终端(默认)、iTerm2
- Windows:ConEmu、Windows 终端、PuTTy
- Linux:GNOME终端、Konsole、XTerm
每个终端模拟器都有其自身的功能集。一般来说,现代终端模拟器应该支持标签页窗口和文本高亮显示。.
壳
在 Linux 系统中,shell 是一种命令行界面,它负责解释用户命令和脚本文件,并告诉服务器操作系统如何处理它们。目前有几种广泛使用的 shell,例如 Bourne-Again shell (bash) 和 Z shell (zsh)。每种 shell 在命令解释方面都有其自身的特性和复杂性,但它们都具备输入输出重定向、变量、条件判断等功能。.
本教程使用 Bourne-Again shell(通常称为 bash)编写,它是大多数 Linux 发行版(包括 Ubuntu、Fedora 和 RHEL)的默认 shell。.
命令行
首次登录服务器时,通常会看到一条每日消息(MOTD),这条消息通常是一些信息,包含服务器运行的 Linux 发行版等各种信息。MOTD 显示完毕后,您将进入命令行或 shell 提示符,在那里您可以向服务器发出命令。.
用户可以自定义命令行中提供的信息,但以下是 Ubuntu 20.04 默认命令行的示例:
sammy@webapp:~$
以下是命令行语法的简要概述:
- sammy:当前用户的用户名
- webapp:服务器主机名
- ~:当前目录。在默认 shell bash 中,~(波浪号)是一个特殊字符,它会展开为当前用户主目录的路径。在本例中,它代表 /home/sammy。
- $:通知图标。这表示命令行结束,之后将显示用户键盘输入。
以下是以 root 用户身份在 /var/log 文件夹中输入的命令行示例:
root@webapp:/var/log#
请注意,命令行末尾的符号是 #,这是 root 用户的标准行号。在 Linux 系统中,root 用户是超级用户,它是一个特殊的账户,可以执行系统级的管理功能。root 用户拥有不受限制的权限,可以对服务器执行任何操作。.
运行命令
可以通过在命令行中指定可执行文件的名称来发出命令,该文件可以是二进制程序或脚本。Linux 操作系统预装了许多标准命令和工具,使用户能够浏览文件系统、安装软件包以及配置系统和应用程序。.
正在运行的命令实例称为进程。当命令在前台执行时(这是执行命令的默认方式),用户必须等待进程完成才能返回命令提示符,此时他们才能继续发出更多命令。.
需要注意的是,Linux 系统中几乎所有内容都区分大小写,包括文件名、目录名、命令、参数和选项。如果出现任何异常,请仔细检查命令的拼写和大小写!
以下是一些执行命令基础知识的示例。.
没有论点,也没有其他选择。
要运行不带参数或选项的命令,请键入命令名称并按 Enter 键。.
运行类似这样的命令,它会显示该命令的默认行为,而不同命令的默认行为各不相同。例如,如果不带任何参数运行 `cd` 命令,您将返回到当前用户的主目录。`ls` 命令会打印当前目录中的文件和目录列表。不带任何参数运行 `ip` 命令会打印一条消息,向您展示如何使用 `ip` 命令。.
要列出当前目录中的文件和目录,请运行不带参数的 ls 命令(可能不需要参数):
ls通过论证
许多命令都接受参数,这些参数会影响命令的行为。例如,使用 `cd` 命令最常见的方法是传递一个参数来指定要切换到的目录。例如,要切换到 `/usr/bin` 目录(许多标准命令都安装在该目录中),请执行以下命令:
cd /usr/bin
cd 部分是命令,第一个参数 /usr/bin 紧随其后。请注意,您当前的命令行路径已更新。.
尝试运行 ls 命令来查看当前新目录中的文件。.
ls
Output
…
grub-mkrescue sdiff zgrep
grub-mkstandalone sed zipdetails
grub-mount see zless
grub-ntldr-img select-editor zmore
grub-render-label semver znew
grub-script-check sensible-browser有选项
大多数命令都接受选项,也称为标志或开关,用于修改命令的行为。选项位于命令之后,由一个字符后跟一个或多个选项组成,选项可以用大写字母或小写字母表示。某些多词选项可以以“--”开头,后跟标志文本。.
为了更好地理解选项的工作原理,我们来看 ls 命令。以下是一些使用 ls 命令时常用的选项:
- -l:打印“长列表”,其中包括权限、所有权、文件大小和时间戳等详细信息。.
- -a:列出目录中的所有文件,包括隐藏文件(以 . 开头的文件)。
要使用 ls 的 -l 标志,请使用以下命令:
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/gamesPATH 环境变量是一个以冒号分隔的目录列表,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
现在使用 echo 命令检查 /opt/app/bin 是否已添加到 PATH 环境变量的末尾:
echo $PATH
请注意,以这种方式设置环境变量仅对当前会话有效。这意味着如果您注销或切换到其他会话,对环境变量所做的更改将不会被保留。虽然有一种方法可以永久更改环境变量,但这将在后续教程中介绍。.
结果
既然您已经开始学习 Linux 终端(以及一些命令),您应该已经具备了扩展 Linux 命令知识的良好基础。请阅读本系列的下一篇教程,学习如何浏览、查看和编辑文件及其权限。.









