基本 SSH 命令列表
您的 Bluehost 账户包含 SSH(安全外壳)访问权限。无论您是服务器管理新手还是有一定经验,了解基本的 SSH 命令都非常重要。
在本指南中,我们将介绍一系列重要命令。这些命令可以帮助您在远程服务器上执行文件移动、系统状态检查等任务。
有关 SSH 协议的更多信息,请参阅以下文章:
- 什么是 SSH 访问及如何在您的主机账户中启用它
- 什么是 SSH 连接 - 如何在 PuTTY、Mac 和 Linux 中编辑
- 什么是 SSH 命令?
- 基本 SSH 命令列表
- 如何使用 SSH 命令
- SSH 密钥管理最佳实践
- 总结
什么是 SSH 命令?
SSH 命令是用于在不安全网络上建立两个系统之间安全加密通信的工具。它们允许您运行终端会话、安全地移动文件,并为其他应用程序设置安全通道,确保所有交换的数据保持私密并防止未经授权的访问。
基本 SSH 命令列表
以下是最常用的 SSH 命令:
重要提示: 使用 "rm" 命令时请小心,避免删除无法通过恢复找回的重要内容。
| 命令 | 描述 |
|---|---|
| cat | 将文件内容打印到屏幕 |
| cat filename.txt | 将 filename.txt 的内容打印到屏幕 |
| cd - | 切换到上一个目录 |
| cd .. | 返回上一级目录 |
| cd /usr/local/apache | 进入 /usr/local/apache/ 目录 |
| cd ~ | 进入您的主目录 |
| mkdir | 在服务器指定路径创建新目录或文件夹 |
| scp | 在本地计算机与远程服务器之间或两个远程服务器之间安全传输文件 |
| cp -a /home/burst/new_design/* /home/burst/public_html/ | 复制所有文件并保留权限,从一个目录到另一个目录 |
| cp | 复制文件 |
| cp filename filename.backup | 将 filename 复制为 filename.backup |
| du | 显示磁盘使用情况 |
| du -sh | 以人类可读格式显示当前目录(包括子目录)所占用的总磁盘空间摘要 |
| du -sh * | 与 du -sh 类似,但针对每个文件和目录,便于查找占用大量空间的文件 |
| file | 通过查看文件内容尝试判断文件类型 |
| ls * | 列出目录中的所有文件和目录(注意:原文中的 file* 可能为误写,正确命令应为 ls *) |
| find * -type d | xargs -i cp --verbose php.ini |
| grep | 在文件中查找匹配模式 |
| grep -v root /etc/passwd | 显示所有不包含 root 的行 |
| grep root /etc/passwd | 显示 /etc/passwd 中所有包含 root 的匹配行 |
| kill | 终止系统进程 |
| kill -9 PID 例如 | kill -9 431 |
| kill PID 例如 | kill 10550 |
| 使用 top 或 ps ux 获取系统 PID(进程 ID) | |
| last | 显示谁登录过及登录时间 |
| last -20 | 仅显示最近 20 次登录 |
| last -20 -a | 显示最近 20 次登录,最后一栏显示主机名 |
| ln | 创建文件和目录之间的“链接” |
| ln -s /home/username/tmp/webalizer webstats | 现在您可以通过 http://www.yourdomain.ext/webstats 在线显示 Webalizer 统计数据 |
| 删除符号链接(webstats)不会影响服务器上的原始统计数据 | |
| ls | 列出目录中的文件和目录,相当于 Windows/DOS 中的 dir |
| ls -al | 显示所有文件(包括以点开头的隐藏文件)、目录及每个文件的详细属性 |
| more | 类似 cat,但一次只打开一屏内容 |
| more /etc/userdomains | 浏览 userdomains 文件 |
| 按空格键翻页,按 q 退出 | |
| netstat | 显示所有当前网络连接 |
| netstat -an | 显示服务器的所有连接,包括源和目标 IP 及端口 |
| netstat -rn | 显示服务器绑定的所有 IP 的路由表 |
| pico | 友好且易用的文件编辑器 |
| pico /home/burst/public_html/index.html | 编辑用户网站的首页 |
| ps | ps 是 process status(进程状态)的缩写,类似 top 命令 |
| 用于显示当前运行的进程及其 PID | |
| 进程 ID 是唯一标识进程的数字;您可以使用 kill 命令终止服务器上的运行程序 | |
| ps aux | 显示所有系统进程 |
| ps aux --forest | 显示所有系统进程,并以层级结构组织显示 |
| ps U username | 显示某个用户的进程 |
| rm | 删除文件 |
| rm filename.txt | 删除 filename.txt,通常会询问是否确认删除 |
| rm -f filename.txt | 删除 filename.txt,不会询问确认 |
| rm -rf tmp/ | 递归删除 tmp 目录及其中所有文件和子目录 |
| tail | 类似 cat,但只读取文件末尾部分 |
| tail -f /var/log/messages | 持续监视文件更新 |
| tail /var/log/messages | 查看 /var/log/messages 文件的最后 20 行(默认) |
| tail -200 /var/log/messages | 打印文件最后 200 行到屏幕 |
| top | 以表格形式显示实时系统进程、内存信息、运行时间及其他有用信息 |
| 非常适合管理系统进程、资源,确保服务器运行正常且未过载 |
top
Shift + M 按内存使用排序
Shift + P 按 CPU 使用排序
touch | 创建空文件
touch /home/burst/public_html/404.html | 在 /home/burst/public_html/ 目录下创建名为 404.html 的空文件
vi | 功能丰富的编辑器
vi /home/burst/public_html/index.html | 编辑用户网站首页
w | 显示当前登录用户及其登录来源
wc -l filename.txt | 显示 filename.txt 中的行数
wc | 统计字数
当前 Shell 进程示例
| PID | TTY | TIME | COMMAND |
|---|---|---|---|
| 10550 | pts/3 | 0:01 | /bin/csh |
| 10574 | pts/4 | 0:02 | /bin/csh |
| 10590 | pts/4 | 0:09 | APP |
| 每行代表一个进程,进程是程序的运行实例。 |
- PID(进程 ID)显示进程的编号。
- TTY 是启动该进程的终端编号。
- TIME 是进程使用的 CPU 时间。
- COMMAND 显示执行进程的位置。
如何使用 SSH 命令
您经常需要在同一行使用多个命令。以下是一些示例:
- | 字符称为管道,将一个程序的输出传递给另一个程序作为输入。
- | - 这也是管道,将一个程序的数据传递给另一个程序。
- > - 创建新文件并覆盖已有内容。
- >> - 追加数据到文件,若文件不存在则创建新文件。
- < - 从文件中读取输入传递给命令。
- grep User /usr/local/apache/conf/httpd.conf | more - 从 httpd.conf 中筛选包含 User 的所有行,分页显示结果。
- last -a > /root/lastlogins.tmp - 将当前登录历史输出到 /root/lastlogins.tmp 文件。
- netstat -an | grep :80 | wc -l - 显示 Apache(httpd 运行在端口 80)当前的活动连接数。
- mysqladmin processlist | wc -l - 显示当前 MySQL 的打开连接数。
- mysqldump -u username -p dbname > file.sql - MySQL 数据库导出。
- mysql -u username -p database_name < file.sql - 导入 MySQL 数据库。
- tail -10000 /var/log/exim_mainlog | grep domain.com | more - 获取 /var/log/exim_mainlog 的最后 10000 行,查找所有 domain.com 的出现(点号代表“任意字符”,用反斜杠转义以字面匹配),分页显示结果。
- tar -zxvf file.tar.gz - 解压 tar.gz 文件。
- which [perl] - 查找 [perl] 的路径。
SSH 密钥管理最佳实践
安全外壳(SSH)对于安全管理远程服务器至关重要。以下是关键的安全实践:
- 实施双因素认证(2FA)。通过要求密码和临时验证码,提供额外的安全层。
- 部署防火墙。限制 SSH 访问仅允许可信 IP 地址或网络,减少未授权访问风险。
- 禁用 root 登录。在 SSH 配置中禁用直接 root 登录,防止攻击者直接访问 root 账户。
- 保持 SSH 软件更新。定期更新 SSH 服务器和客户端软件,确保拥有最新的安全功能和补丁,防止已知漏洞被利用。
提升 SSH 连接的安全性,保护您的系统免受潜在威胁。
总结
了解 Linux 中基本的 SSH 命令,可用于安全访问终端、传输文件和隧道各种应用程序。命令包括文件管理命令如 cat、cd、cp、du、file、find、grep、kill、last、ln、ls、more、netstat、pico、ps、rm、tail、top、touch、vi 和 w。使用某些命令时尤其要小心,特别是 "rm" 命令,以避免删除无法恢复的重要内容。