分类 技术 下的文章

负载均衡就是将资源分配到某一时刻最需要它的地方。

 title=

当个人电脑刚开始发展的时候,一个家庭可能只有一台(或更少)的电脑。孩子们白天玩电脑游戏,家长们晚上在业务支撑系统上做会计、编程,或者漫游。然而,想象一下今天一个只有一台电脑的家庭,你可以预想到这样会产生什么样的冲突。每个人都想使用电脑,而只有一副键盘和鼠标。

随着计算机变得越来越普遍,IT 行业或多或少也出现了同样的情况。对服务和服务器的需求已经增长到了会因为用量过大而停机的程度。幸运的是,我们现在有了负载均衡的概念来帮助我们处理需求。

负载均衡是什么?

负载均衡是一个通用术语,指的是为了确保高效分配所管理的资源而做的事情。对于 Web 服务器的系统管理员来说,负载均衡通常意味着确保 Web 服务器软件(例如 Nginx)配置了足够的工作节点来处理激增的访客。换言之,如果一个网站突然变得非常受欢迎,其访问者在几分钟内增加了四倍,那么运行服务器的软件必须能够响应每个访问者,并不能让任何访问者发现服务质量下降。对于简单的网站,这就像修改一行配置选项一样简单,但对于具有动态内容的复杂站点,每个用户都有多个数据库查询,这可能是一个严重的问题。

这个问题本应随着云计算的发展而解决,但当 Web 应用程序遇到意外激增时,无法扩展也不是不可能。

在进行负载均衡时,需要记住的重要一点是,高效地分配资源并不一定意味着平均地分配资源。并非所有任务都在任何时候都需要所有的可用资源。一个智能的负载均衡策略仅在需要资源时才为用户和任务提供资源。这通常是应用程序开发人员的领域,而不是 IT 基础架构的责任。异步应用程序对于确保离开计算机休息的用户不占用服务器上的宝贵资源至关重要。

负载均衡是怎么工作的?

负载均衡通过在多个计算节点上分配工作负载来避免瓶颈。这些节点可能是数据中心中的物理服务器、云环境中的容器、用于边缘计算而战略性放置的服务器、复杂应用程序框架中的独立 Java 虚拟机(JVM),或在单个 Linux 服务器上运行的守护进程。

这个想法是把一个大问题分成几个小任务,并把每个任务分配给一台专用计算机。例如,对于一个要求用户登录的网站,该网站可能托管在服务器 A 上,而登录页面和所有随附的身份验证查询都托管在服务器 B 上。这样,新用户登录帐户时就不会占用其它使用该站点的用户的资源。

云计算负载均衡

云计算使用 容器,因此通常没有单独的物理服务器来处理不同的任务(实际上,有许多单独的服务器,但它们被聚集在一起作为一个计算“大脑”)。相反,“ 容器荚 pod ” 是由几个容器创建的。当一个容器荚由于其用户或任务负载而开始耗尽资源时,会生成一个相同的容器荚。容器荚共享存储和网络资源,每个容器荚在创建时被分配给一个计算节点。可以根据负载需要创建或销毁容器荚,这样无论有多少用户,用户都可以体验到一致的服务质量。

边缘计算

边缘计算 在负载均衡时考虑到了现实世界。云计算自然是一个分布式系统,但实际上,云计算的节点通常集中在几个数据中心。用户离运行云计算的数据中心越远,他们为获得最佳服务所必须克服的物理障碍就越多。即使有光纤连接和适当的负载均衡,位于 3000 英里外的服务器的响应时间也可能比仅仅 300 英里外的响应时间长。

边缘计算将计算节点带到云计算的“边缘”,试图弥合地理鸿沟,为云计算形成一种卫星网络,因此它也在良好的负载均衡工作中发挥了作用。

什么是负载均衡算法?

有许多负载均衡策略,它们的复杂性取决于所涉及的技术和需求。负载均衡不必复杂,而且从一开始就负载均衡很重要,即使在使用 KubernetesKeepalived 这样的专用软件时也是如此。

当你可以设计应用程序,自己为它采取简单的预防措施时,不要依赖容器来均衡负载。如果你从一开始就将应用程序设计为模块化和临时性的,那么你将受益于通过巧妙的网络设计、容器编排和其他未来技术带来的负载均衡机会。

可以指导应用程序开发人员或网络工程师工作的一些流行算法包括:

  • 按顺序将任务分配给服务器(这通常被称为轮询调度)。
  • 将任务分配给当前最不繁忙的服务器。
  • 将任务分配给具有响应最快的服务器。
  • 随机分配任务。

举个例子,在分配特别复杂的任务时,可以组合或加权这些原则以分配到组中最强大的服务器。通常使用 编排,这样管理员就不必为负载均衡寻找完美的算法或策略,尽管有时需要由管理员选择使用哪种负载均衡方案组合。

预料意料之外

负载均衡实际上并不是要确保在整个网络中均匀使用所有资源。负载均衡实际上是确保即使发生意外情况也能提供可靠的用户体验。良好的基础设施可以承受计算机崩溃、应用程序过载、网络流量冲击和用户错误。思考你的服务如何才能具有弹性,并从头开始相应地设计负载均衡策略。


via: https://opensource.com/article/21/4/load-balancing

作者:Seth Kenlon 选题:lujun9972 译者:FYJNEVERFOLLOWS 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Quarkus 令你可以使用类似 Java 的技术开发无服务器的工作负载。

无服务器 Java 的研究始于函数 —— 就是按需求运行的一小段代码。这一阶段并没有持续很长时间。虽然在 1.0 阶段,基于虚拟机架构的函数使这种范式变得很流行,但它仍然有局限性,例如执行时间、协议和糟糕的本地开发体验,都不太理想,如下图所示。

开发者随后意识到,可以把同样的无服务器特性应用于微服务和 Linux 容器,带来的好处也是一样的。由此进入 1.5 阶段,在这个阶段,一些无服务器容器完全抽象化了 Kubernetes,通过 Knative 或其它位于它之上的抽象层来提供无服务器的体验。

在 2.0 阶段,无服务器开始处理更复杂的编排和集成模式,并结合某些层级的状态管理。更重要的是,开发者关注的是能否在旧的系统中使用熟悉的 Java 应用程序运行时来组合运行无服务器和非无服务器的工作负载。

The serverless Java journey

Java 开发者开始进行无服务器函数开发之前,第一步是要选择一种新的云原生 Java 框架,从而能够以快于传统单体应用程序的速度和较小的内存占用运行 Java 函数。这在各种基础设施环境中,包括物理服务器、虚拟机、多云或混合云环境中的容器,都是适用的。

开发者也有可能固执地选择 Spring 框架中的 Spring 云函数 来进行命令式和反应式函数的开发。Spring 也支持将 Java 函数部署到可安装的无服务器平台,比如 KubelessApache OpenWhiskFissionProject Riff。然而,人们担心 Spring 的启动慢、响应时间长以及内存占用大的问题。在诸如 Kubernetes 这种可扩展的容器环境中运行 Java 函数,这些问题可能会更严重。

Quarkus 是一个新推出的开源云原生 Java 框架,它有助于解决这些问题。它的作用是设计无服务器应用程序,以及编写运行于云基础设施(例如 Kubernetes)的云原生微服务。

Quarkus 重新审视了 Java,它使用了封闭的方法构建和运行 Java 程序。它把 Java 转变为一种可与 Go 相媲美的运行时。Quarkus 也包含 100 多种扩展功能,集成了企业级能力,例如数据库访问、无服务器集成、消息、安全、可观察性和业务自动化。

这里有一个简单例子,展现如何使用 Quarkus 创建一个 Java 无服务器项目的框架。

1、基于 Maven 创建一个 Quarkus 无服务器项目

安装一个本地 Kubernetes 集群,开发者有多种选择,包括 MinikubeOKD。因为使用 OKD 在 Knative 和 DevOps 工具上安装无服务器相关功能较方便,本文使用 OKD 安装集群。这些关于 OKD 安装Knative 操作员安装 的相关指南中提供了更多的设置资料。

下面的命令创建了一个 Quarkus 项目(例如 quarkus-serverless-restapi),对外暴露一个简单的 REST API,并下载 quarkus-openshift 扩展,用于 Knative 服务的部署:

$ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \
       -DprojectGroupId=org.acme \
       -DprojectArtifactId=quarkus-serverless-restapi \
       -Dextensions="openshift" \
       -DclassName="org.acme.getting.started.GreetingResource"

2、在本地运行无服务器功能

使用 Quarkus 开发模式运行程序,检查 REST API 是否有效,稍稍调整一下代码:

$ ./mvnw quarkus:dev

输出如下内容:

__  ____  __  _____   ___  __ ____  ______ 
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   
INFO  [io.quarkus] (Quarkus Main Thread) quarkus-serverless-restapi 1.0.0-SNAPSHOT on JVM (powered by Quarkus xx.xx.xx.) started in 2.386s. Listening on: http://localhost:8080
INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, kubernetes, resteasy]
注意: 保持 Quarkus 应用程序运行,需要使用 热部署 Live Coding 。这样,当代码修改后,你就不必重新构建、重新部署以及重启运行时。

现在,你可以使用一个 curl 命令快速访问 REST API。输出结果应当是 Hello RESTEasy:

$ curl localhost:8080/hello
Hello RESTEasy

GreetingResource.java 中修改返回值:

public String hello() {
        return "Quarkus Function on Kubernetes";
    }

再次访问 REST API,输出信息也会相应更新:

$ curl localhost:8080/hello
Quarkus Function on Kubernetes

普通的微服务跟无服务器函数之间的差别并不大。使用 Quarkus 的好处在于:开发者可以使用任何微服务,将 Kubernetes 部署为无服务器函数。

3、在 Knative 服务中部署相关的函数

如果你还没有创建命名空间,就在你的 OKD 集群上 创建命名空间(例如 quarkus-serverless-restapi),用来部署 Java 无服务器函数。

Quarkus 令开发者可以通过在 src/main/resources/application.properties 中添加以下变量,创建 Knative 和 Kubernetes 资源:

quarkus.container-image.group=quarkus-serverless-restapi <1>
quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 <2>
quarkus.kubernetes-client.trust-certs=true <3>
quarkus.kubernetes.deployment-target=knative <4>
quarkus.kubernetes.deploy=true <5>
quarkus.openshift.build-strategy=docker <6>

说明:

  • <1> 在你部署无服务器应用程序的位置定义项目名
  • <2> 使用容器注册中心
  • <3> 在这个简单例子中,使用自签名证书,以便通过相关信任机制
  • <4> 允许创建 Knative 资源
  • <5> 指示在构建容器映像之后将扩展部署到 OpenShift
  • <6> 设置 Docker 构建策略

执行以下命令,构建应用程序,并直接部署到 OKD 集群:

$ ./mvnw clean package -DskipTests
注意: 应该提前使用 oc login 命令,确保登录到正确的项目(例如quarkus-serverless-restapi)。

输出结果应该以 BUILD SUCCESS 结束。

在对于 Knative 服务执行的 oc 命令中,加上标签:

$ oc label rev/quarkus-serverless-restapi-00001 
app.openshift.io/runtime=quarkus --overwrite

然后访问 OKD 网页控制台,就能进入 开发人员透视图中的拓扑视图。你可能会看到你的 容器荚 Pod (无服务器函数)已经缩小为零(白线圈)。

Topology view

4、在 Kubernetes 环境下测试函数

运行如下 oc 命令,搜索含有无服务器函数的路由:

$ oc get rt/quarkus-serverless-restapi
[...]
NAME                      URL                             READY   REASON
quarkus-serverless[...]   http://quarkus[...].SUBDOMAIN   True

使用 curl 命令访问搜索到的路由:

$ curl http://quarkus-serverless-restapi-quarkus-serverless-restapi.SUBDOMAIN/hello

过几秒钟,你可以得到跟在本地相同的结果:

Quarkus Function on Kubernetes

当你回到 OKD 集群内的拓扑图,Knative 服务会自动扩展。

Scaling the Knative Function

由于 Knative 服务的默认设置,其 pod 在 30 秒后会再次下降至零。

下一步呢?

无服务器不断地在演变,始于运行于虚拟机的函数,到后来的无服务器容器,并与企业原有系统集成。在此过程中,企业开发者借助 Quarkus,仍然可以使用自己熟悉的技术(比如 Java)创建一个项目,然后构建并部署到 Kubernetes。

本系列的下一篇文章将指导你优化 Kubernetes 中的 Java 无服务器函数,从而令程序启动更快,内存占用更小。

文内图像来自:Daniel Oh, CC BY-SA 4.0


via: https://opensource.com/article/21/6/java-serverless-functions

作者:Daniel Oh 选题:lkxed 译者:cool-summer-021 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

允许用户使用 sudo 运行命令,但不带命令行参数。

在之前的文章,我们学习了如何 通过 sudo 以 root 身份运行目录中的命令。在这篇指南中,我们将学习如何在 Linux 中 防止 sudo 运行的命令使用参数。即我们允许一个用户使用 sudo 运行特权级命令,但是 不带命令行参数

背景介绍

你已经知道了,每个命令执行一个特定操作有不同的选项。让我们以 ls 命令为例。

ls 命令会罗列文件夹中的内容,对吗?没错。ls 命令附带了一些命令行选项和标志。例如,你可以用 ls 命令的 -a 标志罗列文件夹中的所有内容(包括隐藏文件)。

在这份简要指南中,我们将明白如何允许用户通过 sudo 运行 ls 命令,但是不能使用命令行选项或者标志。我讲清楚了吗?接下来让我来展示一下如何做到这点。

防止使用 sudo 参数

root 用户身份编辑 /etc/sudoers 文件:

[root@Almalinux8CT ~]# visudo

添加下面一行:

user1   ALL=(root)      /usr/bin/ls ""

Deny Command Arguments With Sudo

要注意这里 ls 之后的 双引号。双引号会屏蔽用户在给定命令之后输入的参数(比如 ls 命令)。在上面的命令中,user1 能够以 root 身份运行 ls 命令,但是不能使用 ls 命令的选项以及标志。你可以选择其他的指令进行尝试。保存该文件并关闭。

现在,以 user1 的身份登录系统,并尝试以管理员身份运行 ls 命令,不要添加任何选项:

[user1@Almalinux8CT ~]$ sudo -u root ls -a

或许你会遇到下面的报错:

Sorry, user user1 is not allowed to execute '/bin/ls -a' as root on Almalinux8CT.

不过你可以不添加参数来运行 ls 命令:

[user1@Almalinux8CT ~]$ sudo -u root ls

Prevent Command Arguments With Sudo

防止所有用户使用命令参数

上述例子像你展示了如何阻止用户以管理员身份运行带有参数的命令。你是否想要对所有用户应用该规则呢?很简单!只需要在 /etc/sudoers 文件中添加一行:

ALL   ALL=(root)      /usr/bin/ls ""

现在,系统中的所有用户都可以运行不带参数的 ls 命令。

想要恢复默认设置,只需要删除最后的双引号,或者删除整行。

查看帮助手册,了解更多。

$ man sudoers

结论

在这份指南中,我们学习了如何允许用户以管理员身份运行命令,但是不能添加任何命令参数。这样可以限制用户误用一些命令行参数。


via: https://ostechnix.com/prevent-command-arguments-with-sudo/

作者:sk 选题:lkxed 译者:Donkey-Hao 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这就是在包括 Ubuntu 在内的 Linux 系统中将语音转换为文本的方法。

Linux 系统中可用的语音识别软件不多,尤其是原生桌面应用。有一些可用的应用使用 IBM Watson 和其他 API 将语音转换为文本,但它们的用户交互不友好,需要一些复杂的用户交互,例如用相应的语言进行一些编程或脚本编写。

但是,没有多少用户知道 谷歌文档 Google Docs 使用自己的 AI 技术提供了高级语音识别,它可以通过 Chrome 访问谷歌文档使用。

任何用户都可以使用此功能将语音转换为文本,而无需高级计算机知识。谷歌文档的这个功能最好的一点是你可以在任何 Ubuntu 衍生版或任何支持 Chrome 的 Linux 发行版中使用它。

让我们看看如何在 Ubuntu 中启用它。

如何将语音转换为文本

先决条件是你应该在系统中安装 Chrome 并拥有谷歌帐户。如果你没有安装 Chrome,你可以访问 此链接 并下载、安装 Chrome。

此外,如果你没有谷歌帐户,你可以使用 此链接 免费创建一个。

步骤 1

从 Chrome 打开 https://docs.google.com 并创建一个空白文档。

创建一个空文档

步骤 2

加载空白文档后,从菜单中单击“工具 > 语音输入”。

启用语音输入

步骤 3

在左侧,你可以看到一个麦克风图标。单击麦克风图标,Chrome 会首次要求允许通过浏览器访问麦克风。单击允许。

点击麦克风

允许文档访问麦克风

默认情况下,它使用你的系统语言作为语音的检测语言,同时将其转换为文本;但是,你可以根据可用的语言列表将其更改为所需的任何语言。到目前为止,谷歌文档支持和识别超过 60 多种语言,同时将它们转换为文本。

步骤 4

单击允许后,麦克风图标将变为橙色,现在它已准备好接受或识别你的声音。开始说任何你想说的话,瞧!你将看到你的演讲被转换为文本并写入文档。

正在进行语音转文字

完成了。你已通过谷歌 Chrome 和谷歌文档在 Ubuntu 中成功地将语音转换为文本。

所有 Linux 用户都可以免费使用这个很棒的功能。如果你知道其他可以在 Linux 中将语音转换为文本的应用,请在下方的评论区发表评论。另外,让我知道你是否觉得这篇文章有用。

故障排除

如果上述功能在你的浏览器中不起作用,请务必查看以下内容。

  • 打开设置窗口(在 Ubuntu 或其他发行版的 GNOME 桌面中)。
  • 转到“隐私 > 麦克风”。
  • 并确保它已启用。

检查 Ubuntu 中的麦克风设置

总结

虽然,最近有一种基于云的解决方案可用,例如 Amazon Polly 等。但它们的价格很高。另外还需要一些有用的知识。

而谷歌 Chrome 的内置语音识别功能简单易用。虽然它有点慢,但它可以为普通用户完成工作。

也就是说,我希望本指南可以帮助你将语音转换为文本,如果你知道这样的免费应用,请在评论区告诉我。


via: https://www.debugpoint.com/speech-recognition-to-text-in-linux-ubuntu-using-google-docs/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

安装 Java,使用 Maven 安装 JDBC,并安装数据库。然后,你就可以在 Java 代码中与数据库进行交互了。

当你编写一个应用时,需要数据存储是很常见的。有时你要存储你的应用需要的素材数据,其他时候你要存储用户数据,包括偏好和保存的数据。存储数据的一种方式是在数据库中,为了在你的代码和数据库之间进行通信,你需要为你的语言提供一个数据库绑定或连接器。对于 Java 来说,一个常见的数据库连接器是 JDBC( Java 数据库连接 Java database connectivity )。

1、安装 Java

当然,要使用 Java 进行开发,你还必须安装 Java。对于 Linux、macOS 和 WSL 或 Cygwin,我推荐 SDKman。对于 Windows,你可以从 developers.redhat.com 下载 OpenJDK。

2、使用 Maven 安装 JDBC

JDBC 是一种 API,通过语句 import java.sql.* 导入到你的代码中,但要使其有用,你必须安装数据库驱动和数据库以与之交互。你使用的数据库驱动和要通信的数据库必须匹配:要与 MySQL 交互,你需要 MySQL 驱动,要与 SQLite3 交互,你必须具有 SQLite3 驱动等等。

在本文中,我使用 PostgreSQL,但所有主流数据库,包括 MariaDBSQLite3,都有 JDBC 驱动程序。

你可以从 jdbc.postgresql.org 下载 JDBC for PostgreSQL。我使用 Maven 来管理 Java 依赖项,因此我将它包含在 pom.xml 中(调整 Maven Central 上的当前版本号):

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.5.0</version>
</dependency>

3、安装数据库

你必须安装要通过 JDBC 连接的数据库。有几个非常好的开源数据库,但是我只能为这篇文章选择一个,所以我选择了 PostgreSQL。

要在 Linux 上安装 PostgreSQL,请使用你的软件仓库。在 Fedora、CentOS、Mageia 和类似设备上:

$ sudo dnf install postgresql postgresql-server

在 Debian、Linux Mint、Elementary 和类似平台上:

$ sudo apt install postgresql postgresql-contrib

数据库连接

如果你不使用 PostgreSQL,同样的一般过程也适用:

  1. 安装 Java。
  2. 为你选择的数据库找到 JDBC 驱动,并将其包含在你的 pom.xml 文件中。
  3. 在你的开发系统上安装数据库(服务器和客户端)。

三个步骤,你就可以开始编写代码了。


via: https://opensource.com/article/22/9/install-jdbc-linux

作者:Seth Kenlon 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过图形界面和命令行两种方法,了解如何在 VSCode 中搜索和安装扩展。

微软的 Visual Studio Code(VSCode)可能是最流行的 开源代码编辑器,仅次于 Vim(当然)。

VSCode 通过提供几乎所有类似 IDE 的功能,提供了令人惊叹的“开箱即用”体验。 但总有一些事情是你希望 VSCode 能够另外做到的。正所谓“邻家芳草绿,隔岸风景好” : )

你可以在 Visual Studio Code 市场 Marketplace 找到 VSCode 扩展插件。在 VSCode 市场上发布的扩展插件在发布之前会进行病毒扫描,所以这些扩展可以 信任

在 VSCode 中安装扩展插件

你不需要访问 VSCode 市场 Marketplace 网站就可以安装扩展插件。也就是说,你可以直接从 VSCode 本身安装和管理扩展插件。

我希望你已经在你使用的操作系统(比如 在 Linux)上 安装了 VSCode。

打开 VSCode,最左侧是活动栏。活动栏上的最后一个按钮就是“扩展”按钮。点击它之后你会看到大量可安装的扩展。

访问 VSCode 中的扩展选项卡

你也可以按快捷键组合 Ctrl + Shift + X 来启动扩展栏的侧面面板。

如果你还没有安装任何扩展的话,你会看到 VSCode 市场上最流行的扩展列表。

找到并安装某个扩展(图形界面方法)

现在是时候尝试一下 Linux 人谈论的 vim 了(鼓动的语气); )

开玩笑啦。让我们安装一些对我们初学者更友好,可以轻松使用而且无需太多练习的扩展吧。

从最流行的扩展列表中单击 “Visual Studio IntelliCode” (①)扩展。

如何安装 Visual Studio IntelliCode 等扩展

点击 “ 安装 Install ” 按钮(②)即可安装 “Visual Studio IntelliCode” 扩展。这个扩展会在你编写代码时为你提供 AI 预测的建议。

安装后,你可以充分利用此扩展。试试用你喜欢的编程语言输入一段代码,然后看看 AI 的自动完成功能是否顺利运行而且没有拖慢你的工作进程。

在 Visual Studio Code 中管理已安装的扩展

如果你不喜欢某个已安装的扩展插件,你只需单击 “ 卸载 Uninstall ” 按钮(②)即可完全删除不需要的扩展插件。

如果你安装了多个扩展插件,并且你觉得其中某个扩展插件给你带来了问题——比如说突然崩溃;你只需点击 “ 禁用 Disable ” 按钮(①)即可禁用一个(或多个)扩展插件,并检查扩展插件 是否在起作用,或者它是扩展插件 ,还是完全不同的东西。

考虑到扩展删除和重新安装需要很长时间,当你安装了多个扩展时,禁用扩展会很方便。

另外方法:使用终端安装扩展

你知道你可以从终端安装 VSCode 扩展吗?不过,现在你知道了!

要从你的终端安装扩展程序,你需要知道扩展程序名称和发布者名称,再按照 发布者名称.扩展程序名称 的顺序找到它。比如说,如果你想安装 “Visual Studio IntelliCode” 这个扩展(前面提到的),它的名称就是 VisualStudioExptTeam.vscodeintellicode

要找出扩展用于标识的唯一名称(ID),首先要在你的浏览器中 访问 VSCode 市场

VSCode 市场的截图

然后搜索某个扩展,在本教程中,我将以安装 “Visual Studio IntelliCode” 这个扩展为例。下一步,打开你要安装的扩展程序的页面。

搜索Visual Studio IntelliCode并打开扩展网页

打开扩展程序的网页后,你将看到一个代码块。下面的截图突出标示了扩展程序的 ID。

VSCode 扩展的 ID

一旦你有了想要安装的扩展的 ID —— 在这种情况下是 VisualStudioExptTeam.vscodeintellicode,你可以通过在终端中运行以下命令来继续。

code --install-extension VisualStudioExptTeam.vscodeintellicode

与图形界面一样,命令行界面也允许你安装、禁用、删除和管理扩展。

可以通过运行以下命令查看已安装的所有扩展的列表。

code --list-extensions

要禁用单个扩展,请运行以下命令:

code --disable-extension <在这里输入扩展的ID>

如果要禁用所有扩展,可以运行以下命令:

code --disable-extensions

上述命令将禁用 所有 已安装的扩展。这将帮助你判断导致问题的是插件,还是 VSCode 本身。

现在,如果你想完全删除任何某个扩展,请运行以下命令:

code --uninstall-extension <在这里输入扩展的ID>

总结

我发现使用 VSCode 安装扩展要容易得多。毕竟,它直接在我编辑器左边的侧栏中。

一旦你对 VSCode 的操作得心应手,也许可以看看这篇文章,VSCode 实用快捷键 可能会帮助你提高工作效率!

写代码顺利,新朋友! : )


via: https://itsfoss.com/install-vs-code-extensions/

作者:Pratham Patel 选题:lujun9972 译者:泠知落汐 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出