栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【BUAA OS】用VSCode写MOS

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【BUAA OS】用VSCode写MOS

虽然说VIM号称编辑器之神,但毕竟是上古时代的产物,对于已经适应现代化开发环境的朋友们不太友好。最近由于疫情,exam也转到线上了。望着油光水滑的Esc键,我突发奇想:VSCode这么强大,能否利用跳板机来远程开发呢?折腾一上午终于折腾出来,效果也是杠杠的。于是写下这篇教程,希望能有所帮助~

期望效果:

前置条件:假定你用过VSCode,或者了解VSCode的基本功能。

Part 1 在本机上安装openSSH

以管理员身份运行Powershell(Win + X,然后对应选择),输入如下命令:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

如果返回:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent

则说明未安装SSH客户端。此时需要执行如下命令:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

安装成功之后会返回:

Path          :
Online        : True
RestartNeeded : False
Part 2 在本机VSCode上进行设置

没有使用过SSH的同学们,可能不了解公钥和私钥的概念,也没有私钥文件。在你的电脑中打开C:Users用户名,设置Windows以显示隐藏的文件和文件夹,如果没看到.ssh文件夹或.ssh文件夹下没有id_rsa和id_rsa.pub,就可以使用ssh-keygen命令在该文件夹下(若无则新建)生成一个密钥对,然后在lab.os.buaa.edu.cn​​​​​​的个人信息中找到SSH公钥设置,将id_rsa.pub文件中的内容复制到SSH公钥一栏,提交即可。请不要挪动私钥文件。

然后打开VSCode,安装Remote - SSH插件,点击侧边栏的Remote - SSH标志,进入远程资源管理器,然后单击SSH TARGET标签右侧的齿轮图标,打开用户的配置文件(如下图)。

 对于配置文件的填写,我按照网上常用的方法来创建两个Host然后进行跳跃,但总是因为出现各种问题而失败。最后我在互联网的犄角旮旯发现了一种简便的方法,利用JumpServer的特性,可以方便地登录远程客户机:如下填写即可,其中目标机IP可以在lab.os.buaa.edu.cn​​​​​​网站上“我的资产”中查到。

Host lab.os.buaa.edu.cn
    HostName lab.os.buaa.edu.cn
    User 学号@git@目标机IP
    Port 2222

 此时,VSCode就可以在SSH TARGET中连接远程服务器了!但是……

Part 3 目标机的VSCode设置

但是……由于目标机无法连接外部网络,所以会卡在Setting up SSH Host XXX: Copying VS Code Server to host with scp。我们应当知道,若用VSCode进行远程开发,除了本机应该装一个VSCode,目标机应该安装一个VSCode-Server,作为服务器进行通信。可是因为上述原因,在远程VSCode-Server安装的时候就卡住了。

不要惊慌,我们先默默地关闭VSCode,然后把Server“手动地”安装在目标机上!(下文的参考博客)具体该如何做呢?我们来到目标机的Shell。在用户文件夹下,使用ll命令列出所有文件,我们可以看到多出来了一个“.vscode-server”的隐藏文件夹。打开~/.vscode-server/bin,我们在bin文件夹中发现了一个有着很长名字的文件夹(举个例子,我的是da15b6fd3ef856477bf6f4fb29ba1b7af717770d/),这就是server的二进制文件所在的地方,记住这个名字,并使用rm删掉该文件夹下所有的文件(保留该文件夹)。

下面,在咱们自己的电脑上打开下面的链接,下载安装文件(.tar.gz格式):

https://update.code.visualstudio.com/commit:那个很长的名字/server-linux-x64/stable

现在我们需要将文件传输到目标机上,但我在使用scp命令时又出了各种奇怪的问题,导致不得不放弃这种方法。但我们有一个绝妙的办法:GitLab!登录git.os.buaa.edu.cn,新建一个分支,上传文件,commit,到Shell中pull下来即可。大家都会Git,过程不再赘述了。

下面将下载的vscode-server-linux-x64.tar.gz解压到那个有着很长名字的文件夹中,保证目录树大概如下所示,请注意目录结构:

-.vscode-server
--bin
---da15b6fd3ef856477bf6f4fb29ba1b7af717770d
----LICENSE
----bin
----extensions
----...
--data
--extensions

这时就可以再次运行VSCode连接目标机了!如果失败或许是权限问题,使用chmod调整一下。

Part 4 VSCode C/C++远程拓展的安装

此时,VSCode已经可以进行代码编辑、提交等操作。但是本机安装的C/C++拓展是无法使用的,因为远程开发需要在服务器端安装拓展。没有拓展的VSCode是没有灵魂的,这意味着代码自动补全,代码格式化,悬停提示等实用功能均不可用。由于目标机不能连接外部网络,所以我们也需要手动安装插件,不过这个过程比上面要容易得多。

打开VScode Marketplace的C/C++拓展链接:C/C++ - Visual Studio Marketplace

点击右栏中的Download Extension,下载Linux x64版本的插件。将这个.vsix文件用前文提到的GitLab大法上传到目标机,然后在自己电脑的VSCode中打开左侧“拓展”按钮,点击拓展栏上面的省略号,选择从VSIX安装即可安装。

至此,全部过程就结束了,可以在设置里进行个性化的调整。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/894585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号