当前有近70%的台式电脑运行Windows系统,另外20% 基于 macOS。鉴于此,当您得知托管网站的服务器由Linux驱动时,许多人可能会有点担心——Linux是一种传统上与计算机极客和技术专家相关的操作系统。
事实上,你没什么可担心的。
网络托管行业已调整其服务,以确保您无需成为技术专家即可使用托管帐户。SPanel等现代服务器管理解决方案通过新手友好的点击界面为您提供典型网站所有者可能需要的一切。
然而,对于经验丰富的网站开发人员和管理员来说,这并不总是足够的。他们通常发现使用SSH 命令执行各种任务更容易。您访问此页面的事实意味着您很可能也想了解有关Linux 命令的更多信息。
了解它们确实很有意义。它将使您更好地了解服务器的工作原理并提高您的技术专业知识。
那么,让我们开始吧。
在开始学习命令之前,我们首先需要解释如何实际执行它们。这一切都由SSH 实现- 这是一种将您的计算机连接到服务器并允许您通过互联网发送命令的网络协议。SSH 代表安全外壳。
要理解 SSH 的价值,最好分别解释这两个词。
SSH 是安全的,因为它使用复杂的加密技术来完全加密您与服务器之间的通信通道。在此工具出现之前,客户端与服务器之间的信息以纯文本形式传输,这为窃听、数据盗窃甚至服务器接管提供了机会。
为了消除这种情况,SSH 使用一种涉及公钥和私钥组合的安全算法来确保您的计算机和托管服务器之间交换的任何信息都无法被第三方访问。
在计算环境中,Shell是您用来与操作系统交互的界面。如果您使用 Windows,则 Shell 由桌面、任务栏、“开始”菜单、关闭、恢复和最小化按钮等组成。
当谈到像 Linux 这样的基于 Unix 的操作系统时,shell 通常与终端相关联- 该程序读取您输入的命令并告诉计算机需要执行什么操作。
因此,当您使用 SSH 时,您会与服务器建立安全连接并发送命令。shell 会解释这些命令并告诉 Linux 您要做什么。
打开与服务器的 SSH 连接的最简单方法是使用计算机自己的命令行界面。Windows 用户可以使用PowerShell或命令提示符,如果您有 Mac 或其他基于 Unix 的操作系统,则终端是最简单的方法。
你从以下开始:
ssh [你的用户名]@[你的服务器的 IP 或主机名]
您的计算机将尝试在服务器上的端口 22上建立连接。请记住,出于安全原因,您的主机可能会使用不同的 SSH 端口。如果是这种情况,您需要在上面的命令中添加-p后跟端口号。
然后,服务器会要求您输入密码,身份验证成功后,它会打开 shell,以便您开始执行命令。另一种选择是使用专用的 SSH 客户端。
PuTTy是最受欢迎的,主要是因为它很轻量,适用于您能想到的几乎所有平台。它会记住您的会话信息和登录凭据,因此您无需在每次使用时输入密码。此外,它还支持通过SSH 密钥进行身份验证- 这是比常规密码更方便、更安全的替代方案。
解释了基础知识后,现在是时候看看建立 SSH 连接后可以做什么了。
通过 SSH 对服务器执行的操作主要取决于您拥有的访问权限。如果您的主机授予您root 权限,您可以执行任何操作。您可以安装新软件、应用更新、更改核心服务器设置、更新配置文件等。
但是,您不需要拥有 root 权限才能执行所有操作。很多命令不需要完全控制服务器,但仍可以帮助您管理项目。让我们来看看其中的一些。
与此列表中的大多数命令不同,cd还适用于许多非 Unix 操作系统,包括 Windows。它代表更改目录,您可能已经猜到了,它用于更改当前工作目录。
启动新的 SSH 会话后,您当前的工作目录是您的帐户的主文件夹(通常是/home/[您的帐户的用户名]/)。里面是public_html文件夹 – 您网站的文档根目录。要转到该文件夹,您需要输入:
$ cd public_html
您也可以直接跳转到public_html内的目录:
$ cd public_html/文件夹名称
要返回上一级,可以使用:
$ CD..
要直接返回到您帐户的主目录,您可以使用:
$ CD〜
像cd一样,ls适用于许多非 Unix 系统。您可以使用它来查看目录的内容。例如,如果您在public_html中,并且只输入ls,您将看到按字母顺序排列的当前目录中的文件和文件夹的名称。
您可能会注意到列表中缺少 .htaccess 文件。这是因为它被隐藏了。
要包含隐藏文件,您需要使用:
$ ls -a
如果您想查看文件大小,权限和所有权信息以及修改时间戳,您需要:
ls -l
mkdir命令创建新目录。如果要在当前工作目录中创建新文件夹,只需在命令后指定其名称即可。
$ mkdir 新文件夹
但是,您也可以创建子文件夹。例如,您在home/user中,可以使用以下命令在public_html(子目录)内设置一个新文件夹:
$ mkdir public_html/新文件夹
这也许是你最应该小心使用的命令。它是remove的缩写,用于从磁盘中删除对象。这些对象可能包括文件、文件夹、符号链接(相当于 Windows 快捷方式)、文件系统等。
请记住,使用rm删除的文件和文件夹不会被发送到回收站或垃圾设备,如果您犯了错误,这些设备无法帮助您恢复它们。它们会从磁盘中删除,因此它们将永远消失。
语法非常简单,特别是当您想从当前工作目录中删除文件时。您需要做的就是指定文件的全名(包括扩展名)。例如:
$ rm 文件.txt
不过,还是有很多选择的:
df命令使用Linux 中嵌入的磁盘释放实用程序向您显示已挂载文件系统的存储空间使用情况的信息。
df本身会显示一个表格,其中列出了服务器上所有已挂载的文件系统、它们的总大小(以千字节为单位)、已使用量、可用量、使用百分比以及挂载点。
该命令可用于特定的文件系统,并且使用-h(人类可读的缩写)标志,使用数据将转换为兆字节和千兆字节,因此输出更容易理解。
du命令会打印特定文件和目录的磁盘使用情况的详细报告。它可让您更有效地管理存储,识别占用过多空间的目录,并全面改善服务器上的数据管理。
默认情况下,它会生成当前工作目录中所有文件、文件夹和子文件夹的列表,因此最好将其应用于特定对象。
语法如下:
$ du [标志] [文件路径]
您可能会在命令中使用一些标志。使用-h,该实用程序会将使用情况统计信息转换为千字节、兆字节和千兆字节,使报告更易于阅读。使用-s标志,该实用程序仅打印它所应用的特定目录的空间使用情况信息,而不详细说明每个 inode。如果您使用–time,您将在每个对象旁边看到一个时间戳,显示上次修改的时间。
ps命令代表进程状态,可让您深入了解服务器上当前正在运行的任务。单独执行时,ps会打印一个表格,其中包含所有当前活动的进程、它们的 ID、用户登录的终端类型、CPU 时间以及启动它的命令。
默认情况下,ps显示与当前终端会话相关的进程的信息。使用-A选项,您可以查看整个系统上运行的进程。可见信息的数量取决于用户拥有的权限级别。
find命令是 Linux 用户最有用的工具之一。它是一款功能强大的实用程序,可帮助您快速高效地在服务器文件系统中找到所需信息。
您可以使用以下语法:
$ find [路径] [选项] [表达式]
路径指定您希望 Linux 搜索的位置。选项允许您修改搜索条件,并通过表达式设置搜索条件。使用该命令时,您可以了解许多选项和条件。为了了解它的工作原理,我们有一个简单的示例。
假设您在public_html目录的各个子文件夹中分散安装了多个 WordPress。您想知道有多少个以及它们位于何处。
每个活动的 WordPress 安装都有一个wp-config.php 文件,您可以利用它。您需要的命令是:
$ 查找 /public_html/-name“wp-config.php”
Linux 将搜索public_html文件夹的内容并显示所有WordPress 配置文件的文件路径列表。
cat命令是查看文件内容的最简单方法。例如,如果您在WordPress 网站的文档根文件夹中,并且想要查看主配置文件中的内容,只需输入:
$ cat wp-config.php
Linux 无需打开文本编辑应用程序即可在终端中打印文件内容。您可以通过将文件名称添加到命令中(例如$ cat file1 file2)来一次打开多个文件,并且-n选项会添加行号以使输出更具可读性。
您也可以使用cat创建新文件。语法如下:
$ cat > 文件名
按下Enter后,Linux 会将您移至新行,您可以在此输入文件的内容。要保存文件,请再次按下Enter并按Ctrl+D。
您还可以将两个文件合并在一起。您需要遵循的语法是:
$ cat 文件1.txt 文件2.txt > 文件3.txt
要将一个文件的内容附加到另一个文件的末尾,可以使用:
$ cat 文件1.txt >> 文件2.txt
如果要将文本附加到文件,语法为:
$ cat >> 文件名
控制台将打开一个新行,您可以在其中添加文本。按Enter和Ctrl+D保存更改。
使用less命令,您可以一次一页地查看文件内容。它不会一次显示所有文本并滚动查看,而是仅打印适合屏幕的信息。您可以使用空格键移动到下一页。
当您需要查看包含大量数据的大型日志时,此功能特别有用。它不仅使阅读日志更加容易,而且还有助于服务器更轻松地运行。如果您使用cat查看大型文件,则需要加载并显示整个文档。使用less 时,Linux 只会读取用户在任何给定时间可见的数据,因此文件实际上是一次加载一小块。
如果要停止阅读文档并返回 shell,请按q。
GNU Nano 是大多数Linux 发行版预装的文本编辑器。有了它,你可以打开、查看和修改任何文件的内容。
它并不是唯一的 Linux 文本编辑器,一些开发人员认为 Vim 是更好的选择。然而,普遍的共识是Nano 更加用户友好,并且对于普通网站所有者来说具有足够的功能。
要打开现有文件,您只需使用nano命令并指定要编辑的文件。如果它位于您当前的工作目录中,您只需输入其名称。如果它位于其他文件夹中 – 您必须指定文件路径。例如:
$ nano /public_html/blog/wp-config.php
如果你想创建一个新文件,原理是一样的。输入nano命令,然后输入新文件的名称。
Nano 可能是一个命令行工具,但它的界面实际上非常简单易用。它还有很多功能。您可以使用鼠标或键盘来标记、复制、剪切和粘贴文本。
它具有查找和替换实用程序以及支持语言的语法高亮功能。编辑完文件后,您可以按Ctrl+X。Nano 会在关闭应用程序并返回到 shell 之前询问您是否要保存更改。
Grep代表“全局正则表达式打印”。该命令用于在 Linux 中查找文件内的文本模式。
比如说,你想找出你的 WordPress 网站使用的数据库的名称。你知道它在wp-config.php文件中的DB_NAME变量下可用。
您无需打开文件并尝试自己找到包含正确信息的行,而是可以使用以下命令:
$ grep “DB_NAME” wp-config.php
上述命令仅当您与 wp-config 文件位于同一文件夹中时才有效。如果您想在当前工作目录及其所有子文件夹中执行递归搜索,则可以使用-r选项。
默认情况下,Linux 中的所有命令和名称都区分大小写。如果要在使用grep时忽略大小写,请使用-i选项。另一方面,如果您只想查找精确匹配,请使用-w选项。
如果您只需要包含所查找术语的文件列表,则可以使用-l选项。
替换实用程序可以自动将一个文本字符串替换为另一个文本字符串。您只需指定要编辑的文件和要更改的对象。语法如下:
$ 替换“原始文本”“新文本”—file.txt
请记住将字符串放在引号中,并在—和文件名之间留一个空格。
在 Linux 中,您可以指定在特定时间执行的命令或程序。例如,您可以创建一个脚本来检查您网站的 CMS 和插件的更新,并在可用时安装它们。可以将该脚本安排在每天午夜您的网站不太繁忙时运行。
计划任务称为cron 作业。您创建的每个 cron 作业都通过您自己的 cron 表进行存储和管理,使用crontab命令,您可以查看和编辑该表。
要查看为您的用户设置的 cron 作业,您需要以下命令:
$ crontab -l
如果你想编辑它,你可以使用:
$ crontab -e
Linux 打开默认文本编辑器(通常是 GNU Nano,但也可能是 Vim)并允许您修改 cron 表。
服务器所有者还可以编辑其他用户的 cron 表。为此,他们需要使用-u选项指定要编辑哪个帐户。
wget和curl都用于将文件下载到您的服务器上。两者之间的主要区别在于wget被认为更加用户友好,而curl是功能更丰富的工具,具有更广泛的选项和支持的协议。
wget的语法和您期望的一样简单。您只需添加要下载的文件的 URL。例如,如果您希望将包含最新版本的WordPress 的存档下载到您的服务器,您需要的命令是:
$ wget https://wordpress.org/latest.tar.gz
这样,Linux 就会下载TAR 档案并将其以相同的名称保存在当前工作目录中。如果下载过程在下载完成之前中断,您可以使用-c 选项(放在 URL 之前)恢复下载,而不是从头开始 – 在移动大文件时很有用。
curl使用的语法类似。以下是完成上述任务的基本命令:
$ curl -O https://wordpress.org/latest.tar.gz
这会将 WordPress 存档作为latest.tar.gz保存在您当前的工作目录中。如果要使用其他名称保存它,请使用–output选项。例如,如果我们希望将存档存储为wordpress.tar.gz而不是latest.tar.gz,我们将使用:
$ curl –输出 wordpress.tar.gz https://wordpress.org/latest.tar.gz
与wget类似,curl使用-c选项支持连续下载。
Tar(有时称为 tarball)是一种计算机实用程序,用于将多个文件收集到一个存档中。该技术最早是在 20 世纪 70 年代开发的,其名称源于磁带存档,因为当时一些存储设备使用磁带。
现在看来这已经是老生常谈了,但尽管如此,tar 档案至今仍广泛传播,尤其是在基于 Unix 的系统上。如果您经常使用命令行,那么您应该熟悉tar命令。
让我们从创建一个新的存档开始。假设您在主目录中,并想使用public_html 文件夹的内容创建一个存档。命令是:
$ tar -vcf 新.tar public_html
如您所见,我们使用了三个选项。-v标志代表详细模式。这意味着 Linux 将在执行存档时打印出它放入存档中的每个文件和目录的名称。您可以在没有它的情况下创建存档,但大多数服务器所有者更喜欢将其用作进度更新。
使用-c选项,我们告诉 Linux 我们正在创建一个新的档案,使用-f,我们表示我们将指定其名称。
上述命令会将您想要的文件和文件夹放入存档中,但不使用任何压缩。要启用它,您需要使用-z标志对 Linux 使用 gzip 压缩数据。您还必须使用.tar.gz扩展名保存新存档。
因此,上面的命令看起来将是这样的:
$ tar -vcfz new.tar.gz public_html
要查看现有档案的内容,您需要将-c选项替换为-t。因此,如果您想检查几分钟前创建的档案中的内容,您需要输入:
$ tar -vtf 新.tar.gz
最后,当您需要从存档中提取文件和文件夹时,应使用-x选项。要从存档中卸载所有数据,命令如下:
$ tar -vxf 新.tar.gz
您还可以通过将其文件路径添加到命令末尾来从档案中提取单个文件。
zip和unzip命令用于管理 ZIP 档案。Zip 是目前最流行的格式,主要是因为它在 Windows 机器上开箱即用。虽然Tar 档案在Linux 系统上被广泛使用,但您也可能会遇到Zip 档案,因此学习如何通过命令行界面管理它们是个好主意。
语法非常简单。当您想要创建一个新的存档并将文件放入其中时,您可以使用zip命令,后跟存档的名称以及要添加到其中的项目的文件路径。
例如:
$ zip new-zip-archive 文件1.txt 文件2.php 文件3.css
请注意,.zip扩展名会自动添加到您的新存档中。您只能将具有特定扩展名的文件添加到存档中。例如,如果您只想存档当前工作目录中的 PHP 文件,则需要:
$ zip new-zip-存档*.php
如果要将文件夹添加到档案中,请导航到其父目录并使用 -r选项创建如下命令:
$ zip -r 新 zip 存档文件夹名称
与 Tar 不同,Zip 默认使用压缩。实际上,有十个级别可供选择,级别 0 表示完全不压缩,级别 9 提供最小的存档文件大小。默认使用级别 6,但您可以使用数字作为选项指定其他级别。
例如,如果您想对上述命令使用级别 3,则需要:
$ zip -3 -r 新 zip 存档文件夹名称
解压更加简单。语法如下:
$ unzip 档案名称.zip
Linux 将自动从档案中提取数据并将其放置在当前工作目录中。
此命令的作用不言自明。它为您提供了最近在服务器上执行的命令列表。您看到的条目数取决于shell 配置和使用模式等因素。列表中通常包含自当前会话开始以来您执行的命令。
如果您需要多次使用复杂命令, history命令会很有用。历史列表中的条目是编号的,Linux 为您提供了从 shell 中快速调用它们的选项。
例如,如果要执行列表中的第 54 条命令,则输入:
$ !54
Linux 自动在终端中输入命令并运行。
如果您正在诊断问题并尝试发现发生了什么,历史记录实用程序也会有所帮助。例如,如果您发现文件丢失,您可以使用rm确定您是否已自行删除它。您可以使用由竖线 ( | )分隔的history和grep命令组合来执行此操作。:
$ 历史|grep“rm”
这将为您提供历史列表中的所有rm命令,帮助您准确查看已删除的内容。
许多网站所有者更喜欢在不深入研究命令行界面的情况下运行他们的项目。这就是我们努力使SPanel尽可能易于使用的原因。
即使没有服务器管理经验的人也应该能够轻松掌握 SPanel 及其各种工具。不过,我们也知道,我们的一些客户是经验丰富的专业人士,他们认为命令行是处理日常网站管理任务的有效方式。
这些人需要访问他们服务器上的Linux 终端,但访问必须快速、简单且安全。这就是为什么SPanel服务器的所有者是唯一可以决定谁可以打开远程 shell 以及谁不能打开的人。在 SPanel 管理界面的主菜单中,您会找到一个名为“管理 SSH 访问”的工具。打开它后,您会看到服务器上所有帐户的列表,旁边有切换开关。
通过这些,您可以决定哪些项目可以通过命令行进行管理。默认情况下,SSH 访问是禁用的,但一旦启用,用户可以打开远程 shell 并使用命令来管理其帐户上的文件和文件夹。
他们可以通过传统的 SSH 客户端进行操作,也可以在浏览器中建立连接。在SPanel 用户界面主页的工具部分下,您会找到SSH 终端。如果您的帐户启用了 SSH 访问权限,它可以让您直接在浏览器中打开 shell,然后您就可以立即开始执行命令。
通过命令行管理网站并不适合所有人,尤其是现在有许多新手友好的替代方案,带有点击界面。然而,许多经验丰富的管理员发现命令更快、更高效。
事实上,了解命令行界面并不是一个坏主意。虽然现在它可能不是运行网站的必要条件,但它可以让你深入了解服务器的内部工作原理,并帮助你获得技术知识,从而简化你的工作流程,让你的生活更轻松。
问: Linux 中最广泛使用的命令是什么?
答:目前没有关于最广泛使用的 Linux 命令的具体统计数据。但是,逻辑决定它应该是ls。命令行界面默认不显示当前工作目录的内容,因此管理员需要使用ls命令来查看他们正在处理的内容。
问: SSH 支持 GUI 吗?
答: SSH 严格来说是一种命令行协议。理论上,您可以使用SSH 远程启动基于 GUI 的应用程序,并在与常规 FTP 客户端的 SFTP 会话期间加密数据流。但是,它与完全基于 GUI 的会话(例如通过Windows远程桌面协议设置的会话)完全不同。
问: SSH 需要 root 访问权限吗?
答:您拥有的权限级别取决于您的托管套餐。有些套餐为您提供对服务器的完全 root 访问权限,允许您安装其他软件、管理核心服务器设置等。对于其他套餐,帐户所有者仍然可以打开远程 shell,但他们的权限仅限于管理文件、文件夹和数据库以及使用预安装的工具来运行他们的网站。