Linux中的开发工具(yum,vim,gcc/g++,gdb,Makefile,git)
文章目录
- 1. Linux软件包管理器——yum
- yum 语法
- yum 常用命令
- 安装 yum 仓库源
- 2. Linux编辑器——vim
- vim 的五种常用模式
- 模式切换
- vim 基本操作
- 命令模式命令集
- (1)光标命令
- (2)复制粘贴命令
- (3)撤销与重做
- (4)删除
- (5)替换
- (6)其他命令
- 底行模式命令集
- (1)设置与取消行号
- (2)保存并退出
- (3)查找字符
- (4)其他
- 替换模式
- 视图模式
- 注释
- 取消注释
- vim 下的多线程操作
- 切换文件
- vim 配置
- 安装方法
- 3. Linux编译器——gcc/g++
- 一个C/C++程序形成可执行文件的过程
- gcc/g++ 的使用
- 函数库
- 动静态库的优缺点
- gcc/g++ 选项
- Linux调试器——gdb
- 1. 安装gdb
- 2. gdb的使用
- Linux项目自动化构建工具——make/Makefile
- 用法
- 理解
- 伪目标的概念及性质
- 文件的时间属性
- Makefile 推导能力
- Makefile 定义变量
- git
- 安装git
- git 四板斧
- git 其他命令
1. Linux软件包管理器——yum
yum(Yellow dog Updater,Modified)是Linux下非常常用的一种包管理器。主要应用在Fedora,RedHat,Centos等发行版上。
和手机上的软件商店类似,我们可以使用 yum 来下载各种我们想要的软件包。使用 yum 时必须联网。
yum 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum 语法
yum [options] [command] [package ...]
- **options:**可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。
- **command:**要进行的操作。
- **package:**安装的包名。
yum 常用命令
- 列出所有可更新的软件清单命令:yum check-update
- 更新所有软件命令:yum update
- 仅安装指定的软件命令:yum install <package_name>
- 仅更新指定的软件命令:yum update <package_name>
- 列出所有可安裝的软件清单命令:yum list
- 删除软件包命令:yum remove <package_name>
- 查找软件包命令:yum search
- 清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
安装 yum 仓库源
- epel【扩展软件源】
ls /etc/yum.repos.d/
【查看是否有epel-repo】- 系统内如果没有 epel-repo,则需安装yum仓库源
yum install -y epel-release
2. Linux编辑器——vim
vi/vim 都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x window、 mac os、windows。
vim 有十二种模式,但是常用的有五种。
本篇文章只讲解这五种模式。
vim 的五种常用模式
- 正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或者到 last line mode- 插入模式(Insert mode)
只有在 Insert mode 下,才可以做文字输入,按「ESC」键可回到命令行模式- 底行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,「shift + :」即可进入该模式- 替换模式【shift + r = R】
- 视图模式【ctrl + v】
要查看你的所有模式:打开vim,底行模式直接输入
help vim-modes
模式切换
vim 基本操作
进入vim,在系统提示符号输入vim 及文件名称后,就进入vim 全屏幕编辑画面。
【注】进入vim之后,是处于 [正常模式],你要切换到 [插入模式] 才能够输入文字。
[正常模式] 切换至 [插入模式]
输入a
(默认定位到光标的下一个位置)
输入i
(默认定位到光标处)
输入o
(默认定位到光标的下一列开头)[插入模式] 切换至 [正常模式]
目前处于 [插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下Esc
键转到 [正常模式] 再删除文字。当然,也可以直接删除。[正常模式] 切换至 [末行模式]
: (即 shift + ;)
退出 vim 及保存文件,在 [命令模式] 下,按一下
:
冒号键进入 [底行模式]
:w
(保存当前文件)
:wq
(保存并退出 vim)
:w!
(强制保存)
:q!
(不保存强制退出 vim)
:wq!
(强制保存并退出 vim)
命令模式命令集
(1)光标命令
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始处
按[shift+g]:进入文本末端
按「ctrl」+「g」:列出光标所在行的行号。
按「#G」:表示移动光标至文章的第#行行首。
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页
(2)复制粘贴命令
- 「yw」:将光标所在之处到字尾的字符复制到缓冲区中,即复制单词【「nyw」复制 n 个单词到缓冲区】
- 「yy」:复制光标所在行到缓冲区。【可以 nyy 复制 n 行】
- 「p」:将缓冲区内的字符贴到光标所在位置【注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能】【可以「np」粘贴 n 次】
(3)撤销与重做
- 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
- 「ctrl + r」:撤销的恢复【对 ctrl + r 后悔,还按 u】
(4)删除
- 「x」:每按一次,删除光标所在位置的一个字符【可以 nx 删除后面 n 个字母】
- 「X」:大写的X,每按一次,删除光标所在位置的 “前面” 一个字符【可以 nx 删除前面 n 个字母】
- 「dd」:删除光标所在行【和 p 配合,实现剪切】【可以 ndd 剪切 n 行】
(5)替换
- 「r」:替换光标所在处的字符【支持 nr 用一个字符替换多个字符】
- 「R」:进入替换模式,替换光标所到之处的字符,直到按下「ESC」键为止
(6)其他命令
- 「shift + ~ 」:自动切换字母大小写
- 「shift + # 」:自动查询选出和光标所在单词相同的所有单词,按 n 倒着查看下一个
底行模式命令集
(1)设置与取消行号
设置行号在底行模式输入:
set nu
取消行号在底行模式输入:
set nonu
(2)保存并退出
:w
(保存当前文件)
:wq
(保存并退出 vim)
:w!
(强制保存)
:q!
(不保存强制退出 vim)
:wq!
(强制保存并退出 vim)
(3)查找字符
在底行模式输入:
/关键字
此关键字会语法高亮出来,若这个关键字不是你想找的那个,可以按n键跳到下一个关键字位置。
(4)其他
可以在底行模式下执行 Linux 命令语句。
如:
!gcc test.c(加了!,不退出 vim 直接编译)
!./a.out(加了!,不退出 vim 直接运行)
替换模式
命令模式下输入:
shift + r
在此模式下,所有的输入都会被当作替换,替换完成后按 Esc即可。
视图模式
命令模式下输入:
ctrl + v
在左下角显示visual就代表进入了视图模式
注释
在视图模式下用
h j k l
选中要注释的行,选好后用shift +i
进入插入模式,再输入//
按Esc
退出,注释完成。
取消注释
进入视图模式,用
h j k l
选中要取消注释区域的前两列,按d
,即可删除注释。
vim 下的多线程操作
vim 文本编辑器可以同时打开多个文件,在vim的底行模式下输入:
vs 想要打开的文件名
。虽然说有多个文件,但是光标只有一个,光标在哪个文件,现在就在编辑哪个文件。
切换文件
使用指令:
ctrl + ww
vim 配置
在普通的 vim 编辑器下,我们写代码会非常别扭,没有换行,没有高亮,没有缩进······
在此,给大家推荐一个基于 C/C++ 非常好用的 vim 编辑器配置。
链接:vimforcpp
安装方法
3. Linux编译器——gcc/g++
- gcc:C语言编译器,只能编译C语言。
- g++:C++编译器,C/C++都能编译。
除此之外,gcc/g++还有链接的功能,可以直接生成可执行程序。
一个C/C++程序形成可执行文件的过程
分为四步:
(1)预处理:进行宏的替换、头文件展开、注释的删除(空格替换)。
(2)编译:将代码转化为汇编代码(这个阶段主要负责语法分析、符号汇总、 词法分析、 语义分析)。
(3)汇编:将汇编代码转化为二进制机器指令,生成符号表。
(4)链接:汇编完成后会把对应源文件生成目标文件,链接阶段就是把这些目标文件进行链接。
gcc/g++ 的使用
- 格式
gcc [选项] 要编译的文件 [选项] [目标文件]
- 直接形成可执行程序
gcc/g++ test.c -o test.exe
注意:-o选项用于指定生成的可执行文件的名称。这个选项后面需要跟上一个文件名作为参数,不加-o选项的话自动生成,默认生成的可执行程序的名称是a.out。
- 使用C99标准编译
gcc test.c -std=99
- 预处理(进行宏替换,条件编译)
gcc -E test.c -o test.i
注意:经过预处理的文件以.i
为后缀。
- 编译(生成汇编代码)
gcc –S test.i –o test.s
- 汇编(生成二进制机器码)
gcc –c test.s –o test.o
- 链接(生成可执行程序)
gcc test.o –o test.exe
gcc其它选项
-g 生成调试信息。GNU 调试器可利用该信息。
-w 不生成任何警告信息。
运行可执行程序
./test.exe
注:
.
表示在当前目录下寻找可执行程序。
函数库
我们的C程序中,并没有定义
printf
的函数实现,且在预编译中包含的stdio.h
中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实现printf
函数的呢?
于是就引出了函数库的概念,系统把这些函数实现都放在了为libc.so.6
的库文件中去了,在没有特别指定时,gcc 会到
系统默认的搜索路径/usr/lib
下进行查找,也就是链接到libc.so.6
库函数中去,这样就能实现printf
函数了,而这也就是链接的作用。
函数库一般分为静态库和动态库两种。
静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为
.a
。
动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为.so
,如前面所述的libc.so.6
就是动态库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件。
对于库名字的解释:(以libc.so.6
为例)lib为前缀,c为库名字也就是C语言标准库,.so.6后缀与版本号。
- Linux下:
.so
是动态库.a
是静态库- Windows下:
.ddl
是动态库.lib
是静态库
查看一个可执行程序依赖的第三方库:ldd 可执行程序名
动静态库的优缺点
动静态库的区别是:
- 动态库是共享库,通过函数地址来关联程序
- 静态库是通过代码拷贝,从而形成私有库,可以独立运行
优缺点:
动态库:
- 优点:形成的可执行程序体积较小,节省资源
- 缺点:要找函数地址,会稍慢一点,并且有强依赖性
静态库:
- 优点:无视库,可以独立运行
- 缺点: 体积太大,浪费资源
我们编译代码时不指定说明默认使用动态库。
如果你想使用静态库编译代码:
gcc test.c -static
gcc/g++ 选项
- -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
- -S 编译到汇编语言不进行汇编和链接
- -c 编译到目标代码
- -o 文件输出到 文件
- -static 此选项对生成的文件采用静态链接
- -g 生成调试信息。GNU 调试器可利用该信息。
- -shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统有动态库
- -O0 / -O1 / -O2 / -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
- -w 不生成任何警告信息。
- -Wall 生成所有警告信息。
Linux调试器——gdb
- 程序的发布方式有两种,debug模式和release模式
- Linux gcc/g++ 编译产生的二进制程序,默认是release模式
- 要使用gdb调试,必须使用debug模式编译,即在源代码生成二进制程序的时候,加上 -g 选项
1. 安装gdb
sudo yum -y install gdb
2. gdb的使用
进入调试:
gdb 可执行程序
退出调试:
ctrl + d
或quit
调试命令:
- list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
- list/l 函数名:列出某个函数的源代码。
- r或run:运行程序。
- n 或 next:单条执行。
- s或step:进入函数调用
- break(b) 行号:在某一行设置断点
- break 函数名:在某个函数开头设置断点
- info break :查看断点信息。
- finish:执行到当前函数返回,然后挺下来等待命令
- print§:打印表达式的值,通过表达式可以修改变量的值或者调用函数
- p 变量:打印变量值。
- set var:修改变量的值
- continue(或c):从当前位置开始连续而非单步执行程序
- run(或r):从开始连续而非单步执行程序
- delete breakpoints:删除所有断点
- delete breakpoints n:删除序号为n的断点
- disable breakpoints:禁用断点
- enable breakpoints:启用断点
- info(或i) breakpoints:参看当前设置了哪些断点
- display 变量名:跟踪查看一个变量,每次停下来都显示它的值
- undisplay:取消对先前设置的那些变量的跟踪
- until X行号:跳至X行
- breaktrace(或bt):查看各级函数调用及参数
- info(i) locals:查看当前栈帧局部变量的值
Linux项目自动化构建工具——make/Makefile
- 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。
- makefile带来的好处就是——”自动化编译“,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
- make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
- make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。
用法
makefile是一个具有特定格式的文本文件。
首先在当前目录下创建一个
Makefile
,再用 vim 编辑。假设我们已经写好了C程序
test.c
,我们想通过Makefile文件来调用编译、删除等指令,我们可以写以下代码:mybin:test.cgcc test.c -o mybin .PHONY:clean clean:rm -rf mybin
格式注意:第二行是以tab键开头,不能以空格开头。
保存退出 vim,接下来,我们只需要输入
make
就会执行gcc test.c -o mybin
指令编译形成可执行程序mybin
,使用make clean
就会执行rm -rf mybin
指令删除mybin
。
理解
在上面用法中输入
make
指令,其实等同于输入了make mybin
。这是因为单独输入make
,会从上到下扫描Makefile
文件,执行其第一个指令。要想执行后面的指令,则需要像上面的make clean
一样,输入make 操作名
。
伪目标的概念及性质
在上面
Makefile
文件中,我们写了这样的代码:.PHONY:clean
.PHONY
是将clean
指令修饰成了伪目标。
clean
被修饰后,只要我们输入一次make clean
,就会执行一次rm -rf mybin
。而没有被修饰成伪目标的mybin
,执行完第一次,执行第二次时由于已经是最新编译结果了,则不会再执行。
我们得出结论:被修饰成伪目标后,此文件总是被执行
文件的时间属性
操作系统是如何知道我们的 test.c 是否被修改,从而驳回我们的
make
请求的呢?答案一定是文件的时间属性!!!我们知道,先有源文件后才有可执行程序,所以源文件的修改时间一定小于可执行文件的修改时间。在第二次
make
时,操作系统发现源文件的修改时间小于可执行程序的修改时间,所以驳回了make
请求。同理,修改源文件后,源文件的修改时间大于可执行文件的修改时间,所以操作系统会重新执行make
。
查看文件属性
使用指令:
stat 文件名
注意:
文件 = 内容 + 属性
修改文件的内容可能会影响文件的属性,修改文件的属性不会影响文件的内容。
Makefile 推导能力
举例
mybin:test.ogcc csdn.o -o mybin
test.o:test.sgcc -c csdn.s -o test.o
test.s:test.igcc -S code.i -o test.s
test.i:test.cgcc -E csdn.c -o test.i
首先,
mybin
依赖的是test.o
文件但是系统中此时没有test.o
文件,就会执行下一条指令,但是test.o
文件依赖的是test.s
文件,系统中此时没有test.s
文件又会跳到下一条指令,以此往复直到找到系统中存在的test.c
文件,再倒推回去。
Makefile 定义变量
操作方法
target=mybin cc=gcc src=test.c $(target):$(src)$(cc) $(src) -o $(target) .PHONY:clean clean:rm -rf $(target)
- 可以用
$^
代表依赖关系的左边- 可以用
$@
代表依赖关系的右边如:
mybin:test.cgcc $@ -o $^ .PHONY:clean clean:rm -rf mybin
如果你不想一条指令被打印在显示器,可以在指令前加上@符号。
git
安装git
yum install git
git 四板斧
git clone + 仓库链接
【克隆远端仓库到本地】git add .
【增加当前目录下所有新文件至本地仓库】git commit -m "日志"
【注:提交时必须 -m 带日志】git push
【推送到远端仓库】
git 其他命令
git log
【查看提交日志、提交记录】git pull
【同步远端和本地仓库】git status
【查看本地仓库状态】
相关文章:

Linux中的开发工具(yum,vim,gcc/g++,gdb,Makefile,git)
文章目录 1. Linux软件包管理器——yumyum 语法yum 常用命令安装 yum 仓库源 2. Linux编辑器——vimvim 的五种常用模式模式切换vim 基本操作命令模式命令集(1)光标命令(2)复制粘贴命令(3)撤销与重做&#…...

什么是自动证书管理环境(ACME)
组织的网站需要 24x7 全天候可用,以建立信任并提供信息,如果网站因证书过期而停机,那么很难恢复失去的客户信任、收入和品牌声誉,手动管理证书基础结构会使组织面临中断、中间人 (MITM) 攻击等的严重风险。…...

探索光模块的MSA多源协议
在当今高度互联的世界中,光模块作为网络设备的重要部分,其性能和质量直接影响到整个网络系统的运行。其中光模块由于其灵活性和高效性,已经成为数据中心和云计算领域的主要选择。本文易天光通信将深入探讨光模块的MSA协议,揭示其重…...

《算法通关村——双指针妙用》
《算法通关村——双指针妙用》 删除元素 描述 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。要求:不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组…...

postgresql|数据库迁移|ora2pg工具的web界面介绍
前言: ora2pg是一个比较强大的数据库迁移工具,那根据名字来说,也可以看出来,这个工具主要是用来配置去O化,将在运行的oracle数据库迁移到postgresql数据库内的 当然了,我们使用此工具主要还是用命令行&am…...
【zookeeper】zk的ZAB原子广播协议
zk的ZAB原子广播协议来源于paxos算法[1]。paxos算法是一种基于消息传递的消息一致性算法,其特点是在可靠的通信环境下,可以保证消息的最终一致性。paxos要求每台server都持有自己的一个事务id的记录,这个事务id会每通过一个提议就自增加一&am…...

【问题思考总结】为什么分布函数右连续要左闭右开
问题 这个问题困扰我很久了,虽然感觉没什么用,但是还是想着搞清楚一点。 思考 Q1:什么是右连续? A1:F(x0)F(x0),即函数在一点的右极限等于该点的函数值。 …...
解决 edge 浏览器开发者工具出不来的问题
文章目录 猜测原因问题现象尝试过程最终解决办法C盘爆满解决经过(拆东墙补西墙) 猜测原因 windows 系统更新导致电脑管家C盘迁移导致(我C盘爆满了,每天提醒看着膈应,想着清理一下) 问题现象 按F12 和 右键…...

嵌入式算法——傅里叶变换算法
文章引注 https://mp.weixin.qq.com/s/5VIpNWci9YLY3m4gcYd6-w 摘要 傅里叶变换的核心在于,“任何连续周期信号可以由一组适当的正弦曲线组合而成”,在这个基础上对信号的中特定频率的正弦波进行分解或者重组,基于频率方面分析波形。 1、傅…...

让数据“动”起来:Python动态图表制作详解
在读技术博客的过程中,我们会发现那些能够把知识、成果讲透的博主很多都会做动态图表。他们的图是怎么做的?难度大吗?这篇文章就介绍了 Python 中一种简单的动态图表制作方法。 数据暴增的年代,数据科学家、分析师在被要求对数据有…...
Python获取网络适配器接口的类型、状态IPv4和IPv6地址
参考CSDN博主「Kwoky」的https://blog.csdn.net/Kwoky/article/details/84858997的简介: psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来…...

无敌了!Redis进军磁盘存储!
在高手林立的数据库江湖,Redis就像一个刺客,或许不如经典数据库存在感强,但因其高性能的特质而在群英榜中独占一席。 作为缓存的首选内存数据库,Redis最近放出了一个大新闻——将磁盘作为分层存储体系结构的一部分,以…...

中文编程开发语言工具编程实际案例:台球棋牌混合计时计费软件使用的编程构件说明
中文编程开发语言工具编程实际案例:台球棋牌混合计时计费软件使用的编程构件说明 上图说明:该软件可以用于桌球和棋牌同时计时计费,在没有开台的时候,图片是处于等待状态,这使用编程工具中的固定图像构件,在…...

在线客服系统源码 客服系统源码
在线客服系统源码 客服系统源码 框架:Thinkphp5workerman,环境:nginxphp7.3mysql5.6 多商户客服、不限坐席、独立系统--数据存储自己服务器上,支持开启SSL、支持离线对话。 新款在线客服系统全开源无加密:多商户、国…...

抽象轻松java——简易图书馆前置
用Maven写一个垃圾的项目,第一步打开IDEA,点击创建,创建一个Maven <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</versi…...

图书推荐管理系统Python+Django网页界面+协同过滤推荐算法
一、介绍 图书管理与推荐系统。使用Python作为主要开发语言。前端采用HTML、CSS、BootStrap等技术搭建界面结构,后端采用Django作为逻辑处理,通过Ajax等技术实现数据交互通信。在图书推荐方面使用经典的协同过滤算法作为推荐算法模块。主要功能有&#…...
IT行业就业方向:探索未来的职业机会
引言: 随着信息技术的飞速发展,IT行业已经成为了当前最具活力和发展潜力的行业之一。在这个充满机遇和挑战的时代,选择一个好的就业方向对于个人的职业发展至关重要。本文将探讨IT行业中哪些方向具有更好的就业前景,并提供一些建…...

docker-compose安装ES7.14和Kibana7.14(有账号密码)
一、docker-compose安装ES7.14.0和kibana7.14.0 1、下载镜像 1.1、ES镜像 docker pull elasticsearch:7.14.0 1.2、kibana镜像 docker pull kibana:7.14.0 2、docker-compose安装ES和kibana 2.1、创建配置文件目录和文件 #创建目录 mkdir -p /home/es-kibana/config mkdir…...
k8s-----14、controller-Job和Cronjob
Job和Cronjob 1、Job(一次性任务)2、CronJob(定时任务) 1、Job(一次性任务) [rootmaster controlleryaml]# cat job.yaml apiVersion: batch/v1 kind: Job metadata:name: pi spec:template:spec:contain…...

蓝桥杯每日一题2032.10.24
蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 由于布局为两个字节为一行,那我们输入两个数就为一行,但是这两个数全部得用二进制进行表示使用bitset bitset:将一个数转化为二进制 bitset<8>:将一个数转化为8位…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...

rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...