【Linux基础】Linux常见指令总结及周边小知识

news2024/12/26 21:28:18

前言

  • Linux系统编程的学习我们将要开始了,学习它我们不得不谈谈它的版本发布是怎样的,谈它的版本发布就不得不说说unix。
  • 下面是unix发展史是我在百度百科了解的

Unix发展史

  • UNIX系统是一个分时系统。最早的UNIX系统于1970年问世。此前,只有面向批处理作业的操作系统,这样的系统对于需要立即得到响应的用户来说是太慢了。在60年代末,Kenneth Thompson和Dennis Ritchie都曾参加过交互方式分时系统Multics的设计,而开发该系统所使用的工具是CTSS。这两个系统在操作系统的发展过程中都产生过重大影响。在此基础上,在对当时现有的技术进行精选提炼和发展的过程中,K.Thompson于1969年在小型计算机上开发UNIX系统,后于1970年投入运行。
  •  1972年,DennisRitchie开发出C语言,用来改写原来用汇编语言编写的UNIX,由此产生了UNIX VersionV。1974年,Kenneth Thompson和Dennis Ritchie合写的“The UNIX Time-Sharing System”在Communication of ACM上发表,正式向外界披露了UNIX系统。
  •   当时,PDP-11系列小型计算机在世界各地已经得到广泛应用,UNIX系统一开发后便广泛配备于美国各大学的PDP-11系列计算机上,由此为UNIX的广泛应用创造了物质条件。
  •  1978年,UNIX Version VI发表,随后又于1979年用于VAX-11超级小型机。以后,不断地出现各种新的版本。美国电话电报公司分别于1981年和1983年发表AT&T UNIX SystemII和UNIX SystemV。美国加州大学伯克莱分校也先后发表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。
  •   UNIX系统的用户日益增多,应用范围也日益扩大。无论在各种类型的微型机、小型机,还是在中、大型计算机,以及在计算机工作站甚至个人计算机上,很多都已配有UNIX系统。不仅新推出的机型配有UNIX系统,而且一些历史较久的生产厂商,也竞相将原有机型配上UNIX系统以便打开销路、争取市场。
  •  2020年,苹果发布操作系统升级版本,将UNIX操作系统的强大功能和苹果电脑的易用性相结合,提高了电脑的运行速度和电池寿命。

Linux发展史 

  • 1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发布,原因是0.01版本不实用。 Linus仅仅在第一个Linux的FTP站点(ftp://nic.funet.fi)上提供过这个版本的的源代码。
  • Torvalds于10月5日发布的这个Linux版本被称为0.02版,它能够运行GNU Bourne Again Shell(bash)和GNU的C编译程序(gcc)以及为数不多的其它语言。 Torvalds绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux。
  • Linux发布时的版本是0.02,后来又有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的

 开源 

  • Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲, Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。
  • GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为GNU计划而撰写, GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码。
     
  • Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此, Linux也成为了开源软件的代名词。

正是因为Linux是开源的,所以Linux具有很多优秀的特性。

在往后谈就要讲到Unix版本与Linux版本发布是如何一步一步到今天的了,这里就由小伙伴自己去百度搜索吧,博主就不多赘述了,下面开始我们的正题,这篇文章最主要的还是要讲解我们的指令部分。

使用XShell远程登录Linux

关于Linux桌面

很多同学的 Linux 启动进入图形化的桌面. 这个东西大家以后就可以忘记了. 以后的工作中 没有机会 使用图形界面.
思考:为什么不使用图形界面?

  • Linux系统之所以被认为是相对安全的,是因为它具有很多安全特性和机制,如强大的权限管理、可定制的安全策略、加密文件系统等。这些安全特性和机制是Linux系统内在的设计和实现,与其图形界面的设计无关。
  • Linux系统在设计上注重的是灵活性、稳定性和可靠性,而不是界面的友好度。因此,它通常采用了一些轻量级的桌面环境,如GNOME、KDE、XFCE等,这些桌面环境相对Windows的图形界面来说可能看起来较为简单,但是它们可以很好地适应不同的需求和使用场景。
  • 另外,Linux系统的开发和使用者通常更加倾向于使用命令行界面。命令行界面提供了更加灵活的操作方式,可以更好地控制和管理系统,也更适合一些需要自动化操作和批处理的应用场景。同时,命令行界面也可以更方便地远程管理Linux系统,这在一些需要远程管理的场景下非常重要。
  • Linux系统之所以没有像Windows一样的图形界面,是因为它的设计目标和使用场景不同。Linux系统更注重灵活性和可定制性,同时也更加注重安全和稳定性,而不是图形界面的友好度。

下载安装XShell

我们要登陆Linux的机器就必须需要一个远程终端程序

这个我们就可以使用XShell进行登陆

安装链接献上:XShell安装

注意安装时选择“home/shool”为免费版本

安装好后打开Xshell,如下图即为安装成功了(这里可能有些兄弟可能会安装的XShell7的一些版本,可能会出现打不开的情况,情况第二张图)

解决办法,所以你可以看到我下载的是XShell5的老版本,这可能是我们电脑的问题,我目前也不理解是什么原因,有想要老版本的可以私聊博主获取哦。

使用XShell登陆主机

安装好了并打开成功,那么我们就可以进行登陆了,当然,登陆之前我们需要准备一个远程的云服务器,我们可以去阿里云、华为云等等官网去购买服务器,然后通过XShell去登陆。价钱不贵,一些时候还有活动折扣哦~~

进入正题,我们如何登陆呢?

在XShell终端这样敲:

ssh 你的用户名@你的云服务器的公网ip

 当我们点击回车

那么恭喜你,输入是没问题的。

只需要输入你在服务器内所设置的密码即可登陆,(密码不要设置太简单哦~~)

输入后回车,当出现这个界面时,那么恭喜您,你成功登陆你的Linux服务器。

这里来个小注意:我们大部分都是大学生,那么都可能会去使用我们的校园网,那么恶心的来了

有些校园网是不能登陆(或许需要某些权限把)XShell的Linux云服务器的,所以需要我们手机开启热点进行连接登陆。

XShell的复制粘贴

复制: ctrl + insert (有些同学的 insert 需要配合 fn 来按)
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的.

当然也可以鼠标右键进行复制粘贴

下面进行本章的重点啦!!!

LInux下基本指令

 先来学习几个简单指令的用法,方便我们应对接下来的学习

我们如果想要知道当前路径,我们需要用到pwd指令

所以我们当前所在的目录文件为root内

当我们想要知道目录文件root的内部有什么文件时就可以用ls

 在入门阶段我们只需要知道ls --- 可以罗列出所有当前目录下的文件名,你的当前目录下可以什么文件都没有。

 看第一张图,当前目录下只有一个普通文件

当我们想在当前目录下创建一个“文件夹”时就需要使用mkdir指令

这里就创建好了

第三张图我是新创建了一个文件111,通过ls显示在终端上,这是ls的简单用法。

 这里我们用mkdir所创建的是目录文件

如果我们想进入某个文件内部呢?

这里我们就可以使用cd指令了

我们也可以用touch指令创建普通文件

我们在111文件夹下创建了一个叫test.c的普通文件。

当我们看到屏幕被指令充满时,我们可以用到clear指令进行清屏操作。

只需输入一个clear指令就可变成上图所示状态。

这样就可方便我们继续进行后续指令输入。

补充周边知识(文件)

以上我们所说的都是对文件的操作,我们如何操作的文件呢?

在我们当前Windows系统下创建一个文件

很明显创建的每个文件都会有它对应的属性 --- 文件名、修改日期、类型、大小等都是文件的属性

而我们打开这个文件当然也有文件的内容

所以我们总结出,文件 = 属性 + 内容

这些属性是数据吗?  是 !要保存吗? 要!

那么我们对文件的任何操作无外乎 1.对属性的操作 2.对内容的操作

那么就有了,用指令控制文件,编程访问文件

补充周边知识(绝对路径与相对路径)

 拿出我们之前在Windows下创建的文件所在位置

我们将看到D:\code\2023这个就是这个文件所在的绝对路径

 这个是Linux中的绝对路径。

我们可以看到无论是Windows还是Linux的路径都存在分隔符号,Windows的是‘\’,Linux的是‘/’

它们都是路径分隔符。

两个路径分隔符之间一定是一个“文件夹”。

一个路径的最末端一定是普通文件或者文件夹。

这里的文件夹又叫做目录文件。

Linux整个目录文件结构是一颗多叉树

 而其中的最初的 / 就表示的是根目录文件

路径必须具有唯一性,访问任何文件必须先找到这个文件。

所以/usr/bin假如后面还有个普通文件即/usr/bin/test.c这个就叫做绝对路径

 我们看到这个根目录下有两个是.和..的文件,这是因为每个目录文件下都会默认有两个隐藏目录

.表示的是当前路径

..表示的是上级路径

 

 可以看到第一个ls后的路径为绝对路径

第二个ls指令后的路径就为相对路径,意思是在当前路径下的111下的test.c文件

(补充知识)whoami指令

--- 可以查看当前使用Linux系统的是谁

1.ls指令

语法: ls [选项][目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

 下面是常用的一些ls所跟的选项:

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。 ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型, “*”表示可执行的普通文件; “/”表示目录; “@”表
示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。 (递归)
-1 一行只输出一个文件。

 

 

 

 

 可见Linux系统指令是非常灵活的,我们可以把选项互换位置,可以缩写,但ll 表示的是ls -a -l

 (补充指令)alias指令

可以给当前指令起别名,这样我们使用起来更加方便,但建议尽量减少起别名

 (补充指令)which指令

可以显示当前指令所在目录

2.pwd指令

语法: pwd
功能:显示用户当前所在的目录

pwd用法比较简单,没有其他选项。 

3.cd指令

语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
举例:

cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录

 (补充知识)家目录

这里我们不得不谈谈家目录的概念。

我们来看看Windows的家目录

这是我电脑上的默认的家目录

Linux系统指定的用户也有自己的家目录

 

通过对进入家目录操作,我们发现进入的是/root

对的,这个就是当前我们的家目录

 对于root账号:默认的家目录/root --- 超级管理员账户

对于普通用户:默认家目录/home/xxx, xxx新建的用户名

任何一个用户,首次登录,所处路径都是自己的家目录

多用户操作系统 --- Windows,Linux

桌面实质也是个文件夹

只是在Windows是通过图形化界面显示在屏幕上。

4.touch指令

语法:touch [选项]... 文件...
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

常用选项:

-a 或--time=atime或--time=access或--time=use只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。

5.mkdir指令(重要)

语法: mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录


常用选项:

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

举例:

6.rmdir指令 && rm指令(重要)

rmdir是一个与mkdir相对应的命令。 mkdir是建立目录,而rmdir是删除命令。
语法: rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录


常用选项:

 -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

 rm命令可以同时删除文件或目录

语法: rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录

 常用选项:

 -f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

 使用-f时我们要注意,确定我们删的文件是我们想要删除的,一旦删除,就无法还原,所以一定要看清楚,防止错把根目录删除使得系统崩溃,这在公司就可能会是一个大事故了。所以,我们宁可备份,不要删除。

(补充指令)stat

 ACM时间

Access:

  • 表示文件最近一次被访问的时间

Modify:

  • 表示最近一次修改文件属性的时间

Change:

  • 表示最近一次修改文件内容的时间

(补充指令)tree

该指令可以使文件目录以树状形式显示目录结构

tree后可跟目录文件名显示的是这个目录文件对应的树状结构也可不跟

 如果我们没有这个指令的话,可以进行安装

指令为:

yum install -y tree

 有时我们会碰到指令失控的情况,这时我们只需要按ctrl + c就可终止异常的指令

7.man指令(重要)

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
man 语法: man [选项] 命令

 -k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按
下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
解释一下,面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

举例: 可以查c语言的库函数

 也可以查指令,比如查自己对应的指令解析

 我们最重要的是去查2号手册。

总结:

Linux指令还是有很多的,本章讲解了部分Linux的指令与一些周边知识来充实我们的大脑,小伙伴们不用担心这些指令这么多,我们要不要去强行记忆,我回答,完全大可不必,我们在以后使用Linux会经常使用一些指令,这些指令就是我们的常用指令,敲的多了,这些指令就被我们记住了,其他的一些不常用的指令,既然是不常用我们也没必要刻意去记,对吧,所以我们不用焦虑去记这些指令的问题,我们重点关注的是一些周边知识的原理,这才是最重要的,支持一下哦,若需继续进行指令学习,等待博主的后续追更哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1249351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

两年功能五年自动化测试面试经验分享

最近有机会做一些面试工作,主要负责面试软件测试人员招聘的技术面试。 之前一直是应聘者的角色,经历了不少次的面试之后,多少也积累一点面试的经验,现在发生了角色转变。初次的面试就碰到个工作年限比我长的,也没有时…

ubuntu22.04 arrch64版操作系统编译zlmediakit

脚本 系统没有cmake,需要通过apt先进行下载,下面的脚本已经包含了 # 安装依赖 gcc-c.x86_64 这个不加的话会有问题 sudo yum -y install gcc gcc-c libssl-dev libsdl-dev libavcodec-dev libavutil-dev ffmpeg git openssl-devel gcc-c.x86_64 ca…

R语言如何实现多元线性回归

输入数据 先把数据用excel保存为csv格式放在”我的文档”文件夹 打开R软件,不用新建,直接写 回归计算 求三个平方和 置信区间(95%)

springboot 返回problem+json

spring所有配置都在WebMvcAutoConfiguration中 其中有 ProblemDetailsExceptionHandler 容器中的一个组件 -ControllerAdvice用来集中处理异常的 -点进ResponseEntityExceptionHandler 包含这些异常,如果出现以下异常,会被springboot支持以RFC 7807规…

2022年03月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 以下四个选项中,运行哪个积木块,可能得到523这个数值? A: B: C: D: 答案:B 四个选项都遵循统一的公式:随机数ⅹ10+3=523,因此可以得出随

Redis-主从与哨兵架构

Jedis使用 Jedis连接代码示例&#xff1a; 1、引入依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency> 2、访问代码 public class JedisSingleTe…

Modown主题v8.12 安装教程和主题下载

亲测」Modown主题v8.12学习版 上传好主题选择该主题就好了设置 设置好的首页 内容页&#xff1a; WordPress主题Modown和WordPress插件Erphpdown想必正在使用WordPress程序建站的站长都非常熟悉&#xff0c;因为这两款应用在WordPress站长圈子里还是比较知名的&#xff0c;所以…

LangChain 9 模型Model I/O 聊天提示词ChatPromptTemplate, 少量样本提示词FewShotPrompt

LangChain系列文章 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储&#xff0c;读取YouTube的视频文本搜索I…

百度 文心一言 sdk 试用

JMaven Central: com.baidu.aip:java-sdk (sonatype.com) Java sdk地址如上&#xff1a; 文心一言开发者 文心一言 (baidu.com) ERNIE Bot SDK https://yiyan.baidu.com/developer/doc#Fllzznonw ERNIE Bot SDK提供便捷易用的接口&#xff0c;可以调用文心一言的能力&#…

1553B板卡详解

个人博客地址: https://cxx001.gitee.io 简介 1553b板卡主要应用于航天航空工业领域&#xff0c;它的数据传输结构有点类似集中分布式服务器的设计&#xff0c;分为BC、RT、BM三类部件&#xff0c;BC有且仅有1个&#xff0c;类似我们的master管理服务节点&#xff0c;RT有0~32…

LangChain(0.0.339)官方文档二:LCEL

文章目录 一、LangChain Expression Language (LCEL)1.1 LCEL简介1.2 Runnable1.2.1 Runnable方法1.2.2 Runnable组合方式1.2.3 修改行为 1.3 输入输出模式1.3.1 前置知识&#xff1a;Pydantic1.3.2 Input Schema1.3.3 Output Schema 1.4 同步调用1.4.1 Invoke1.4.2 Stream1.4.…

超分辨率重建

意义 客观世界的场景含有丰富多彩的信息&#xff0c;但是由于受到硬件设备的成像条件和成像方式的限制&#xff0c;难以获得原始场景中的所有信息。而且&#xff0c;硬件设备分辨率的限制会不可避免地使图像丢失某些高频细节信息。在当今信息迅猛发展的时代&#xff0c;在卫星…

io.lettuce.core.RedisCommandExecutionException

io.lettuce.core.RedisCommandExecutionException: ERR invalid password ERR invalid password-CSDN博客 io.lettuce.core.RedisCommandExecutionException /** Copyright 2011-2022 the original author or authors.** Licensed under the Apache License, Version 2.0 (the…

医学图像分割:U_Net 论文阅读

“U-Net: Convolutional Networks for Biomedical Image Segmentation” 是一篇由Olaf Ronneberger, Philipp Fischer, 和 Thomas Brox发表的论文&#xff0c;于2015年在MICCAI的医学图像计算和计算机辅助干预会议上提出。这篇论文介绍了一种新型的卷积神经网络架构——U-Net&a…

二叉树--详解

目录 树的概念 关于树的概念 二叉树 概念 两种特殊的二叉树 满二叉树 完全二叉树 二叉树的性质 巩固性质的习题 简单的创建二叉树 二叉树的遍历 递归实现二叉树的前中后后序遍历 二叉树的基本操作 获取树中节点个数 获取叶子结点个数 子问题思路-获取叶子结点个…

CTFSHOW sqll注入

号过滤绕过 号和不加通配符的 like 是一样的。 还可以使用 < >号来绕过&#xff0c;<> 在mysql中等于! 如果在加一个! 双重否定代表肯定 就是了 空格过滤绕过 /**/ &#xff0c;()&#xff0c;&#xff0c;tab&#xff0c;两个空格 or and xor not 过滤绕过 a…

Jenkins 整合 Docker 自动化部署

Docker 安装 Jenkins 配置自动化部署 1. Docker 安装 Jenkins 1.1 拉取镜像文件 docker pull jenkins/jenkins1.2 创建挂载文件目录 mkdir -p $HOME/jenkins_home1.3 启动容器 docker run -d -p 8080:8080 -v $HOME/jenkins_home:/var/jenkins_home --name jenkins jenkin…

Redis高并发缓存架构

前言&#xff1a; 针对缓存我们并不陌生&#xff0c;而今天所讲的是使用redis作为缓存工具进行缓存数据。redis缓存是将数据保存在内存中的&#xff0c;而内存的珍贵性是不可否认的。所以在缓存之前&#xff0c;我们需要明确缓存的对象&#xff0c;是否有必要缓存&#xff0c;怎…

播放器开发(四):多线程解复用与解码模块实现

学习课题&#xff1a;逐步构建开发播放器【QT5 FFmpeg6 SDL2】 前言 根据第一章内容&#xff0c;我们首先可以先把解复用和解码模块完成&#xff0c;其中需要使用到多线程以及队列&#xff0c;还需要使用FFmpeg进行解复用和解码动作的实现。 创建BaseQueue基类 BaseQueue.h…

技术分享 | 在 IDE 插件开发中接入 JCEF 框架

项目背景 当前的开发环境存在多种不同语言的 IDE&#xff0c;如 JetBrains 全家桶、Eclipse、Android Studio 和 VS Code 等等。由于每个 IDE 各有其特定的语言和平台要求&#xff0c;因此开发 IDE 插件时&#xff0c;需要投入大量资源才能尽可能覆盖大部分工具。同时&#xf…