介绍
这个教程是系列中的第一部分,教授Linux基础知识,涵盖了如何开始使用终端、Linux命令行和执行命令。如果你是Linux的新手,你会想要熟悉终端,因为它是与Linux服务器交互的标准方式。
如果你想充分利用这个教程,你需要一个Linux服务器来连接和使用。如果你还没有一个,你可以通过点击这个链接快速创建一个:如何创建DigitalOcean Droplet。本教程是针对Ubuntu 22.04服务器编写的,但一般原则适用于Linux的任何其他发行版。
让我们开始学习终端仿真器是什么。
终端仿真器
A terminal emulator is a program that allows the use of the terminal in a graphical environment. As most people use an OS with a graphical user interface (GUI) for their day-to-day computer needs, the use of a terminal emulator is a necessity for most Linux server users.
以下是一些免费的、常用的终端仿真器按操作系统分类:
- Mac OS X:Terminal(默认)、iTerm 2
- Windows:ConEmu、Windows Terminal、PuTTY
- Linux:Gnome Terminal、Konsole、XTerm
每个终端模拟器都有其自己的功能集。通常,您应该期望现代终端模拟器支持选项卡窗口和文本高亮。
Shell
在Linux系统中,shell是一个命令行界面,它解释用户的命令和脚本文件,并告诉服务器的操作系统如何处理它们。有几个广泛使用的shell,例如波恩-再生shell(bash
)和Z shell(zsh
)。每个shell都有自己的功能集和关于如何解释命令的复杂性,但它们都具有输入和输出重定向、变量和条件测试等功能。
本教程是使用波恩-再生shell编写的,通常被称为bash
,它是大多数Linux发行版(包括Ubuntu、Fedora和RHEL)的默认shell。
命令提示符
当您首次登录服务器时,通常会收到欢迎消息(MOTD) ,其中包含杂项信息,例如服务器运行的Linux发行版的版本。MOTD之后,您将进入命令提示符或shell提示符,您可以在其中向服务器发出命令。
显示在命令提示符处的信息可以由用户自定义,但以下是默认Ubuntu 20.04命令提示符的示例:
sammy@webapp:~$
以下是命令提示符构成的分解:
sammy
:当前用户的用户名webapp
:服务器的主机名~
:当前目录。在bash
中,默认的shell,~
或波浪号是一个特殊字符,展开为当前用户的主目录的路径;在这种情况下,它表示/home/sammy
$
:提示符号。这表示命令提示符的结束,之后用户的键盘输入将出现
以下是作为root
用户登录并位于/var/log
目录时命令提示符的示例:
root@webapp:/var/log#
请注意,结束命令提示符的符号是#
,这是root
的标准提示符符号。在Linux中,root
用户是超级用户账户,是一个可以执行系统范围管理功能的特殊用户账户。它是一个无限制用户,拥有在服务器上执行任何任务的权限。
运行命令
可以通过指定可执行文件的名称在命令提示符处发出命令,这可以是一个二进制程序或脚本。有许多标准的Linux命令和实用程序与操作系统一起安装,可以让您导航文件系统,安装和软件包,并配置系统和应用程序。
正在运行命令的一个实例被称为进程。当命令在前台执行时,这是命令执行的默认方式,用户必须等待进程完成,然后才能返回到命令提示符,在那时他们可以继续发出更多命令。
重要的是要注意,几乎在Linux中的一切都区分大小写,包括文件和目录名称、命令、参数和选项。如果某些东西的工作方式不如预期,双重检查命令的拼写和大小写!
以下是一些示例,涵盖了执行命令的基本知识。
注意: 如果您尚未连接到 Linux 服务器,请现在登录。如果您有 Linux 服务器但遇到连接问题,请按照此链接操作:如何使用 SSH 连接到您的 Droplet。
没有参数或选项
要运行不带任何参数或选项的命令,请输入命令名称,然后按 Enter
键。
如果您以这种方式运行命令,它将显示其默认行为,这取决于命令的不同。例如,如果您运行不带任何参数的 cd
命令,则将返回到当前用户的主目录。不带任何参数的 ls
命令将打印当前目录的文件和目录列表。不带任何参数的 ip
命令将打印一条消息,向您展示如何使用 ip
命令。
尝试运行不带任何参数的 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
标志,请使用此命令:
请注意,列表包括与之前相同的文件,但还包括每个文件的附加信息。
如前所述,选项经常可以组合在一起。如果您想要同时使用-l
和-a
选项,您可以运行ls -l -a
,或者像这个命令中那样将它们组合起来:
请注意,由于-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
现在使用echo
验证/opt/app/bin
是否已添加到您的PATH
变量的末尾:
echo $PATH
请记住,以这种方式设置环境变量只会在当前会话中设置它们。这意味着,如果您注销或以其他方式切换到另一个会话,您对环境所做的更改将不会被保留。有一种方法可以永久更改环境变量,但这将在后续教程中介绍。
结论
现在,您已经开始学习Linux终端(以及一些命令),应该有了扩展Linux命令知识的良好基础。阅读本系列中的下一个教程,了解如何导航、查看和编辑文件及其权限。
Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal