从0开始学习Linux——远程连接工具
往期目录:
从0开始学习Linux——简介&安装
从0开始学习Linux——搭建属于自己的Linux虚拟机
从0开始学习Linux——文本编辑器
从0开始学习Linux——Yum工具
Linux 远程连接工具是指用于从远程计算机连接到 Linux 系统并进行操作的各种工具。它们可以帮助管理员或用户管理远程 Linux 服务器、执行命令、文件传输、图形界面应用等。
那么现在我们可以思考一个问题:我们为什么要用远程连接工具去操作Linux系统?
首先Linux 系统通常作为服务器在数据中心或云平台运行,许多情况下,这些服务器可能位于远程位置。因此,远程连接工具对于系统管理员来说至关重要。管理员可以通过这些工具远程登录到服务器上进行日常的系统管理和故障排除,而无需物理访问服务器。
其次在企业和开发环境中,许多人需要对多个 Linux 系统进行管理。通过远程连接工具,系统管理员和开发人员可以高效地访问并处理多个主机,减少了往返物理服务器的时间和精力。
同时Linux 服务器通常部署在对外开放的环境中,安全性尤为重要。远程连接工具(尤其是 SSH)提供了加密、身份验证等安全机制,确保数据和系统的安全。
我们前面的教程中在安装Linux时选择的Centos7版本,并且选择的是最小安装即没有图形化桌面,只能通过命令去操作,可能大家也发现了一个问题,那就是命令需要我们一个个去手敲,在很多场景中可能会比较麻烦,因此一些图形化远程连接工具可以帮我们高效的去操作Linux系统中的命令。
同样在Linux系统出现故障时,管理员可能无法直接访问服务器(如服务器挂起、网络中断等情况)。此时,远程连接工具尤其重要。
前面的教程中我们是将Linux系统安装在VM虚拟机上面的,因此有时候我们要将我们的项目部署到系统上或者传输文件就比较麻烦,因此我们就有必要借助远程连接工具去帮助我们完成任务。
当然若我们的Linux系统在公司的电脑上运行,如果我们想要在家中去操作,也是可以借助远程工具的。
现在我们已经了解了远程连接工具的必要性,下面我们来了解一下常见的远程连接工具。
一、SSH (Secure Shell)
SSH(Secure Shell)是一种用于在不安全网络上进行加密通信的协议,常用于远程登录和执行命令,提供了一种安全的方式来管理远程计算机。SSH 最初由 Tatu Ylönen 于 1995 年设计并发布,它主要取代了早期的不安全协议(如 Telnet、rlogin 和 FTP),提供了更高的安全性和数据保密性。
SSH 协议通过使用加密和认证技术,确保远程登录和数据传输的安全性。SSH 使用 对称加密、非对称加密(公钥加密)和 消息认证码(MAC) 来实现以下目标:
- 身份验证:确保通信的双方身份合法。
- 加密通信:防止数据在传输过程中被窃听。
- 数据完整性:确保数据未被篡改。
下面我们来探究一下SSH的工作流程:
- 客户端发起连接请求:SSH 客户端(例如ssh命令)通过 TCP 端口 22 向远程服务器发送连接请求。
- 密钥交换:在连接建立时,双方交换加密密钥,客户端和服务器之间会协商出对称加密密钥。通过这种方式,通信内容将被加密,防止第三方窃听。
- 身份验证:服务器会要求客户端进行身份验证,通常通过用户名和密码、SSH 密钥对(公钥/私钥)或其他认证方式(如 Kerberos)进行验证。
- 建立加密通信:一旦身份验证成功,客户端与服务器之间的通信将通过加密通道进行,所有的命令和数据都将被保护在加密层中。
SSH 协议有多个组成部分,每个部分负责不同的功能:
- SSH-Transport:负责加密和密钥交换,确保数据的机密性和完整性。
- SSH-User-Authentication:负责客户端的身份验证,确认连接的用户是否合法。
- SSH-Connection:负责传输用户的数据和命令。
1.1 连接方式
上述我们简单了解了SSH协议,下面我们就来了解一下SSH的连接方式。
1.1.1 密码验证
密码验证是最常见的一种SSH连接方式。在这种方式下,用户需要输入用户名和密码来进行身份验证:
- 用户通过SSH客户端(如SSH命令、PuTTY等)连接到远程服务器。
- 服务器要求客户端提供用户名和密码。
- 客户端将密码发送给服务器,服务器根据存储的密码进行比对,如果匹配,则允许连接。
接下来我们就来实际操作一番,首先我们在我们的电脑上打开命令行工具,然后输入ssh命令以及要登录的Linux系统所在机器的ip地址、登录用户名等。
注意:上述我们在连接时没有写明端口号,那是因为默认端口是22,因此就省略不写了,当然我们也可以去更改服务器的端口号,然后在使用ssh连接的时候使用“-p”命令指明端口号就行了,例如:
ssh root@192.168.33.131 -p 233。
补充:如何修改端口号
如果我们想要把我们Linux系统所在的机器的默认端口号22进行修改,那么我们可以去编辑
/etc/ssh/sshd_config文件,然后将里面的port=22修改为自己的值就可以了。
我们修改好port以后需要重启ssh服务,便于ssh服务生效。
systemctl restart sshd
注意:如果机器防火墙是开启的,那么我们就需要在防火墙里面开启22端口号。
1.1.2 密钥验证
这种方式通过公钥和私钥对进行身份验证。相较于密码验证,基于密钥的验证更加安全,且避免了频繁输入密码的麻烦。
首先先打开我们的电脑的命令行例如我的电脑是windows那么就打开cmd或者powershell,打开以后执行命令:
ssh-keygen
我们在执行上述命令的时候会询问公钥和密钥的保存路径,如果没有特殊需求我们直接回车就行。
上述命令执行完成以后默认会在C:\Users\用户名\.ssh文件夹里面生成一个rsa私钥即id_rsa.和一个公钥即id_rsa.pub.
接下来我们需要将我们刚才生成的公钥保存到Linux系统所在的计算机上。
对于公钥我们需要保存到~/.ssh/authorized_keys文件里面。
我们先来看下有没有该文件。
cat ~/.ssh/authorized_keys
我们运行这条命令后发现不存在该文件,因此我们要先去创建该文件。
我们先创建.ssh文件夹。
mkdir -p ~/.ssh
注意:上述命令种的-p表示创建文件夹的时候没有父级目录的时候就会创建父级目录。
创建好该文件夹以后我们需要赋予该文件夹一定的权限。
chmod 700 ~/.ssh
接下来我们就可以使用文本编辑工具去保存公钥。
我们先去电脑上保存在本地的id_rea.pub.里面的内容给复制下来。
接着我们先使用文本编辑工具在linux系统里面创建文件。
文本编辑工具 ~/.ssh/authorized_keys
最后将复制的公钥保存到~/.ssh/authorized_keys文件里面,并且执行下述命令给该文件赋予一定的权限。
chmod 600 ~/.ssh/authorized_keys
上述工作完成以后我们就可以在我们的电脑上使用ssh和生成的密钥去连接Linux系统。
注意:上述连接操作种的rsa密钥路径和ip地址要写自己的,那么如何去确定自己linux系统的ip地址呢?我们可以使用下述命令进行查询。
上述操作完成以后就完成了ssh的密钥连接linux系统。是不是很简单。
1.1.3 证书认证
证书验证是一种基于公钥的身份验证方式,但与传统的公钥验证不同,它引入了证书的概念。用户的公钥会被数字签名,生成一个证书,作为身份验证的一部分。它通常用于大规模部署中,提供更高的灵活性和管理性。
证书认证的工作原理如下所示:
- 用户首先生成一对密钥。
- 使用私钥向CA(证书授权机构)申请证书,证书由CA用其私钥签名。
- 客户端将证书发送给服务器,服务器使用CA的公钥验证证书的合法性。
- 如果证书有效且签名匹配,服务器接受连接。
证书认证方式在这里就先省略。
1.1.4 代理形式认证
SSH代理认证通常用于通过一个中间服务器(跳板机)来访问目标服务器。在这种情况下,客户端和目标服务器之间的连接是间接的,通过SSH代理进行中转。
代理形式认证的工作原理如下所示:
- 用户在本地使用SSH客户端连接到代理服务器(通常称为跳板机)。
- 然后,跳板机会继续将连接转发到目标服务器。
- 用户的身份验证会通过跳板机进行,如果跳板机验证成功,才能继续与目标服务器建立连接。
代理形式认证方式在这里也先省略。
对于上述所说的四种认证方式总结如下所示:
- 密码验证:简单但不够安全,适用于低安全需求的环境。
- 基于密钥的身份验证:更安全,推荐在生产环境中使用。
- 基于证书的身份验证:适合大规模和高安全需求的环境,管理较为复杂。
- 基于代理的身份验证:用于通过跳板机间接访问目标服务器,提高安全性,但配置较为复杂。
二、XShell&XFTP
XShell和XFTP是由NetSarang公司开发的一组流行的远程连接工具。它们主要用于远程管理Linux/Unix系统和进行文件传输。它们具有友好的图形界面,并提供了强大的功能,是Linux/Unix系统管理员和开发者日常使用的常用工具
2.1 XShell
XShell是一款功能强大的终端模拟器,允许用户通过SSH、SFTP、TELNET等协议远程连接到Linux/Unix服务器,执行命令,管理服务器。它类似于PuTTY,但功能更加丰富且界面友好。
2.1.1 特点
- SSH支持: XShell支持SSH1、SSH2等安全协议,可以安全地远程连接到Linux服务器。
- 多标签: XShell支持多标签功能,可以同时打开多个远程会话,方便在多个会话之间切换。
- 动态端口转发: 可以使用XShell进行端口转发,实现不同网络环境中的应用访问。
- 脚本支持: XShell支持脚本编写,可以自动化常见操作,如定时执行命令等。
- 自定义键盘映射: 用户可以设置自己的快捷键,提升操作效率。
- 代理支持: 支持通过代理(SOCKS、HTTP)连接到远程服务器,适用于需要通过防火墙访问服务器的场景。
- 安全性: 支持公钥认证、密钥管理、SSL加密,确保连接的安全性。
2.1.2 安装
首先我们先要去下载XShell安装包,对于安装包的下载我们可以去官网进行下载。
官网:XSHELL - The Industry's Most Powerful SSH Client
XShell软件是要收费的,但是我们可以使用它的免费版。
我们进入下载页面(Xshell 下载 - NetSarang Website)后就有一个免费授权入口,点击进去。
点进去后就可以看到XSHELL和XFTP的免费版的下载按钮,点击下载即可。
对于该软件的安装很简单,大家可以自行安装,只是记得在安装的时候更改安装路径。
完了以后会在桌面上生成一个桌面快捷方式,我们去运行它。
点击进去后会有一个免费许可,我们可以不管,点击后来按钮或者关闭按钮都可以。
进入软件以后会有一个弹框让我们选择会话,如果有的话我们可以直接选择,由于我们是第一次使用那么我们就需要新建一个当前机器和Linux系统所在机器的会话。
点击新建按钮后便进入到会话配置弹框。
在该弹框里面可以选择我们想要使用的连接方式,这里默认的连接方式是SSH协议,后面我们只需要根据提示输入对应的信息即可。
会话创建好以后选种它然后点击连接按钮进行连接到Linux系统操作。
点击连接按钮以后需要我们保存密钥和输入账号和密码。
上述操作完成以后就可以连接到我们的Linux系统了。
在这里我们建议每次操作Linux系统的时候都可以使用XShell去远程连接Linux,因为这样我们在执行命令的时候可以直接粘贴复制了。
2.2 XFTP
XFTP是XShell的姊妹工具,主要用于通过SFTP协议(SSH File Transfer Protocol)或FTP协议传输文件。它与XShell紧密集成,用户可以在XShell中直接启动XFTP进行文件上传、下载、同步等操作。
2.2.1 特点
- SFTP支持: XFTP支持基于SSH的SFTP协议,可以加密传输文件,提高文件传输的安全性。
- FTP和FTPS支持: 除了SFTP,XFTP还支持FTP和FTPS(加密的FTP)协议,适应更多的传输需求。
- 多标签界面: XFTP支持多标签,可以同时管理多个文件传输任务,提升工作效率。
- 文件同步: 支持双向文件同步,可以将本地和远程的文件夹进行对比和同步,方便备份和更新文件。
- 拖放支持: 可以通过拖放方式在本地和远程文件之间进行传输,操作简单直观。
- 高性能: 支持断点续传和批量传输功能,提高了大文件传输的效率和稳定性。
2.2.2 安装
XFTP的安装和XSHell安装是一样的,只是选择产品的时候选择XFTP就好了。
安装完成以后我们就可以去使用XFTP了,XFTP的使用方式和XShell使用方式一样。
进入XFTP页面我们就可以实现在电脑和Linux所在电脑进行文件互相传输,并且XFTP支持拖拽的形式进行文件传输,同时在XFTP种也可以直接通过鼠标等去操作Linux系统里面的文件。
注意:XShell和XFTP虽然是两个独立的工具,但它们之间有很好的集成。你可以在XShell中打开XFTP进行文件传输操作,免去频繁切换窗口的麻烦,在XShell的远程终端会话中,右键点击命令行窗口,选择“使用XFTP传输文件,也可以通过XShell的菜单栏进入XFTP,直接开始文件操作。
当然对于Linux系统的远程连接还有很多方式例如VNC、FTP、Telnet等,那么我们可以去选择一种我们所熟悉的方式去操作。
补充:FTP协议
FTP(File Transfer Protocol)和SSH(Secure Shell)都是常见的网络协议,广泛用于计算机网络中的文件传输和远程控制。
FTP是用于在计算机之间传输文件的一种标准网络协议。它通过客户端和服务器之间的请求与响应来实现文件的上传和下载。FTP协议早在1971年就被定义,并且在Internet上被广泛应用,特别是在文件共享和网站管理中。
1、工作原理
FTP的工作原理基于客户端/服务器模式,通常由两部分组成:
- 控制连接(Command Connection):用于发送命令和接收响应。该连接通常使用TCP协议,默认端口为21。
- 数据连接(Data Connection):用于传输实际的文件数据。数据连接可以是主动模式(Active Mode)或被动模式(Passive Mode),并使用不同的端口。
注意:FTP在传输文件的时候是不安全的即FTP本身并不具备加密功能,因此传输过程中,所有的数据(包括文件内容和用户名、密码)都是明文的,容易被第三方截获。为了解决这个问题,出现了安全版本的FTP,例如:
- FTPS (FTP Secure):通过SSL/TLS协议对FTP的通信进行加密,保障传输的安全性。
- SFTP (SSH File Transfer Protocol):尽管名字与FTP相似,但实际上是基于SSH协议实现的文件传输协议,具有更高的安全性。
2、文件传输方式
FTP支持两种数据传输模式:
- ASCII模式:用于传输文本文件时,自动进行换行符转换(不同操作系统有不同的换行符,例如Windows使用
\r\n
,Unix使用\n
)。- Binary模式:用于传输二进制文件(如图片、视频等),不做任何转换。
3、用途
- 网站文件管理:很多网站管理员通过FTP协议上传和下载网站内容。
- 数据备份:可以将大量的文件通过FTP上传到远程服务器作为备份。
- 文件共享:FTP适合大文件的上传和下载,尤其是对一些不涉及加密的内部网络使用。
本次教程内容到此为止,更多内容将在后续教程中展示出来。
相关文章:

从0开始学习Linux——远程连接工具
往期目录: 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 从0开始学习Linux——Yum工具 Linux 远程连接工具是指用于从远程计算机连接到 Linux 系统并进行操作的各种工具。它们可以帮助管理员或…...

Java线程6种生命周期及转换
多线程技术是我们后端工程师在面试的时候必问的一个知识点,今天就来盘点一下多线程的相关知识, 先来说下进程,线程及线程的生命周期: 进程:进程就是正在进行中的程序,是没有生命的实体,只有在运…...

关于STM32在代码中的而GPIO里面的寄存器(ODR等)不需要宏定义的问题
1.GPIO为什么需要宏定义地址 在 STM32 这样的微控制器中,硬件寄存器的地址是固定的并且特定于每个外设(比如 GPIOA、GPIOB 等)。为了方便代码访问这些硬件寄存器,我们通常会使用宏定义来指定每个外设的基地址。这样做有几个理由&a…...

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十七章 交叉编译QT工程
iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…...

高效率的快捷回复软件 —— 客服宝聊天助手
在电商行业日益繁荣的今天,高效的客户沟通对于企业的成功至关重要。无论是电商平台、居家客服还是其他各类客服行业,都需要一款强大的工具来提升工作效率。今天,我们就来介绍一款高效率的快捷回复软件 —— 客服宝聊天助手。 一、跨平台跨店铺…...

Node.js + MongoDB + Vue 3 全栈应用项目开发
🌈个人主页:前端青山 🔥系列专栏:node.js篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来node.js篇专栏内容:Node.js MongoDB Vue 3 全栈应用项目开发 在前几篇文章中,我们已经为 Node.j…...

【云原生开发】如何通过client-go来操作K8S集群
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

CSS基础知识六(浮动的高度塌陷问题及解决方案)
目录 1.浮动高度塌陷概念 2.下面是几种解决高度塌陷的几种方案: 解决方案一: 解决方案二: 解决方案三: 1.浮动高度塌陷概念 在CSS中,高度塌陷问题指的是父元素没有正确地根据其内部的浮动元素或绝对定位元素来计…...

开源模型应用落地-glm模型小试-glm-4-9b-chat-vLLM集成(四)
一、前言 GLM-4是智谱AI团队于2024年1月16日发布的基座大模型,旨在自动理解和规划用户的复杂指令,并能调用网页浏览器。其功能包括数据分析、图表创建、PPT生成等,支持128K的上下文窗口,使其在长文本处理和精度召回方面表现优异&a…...

.net为什么要在单独的项目中定义扩展方法?C#
使用 扩展方法(Extension Methods) 和创建 扩展类(Extension Class) 在 C# 中有几个特定的目的,主要是为了提高代码的可扩展性、灵活性和可读性。让我们来详细解释这些概念以及为什么扩展类需要是静态的。 为什么使用…...

动态规划 —— dp 问题-打家劫舍II
1.打家劫舍II 题目链接: 213. 打家劫舍 II - 力扣(LeetCode)https://leetcode.cn/problems/house-robber-ii/ 2. 题目解析 通过分类讨论,将环形问题转换为两个线性的“打家劫舍|” 当偷第一个位置的时候,rob1在&#…...

Java基础-组件及事件处理(上)
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Swing 概述 MVC 架构 Swing 特点 控件 SWING UI 元素 JFrame SWING 容器 说明 常用方法 示例&a…...

Python实例:爱心代码
前言 在编程的奇妙世界里,代码不仅仅是冰冷的指令集合,它还可以成为表达情感、传递温暖的独特方式。今天,我们将一同探索用 Python 语言绘制爱心的神奇之旅。 爱心,这个象征着爱与温暖的符号,一直以来都在人类的情感世界中占据着特殊的地位。而通过 Python 的强大功能,…...

图解大模型训练系列:序列并行3,Ring Attention
在序列并行系列中,我们将详细介绍下面四种常用的框架/方法: Megatron Sequence Parallelism:本质是想通过降低单卡激活值大小的方式,尽可能多保存激活值,少做重计算,以此提升整体训练速度,一般…...

pyspark基础准备
1.前言介绍 学习目标:了解什么是Speak、PySpark,了解为什么学习PySpark,了解课程是如何和大数据开发方向进行衔接 使用pyspark库所写出来的代码,既可以在电脑上简单运行,进行数据分析处理,又可以把代码无缝…...

Netty报错
问题:因客户反馈Netty版本低,影响性能,建议提升。于是,我将所有Netty版本从4.1.82.Final到4.1.114.Final后,报下面的错误,java.lang.NoClassDefFoundError: io/netty/util/Recycler$EnhancedHandle…...

Kafka 之顺序消息
前言: 在分布式消息系统中,消息的顺序性是一个重要的问题,也是一个常见的业务场景,那 Kafka 作为一个高性能的分布式消息中间件,又是如何实现顺序消息的呢?本篇我们将对 Kafka 的顺序消息展开讨论。 Kafk…...

Kafka 之批量消息发送消费
前言: 前面我们分享了 Kafka 的一些基础知识,以及 Spring Boot 集成 Kafka 完成消息发送消费,本篇我们来分享一下 Kafka 的批量消息发送消费。 Kafka 系列文章传送门 Kafka 简介及核心概念讲解 Spring Boot 整合 Kafka 详解 Kafka Kafka…...

【大数据学习 | kafka】kafka的偏移量管理
1. 偏移量的概念 消费者在消费数据的时候需要将消费的记录存储到一个位置,防止因为消费者程序宕机而引起断点消费数据丢失问题,下一次可以按照相应的位置从kafka中找寻数据,这个消费位置记录称之为偏移量offset。 kafka0.9以前版本将偏移量信…...

实景三维赋能森林防灭火指挥调度智慧化
森林防灭火工作是保护森林资源和生态环境的重要任务。随着信息技术的发展,实景三维技术在森林防灭火指挥调度中的应用日益广泛,为提升防灭火工作的效率和效果提供了有力支持。 一、森林防灭火面临的挑战 森林火灾具有突发性强、破坏性大、蔓延速度快、…...

【C++课程学习】:string的模拟实现
🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 一.string的主体框架: 二.string的分析: 🍔构造函数和析构函数&a…...

Linux(VMware + CentOS )设置固定ip
需求:设置ip为 192.168.88.130 先关闭虚拟机 启动虚拟机 查看当前自动获取的ip 使用 FinalShell 通过 ssh 服务远程登录系统,更换到 root 用户 修改ip配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 重启网卡 systemctl restart network …...

安卓 android studio各版本下载地址(官方)
https://developer.android.google.cn/studio/archive 别用中文,右上角的语言切换成英文...

如何在一个 Docker 容器中运行多个进程 ?
在容器化的世界里,Docker 彻底改变了开发人员构建、发布和运行应用程序的方式。Docker 容器封装了运行应用程序所需的所有依赖项,使其易于跨不同环境一致地部署。然而,在单个 Docker 容器中管理多个进程可能具有挑战性,这就是 Sup…...

poetry 配置多个cuda环境心得
操作系统:ubuntu22.04 LTS python版本:3.12.7 最近学习了用poetry配置python虚拟环境,当为不同的项目配置cuda时,会遇到不同的项目使用的cuda版本不一致的情况。 像torch 这样的库,它们会对cuda-toolkit有依赖&…...

网络编程入门
目录 1.网络编程入门 1.1 网络编程概述【理解】 1.2 网络编程三要素【理解】 1.3 IP地址【理解】 1.4InetAddress【应用】 1.5端口和协议【理解】 2.UDP通信程序 2.1 UDP发送数据【应用】 2.2UDP接收数据【应用】 2.3UDP通信程序练习【应用】 3.TCP通信程序 3.1TCP…...

Linux-socket详解
Linux-socket详解_socket linux-CSDN博客...

SQL Server 2022安装要求(硬件、软件、操作系统等)
SQL Server 2022安装要求 1、硬件要求2、软件要求3、操作系统支持4、Server Core 支持5、跨语言支持6、磁盘空间要求 1、硬件要求 以下内存和处理器要求适用于所有版本的 SQL Server: 组件要求存储SQL Server 要求最少 6 GB 的可用硬盘驱动器空间。 磁盘空间要求随…...

“众店模式”:创新驱动下的商业新生态
在数字化浪潮的推动下,传统商业模式正经历着前所未有的转型。“众店模式”作为一种新兴的商业模式,以其独特的商业逻辑和创新的玩法,为商家和消费者构建了一个共赢的商业新生态。 一、“众店模式”的核心构成 “众店模式”的成功࿰…...

54. 螺旋矩阵
https://leetcode.cn/problems/spiral-matrix/description/?envTypestudy-plan-v2&envIdtop-100-liked观察示例中的输出轨迹我们可以想到如下设计: 1.在朝某一方向行进到头后的改变方向是确定的,左->下,下->右,右->…...