首页 > 其他分享 >从0开始教你用VScode远程连接到Linu来写代码(纯干货分享!!!新手友好篇)

从0开始教你用VScode远程连接到Linu来写代码(纯干货分享!!!新手友好篇)

时间:2024-03-28 21:31:09浏览次数:19  
标签:VScode 教你用 点击 ssh && ubuntu fileNameWithoutExt Linu dir

 文章中汉字部分皆被代码所代替,宝宝们在复制粘贴的时候要选好对应的开源镜像站链接,详情请见评论区,我已放好相应代码!!!!!

一、虚拟机的安装:

安装所必须用到的软件如下:

1.vmware station 破解版(版本至少14以上)

2.Xshell7破解版(最新版本即可)

3.Git-bath(官方版即可)

4.vscode(官方版即可)

5.ubuntu系统(本人使用22.04版本)

二、虚拟机的配置:

1.vm的设置:

全部软件安装完毕之后在vm中点击创建虚拟机,然后点击浏览,在光盘映像文件处点击“浏览”,选中下载好的ubuntu系统(文件格式为.ios),”系统别名“可随意填写,“全名“随机命名,”用户名“要用全英(除root外),”密码“不少于八位,安装地址看个人喜好,作者c盘空间足够,索性就全部安装到了c盘,以后重装系统时也不会被误删,下一步设置磁盘容量时不少于40个G,然后一路继续,安装时会弹出缺少工具包的信息,这个并不影响总体操作,顺着系统给出的提示安装工具包就可以了,虚拟机安装完毕之后,进入虚拟机,若出现错误提示,直接关闭选择continue即可,一路continue来到选择时区,直接选择上海即可,接下来来到”Who are you?“,前两项可随便填写,”用户名“和”密码“要填写与之前设置的一样的,然后就可以继续了,接下来会出下一个”Connect Your Online Accounts“的窗口,先skip跳过即可,打开左下角九个白色小点的菜单,找到名为“terminal”的应用,进入到一个类似于dos命令窗口的终端,然后需要设置root用户的密码,因为最开始登录,Ubuntu不允许root超级用户直接登录。具体操作:在光标处输入sudo passwd,点击回车,首次是设置密码,可以与之前设置的密码相同,值得一提的是,在输入密码的时候系统不会显示输入字符,所以不必认为是自己的键盘出了问题(doge),当密码设置成功的以后,输入sudo su,点击回车就可以切换到root超级用户了。当切换到root超级用户以后,命令行前缀会变成root@,接着输入cat /etc/apt/sources.list,点击回车以后,如果不是在校学生用校园网的宝宝们输入

echo "deb ubuntu安装包下载_开源镜像站-阿里云 jammy main restricted universe multiverse

deb-src ubuntu安装包下载_开源镜像站-阿里云 jammy main restricted universe multiverse

deb ubuntu安装包下载_开源镜像站-阿里云 jammy-security main restricted universe multiverse

deb-src ubuntu安装包下载_开源镜像站-阿里云 jammy-security main restricted universe multiverse

deb ubuntu安装包下载_开源镜像站-阿里云 jammy-updates main restricted universe multiverse

deb-src ubuntu安装包下载_开源镜像站-阿里云 jammy-updates main restricted universe multiverse

deb ubuntu安装包下载_开源镜像站-阿里云 jammy-proposed main restricted universe multiverse

deb-src ubuntu安装包下载_开源镜像站-阿里云 jammy-proposed main restricted universe multiverse

deb ubuntu安装包下载_开源镜像站-阿里云 jammy-backports main restricted universe multiverse

deb-src ubuntu安装包下载_开源镜像站-阿里云 jammy-backports main restricted universe multiverse

" > /etc/apt/sources.list

这一大段代码,然后再来一句apt update,

如果是在校大学生用校园网敲代码的宝宝们,则需要输入

第一句“echo "deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy main restricted universe multiverse" > /etc/apt/sources.list”,

第二句“echo "deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy-updates main restricted universe multiverse" >> /etc/apt/sources.list”,

第三句“echo "deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy-backports main restricted universe multiverse" >> /etc/apt/sources.list”,

第四句“echo "deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy-security main restricted universe multiverse" >> /etc/apt/sources.list”,

然后输入cat /etc/apt/sources.list

这一段来自清华的源,然后来样子来一句apt date。

只要能显示从网址里读取,就表示正常,正常后通过ctrl+c来取消网址读取。(如果第一段代码输入后不成功的小伙伴可以输入第二段代码试试哦!)

2.vim的设置:

接下来需要安装一个名为vim的编辑器,需要用vim修改ssh的配置。具体操作为输入apt install vim,然后回车进行对vim编辑器的安装。完成之后来设置ssh,为了能在虚拟机外面访问,所以需要配置ssh。首先需要先安装ssh,输入命令apt install openssh-server,点击回车对ssh进行安装。安装完成以后,使用vim打开/etc/ssh/sshd_config文件,进入编辑模式,找到#PermitRootLogin prohibit-password这一句代码,将其改为PermitRootLogin yes,然后退出编辑模式,保存退出。重启ssh,输入/etc/init.d/ssh restart,这段命令是安装openssh服务后,在系统配置区留下的一个控制ssh服务的脚本。接下来要用到我们的xshell,打开之后,新建会话,会话名称随意,主机填写虚拟机的IP(vm虚拟机中打开设置,点击网络,1000MB/S旁的小齿轮打开设置IPv4地址即IP),点击确定,然后左边一栏会出现新建会话的名称,点击新建的会话,填写用户姓名,初学者建议用户名设为root,要不然很多权限都不够,以后对权限熟练了,再自己设置用户名,接着设置密码,可以与之前的密码相同,设置完毕,这样以后我们可以在xshall的编辑框内使用vim创建文件,并进入编辑模式,可以在编辑模式中编写C++的代码,特别注意,新建的文件后缀只能是“.cpp”或“.cc”,这样系统才能正常识别C++代码。然后使用G++编译运行新建的“.cpp”或“.cc”文件。

3.VScode的设置:

首先打开VScode,选到插件,搜索下载remote development,然后下载Remote Development,Remote – SSH和Remote - SSH: Editing Configuration Files。 选择左边栏像电脑一样的图标,叫做远程资源管理器,点击后会在中间栏上面显示“远程资源管理器”,旁边有个下拉菜单,点击选择“remotes(tunnels/ssh)”,然后点击SSH,有个齿轮会出现,点击齿轮后在中间搜索栏会出现多个选项,选择第一个config文件进行配置的修改。首先第一个host是对远程系统的昵称,随意写,hostname是ubuntu的IP(上文有所提及),然后user后面写root就可以,特别注意,追加内容要和刚才提到过的标签名之间加一个空格。接着打开提前下载好的gitbash,运行ssh-keygen -t rsa,然后在Ubuntu中运行ssh-keygen,两次操作中最重要的,就是看两次结果中的加密算法是否相同。ssh-keygen这个命令是直接产生用于访问当前系统的ssh密钥公钥。加密算法有很多,如果两种默认算法不同,那就需要专门去指定成一样的,才能连通两个机器。因为需要用这个东西让VScode能一直免密登陆到Ubuntu,否则每隔一分钟半分钟就要在VScode上输入一次密码。然后我们打开.ssh文件,用记事本打开.pub文件,将里面内容复制,然后在Ubuntu中用vim打开~/.ssh/authorized_keys,进入编辑模式,追加到最后。然后回到Vscode,在config文件中追加一行IdentityFile +文件路径+id_rsa文件。保存后点击“远程资源管理器”下面的“remote”键右边的刷新按钮。然后系统会先访问github,关掉网页,然后跳过访问github,就会更新ssh了。然后在Ubuntu中输入server sshd 。/etc/init.d/ssh restart,接着SSH的下拉菜单里会显示出自己的远程系统昵称,点击昵称,右边会出现箭头,点击箭头,会出现三个操作系统的名称,选择linux进行连接,如果没有成功,可能是因为没有写入端口号,打开cinfig文件,末尾追加一句Port 22,再次进行连接,若这里又是连接失败,可能是config文件中多了点东西,打开config文件删掉IdentityFile这一行配置,再次进行连接,如果还是失败,在浏览器中输入地址https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stahttps://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stableble,将${commit_id}替换成VScode的版本提交编号,具体位置在上方工具栏中点击帮助,再点击关于,可以查找到这一串数字。在这个网页中会自动下载一个压缩包,然后在Ubuntu中上传这个压缩包。可能再连接linux的时候,Vscode没有办法顺利下载这个包。需要用到xshell,点击最上面的”文件“,点击”传输“,选择”XMODEM发送“,选择下载好的那个tar.gz文件,连接上Linux以后,我们需要下载两个插件,分别是C/C++和code runner,接着选择新建文件夹,这里选择新建文件夹完全是个人习惯,这个文件夹之后会存放所有的编码文件和二进制文件。然后在这个文件夹里创建一个文本文件,后缀为.cpp。然后写入简单的C++代码,比如“Hello World”,接着点击F5,出现了三个选项,选择g++生成活动文件,然后系统会提示警告,这时要打开launch.json文件,替换成以下内容:

{

// Use IntelliSense to learn about possible attributes.

// Hover to view descriptions of existing attributes.

// For more information, visit: Debugging in Visual Studio Code

"version": "0.2.0",

"configurations":

[

{

"name": "g++ - 生成和调试活动文件",

"type": "cppdbg",

"request": "launch",

"program": "${fileDirname}/${fileBasenameNoExtension}",

"args": [],

"stopAtEntry": false,

"cwd": "${fileDirname}",

"environment": [],

"externalConsole": false,

"MIMode": "gdb",

"setupCommands": [

{

"description": "为 gdb 启用整齐打印",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

],

"preLaunchTask": "C/C++: g++ 生成活动文件",

"miDebuggerPath": "/usr/bin/gdb"

}

]

}

接着打开命令面板,找到任务:配置任务,打开tasks.json文件,输入以下内容:

{

"tasks": [

{

"type": "cppbuild",

"label": "C/C++: g++ 生成活动文件",

"command": "/usr/bin/g++",

"args": [

"-fdiagnostics-color=always",

"-g",

"${file}",

"-o",

"${fileDirname}/${fileBasenameNoExtension}"

],

"options": {

"cwd": "${fileDirname}"

},

"problemMatcher": [

"$gcc"

],

"group": "build",

"detail": "调试器生成的任务。"

}

],

"version": "2.0.0"

}

然后打开命令面板,打开setting.json文件,输入以下内容:

{

"editor.fontSize": 22,

"workbench.colorTheme": "Default Dark Modern",

"version": "0.2.0",

"configurations": [

{

"name": "C/C++",

"type": "cppdbg",

"request": "launch",

"program": "${fileDirname}/${fileBasenameNoExtension}",

"args": [],

"stopAtEntry": false,

"cwd": "${fileDirname}",

"environment": [],

"externalConsole": false,

"MIMode": "gdb",

"preLaunchTask": "compile",

"setupCommands": [

{

"description": "Enable pretty-printing for gdb",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

]

}

],

"code-runner.runInTerminal": true,

"debug.onTaskErrors": "showErrors",

"C_Cpp.default.includePath": [

],

"code-runner.executorMap": {

"javascript": "node",

"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",

"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -std=c++11 && $dir$fileNameWithoutExt",

"objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"php": "php",

"python": "python -u",

"perl": "perl",

"perl6": "perl6",

"ruby": "ruby",

"go": "go run",

"lua": "lua",

"groovy": "groovy",

"powershell": "powershell -ExecutionPolicy ByPass -File",

"bat": "cmd /c",

"shellscript": "bash",

"fsharp": "fsi","csharp": "scriptcs",

"vbscript": "cscript //Nologo",

"typescript": "ts-node",

"coffeescript": "coffee",

"scala": "scala",

"swift": "swift",

"julia": "julia",

"crystal": "crystal",

"ocaml": "ocaml",

"r": "Rscript",

"applescript": "osascript",

"clojure": "lein exec",

"haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt",

"rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",

"racket": "racket",

"scheme": "csi -script",

"ahk": "autohotkey",

"autoit": "autoit3",

"dart": "dart",

"pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt",

"d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt",

"haskell": "runhaskell",

"nim": "nim compile --verbosity:0 --hints:off --run",

"lisp": "sbcl --script",

"kit": "kitc --run",

"v": "v run",

"sass": "sass --style expanded",

"scss": "scss --style expanded",

"less": "cd $dir && lessc $fileName $fileNameWithoutExt.css",

"FortranFreeForm": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"fortran-modern": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"fortran_fixed-form": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"

},

"terminal.integrated.tabs.enabled": true,

"C_Cpp.default.cppStandard": "c++20",

"C_Cpp.default.cStandard": "c17",

"workbench.editorAssociations": {

"*.ipynb": "jupyter-notebook"

},

"notebook.cellToolbarLocation": {

"default": "right",

"jupyter-notebook": "left"

},

"diffEditor.ignoreTrimWhitespace": false,

"explorer.confirmDragAndDrop": false,

"explorer.confirmDelete": false,

"files.associations": {

"iostream": "cpp",

"ostream": "cpp"

},

}

打开命令面板,搜索C/C++,选择C/C++编辑配置(UI),然后打开c_cpp_properties.json文件,输入以下内容:{

"configurations": [

{

"name": "Linux",

"includePath": [

"${workspaceFolder}/**", // 将本地工作目录添加到include路径中,

// 这样本地的所有头文件都可以被VSCode索引,这样编辑就不会触发红色的波浪线;

"/usr/include/**" // 将Linux下的引用路径添加到include路径中,

// 对于一些第三方依赖库,如Boost的头文件,就能被VSCode索引

],

"defines": [],

"compilerPath": "/usr/bin/gcc",

"cStandard": "c17",

"cppStandard": "gnu++17",

"intelliSenseMode": "linux-gcc-x64"

}

],

"version": 4

}

再次回到自己的.cpp文件中点击F5,若运行成功就代表着你已经学会了配置vscode连接Linux的操作。以上的配置代码,只支持单个文件的C++代码编写,不支持多文件的代码编写。

标签:VScode,教你用,点击,ssh,&&,ubuntu,fileNameWithoutExt,Linu,dir
From: https://blog.csdn.net/m0_73820867/article/details/136991246

相关文章

  • 第十一章 :Linux 进阶finalshell操作
    指令不会可以后面加--help 例如find--help1)数据输出echo格式 echo数据 将数据输出展示到终端界面列入 echo helloworld 将会输出 helloworldecho pwd 将会只输出pwd(pwd当作文字输出)则echo·pwd·(ESC下面的反引号)输出的是当前目录 ......
  • Xshell 连接linux 虚拟机
    修改配置文件[root@bogon~]#ifconfigens160:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet192.168.183.133netmask255.255.255.0broadcast192.168.183.255inet6fe80::20c:29ff:fe12:80d6prefixlen64scopeid0x20<link>......
  • 云计算02笔记---远程连接服务ssh 以及cp mv rm cd mkdir echo 等Linux常用命令
    远程连接服务ssh语法格式:ssh用户名@ip地址【-p指定端口号】例如:[email protected]默认端口号:22修改端口号:vim/etc/ssh/sshd_config编辑其中一行#port22改为port2222删去了注释符号#且改变端口号拷贝命令cpcp位置1位置2从位置1复制到位置......
  • 在Linux虚拟机(Ubuntu)下载Anaconda3具体教程
    1、进入到虚拟机里面的网上下载相关文件资源网址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/2、打开存储文件资源文件夹所在的虚拟机终端,执行安装下载命令输入下面这个命令:bashAnaconda3-2020.02-Linux-x86_64.sh遇到这里:输入yes;遇到这里直接回车即可:......
  • 二、Linux 常见终端操作 Shell 指令总结
    Shell指令总结Linux终端是许多开发人员、系统管理员和技术爱好者经常使用的工具之一。通过掌握Shell指令,可以高效地管理文件系统、执行任务和配置系统。本篇博客简单总结了Linux常见终端操作的Shell指令,帮助大家快速掌握基本操作和提高工作效率。文件和目录操作......
  • Linux进阶命令
    Linux进阶命令①1查看切换显示统计目录1.pwd(printworkdirectory)[root@localhost~]#pwd//显示当前路径/root[root@localhostbin]#cd/bin[root@localhostbin]#ll/binlrwxrwxrwx.1rootroot78月620:57/bin->usr/bin[root@localhostbin]#pwd-......
  • lcd4linux实现输出framebuffer图像到LCD
    根据文章: Linux下支持AX206LCDFORAIDA64Business ,可以实现输出png图片到AX206LCD。那么如果我们想输出framebuffer的图像到LCD屏幕呢?如何实现?根据[email protected]:ukoda/lcd4linux-ax206.git仓库的代码,我们可以看到png图片的渲染是通过widget_image.c中的 staticvoidwid......
  • linux、windows中哪些锁是递归锁,哪些不是
    什么是递归锁递归锁是一种特殊的线程同步机制,它允许同一线程在持有锁的情况下多次获得同一把锁。递归锁通常用于解决线程递归调用中需要多次获取同一把锁的情况,以及防止死锁。递归锁内部维护一个计数器,用于记录同一线程获得锁的次数。每次成功获得锁,计数器加一;每次释放锁,......
  • jmeter linux arm系统上无法启动
    1.jmeter5.4.1在arm系统上压测:报错Anerroroccurred:ErrorinNonGUIDriverProblemloadingXMLfrom:'/home/telpo/hbie/apache-jmeter-5.6.3/apache-jmeter-5.6.3/hbieCaseface1vn.jmx'.Cause:CannotResolveClassException:kg.apc.jmeter.threads.SteppingThreadG......
  • 解决linux系统删除文件,但是不释放存储空间问题
    转自连接:https://blog.csdn.net/qq_29864051/article/details/131337429Linux下文件删除但是空间未被释放或者磁盘已满但找不到对应的大文件的解决方案  Linux下文件删除但是空间未被释放的解决方案前言1.查看当前磁盘占用情况2.模拟进程占用3.执行rm-rf命令删除文......