on
SSH的使用
概述
难度: 简单
所需工具: SSH
本文介绍在SSH中查找服务器的方法。
- 除非另有说明,否则在每个命令后点击“输出”或“返回”。
- 域
example.com
应始终替代为您自己的域名。 - 示例路径和文件名也应替换为您自己的服务器信息。
要求
本文假定:
- 您已启用SSH用户,这通常是root或sudo用户
- 您已使用 Terminal (Mac) 或 PuTTY (Windows) 登录到服务器,您应该在命令提示符下查看。
如果您需要这些步骤帮助,请参阅:通过SSH连接到服务器
Home和导航
首次登录服务器时,您将位于主目录中。
- 对于root用户,这是
/root/
Linux文件夹结构
Linux使用嵌套的文件夹结构来存储不同的文件。顶级目录被视为根目录,由/
指定。根目录级别以下的文件夹用斜杠分隔。例如,您所有的网站内容都位于/var/www/vhosts/example.com/
中。
提示:
请记住
/
不同于/root/
,/是服务器的根级别,你不能得到比这更高的。名为root的用户的主目录是/root/
。
常用路径:
/var/www/vhosts/example.com/httpdocs/
-网络文档根目录/var/www/vhosts/example.com/statistics/logs/
-每个域的访问和错误日志/var/www/vhosts/example.com/conf/
-每个域的配置文件/etc/
-配置文件/etc/init.d/
-软件守护程序启动文件
移动到另一个目录
使用此命令进入目录:
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
在这些示例中,zip
和unzip
是命令。-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
及其内容移动到远程器上的目标位置。选项-avz
让rsync
知道您要存档文件许可证,所有权,对于正在处理的文件进行冗长的读出,并且希望压缩文件以使用更少的带宽。
您也可以反向进行此操作,以将文件副本从远程服务器下载到本地计算机。
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
- 递归地显示当前目录的所有文件夹大小,以及它们的大小: