SSH命令行可能是访问网站服务器最安全,最方便的方法之一。
这是用于访问您站点上文件的协议,即“ Secure Shell”。只要您拥有登录凭据,就可以使用它从任何地方访问您的站点,并最大程度地保证这个访问是安全的。
在本文中,您将了解一些可用于WordPress网站服务器管理的 最有用的SSH命令行。
什么是SSH以及如何使用?
SSH是用于访问WordPress网站上文件的安全协议。这篇文章重点介绍可以使用的SSH命令行,因此,这里将不再展开介绍如何使用SSH访问您的站点,而只会简单概述一下。
什么是SSH?
SSH或“Secure Shell”是一种协议,可用于访问远程服务器上的文件和目录。SSH规范将它定义为:
“用于在不安全的网络上进行安全的远程登录和其他安全的网络服务的协议。”
您可以使用终端(macOS或Linux上)或例如PuTTY或者Xshell客户端(Windows上),通过SSH访问您的站点,而不是使用Web浏览器。
如何在WordPress中使用SSH?
对于WordPress网站,SSH将帮助您通过管理界面或直接访问WordPress安装文件以及您添加到wp-content目录中的所有文件。
您很有可能会在wp-content目录中使用它,偶尔在根目录中使用它来访问wp-config.php之类的文件。
要在您的站点管理工作中使用SSH命令行,请打开“终端”或客户端(如PuTTY或Xshell),然后通过输入服务器相关信息进行安全访问。包括:
- 服务器IP地址;
- 服务器用户名;
- 服务器密码;
- 访问端口。
以SSH客户端Xshell为例,安装启用Xshell,点击“文件-新建”来创建一个站点的会话:选择协议为SSH;填写服务器IP地址;输入端口,一般是22。如下图:
服务器基本信息填写
此外,你还需要填写该服务器的用户身份验证信息,一般使用的是用户名+密码的登录方式,当然也有可能使用密钥等其他安全方式登录。如下图:
服务器身份验证
完成此操作后,即可开始针对你的WordPress网站服务器使用SSH命令行。
如果您的连接被服务器拒绝,则可能是由于多种原因之一。你可能还需要进行故障排除(常见的原因有账号密码错误、端口错误、服务器当前网络无法访问等),以重新建立连接。
什么是PuTTY?如何使用?
如果您使用的是macOS或Linux,则已经具有通过SSH访问WordPress站点服务器的工具,因为系统内置终端即可使用SSH。
但是,如果您使用的是Windows,则需要安装客户端才能使用SSH。
最受欢迎的SSH客户端是PuTTY(小编则更习惯了上面提到的Xshell)。您需要下载并安装它,然后才能从Windows访问您的服务器。然后,您在PuTTY中使用与在终端中相同的SSH命令。
如何使用WordPress自动执行SSH命令?
使用SSH访问WordPress站点的好处之一是,您可以自动化常用命令。
您可以通过使用WP-CLI(WordPress命令行界面)来实现。通过WP-CLI界面,您可访问WordPress特定命令库,使用SSH以外的命令。
使用WP-CLI意味着您可以自动化WordPress管理任务,例如更新WordPress安装,安装插件和配置远程服务器。使用命令行大大提升WordPress管理效率。
将SSH与WordPress结合使用的好处
将SSH与WordPress结合使用有许多好处:
- 安全。随处随地通过安全的通道对服务器进行访问。
- 方便。无需进入WordPress仪表盘即可完成许多WordPress管理工作。
- 高效。在许多情况下,使用SSH命令比使用WordPress仪表盘或通过SFTP访问文件要快得多。
上面我们简单地了解了什么是SSH以及如何使用命令行管理WordPress,接着我们一起来深入了解最常见的一些SSH命令行。
26个最常见的SSH命令行
SSH协议具有多种命令。下面为方便起见,列出了最常用的类别,并将它们分为几类。
目录命令
您可以使用多种SSH命令来操作处理WordPress网站中的目录(或文件夹)。
pwd –显示当前目录(当前位置的完整路径)
使用pwd
命令可显示您当前所在位置的服务器完整路径。
pwd命令
当你不清楚你当前在服务器中所在的位置时,请使用此命令,您将看到有关确切位置的更多信息。这对检查您的位置很有用,因为您没有使用代码编辑器或FTP客户端时,无法直观地看到当前所在位置。
ls –显示目录内容(列出文件名)
使用ls
命令将显示当前目录所有内容。
ls命令
您还可以使用其他参数来自定义ls
命令或将其添加到命令返回的信息中:
ls -a
显示隐藏的文件。ls -l
显示目录内容的文件详细信息,例如权限,所有权,日期等。ls -s
以块为单位列出文件的大小。ls -s -h
以易于阅读的形式显示大小。
确保在命令和任何参数之间键入一个空格。
ls -a命令
cd –更改目录位置
cd
命令即帮助你从当前目录进入到另一个目录。您可以移至当前目录的子目录,也可以使用正确的参数向上或向下移动。
下面的命令即从服务器的根目录转到public目录:
cd public
要上移目录树或返回原目录,请使用以下参数之一:
cd ..
转到当前位置上一级目录。cd ../foldername
转到您上一级目录中的另一个文件夹中。cd –
转到当前位置的一级目录。cd /
转到根目录。
在下面的屏幕截图中,我进入了某个网站的根目录并列出了其内容。如果您WordPress站长,应该对这些文件不陌生:
进入网站根目录并列出文件内容
mkdir –创建一个新目录
使用mkdir
命令,可以在当前目录中创建一个新目录。
举个栗子,比如您位于WordPress某个插件文件夹中,并且想要为样式表添加目录,则可以使用以下命令:
mkdir styles
这会将一个新的空目录添加到当前所在的文件夹中。如果你要创建的目录不在当前位置,你需要输入完整的路径地址。打个比方你现在所在位置为wp-content文件夹,那你输入命令应该像:
mkdir /plugins/myplugin/styles
rmdir –删除目录
rmdir
命令将删除服务器上的目录。使用该命令要小心谨慎,因为没有后悔药可吃!
与一样mkdir
,您可以使用rmdir
命令来删除当前位置的目录:
rmdir styles
或者,您也可以使用rmdir
命令来删除指定路径的文件夹,比如:
rmdir /plugins/myplugin/styles
rm
命令还可以添加其他参数,完成更多的删除动作。
rm * foldername
–删除目录中的所有文件或内容。rm -r foldername
–删除文件夹以及文件夹内的所有内容。
文件或目录管理命令
以下命令可用于文件或文件夹/目录。
cp –复制文件或文件夹
你可以使用cp
命令来复制文件或者文件夹到另一个位置。您需要指定要将文件或文件夹复制到的位置。
cp filename.extension /dir/
上面的命令指定要复制的文件的名称(包括扩展名)及复制位置。
你还可以对复制的文件执行重命名(即新版本的名称与原始版本的名称不同),如:
cp filename.extension /dir/filename.extension
此命令还可以使用各种参数,来完成不同的操作:
cp -r
复制文件夹的所有内容。cp -f
如果已有另一个同名文件,则删除目标文件,并用新文件覆盖它。cp -i
复制前会提示警告信息。cp -u
仅当文件具有不同的内容时,才覆盖目标文件夹中的文件。cp -n
检查文件是否存在,如果存在,将不会复制。该命令不会覆盖文件。cp -a
在保留原文件属性的前提下复制文件。
mv –移动文件或文件夹
除了复制文件和文件夹,您还可以移动它们。你可以通过mv
命令来实现。
与一样cp
,您可以移动文件或文件夹并保持相同的名称,也可以移动并执行重命名操作。
mv filename.extension /dir/
移动文件并保持相同的名称。mv filename.extension /dir/filename1.extension
移动并重命名文件。mv filename/ ..
将文件移至上一个文件夹。
zip –压缩文件或文件夹
您可以对文件夹或文件使用的另一个命令是zip
,压缩文件夹及其内容。命令需包括将被压缩为zip文件的文件/文件夹的名称。您还可以加入一些参数,来实现不一样的压缩操作:
zip -r filename.zip foldername
仅压缩,不删除文件夹。zip -m filename.zip foldername
压缩文件夹并将其删除,仅留下压缩版本的文件夹。zip -d filename.zip foldername
从指定的现有zip存档中删除文件。zip -u filename.zip foldername
更新现有zip归档文件中的文件:如果您只是想更新了原始文件并且不想删除该zip文件并创建一个新文件,这个命令则非常有用。
zip -r命令
然后,当您列出文件夹的内容时,您将看到zip文件和原始文件夹(如果使用的命令是zip -r
),但如果使用的命令是zip -m
,则只会看到新的zip文件。
zip压缩文件
unzip –解压压缩包
unzip
命令将解压缩目录中的zip文件并提取压缩包里的内容至当前目录。
unzip twentyseventeen.zip
如果您没有在压缩时删除原始文件夹,请不要使用这个命令,因为该命令不会覆盖原始文件夹。因此,如果你执行压缩命令时如无需保留原文件夹时,应该使用zip -m
命令压缩,又或者使用rm
命令来删除原文件夹后再执行解压命令。
您还可以添加参数来执行不一样的解压操作:
unzip filename.zip -x excludedfile.zip
指定不要处理.zip压缩文件中的哪些文件。unzip filename1.zip filename2.zip filename3.zip
将解压缩多个文件。您可以根据需要使用任意数量的zip文件,这比在FTP客户端中执行此操作要快得多。
tar –创建和解压压缩档案
tar
命令用于创建和解压.tar.gz格式的压缩文件,一般情况下我们使用此命令来替代.zip归档文件。
要压缩文件或文件夹,可以使用tar cvzf
命令。压缩文件夹的语法为:
tar cvzf archivename.tar.gz directoryname
上面archivename
是要创建压缩文件的名称,directoryname
则是需要压缩的文件夹的名称。
与压缩命令对应的解压命令是tar xvzf
:
tar xvzf archivename.tar.gz
这四个字母代表具体说明:
c
告诉tar这是一个压缩文件命令。x
告诉tar这是一个解压文件命令。v
告诉tar在压缩或解压缩过程中显示正在处理的文件名。z
告诉tar通过gzip支持压缩或解压缩。f
告诉tar您需要操作的档案名称,也就是说f后面必须跟上要处理的文件名。。
文件命令
以下是专门用于文件处理的最常见SSH命令列表。
touch –创建一个新文件
要在服务器上创建一个新的空文件,可以使用touch
命令:
touch style.css
您只能在当前目录中创建文件,因此在使用touch
命令之前,您必须通过cd
命令进入对应的目录。
cat –显示文件内容
要显示文件的内容,使用cat
命令。
cat命令
该命令可以在终端或PuTTY中显示任何文件的全部内容。
grep –搜索特定短语
如果您需要某一特定文件上查找的指定内容(尤其是一些内容比较多的文档),则可以使用grep
命令搜索特定的内容。
下面的截图是演示在某一主题的sidebar.php文件中搜索“ sidebar”一词。
grep命令
使用此命令可以显示指定文件包含搜索词的所有行。
如果我想搜索不止一个单词的字符串,则需要将其括在英文双引号中:
grep "nav class" footer.php
grep
命令带参数,用于自定义搜索:
grep -i "string" filename
在文件中不区分大小写地搜索字符串。grep -c "string" filename
计算文件中字符串的实例数。grep -l "string" *
列出包含字符串的文件。grep -n "string" filename
在指定文件搜该字符串,并显示行号以结果。
head –读取文件的前10行
如果您只想读取文件的开头行,可以使用head
命令:
head filename.extension
head命令
tail –读取文件的最后10行
tail
命令的工作方式与head
命令相同,但是读取文件的最后十行:
tail filename.extension
find –搜索文件和目录
find
命令可帮助您搜索文件和目录,并返回符合指定条件的文件和目录。下面的命令将在当前目录中搜索名称包括 “index” 的所有文件:
find . -name “index”
find
命令语法为: