shell基础学习
文章目录
- 查看shell解释器
- 写hello world
- 多命令处理执行
- 变量
- 常用系统变量
- 自定义变量
- 撤销变量
- 静态变量
- 变量提升为全局环境变量
- 特殊变量
- $n
- `$#`
- $* $@
- $?
- 运算符:
- 条件判断
- 比较
- 流程控制语句
- if
- case
- for 循环
- while 循环
- read读取控制台输入
- 基本语法:
- 函数
- 系统函数
- basename
- dirname
- 自定义函数
- shell 工具
- cut
- sed
查看shell解释器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ieZRfUSg-1677309668830)(../images/Pasted%20image%2020230225100639.png)]](https://img-blog.csdnimg.cn/0ccc35cd8f324294beebcfdedb45c9b3.png)
查看系统默认shell解释器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZRGiMiG-1677309668831)(../images/Pasted%20image%2020230225104422.png)]](https://img-blog.csdnimg.cn/bed5f14df193431cab9a81365cc4f126.png)
垃圾火狐:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-19Ecqc52-1677309668831)(../images/Pasted%20image%2020230225100723.png)]](https://img-blog.csdnimg.cn/0d6fc1242faa4287bdae2d068b13dd8c.png)
写hello world
#!/bin/bash (指定shell解析器)#注释
echo "hello world"
执行:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i8SK6sMU-1677309668831)(../images/Pasted%20image%2020230225104746.png)]](https://img-blog.csdnimg.cn/6fd0f215f1924232b5eaf454633f0f0f.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1EGPo9Zf-1677309668832)(../images/Pasted%20image%2020230225104833.png)]](https://img-blog.csdnimg.cn/02f07092b9514f3d9a3ed7d42637af5c.png)
多命令处理执行
#!/bin/bash
cd /root/leanshell/
touch banzhang.txt
echo "i love cls" >> banzhang.txt
变量
变量名称可以是字母,数字下划线,不能以数字开头
在bash中变量默认是字符串类型,不能直接进行数值运算.
变量的值有空格,需要使用双引号或者单引号括起来.
显示当前shell所有变量
常用系统变量
$HOME $PWD $SHELL $USER等
自定义变量
变量名=值
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YMaL3GFi-1677309668832)(../images/Pasted%20image%2020230225105641.png)]](https://img-blog.csdnimg.cn/e664e6c143a64f7d814fc6ec8969cd66.png)
等号两边没有空格
撤销变量
unset 变量
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aFHHi9KX-1677309668832)(../images/Pasted%20image%2020230225105915.png)]](https://img-blog.csdnimg.cn/27fa10ae646342f281658e5a2a4a788b.png)
静态变量
readonly 变量
静态变量是不能unset的
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uZmAhX2C-1677309668832)(../images/Pasted%20image%2020230225110021.png)]](https://img-blog.csdnimg.cn/4513c457d70447b5909bcc3f851c91a5.png)
变量提升为全局环境变量
这样变量就可以提供给其他的shell程序使用了
export 变量名
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y5Ohc3J0-1677309668833)(../images/Pasted%20image%2020230225112518.png)]](https://img-blog.csdnimg.cn/da73593e6a9b470b852800af1d07c4b9.png)
特殊变量
$n
$n : n 是数字, $0 表示该脚本的名称, $1-9代表第一到第九个参数(命令行参数). 十以上的参数可以这样表示: ${10}
#!/bin/bash
echo $0 $1 $2
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W7qgugLL-1677309668833)(../images/Pasted%20image%2020230225113843.png)]](https://img-blog.csdnimg.cn/bd6ced2b88a94afbb1c2a2283de59760.png)
$#
获取所有输入参数的个数,常用来循环
#!/bin/bash
echo $0 $1 $2
echo $#
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e4Z8wQvv-1677309668833)(../images/Pasted%20image%2020230225114010.png)]](https://img-blog.csdnimg.cn/3a911c4812e1405ca4114c27e05250fa.png)
$* $@
$* :变量代表命令行中所有的参数, $*把所有的参数看成一个整体.
$@ : 代表命令行中的所有参数, $@把每一个参数区分对待.
#!/bin/bash
echo $0 $1 $2
echo $#
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l25Cgs8Q-1677309668833)(../images/Pasted%20image%2020230225114315.png)]](https://img-blog.csdnimg.cn/053b15f68b0f4bcba4bdbd6065c3c698.png)
$?
最后一次执行命令的返回状态. 如果这个变量是0 ,证明上一个命令执行正确; 如果变量的值非零, (具体哪一个数,由命令自己来决定),则证明上一个命令执行不正确.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KgQHn0ja-1677309668834)(../images/Pasted%20image%2020230225114551.png)]](https://img-blog.csdnimg.cn/dd25e1f421f541eda247bb6563b92347.png)
运算符:
$((运算式))或$[运算式]- expr +,-,*,/,%
注意:expr运算符前后有个空格
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ejNnwH7-1677309668834)(../images/Pasted%20image%2020230225122846.png)]](https://img-blog.csdnimg.cn/382160d32f954fff9201f892616c57c1.png)
表示2+3*4
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FDJbcgNc-1677309668834)(../images/Pasted%20image%2020230225123928.png)]](https://img-blog.csdnimg.cn/5d5aa967a5fb40db9844c5439d8a51c6.png)
条件判断
[ condition ]
# condition前后有空格
比较
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UrwN7P89-1677309668834)(../images/Pasted%20image%2020230225124226.png)]](https://img-blog.csdnimg.cn/9c34b8ef423149999702e13d5db7e567.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NMqJ4LL-1677309668835)(../images/Pasted%20image%2020230225124348.png)]](https://img-blog.csdnimg.cn/40ceb637bf344ceda5d98bf4cc4e1038.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zO1ggTsF-1677309668835)(../images/Pasted%20image%2020230225124456.png)]](https://img-blog.csdnimg.cn/0a2357ac704c4876a348d6a8ca13e2db.png)
流程控制语句
if
if [ 条件判断式 ];then程序
fi
或者
if [ 条件判断式 ]then程序
fi
if [ 条件判断式 ]条件判断表达式前后有空格, if之后有空格
#!/bin/bash
if [ $1 -eq 1 ]thenecho "simple 1 "
elif [ $1 -eq 2 ]thenecho "simple 2 "
fi
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7RnidYk-1677309668835)(../images/Pasted%20image%2020230225130026.png)]](https://img-blog.csdnimg.cn/20a174fe73834646bb2a5b7631d373d4.png)
case
case $变量名 in"值1")如果变量的值等于值1,则执行程序1;;"值2")如果变量的值等于值2,则执行程序2;;…省略其他分支…*)如果变量的值都不是以上的值,则执行此程序;;
esac
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDmUkrUy-1677309668835)(../images/Pasted%20image%2020230225142752.png)]](https://img-blog.csdnimg.cn/927de2df572e4ecd806750519f37423e.png)
#!/bin/bash
case $1 in1)echo "simple1"
;;2)echo "simple2"
;;*)echo "none"
;;
esac
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bkRSF5qW-1677309668836)(../images/Pasted%20image%2020230225143032.png)]](https://img-blog.csdnimg.cn/b0ca150669f24b47a48b568a1bf7a87e.png)
for 循环
语法一:
for 变量 in 值1 值2 值3 …(可以是一个文件等)do程序done这种语法中for循环的次数,取决于in后面值的个数(空格分隔),有几个值就循环几次,并且每次循环都把值赋予变量。也就是说,假设in后面有三个值,for会循环三次,第一次循环会把值1赋予变量,第二次循环会把值2赋予变量,以此类推。语法二:
for (( 初始值;循环控制条件;变量变化 ))do程序done语法二中需要注意:
初始值:在循环开始时,需要给某个变量赋予初始值,如i=1;循环控制条件:用于指定变量循环的次数,如i<=100,则只要i的值小于等于100,循环就会继续;变量变化:每次循环之后,变量该如何变化,如i=i+1。代表每次循环之后,变量i的值都加1。
#!/bin/bash
sum=0
for((i=1;i<=100;i++))
dosum=$[$sum+$i]
doneecho $sum
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n4NDuaDv-1677309668836)(../images/Pasted%20image%2020230225143744.png)]](https://img-blog.csdnimg.cn/143c0c7450444c5887ca6e65451ada62.png)
#!/bin/bash
for i in $*
doecho $i
done
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PRZVYSF0-1677309668836)(../images/Pasted%20image%2020230225144054.png)]](https://img-blog.csdnimg.cn/41bdaf7825004919b284f577e73b679c.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FWIYIvhx-1677309668836)(../images/Pasted%20image%2020230225144308.png)]](https://img-blog.csdnimg.cn/8f5d41748fc44793b01408e5eae16b61.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DFXpzmjv-1677309668837)(../images/Pasted%20image%2020230225144326.png)]](https://img-blog.csdnimg.cn/f78d9afe439440488a5c8601efcc347a.png)
while 循环
while [ 条件判断式 ]do程序done
#!/bin/bash
i=1
s=0
while [ $i -le 100 ]
#如果变量i的值小于等于100,dos=$(( $s+$i ))i=$(( $i+1 ))done
echo "The sum is: $s"
read读取控制台输入
基本语法:
read(选项)(参数)
选项:
-p :指定读取值时的提示符
-t :指定读取值时等待时间(秒)
参数:
指定读取值的变量名
(用来存变量的)
#!/bin/bash
read -t 7 -p "Enter your name: " Name
echo $Name
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjyo4hy7-1677309668837)(…/images/Pasted%20image%2020230225144938.png)]
函数
系统函数
basename
就是在文件路径中,的到文件的名称
basename[string /pathname][suffix]
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BduiOlRe-1677309668837)(../images/Pasted%20image%2020230225145428.png)]](https://img-blog.csdnimg.cn/834c8460024e4c6fbc389bd33389840f.png)
看例子就懂了
dirname
dirname 文件绝对路径
去掉文件名后,返回路径
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmC0cT36-1677309668837)(../images/Pasted%20image%2020230225145716.png)]](https://img-blog.csdnimg.cn/fc2221dabe3a480c887660c7aa75ad08.png)
自定义函数
function 函数名 () {程序
}
要在函数调用之前声明函数
#!/bin/bash
function sum()
{s=0;s=$[ $1+$2 ]echo $s
}
read -p "nums1 " n1;
read -p "nums2 " n2;
sum $n1 $n2;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-88oRm4kT-1677309668837)(../images/Pasted%20image%2020230225150632.png)]](https://img-blog.csdnimg.cn/e9e92719ca1c4ec287f8dde03bcd6ac5.png)
shell 工具
cut
剪
就是从一个文件中剪切需要的内容
基本语法:
cut [选项参数] filename
选项参数:
-f :列号,提取第几列
-d :分隔符,按照指定分割符分割列
例子
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IgpUWuPw-1677309668838)(../images/Pasted%20image%2020230225151006.png)]](https://img-blog.csdnimg.cn/c7bc0e63f76f42c290019aaaf252f5c5.png)
sed
一个流编辑器
语法:
sed[选项参数] 'command' filename
选项参数
-e : 直接在指令列模式上进行sed的动作编辑
命令功能描述
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xg6d89UA-1677309668838)(../images/Pasted%20image%2020230225151319.png)]](https://img-blog.csdnimg.cn/2c7af9f523d74411881f487854704c40.png)
示例
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ffZ632Pv-1677309668838)(../images/Pasted%20image%2020230225151412.png)]](https://img-blog.csdnimg.cn/754d60915f86403aaa8d9bd3902b2b5c.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zvWcqdsT-1677309668839)(../images/Pasted%20image%2020230225151502.png)]](https://img-blog.csdnimg.cn/81bc4ed669394b4b982ef929001330ee.png)
相关文章:
shell基础学习
文章目录查看shell解释器写hello world多命令处理执行变量常用系统变量自定义变量撤销变量静态变量变量提升为全局环境变量特殊变量$n$#$* $$?运算符:条件判断比较流程控制语句ifcasefor 循环while 循环read读取控制台输入基本语法:函数系统函数basenamedirname自定义函数shel…...
考虑交叉耦合因素的IPMSM无传感器改进线性自抗扰控制策略
考虑交叉耦合因素的IPMSM无传感器改进线性自抗扰控制策略一级目录二级目录三级目录控制原理ELADRC信号提取龙格贝尔观测器方波注入simulink仿真给定转速:转速环:电流环:一级目录 二级目录 三级目录 首先声明一下,本篇博客是复现…...
2023年全国最新食品安全管理员精选真题及答案5
百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 41.《中华人民共和国食品安全法》第35条规定,以下࿰…...
git 笔记
简介 内容介绍 介绍git怎么管理和实现的 核心概念 文件名-hash-文件内容: 可以通过文件路径定位位置, 也可以通过hash定位位置;快照: 所谓一个快照其实就是一棵树, 叶子结点是一个hash,对应一个文件, 根节点对应文件夹; 一棵树就是一个快照;commit是tree, tree将文件串联, …...
ChatGPT 的盈利潜力:我使用语言模型赚取第一笔钱的个人旅程
使用 Fiverr、Python ChatGPT 和数据科学赚钱的指南。众所周知,ChatGPT 是 12 月发生的互联网突破性事件,几乎每个人都跳过了使用 AI 赚钱的潮流。在本文中,我将分享我是如何使用 ChatGPT 赚到第一笔钱的。本文包括以下主题:回到基…...
计算机网络——问答2023自用
1、高速缓冲存储器Cache的作用? 这种局部存储器介于CPU与主存储器DRAM之间,一般由高速SRAM构成,容量小但速度快,引入它是为了减小或消除CPU与内存之间的速度差异对系统性能带来的影响 (Cache可以保存CPU刚用过或循环使…...
【1247. 交换字符使得字符串相同】
来源:力扣(LeetCode) 描述: 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候&…...
【一天一门编程语言】Lisp 语言程序设计极简教程
Lisp 语言程序设计极简教程 Lisp 是一种古老的编程语言,它的特点是拥有很高的表示能力和灵活的可扩展性,拥有大量的现成函数库,同时也是一种动态类型的语言,十分适合用来实现大规模软件系统。本文介绍了 Lisp 程序设计的基本知识,帮助读者快速上手。 一、Lisp 简介 Lis…...
全后端交互数据加密
前后端交互 通信请求使用https对请求参数进行签名,防止数据篡改对请求参数以及响应数据进行加解密app中使用ssl pinning防止抓包操作 https协议 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-78n9M2PH-1677252127361)(安全.assets/ht…...
稀疏特征和密集特征
在机器学习中,特征是指对象、人或现象的可测量和可量化的属性或特征。特征可以大致分为两类:稀疏特征和密集特征。 稀疏特征 稀疏特征是那些在数据集中不连续出现的特征,并且大多数值为零。稀疏特征的示例包括文本文档中特定单词的存在或不存…...
Linux网络TCP sticky分析工具
1 TCP粘包 - TCP_NODELAY TCP粘包(sticky)的表现是TCP nagle算法将应用层发送的多个包进行合并后,再发送,很容易出现burst导致bcm89230丢包。由于OABR不支持流控,所以需要使用Linux tc对对应的TCP port进行流量整形。 …...
华为OD机试题,用 Java 解【DNA 序列】问题
最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…...
python的所有知识点+代码+注释,不看就亏死了
目录 简介 特点 搭建开发环境 版本 hello world 注释 文件类型 变量 常量 数据类型 运算符和表达式 控制语句 数组相关 函数相关 字符串相关 文件处理 对象和类,注:不是那个对象!!!!&…...
读懂分布式事务
一、概述 1.1 什么是分布式事务 事务我们都很熟悉,事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成这组操作的各个单元,要么全部成功,要么全部失败。 事务有四大特性: Atomic…...
多目标粒子群算法求解帕累托前沿Pareto,Pareto的原理,测试函数100种求解之21
目录 背影 parte前沿的定义 注意事项 基于多目标粒子群的帕累托前沿求解 主要参数 MATLAB代码 效果图 结果分析 展望 背影 在目标优化过程种,很多时候都两个或者多个目标,并且目标函数不能同时达到最优,鱼与熊掌不可兼得,这个时候可以通过求解帕累托前沿,通过帕累托前沿…...
数组:二分查找、移除数组等经典数组题
二分查找:相关题目链接:https://leetcode.cn/problems/binary-search/题目重现:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值…...
负责任动物纤维标准RAF
【负责任动物纤维标准RAF】RAF-Responsible Animal Fiber, 中文翻译为负责任动物纤维标准。RAF标准包含了三个子标准,即RWS(责任羊毛标准)、RMS(责任马海毛标准)和RAS(责任羊驼毛标准)。RWS&…...
storybook使用info插件报错
报错内容: RangeErrorMaximum call stack size exceededCall StackprettyPrintvendors-node_modules_pmmmwh_react-refresh-webpack-plugin_lib_runtime_RefreshUtils_js-node_mod-4ff2dd.iframe.bundle.js:160:27undefinedvendors-node_modules_pmmmwh_react-refresh-webpack-…...
【每日一题Day129】LC1247交换字符使得字符串相同 | 贪心
交换字符使得字符串相同【LC1247】 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候,你都可以在两个字符串中各选一个字…...
性能优化之node中间件耗时
背景 中间件在node框架中是很基本的套件,使用不当很容易对页面性能造成影响。除了node服务端外,前端做的SSR项目也要特别重视这块 哪些场景会造成中间件耗时特别严重? 罪魁祸首是:await阻塞 举个例子: 1.如何得到 …...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
DAY 45 超大力王爱学Python
来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...
以太网PHY布局布线指南
1. 简介 对于以太网布局布线遵循以下准则很重要,因为这将有助于减少信号发射,最大程度地减少噪声,确保器件作用,最大程度地减少泄漏并提高信号质量。 2. PHY设计准则 2.1 DRC错误检查 首先检查DRC规则是否设置正确,然…...
旋量理论:刚体运动的几何描述与机器人应用
旋量理论为描述刚体在三维空间中的运动提供了强大而优雅的数学框架。与传统的欧拉角或方向余弦矩阵相比,旋量理论通过螺旋运动的概念统一了旋转和平移,在机器人学、计算机图形学和多体动力学领域具有显著优势。这种描述不仅几何直观,而且计算…...
如何使用CodeRider插件在IDEA中生成代码
一、环境搭建与插件安装 1.1 环境准备 名称要求说明操作系统Windows 11JetBrains IDEIntelliJ IDEA 2025.1.1.1 (Community Edition)硬件配置推荐16GB内存50GB磁盘空间 1.2 插件安装流程 步骤1:市场安装 打开IDEA,进入File → Settings → Plugins搜…...
