KB体育sports

kb体育官方网站Linux环境基础|蜜芽tv跳转接口点击进入网站100|开发工具
KB体育登录App官方◈★✿✿,kb体育·(中国)官方网站◈★✿✿。kb体育官方入口◈★✿✿!体育明星◈★✿✿,流量引流◈★✿✿。KB体育下载地址app◈★✿✿,kB体育平台手机登录◈★✿✿。KB·体育(sports)官方网站◈★✿✿,Linux环境基础开发工具的使用(yum◈★✿✿、vim◈★✿✿、gcc◈★✿✿、g++◈★✿✿、gdb◈★✿✿、make/Makefile)
本文内容由阿里云实名注册用户自发贡献◈★✿✿,版权归原作者所有◈★✿✿,阿里云开发者社区不拥有其著作权◈★✿✿,亦不承担相应法律责任◈★✿✿。具体规则请查看《阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》◈★✿✿。如果您发现本社区中有涉嫌抄袭的内容◈★✿✿,填写侵权投诉表单进行举报◈★✿✿,一经查实◈★✿✿,本社区将立刻删除涉嫌侵权内容◈★✿✿。
本文介绍了yum 包管理工具◈★✿✿、Vim 编辑器◈★✿✿、gcc/g++ 编译器◈★✿✿、gdb 调试器◈★✿✿、编译原理及 Makefile 的使用◈★✿✿,同时还配备了如何使用◈★✿✿,以及图解◈★✿✿。旨在帮助读者更好地理解和应用这些工具与技术◈★✿✿。
在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
1)我们看到在GitHub上◈★✿✿,看到一个非常不错的开源项目软件◈★✿✿,你很想尝试一下◈★✿✿,你也可以直接下载别人打包好的安装包◈★✿✿。也可以直接把别人的代码拿过来◈★✿✿,然后放到自己的编译器下◈★✿✿,自己进行编译使用◈★✿✿,得到可执行程序◈★✿✿。这个过程就是方法1◈★✿✿;
2)在Windows中◈★✿✿,通常通过下载.exe(可执行程序)或.msi(Windows安装包)文件进行安装◈★✿✿。这些安装包通常自带图形化的安装向导◈★✿✿,简化了安装过程◈★✿✿,用户只需要运行安装程序即可◈★✿✿。然而◈★✿✿,类似于RPM包的缺点◈★✿✿,Windows安装包也有可能在安装时没有自动处理所有的依赖关系◈★✿✿,尤其是一些比较老旧或者需要额外配置的程序◈★✿✿。
举个例子◈★✿✿,假如你下载了一个软件的安装包(.exe文件)kb体育官方网站◈★✿✿,它可能会提示缺少某些依赖(如特定的C++运行库◈★✿✿、Framework等)◈★✿✿,你就需要手动安装这些依赖项◈★✿✿。
yum(Yellowdog Updater, Modified)是Linux系统中的一个包管理工具◈★✿✿,也是的前端软件包管理器◈★✿✿,主要用于自动从软件仓库下载RPM包并且安装和更新软件包◈★✿✿,并自动解决软件包的依赖关系◈★✿✿。它通常用于基于RPM的Linux发行版◈★✿✿,如CentOS◈★✿✿、RHEL和Fedora◈★✿✿。
因为yum是从服务器上下载RPM包◈★✿✿,所以在下载时必须联网◈★✿✿,可以通过ping指令判断当前云服务器是否联网◈★✿✿。
同样在Windows下◈★✿✿,也可以使用这样的指令查看自己想打游戏前◈★✿✿,网络的延迟是否正常(看后面的time=...ms)◈★✿✿。
1)第一列为软件包名称◈★✿✿,其内容包括◈★✿✿:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构◈★✿✿。
2)x86_64后缀表示64位系统的安装包◈★✿✿,i686后缀表示32位系统安装包◈★✿✿,选择包时要和系统匹配(是要与你的云服务器匹配◈★✿✿,不是与你的主机电脑匹配◈★✿✿!kb体育官方网站◈★✿✿!◈★✿✿!)◈★✿✿。
lrzsz可以将Windows当中的文件上传到Linux当中◈★✿✿,也可以将Linux当中的文件下载到Windows当中◈★✿✿,实现云服务器和本地机器之间进行信息互传◈★✿✿。
他上面的那一句话意思为◈★✿✿: “元数据超过两周没有更新◈★✿✿。要安装 yum-cron 吗?还是运行◈★✿✿:yum makecache fast?”
yum会自动找到都有哪些软件包需要下载◈★✿✿,这时候我们需要做的就是敲“y”确认安装◈★✿✿,等待一些时间后◈★✿✿,就会出现“complete”字样时◈★✿✿,这时就说明安装完成◈★✿✿。
1) yum命令需要sudo权限◈★✿✿,因为安装◈★✿✿、更新和删除软件包需要修改系统级别的文件和目录◈★✿✿,这些操作需要管理员权限◈★✿✿。使用sudo可以授权普通用户临时获得管理员权限◈★✿✿,确保这些系统管理操作的安全性和合规性◈★✿✿。
2)yum安装软件只能一个装完了再装另一个◈★✿✿,正在使用yum安装一个软件的过程中◈★✿✿,如果再尝试用yum安装另外一个软件◈★✿✿,yum会报错◈★✿✿。
当我们打完这个指令时◈★✿✿,就会跳出这个windows窗口◈★✿✿,然后我们选择我们要互传的文件◈★✿✿,就完成了从本机到云服务器的操作了◈★✿✿。
当我们按下这个指令的时候◈★✿✿,同样会跳出一个这样的一个windows的窗口◈★✿✿,然后选择想要传到的路径即可◈★✿✿。
yum就会自动卸载该软件◈★✿✿,同样还会卸载其各种的依赖关系◈★✿✿,这时我们只需要敲“y”确认卸载◈★✿✿,当出现“complete”字样时◈★✿✿,说明卸载完成◈★✿✿。
在底行模式下◈★✿✿,我们可以将文件保存或退出◈★✿✿,也可以进行查找字符串等操作◈★✿✿。在底行模式下我们还可以直接输入vim help-modes查看当前vim的所有模式◈★✿✿。
进入vim后默认为命令模式(普通模式)◈★✿✿,要输入文字需切换到插入模式蜜芽tv跳转接口点击进入网站100◈★✿✿,就可以想在vs下敲代码了◈★✿✿。
在使用底行模式之前◈★✿✿,记住先按「Esc」键确定你已经处于命令模式◈★✿✿,再按「:」即可进入底行模式◈★✿✿。
1)「!+指令」◈★✿✿:在不退出vim的情况下◈★✿✿,可以在指令前面加上「!」就可以执行Linux的指令◈★✿✿,例如查看目录◈★✿✿、编译当前代码等◈★✿✿。
选择多行◈★✿✿:按下Ctrl + v进入可视模式(Visual Block Mode)◈★✿✿,然后使用H, J, K, L键(或箭头键)选择你要注释的多行◈★✿✿。
批量注释◈★✿✿:在选中的每一行前面插入注释符号(例如//◈★✿✿,为c语言与c++的注释符号)◈★✿✿。此时你会看到光标在每一行的开始位置◈★✿✿。
退出插入模式◈★✿✿:输入完注释符号后◈★✿✿,按下Esc键退出插入模式◈★✿✿,所有选中的行前都将自动添加注释符号◈★✿✿。
1)在目录/etc/下面◈★✿✿,有个名为vimrc的文件◈★✿✿,这是系统中公共的配置文件◈★✿✿,对所有用户都有效◈★✿✿。
2)在每个用户的主目录/home/xxx下◈★✿✿,都可以自己建立私有的配置文件◈★✿✿,命名为“.vimrc”◈★✿✿,这是该用户私有的配置文件◈★✿✿,仅对该用户有效◈★✿✿。
例如kb体育官方网站◈★✿✿,普通用户在自己的主目录下建立了“.vimrc”文件后◈★✿✿,在文件当中输入set nu指令并保存◈★✿✿,下一次打开vim的时候就会自动显示行号◈★✿✿。
vim的配置比较复杂蜜芽tv跳转接口点击进入网站100◈★✿✿,某些vim配置还需要使用插件◈★✿✿,建议不要自己一个个去配置◈★✿✿。比较简单的方法是直接执行以下指令(想在哪个用户下让vim配置生效◈★✿✿,就在哪个用户下执行该指令◈★✿✿,不推荐直接在root下执行)◈★✿✿:
配置完成后◈★✿✿,像什么自动补全◈★✿✿、行号显示以及自动缩进什么的就都有了◈★✿✿,就可以像再vs下敲代码了◈★✿✿,如果跟自己以前使用的习惯不一样◈★✿✿,也可以自己修改◈★✿✿。
gcc和g++分别是GNU(GNU是一个自由软件的项目◈★✿✿,其旨在创建一个完全自由的操作系统)的C和C++的编译器◈★✿✿,gcc和g++在执行编译的时候一般有以下四个步骤◈★✿✿:
1)-E 只进行预处理◈★✿✿,这个不生成文件◈★✿✿,你需要把他重定向到一个输出文件里面(否则将把预处理后的结果打印到屏幕上)◈★✿✿。
10)-O0/-O1/-O2/-O3 编译器优化选项的四个级别◈★✿✿,-O0表示没有优化◈★✿✿,-O1为缺省值◈★✿✿,-O3优化级别最高◈★✿✿。
这里的 -E 就是告诉gcc/g++◈★✿✿,从现在开始进行程序的编译◈★✿✿,将预处理的工作做完就停止下来◈★✿✿,不要往后走了◈★✿✿!
在编译过程中◈★✿✿,GCC/G++ 首先会检查源代码的规范性◈★✿✿,确认是否存在语法错误等问题◈★✿✿,以确定代码的正确性◈★✿✿。在没有错误的情况下◈★✿✿,编译器将源代码翻译成汇编语言◈★✿✿。
用户可以使用 -S 选项来查看编译后的汇编代码◈★✿✿。该选项会停止在编译阶段◈★✿✿,只生成汇编文件◈★✿✿,而不继续进行汇编或链接操作◈★✿✿。编译器会生成一个以 .s 为后缀的文件◈★✿✿,表示代码已经被翻译为汇编语言◈★✿✿。
另外◈★✿✿,-o 选项用来指定输出文件的名称◈★✿✿。如果不指定该选项◈★✿✿,默认的输出文件名将为 xxx.s◈★✿✿,其中 xxx 是源文件名(去掉扩展名)◈★✿✿。
gcc test.o -o test// 这里的test就是可执行程序名◈★✿✿,自己可以根据自己喜好自己设定
gcc/g++不带-E◈★✿✿、-S◈★✿✿、-c选项时◈★✿✿,就默认生成预处理◈★✿✿、编译◈★✿✿、汇编◈★✿✿、链接全过程后的文件◈★✿✿。
在规定上一个文件是由你书写头文件◈★✿✿,对应的头文件提供方法的伤命◈★✿✿,库文件提供方法的实现+你的代码◈★✿✿,这就形成了一个你的文件◈★✿✿。
静态库是指编译链接时◈★✿✿,把库文件的代码全部加入到可执行文件当中◈★✿✿,因此生成的文件比较大◈★✿✿,但在运行时也就不再需要库文件了◈★✿✿,静态库一般以.a为后缀◈★✿✿。
动态库与之相反◈★✿✿,在编译链接时并没有把库文件的代码加入到可执行文件当中◈★✿✿,而是在程序运行时由链接文件加载库◈★✿✿,这样可以节省系统的开销◈★✿✿,动态库一般以.so为后缀◈★✿✿。
动态库因为是共享库蜜芽tv跳转接口点击进入网站100◈★✿✿,有效的节省了资源(磁盘空间◈★✿✿,内存空间◈★✿✿,网络空间等)【优点】动态库一旦缺失◈★✿✿,导致各个程序都无法运行【缺点】
虽然gcc和g++默认采用的是动态链接◈★✿✿,但如果我们需要使用静态链接◈★✿✿,带上-static选项即可◈★✿✿。
还拿上面的例子解释◈★✿✿,我们进行静态链接◈★✿✿,其实就是去电脑店配好电脑后◈★✿✿,安装到宿舍里面◈★✿✿,但是如果我们没有在宿舍装好◈★✿✿,那肯定是不能上网的◈★✿✿,这也很好理解◈★✿✿。通俗的来讲就是◈★✿✿,你没电脑怎么上网啊kb体育官方网站◈★✿✿。
你可以检查是否已经安装了静态版本的 C 库◈★✿✿。静态库文件通常位于 /usr/lib/ 或 /usr/lib64/ 目录下◈★✿✿。如果没有kb体育官方网站◈★✿✿,你可以尝试安装 glibc-static 包◈★✿✿。
然后对应按y◈★✿✿,然后看到Complete!字样时表示安装完成◈★✿✿。然后再执行上面的操作就可以静态链接了◈★✿✿。
这段指令的本质就是改变了优先级◈★✿✿,使得先使用静态库◈★✿✿,在混合的库的情况下◈★✿✿,所有的链接将全变为静态链接◈★✿✿!◈★✿✿!kb体育官方网站◈★✿✿!
我们可以查看源代码相同◈★✿✿,但链接方式不同而生成的两个可执行程序test和test_s的大小 ◈★✿✿,相差的还是蛮多的◈★✿✿。
这也证明了◈★✿✿,如果直接去网吧上网确实比宿舍上网节省空间◈★✿✿!动态链接比较节省空间◈★✿✿,而静态链接比较浪费空间◈★✿✿。
无动态态库◈★✿✿,仅有静态库◈★✿✿,而且gcc可以找到静态库◈★✿✿,gcc 会默认调用静态库◈★✿✿。其余情况下◈★✿✿,默认调用动态库◈★✿✿。遵循规则就是◈★✿✿:有动用动◈★✿✿,无动用静kb体育官方网站◈★✿✿,全无报错
1◈★✿✿、debug版本◈★✿✿:程序本身会被加入更多的调试信息◈★✿✿,以便于进行调试◈★✿✿,这个版本是程序员所用的版本◈★✿✿,文件大一点◈★✿✿。
在Linux当中gcc/g++默认生成的可执行程序是release版本的◈★✿✿,是不可被调试的◈★✿✿。如果想生成debug版本◈★✿✿,就需要在使用gcc/g++生成可执行程序时加上-g选项◈★✿✿。
1)「list/l n」◈★✿✿:显示从第n行开始的源代码◈★✿✿,每次显示10行◈★✿✿,若n未给出则默认从上次的位置往下显示.◈★✿✿。
一个工程的源文件不计其数◈★✿✿,按照其类型◈★✿✿、功能◈★✿✿、模块分别放在若干个目录当中◈★✿✿,Makefile定义了一系列的规则来指定◈★✿✿:哪些文件需要先编译◈★✿✿,哪些文件需要后编译◈★✿✿,甚至于进行更复杂的功能操作◈★✿✿。
Makefile带来的好处就是“自动化编译”◈★✿✿,一旦写好◈★✿✿,只需一个make命令◈★✿✿,整个工程完全自动编译◈★✿✿,极大的提高了软件开发的效率◈★✿✿。
mak是一个命令工具◈★✿✿,是一个解释Makefile当中指令的命令工具◈★✿✿,一般来说◈★✿✿,大多数的IDE都有这个命令◈★✿✿,例如◈★✿✿:Delphi的make◈★✿✿,Visual
make是一条命令◈★✿✿,Makefile(也可以使用makefile效果一样)是一个文件◈★✿✿,两个搭配使用◈★✿✿,完成项目自动化构建◈★✿✿。
在使用make/Makefile前我们首先应该理解各个文件之间的依赖关系以及它们之间的依赖方法◈★✿✿。
依赖关系◈★✿✿:在我们日常生活中◈★✿✿,你与你的父亲就是存在依赖关系◈★✿✿。比方说◈★✿✿,你作为一个大学生◈★✿✿,每个月初◈★✿✿,都会给你的爸爸打电话◈★✿✿,要生活费蜜芽tv跳转接口点击进入网站100◈★✿✿。你打过去电话◈★✿✿,叫一声爸◈★✿✿,你把就立马反应过来是你◈★✿✿,但是你的舍友给你爸打电话叫一声爸◈★✿✿,你爸还会以为骚扰电话◈★✿✿,会直接挂断◈★✿✿。如果哪一个月◈★✿✿,你爸跟你说◈★✿✿,这个月的家里面有些情况◈★✿✿,没有太多钱了◈★✿✿,就少给你点吧◈★✿✿,按以前的一半吧◈★✿✿。这个过程◈★✿✿,你就依赖于你爸◈★✿✿,有依赖关系◈★✿✿。而你的同学不可以依赖于你爸◈★✿✿,就没有依赖关系◈★✿✿。那一个月家里面有情况◈★✿✿,影响了你爸◈★✿✿,从而导致影响了你◈★✿✿,这就是依赖关系所产生的影响◈★✿✿。
那么把这个概念转化为Linux下就为◈★✿✿:文件A的变更会影响到文件B◈★✿✿,那么就称文件B依赖于文件A◈★✿✿。
拿前面的编译的内容举例◈★✿✿,我们生成test.i文件就是依赖于test.c文件所生成的蜜芽tv跳转接口点击进入网站100◈★✿✿。如果把test.c修改了◈★✿✿,那么test.i也会产生影响◈★✿✿。
依赖方法◈★✿✿: 如果文件B依赖于文件A◈★✿✿,那么通过文件A得到文件B的方法◈★✿✿,就是文件B依赖于文件A的依赖方法◈★✿✿。也就是上面举例的◈★✿✿,你可以通过打电话◈★✿✿,找到你爸◈★✿✿。
这里的main.h可加可不加(尽量不要加)◈★✿✿,因为编译器通过源文件的内容可以知道所需的头文件名字◈★✿✿,而通过头文件的包含方式(“尖括号”包含和“双引号”包含)◈★✿✿,编译器可以知道应该从何处去寻找所需头文件◈★✿✿。
通常在多文件编译时◈★✿✿,不会直接从源文件生成最终的可执行文件◈★✿✿,而是会将每个源文件分别编译成目标文件(*.o 文件)◈★✿✿,然后再通过链接(gcc)将这些目标文件链接成最终的可执行程序◈★✿✿。
若是直接使用源文件生成可执行程序◈★✿✿,那么其中一个源文件进行了修改◈★✿✿,再生成可执行程序的时候就需要将所以的源文件重新进行编译链接◈★✿✿。
而若是先用每个源文件各自生成自己的二进制文件◈★✿✿,那么其中一个源文件进行了修改◈★✿✿,就只需重新编译生成该源文件的二进制文件◈★✿✿,然后再将这些二进制文件通过链接生成可执行程序即可◈★✿✿。
随着源文件数量的增加◈★✿✿,每次重新生成可执行程序时所需的 gcc 指令长度和数量也会随之增加◈★✿✿。此时◈★✿✿,使用 make 工具和 Makefile 文件能够显著减少我们的工作量◈★✿✿。
Makefile文件最简单的编写格式是◈★✿✿,先写出文件的依赖关系◈★✿✿,然后写出这些文件之间的依赖方法◈★✿✿,依次写下去◈★✿✿。但也要记清楚他的独特书写方式◈★✿✿。
编写完毕Makefile文件后保存退出◈★✿✿,然后在命令行当中执行make指令便可以生成可执行程序◈★✿✿,以及该过程产生的中间产物◈★✿✿。
如果找到◈★✿✿,它会找文件当中的第一个目标文件◈★✿✿,在上面的例子中◈★✿✿,它会找到test这个文件◈★✿✿,并把这个文件作为最终的目标文件◈★✿✿。
如果test文件不存在◈★✿✿,或是test所依赖的后面的test.o文件和main.o文件的文件修改时间比mytest文件新◈★✿✿,那么它就会执行后面的依赖方法来生成mytest文件◈★✿✿。
如果test所依赖的test.o文件不存在◈★✿✿,那么make会在Makefile文件中寻找目标为test.o文件的依赖关系◈★✿✿,如果找到则再根据其依赖方法生成test.o文件(类似于堆栈的过程)◈★✿✿。
在寻找的过程中◈★✿✿,如果出现错误◈★✿✿,例如最后被依赖的文件找不到◈★✿✿,那么make就会直接退出◈★✿✿,并报错◈★✿✿。
在我们每次重新生成可执行程序前◈★✿✿,都应该将上一次生成可执行程序时生成的一系列文件进行清理◈★✿✿,但是如果我们每次都手动执行一系列指令进行清理工作的话◈★✿✿,未免有些麻烦◈★✿✿,因为每次清理时执行的都是相同的清理指令◈★✿✿,这时我们可以将项目清理的指令也加入到Makefile文件当中◈★✿✿。
像clean这种◈★✿✿,没有被第一个目标文件直接或间接关联◈★✿✿,那么它后面所定义的命令将不会被自动执行◈★✿✿,但我们可以显示要make执行◈★✿✿。
一般将这种clean的目标文件设置为伪目标◈★✿✿,用.PHONY修饰◈★✿✿,伪目标的特性是◈★✿✿:总是被执行◈★✿✿。
在 Makefile 中◈★✿✿,第一个目标 是默认目标◈★✿✿。当你执行 make 命令时◈★✿✿,默认会尝试构建第一个目标◈★✿✿。如果你把 clean 作为第一个目标◈★✿✿,make 就会自动执行 clean 的规则◈★✿✿,而不需要明确指定 make clean◈★✿✿。
当你运行 make 时◈★✿✿,它会自动执行 clean 规则◈★✿✿,删除所有的 .o 文件和 test 可执行文件◈★✿✿。
Makefile里主要包含了五个东西◈★✿✿:显式规则◈★✿✿、隐晦规则◈★✿✿、变量定义◈★✿✿、文件指示和注释◈★✿✿, B选项是正确的
make有自动推导的功能◈★✿✿,所以隐晦的规则可以让我们比较粗糙地简略地书写makefile◈★✿✿,比如源文件与目标文件之间的时间关系判断之类
在makefile中可以定义变量◈★✿✿,当makefile被执行时◈★✿✿,其中的变量都会被扩展到相应的引用位置上◈★✿✿,通常使用 $(var) 表示引用变量
文件指示kb体育官方网站◈★✿✿。包含在一个makefile中引用另一个makefile◈★✿✿,类似C语言中的include◈★✿✿; 根据这一项可以推导D选项是错误的◈★✿✿。
图数据库(Graph Database◈★✿✿,简称GDB)是一种支持Property Graph图模型◈★✿✿、用于处理高度连接数据查询与存储的实时◈★✿✿、可靠的在线数据库服务◈★✿✿。它支持Apache TinkerPop Gremlin查询语言◈★✿✿,可以帮您快速构建基于高度连接的数据集的应用程序◈★✿✿。GDB非常适合社交网络◈★✿✿、欺诈检测◈★✿✿、推荐引擎◈★✿✿、实时图谱◈★✿✿、网络/IT运营这类高度互连数据集的场景◈★✿✿。 GDB由阿里云自主研发◈★✿✿,具备如下优势◈★✿✿: 标准图查询语言◈★✿✿:支持属性图◈★✿✿,高度兼容Gremlin图查询语言◈★✿✿。 高度优化的自研引擎◈★✿✿:高度优化的自研图计算层和存储层◈★✿✿,云盘多副本保障数据超高可靠◈★✿✿,支持ACID事务◈★✿✿。 服务高可用◈★✿✿:支持高可用实例◈★✿✿,节点故障迅速转移◈★✿✿,保障业务连续性◈★✿✿。 易运维◈★✿✿:提供备份恢复◈★✿✿、自动升级◈★✿✿、监控告警◈★✿✿、故障切换等丰富的运维功能◈★✿✿,大幅降低运维成本◈★✿✿。 产品主页◈★✿✿:
通过理解和合理使用这些命令◈★✿✿,可以更高效地进行项目构建和管理◈★✿✿,特别是在复杂的 Android 开发环境中◈★✿✿。
这篇文章介绍了Vim编辑器的基本使用◈★✿✿、常用命令和模式◈★✿✿,以及Linux系统中用户和组的管理方法◈★✿✿,包括用户和组相关文件如/etc/passwd◈★✿✿、/etc/shadow和/etc/group的说明◈★✿✿。
本文介绍了如何对vim进行基础配置◈★✿✿,如行号显示◈★✿✿、缩进设置等◈★✿✿,并推荐了一种自动化部署方案◈★✿✿,通过链接下载预配置的vim环境脚本◈★✿✿,简化了配置过程◈★✿✿,提升开发效率◈★✿✿。
在Vim中◈★✿✿,快速批量注释和取消Shell脚本的多行可以使用替换命令◈★✿✿。例如◈★✿✿,用`:1,10s/^/#/g`在第1到10行行首加`#`注释◈★✿✿,`:1,10s/^#//g`则移除这些行的行首`#`◈★✿✿。定义快捷键如`:map^P l#Esc`(需用Ctrl+V+P生成^P)能一键在当前行添加`#`注释◈★✿✿。要取消注释◈★✿✿,可以定义`:map^B 0x`来删除行首字符◈★✿✿。通过`.vimrc`保存快捷键设置◈★✿✿,可使它们在每次启动Vim时生效◈★✿✿。
Red Hat Enterprise Linux 9.6 (x86_64, aarch64) - 红帽企业 Linux (RHEL)
Red Hat Enterprise Linux 10 正式版发布 - 红帽企业 Linux (RHEL)
Rocky Linux 9.6 正式版发布 - RHEL 100% 1:1 兼容免费发行版
Rocky Linux 10 x86_64 OVF (sysin) - VMware 虚拟机模板