SSH的使用

概述

难度: 简单

所需工具: SSH

本文介绍在SSH中查找服务器的方法。

要求

本文假定:

  1. 您已启用SSH用户,这通常是root或sudo用户
  2. 您已使用 Terminal (Mac) 或 PuTTY (Windows) 登录到服务器,您应该在命令提示符下查看。

如果您需要这些步骤帮助,请参阅:通过SSH连接到服务器

Home和导航

首次登录服务器时,您将位于主目录中。

Linux文件夹结构

Linux使用嵌套的文件夹结构来存储不同的文件。顶级目录被视为根目录,由/指定。根目录级别以下的文件夹用斜杠分隔。例如,您所有的网站内容都位于/var/www/vhosts/example.com/中。

提示:

请记住/不同于/root/,/是服务器的根级别,你不能得到比这更高的。名为root的用户的主目录是/root/

常用路径:

移动到另一个目录

使用此命令进入目录:

cd

您可以从服务器的根目录指定完整路径:

cd/var/www/vhosts/example.com/conf/

您可以输入现在所在的路径(省略开头/):

cd downloads/

您可以进入目录级别:

cd..

您可以转到主目录:

cd~

我在哪里

在没有图形的情况下使用服务器可能需要一些时间来适应。如果您需要确切查看您所在的文件夹,请使用以下命令:

pwd

他代表打印工作目录。您将看到如下输出:

/var/www/vhosts/

这是什么

接下来,我们要查看当前目录中的文件和文件夹列表:

ls -alh

ls是列表命令,-alh通过三种方式修改标准列表。-表示应显示所有文件甚至隐藏文件。l表示使用了长格式,它显示了文件大小和每个文件的最后修改日期的信息。h使尺寸以方便的单位显示。下面是一些示例:

drwxr-x--- 10 domainuser psaserv 4.0K Oct 20 19:51.
drwxr-xr-x 14 root	root	4.0K Aug 17 22:16.
-rw-r--r-- 1 domainuser psacln 2.1K Apr 20 2010 about.php
-rw-r--r-- 1 domainuser psacln 907 Feb 25 2010 archive.php
drwxr-xr-x 2 domainuser psacln 4.0K Jul 2 16:43 image
-rw-r--r-- 1 domainuser psacln 1.9K Mar 5 2010 index.php

文件

让我们分解上一部分中运行ls -alh命令时显示的文件元素。

-rw-r--r-- 1 domainuser psacln 1.9K Mar 5 2010 index.php
  • -re-r--r-- -这些是此文件的权限。r代表“读取”,w代表“写入”,x代表“执行”。第一个字符是独立的,接下来的九个字符以三个为一组:第一个三元组 (rw-) 适用于所有者,第二个 (r–) 适用于组,第三个 (r–) 适用于所有人。因此,在此示例中,所有者具有读取和写入访问权限,组仅具有读取访问权限,每个人都具有读取访问权限。有关详细讨论,请参见 文件权限
  • 1 -指向此文件的链接数。
  • domainuser -此文件的所有者。
  • psacln -此文件所属的组。
  • 1.9K -此文件的大小。
  • Mar 5 2010 -此文件最后的修改日期。
  • index.php -此文件的名称。

更改权限,所有者和组

本节显示了用于更改文件访问设置的基本命令。强烈建议您在进行任何更改之前先阅读 文件权限,以便了解哪些类型的更改是好的,那些可能存在安全风险。

要更改权限:

chmod 755 index.php

chmod 是命令。755是一种代码,用于告诉您要对文件进行那种类型的读取、写入和执行权限。index.php 是一个示例 - 您应使用文件名替换。

快速权限指南:

		7 = 读取 + 写入 + 执行
  	6 = 读取 + 写入
		5 = 读取 + 执行
		4 = 读取
		3 = 写入 + 执行
		2	= 写入
		1 = 执行
		0 = 拒绝所有访问
第一个数字用于所有者,第二个数字用于组,第三个数字用于每个人。

更改所有者:

chown domainuser index.php

chown 是命令,是 “更改所有者” 的缩写。

domainuser 是可能的所有者名称的一个示例 - 您应使用所需的所有者名称替换它。请注意,所有者必须存在于服务器上。 index.php 是一个示例 - 您应使用文件名替换。

更改组:

chgrp psacln index.php

chgrp 是命令,是 ”更改组“ 的缩写。psacln 是常见的 Plesk 组的一个示例 - 您应使用所需的组名替换它。请注意,该组必须存在于服务器上。

一次性更改所有者和组:

chown domainuser:psacln index.php

这个命令与前面的 chown 示例完全相同,只不过在冒号 (:) 之后也指定了组。

复制文件

使用以下命令将文件复制到其他位置(第一个示例),或复制到相同文件夹但具有新名称(第二个示例):

cp logo.png image/logo.png
cp index.php index.php_old

cp 是命令。列出的第一个文件是您要复制的文件,第二个文件是该文件的复制版本的新名称,包括有关复制位置的所有路径信息。您可以使用上面示例中的相对路径(即,当前文件夹中已经有一个图像文件夹),或者可以使用以/ 开头的完整服务器路径。 您还可以使用-R 复制整个文件夹(以及所有子文件夹):

cp -R image/image2

移动或重命名文件

move 命令的格式与copy 命令的格式非常相似。这是一个例子:

mv logo.png image/logo.png

move 是基本命令。这会将logo.png 移动到image/ 子目录。

您还可以使用它来重命名文件:

mv index.php index.php_old

这会将index.php 重命名为index.php_old 。 最后,您可以像移动单文件一样轻松地移动文件夹。本示例说明如何将iamge/ 上移一层(.. 表示”上一层“):

mv image/..

使用zip 压缩和解压文件

使用以下命令压缩文件:

zip -r archive_name.zip folder_to_compress

使用此命令解压压缩文件:

unzip archive_name_zip

在这些示例中,zipunzip 是命令。-r 选项告诉命令以递归方式工作。在archive_name.zip 列出的是该文件的名称。最后,folder_to_compress 是您要压缩的目录。

同步

rsync 命令可以代替cp 命令使用,并且可以在Linux 的所有平台上使用。rsync 可以与cp 相同的方式使用,并且有其他好处,例如文件权限和所有权保留,传输期间的压缩以及文件之间的比较以更新备份。

rsync -a logo.png images/logo.png
rsync -a index.php index.php_old	

rsync是命令,后跟”-a “标志,该标志使系统知道保留权限,所有权,时间戳记以及是否rsync 目录,以使其递归执行。下一部分“logo.png ”是源文件,后跟该文件要复制到的目标。 rsync的另一个用途是能够通过网络将文件和文件夹复制到另一台服务器。如果您要运行一些备份,或在(mt) Media Temple网络中从一台服务器迁移到另一台服务器,这将非常有用。第一示例将向您展示如何使用SSH 登录凭据将example.com 的整个文档根目录复制到另一台服务器。

rsync -avz example.com
user@host:/path/to/destination

当您按Enter 键时,将提示您输入远程服务器上用户的密码。这会将整个目录example.com 及其内容移动到远程器上的目标位置。选项-avzrsync 知道您要存档文件许可证,所有权,对于正在处理的文件进行冗长的读出,并且希望压缩文件以使用更少的带宽。 您也可以反向进行此操作,以将文件副本从远程服务器下载到本地计算机。

rsync -avz user@host:/path/to/source./

再次提示您输入远程服务器上用户账户的密码。这会将指定文件从远程服务器复制到本地计算机上的当前工作目录。

创建或编辑文件

vi file.html

如果这是一个新文件,则在打开时将为空,然后可以开始添加内容。如果这是现有文件,则将看到其内容,您现在可以对其进行编辑。

vi 提示:按“i ”进入“插入模式”,以便您可以键入和复制/粘贴。使用箭头键在文件中来回移动。完成修改文件后,按“Esc ”退出 “ 编辑模式 ”。键入”: wq “以保存并退出。

有关更多详细信息,请参见了解基本vi(可视编辑器)

touch new_file.html

如果使用现有文件名,它将”触摸“该文件并更新其最后修改日期。

使用SSH 用户的所有者和组创建文件。创建新文件后,最好运行 ls -alh  以确保其所有权与目录中其余文件相匹配。如果没有,请运行前面部分中的chown 命令。

在文件中读取或搜索

如果您需要浏览文件,则获取屏幕上所有内容的最快方法是cat

cat index.html

<html>
<head>
	<title>Home</title>
</head>
<body>
   <p>Hello,world!</p>
</body>
</html>

但是,如果文件很大,这可能会令人不知所措。在这种情况下,可以使用较少的| 或更多的| 字符。更方便地滚动浏览内容。较少使用箭头键,更多使用Enter 。键入q 退出其中一个。

less access_log
cat access_log | more
cat error_log | egrep "permission"

这将仅列出包含单词”permission “的行。cat 显示内容。接下来,键入文件的名称。| 表示应通过下一条命令过滤输出。egrep 进行搜索。您的搜索词应带有引号,以防万一它带有特殊字符。

删除文件

您也可以使用SSH 删除文件。再删除之前,请确保不再需要它。

rm index.php_old

您将收到如下输出:

rm:remove regular file 'index.php_old'?

输入y 确认,或输入n取消。如果不想被提示,请在命令中添加-f

rm -rf index.php_old

另外,如果要删除整个目录及其内容(包括子目录),请添加-r 。批准目录中的每一次删除操作可能很快就会变得单调乏味,所以通常使用-f 。 请谨慎使用rm -rf 命令。它将不可逆地删除一个文件夹及其中的所有文件和子文件夹。 为确保删除正确的内容,您可以始终先运行list 命令。例如:

ls -alh /path/to/unwanted/folder

这是递归删除命令:

rm -rf /path/to/unwanted/folder

磁盘使用

df -h

您将看到这样的输出,其中使用了数量和百分比:

Filesystem				Size Used Avail Use%
Mounted on
/dev/vzfs				20G 3.1G 17G 17%/
simfs					20G 3.1G 17G 17%/tmp
simfs					20G 3.1G 17G 17%/var/tmp