【Linux】环境基础开发工具的使用(一)

前言:在此之前我们学习了一些Linux的权限,今天我们进一步学习Linux下开发工具的使用。

💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:Linux的深度刨析 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
在这里插入图片描述


目录标题

  • 基础开发工具的使用
    • 什么是软件包
    • yum的使用
    • 关于rzsz
      • 一些好玩的小指令
    • Linux编辑器-vim使用
      • vim的基本操作
        • vim命令模式命令集
        • vim底行模式命令集
          • 如何左右分屏
          • 如何快速切换屏幕
        • 批量注释和批量去注释
        • 简单vim配置


基础开发工具的使用

什么是软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。
  • 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系,yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上。

yum的使用

yum的概念:Linux系统中,yum是一种包管理器,用于安装、升级和管理软件包。它能够自动解析软件包的依赖关系,并从软件源中下载对应的软件包进行安装。
关于yum的更多用法大家可以通过man指令去查看:man yum
下面是yum的一些常用命令和使用示例:

  1. 安装软件包
[wei@centos7 ~]$ yum install <package_name>
  1. 升级软件包
[wei@centos7 ~]$ yum update <package_name>
  1. 删除软件包:
[wei@centos7 ~]$ yum remove <package_name>
  1. 搜索软件包:
[wei@centos7 ~]$ yum search <keyword>
  1. 列出可用软件包:
[wei@centos7 ~]$ yum list
  1. 列出已安装的软件包
[wei@centos7 ~]$ yum list installed
  1. 清除缓存
[wei@centos7 ~]$ yum clean packages # 清理已下载的软件包
[wei@centos7 ~]$ yum clean headers # 清理软件包的header信息
[wei@centos7 ~]$ yum clean all  # 清理所有缓存

关于rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件.
安装完毕之后可以通过拖拽的方式将文件上传过去。rz用于接收文件,sz用于发送文件。

  1. 首先我们需要安装:sudo yum install lrzsz

  2. 我们通过: yum list | grep lrzsz查看安装的lrzsz如果安装成功会出现下图这个形式,注意事项也对这个进行了对应的解释
    在这里插入图片描述

  3. 当然了如果我们想要卸载也可以通过该指令来卸载软件:sudo yum remove lrzsz

  4. 我们可以直接通过在桌面拖拽的形式上传文件(如下图)请添加图片描述

  5. yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装

  6. 出现 “complete” 字样, 说明安装完成

  7. 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成。

  8. yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错(如果报错不知道如何解决,百度会帮你)。

注意事项请添加图片描述

  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • “x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配.
  • “el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
  • 最后一列, base 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念.

一些好玩的小指令

小火车:安装:sudo yum install -y sl 运行: sl
在这里插入图片描述
打印一头牛:安装:sudo yum install -y cowsay 运行:sl
在这里插入图片描述


Linux编辑器-vim使用

今天我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式(Normal mode) :控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
  • 插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 末行模式(last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

vim的基本操作

  1. 打开文件:在终端中输入vim 文件名,例如vim text.txt,可以打开一个名为text.txt的文件(如果我们打开的是一个新建的文件里面通常是什么都没有的,这里作者这个文件里面的东西是后来写的大家可以忽略)。这里我们用vim直接打开的时候就属于是正常模式/普通模式
    在这里插入图片描述
  2. 如果我们此时在键盘上按一下a或者o,就会进入到插入模式,我们就可以直接通过键盘来在里面输入内容。
  3. 如果进入了正常模式或者插入模式我们想退出,就输入shift+:(你不懂的话可以理解成你在电脑上给别人发信息发:这个符号),此时我们就进入了末行模式。
  4. 在末行模式的时候输入:q可以直接退出编辑器。如果文件有未保存的修改,可以输入:q!来强制退出而不保存修改。如果同时有多个文件打开,可以输入:qa来退出所有文件。w保存文件并推出。
  5. 至于如何流畅的在这三个模式中切换请看下图
    在这里插入图片描述
    接下来我们就来讲这个各个模式如何用用命令来帮助我们以后快速的操作

vim命令模式命令集

移动光标:

  • h:左移一个字符
  • j:下移一行
  • k:上移一行
  • l:右移一个字符
  • Ctrl + f:向下翻页(相当于Page Down键)
  • Ctrl + b:向上翻页(相当于Page Up键)
  • gg:跳到文件的开头
  • G:跳到文件的末尾
  • nG:跳到文件的第n行

删除文本:

  • x:删除光标所在处的字符
  • nx:删除当前光标所在处及其往后n个字符
  • X:删除光标所在处的前一个字符
  • nX:删除当前光标所在处及其往前n个字符
  • dd:删除当前行
  • ndd:删除当前行及其后n-1行

复制与粘贴

  • yy:复制当前行到缓冲区.
  • nyy:复制当前行及其后n-1行
  • yw: 将光标所在之处到字尾的字符复制到缓冲区中
  • nyw:复制n个字到缓冲区
  • p:粘贴复制的文本,往后粘贴
  • P:粘贴在当前行之前
  • dd之后再p :剪切

搜索和替换

  • / 搜索词:向下搜索指定的关键词
  • ?搜索词:向上搜索指定的关键词
  • n:跳到下一个匹配的关键词
  • N:跳到上一个匹配的关键词
  • :s /旧词/新词/g:替换当前行中的旧词为新词
  • :%s/旧词/新词/g:替换全文中的旧词为新词
  • r:替换光标所在处的字符(输入r后在输入想要替换成的字符即可)
  • nr:支持nr 往后替换n个字符
  • R:替换光标所到之处的字符,直到按下「ESC」键为止
  • shift + r 替换模式:直接进行多个内容的替换

撤销上一次操作

  • u:撤销上一次的操作(多按几次u可以执行多次撤销)
  • Ctrl + r:重做上一次被撤销的操作
  • .:重复上一次的编辑操作

保存和退出

  • :w:保存文件
  • :wq:保存并退出编辑器
  • :q:退出编辑器(仅在无修改时生效)
  • :q!:强制退出编辑器,丢弃所有修改

更改:

  • cw:删除从光标处到单词(不包括整型)结尾的文本并进入到插入模式
  • cnw:例如,「c3w」表示删除3个字
  • shift + ~ :快速大小写切换(大写转小写,小写转大写)

vim底行模式命令集

vim的底行命令是在vim编辑器中使用冒号(:)进入底行模式,进行一些编辑、保存、退出和搜索等操作。以下是一些常用的vim底行模式命令集:

  • :w - 保存当前文件
  • :wq - 保存当前文件并退出
  • :q - 退出当前文件(如果没有修改)
  • :q! - 强制退出当前文件,放弃修改
  • :x - 保存当前文件并退出(只有在文件被修改过的情况下)
  • :e <文件路径> - 打开指定路径的文件
  • :bn - 切换到下一个缓冲区
  • :bp - 切换到上一个缓冲区
  • :bd - 关闭当前缓冲区
  • :%s/<目标字符串>/<替换字符串>/g - 全局替换指定字符串
  • :/<目标字符串> - 搜索指定字符串
  • :set nu - 显示行号
  • :set nonu - 隐藏行号
  • :set syntax=<语法类型> - 设置语法高亮类型(如syntax=python)
  • :set spell - 打开拼写检查
  • :set nospell - 关闭拼写检查
  • :help <命令> - 查看命令的帮助文档

这只是一些常用的vim底行命令,vim还有很多其他功能强大、用途广泛的命令,可以通过在底行模式下键入“:help”来查看更多的帮助文档。


如何左右分屏

在底行模式下, vs 文件名 可以不断分屏,往左侧分屏,如果vs后面的文件名不存在,则会默认先创建,再打开
在这里插入图片描述

如何快速切换屏幕

在底行模式下 按ctrl +w +w , 光标在哪里闪动,就说明哪个文件被选中,在该文件底行模式输入wq保存退出,保留的就是另外的文件(如下图所示)
请添加图片描述


批量注释和批量去注释

在命令模式下 : ctrl + v 然后用l,j,k,h选中区域,然后按大写的I,会跳到第一个位置,输入//注释,然后按esc按键
在命令模式下 : ctrl + v 然后用l,j,k,h选中区域,注意:要选中两个// 然后按小写的i,然后按d

简单vim配置
  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,
  • 通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~打开自己目录下的.vimrc文件,执行 vim .vimrc

自动配置vim:
直接输入下列命令即可

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

在这里插入图片描述
然后按照提示输入root密码,然后等待安装配置,最后手动执行source ~/.bashrc.配置完成后,类似自动补全、行号显示以及自动缩进等功能就有了。


好啦,今天的内容就到这里啦,下期内容预告gcc/g++、make/makefile、进度条的讲解


结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。


🌏🗺️ 这里祝各位寒假愉快 💞💞

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

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

相关文章

关于谷歌新版调试用具(Chrome Dev Tool ),网络选项(chrome-network)默认开启下拉模式的设置

今天在使用谷歌浏览器进行调试的时候&#xff0c;打开调试工具网络选项发现过滤不同模式的选项卡不见了&#xff0c;转而变成一个下拉式选项&#xff0c;如下图 这样一来使得切换不同类型查看的时候变得非常不方便&#xff0c;然后网上查了一下发现这个功能谷歌在很早版本就已…

前后端项目

文章目录 1.需求2.项目搭建2.1项目结构图2.2构建聚合工程2.2.1 zx-parent父工程2.2.2 zx-framework父工程2.2.2.1 zx-common工程2.2.2.2 zx-mybatisplus工程2.2.3 如上,同理创建其他父子工程2.3准备sql3.用户登录3.1 修改pom-依赖其他Module3.2 封装User1.需求 在线学习平台 …

笔记本电脑Win11重装系统教程

在笔记本电脑Win11操作过程中&#xff0c;用户如果遇到很严重的系统问题&#xff0c;就可以重新正常的Win11系统&#xff0c;快速解决Win11系统问题。但是&#xff0c;部分新手用户不知道不知道如何操作才能给Win11笔记本电脑重装系统&#xff1f;以下小编分享笔记本电脑Win11重…

LaTeX教程(003)-LaTeX文档结构(03)

LaTeX教程(003)- LaTeX \LaTeX LATE​X文档结构(03) 2.2 章节划分命令 在前面的内容中&#xff0c;我们讨论了文档的最顶层的区块划分&#xff0c;即front matter、main matter和back matter。这一节中&#xff0c;我们讨论如何在这些区块内部&#xff0c;使用章节划分命令对…

《Pandas 简易速速上手小册》第6章:Pandas 时间序列分析(2024 最新版)

文章目录 6.1 时间序列数据基础6.1.1 基础知识6.1.2 重点案例&#xff1a;股票市场分析6.1.3 拓展案例一&#xff1a;温度变化分析6.1.4 拓展案例二&#xff1a;电商平台日销售额分析 6.2 日期与时间功能6.2.1 基础知识6.2.2 重点案例&#xff1a;活动日志分析6.2.3 拓展案例一…

Nodejs基于Vue.js的网上团购系统86593

该系统将采用B/S结构模式&#xff0c;使用Vue和ElementUI框架搭建前端页面&#xff0c;后端使用Nodejs来搭建服务器&#xff0c;并使用MySQL&#xff0c;通过axios完成前后端的交互 运行软件:vscode 前端nodejsvueElementUi 语言 node.js 框架&#xff1a;Express/koa 前端:V…

JVM性能分析工具——Arthas及火焰图的使用

Arthas的使用 Arthas常用命令Arthas的安装Linux压测工具Apache Bench安装火焰图的使用火焰图如何分析火焰图的互动 Arthas常用命令 help &#xff1a;查看所有命令dashboard &#xff1a;仪表板&#xff0c;查看线程的CPU信息等heapdump &#xff1a;不同类对象占用内存比重&a…

MySQL数据库基础第三篇(约束)

文章目录 一、约束概述二、约束演示1.演示代码2.读出结果 三、外键约束1.创建外键2.删除更新外键 作为软件工程师和数据库管理员&#xff0c;我们经常需要操作和管理数据库。对于数据库中的信息完整性和准确性的确保&#xff0c;以及对数据质量的提升&#xff0c;数据库中的约束…

2023年09月CCF-GESP编程能力等级认证Python编程二级真题解析

一、单选题(共15题,共30分) 第1题 我国第一台大型通用电子计算机使用的逻辑部件是 ( )。 A:集成电路 B:大规模集成电路 C:晶体管 D:电子管 答案:D 第2题 下列流程图的输出结果是( )? A:5 12 B:12 5 C:5 5 D:12 12 答案:B 第3题 如果要找出整数 a …

【分布式技术专题】Guava RateLimiter 针对于限流器的入门到实战(含源码分析介绍)

Guava RateLimiter 针对于限流器的入门到实战 限流器的思路和算法漏桶算法令牌算法 RateLimiter限流器RateLimiter的作用create方法acquire方法tryAcquire方法 详细分析参数抛出异常参数抛出异常实践案例第1次获取10个令牌第2次获取1个令牌第3次获取10个令牌 资料参考 限流器的…

maven: 使用profiles进行多环境配置

文章目录 一、背景二、如何配置 一、背景 在项目开发的过程中会用到多个环境比如&#xff1a;本地环境&#xff08;开发自测&#xff09;、开发环境&#xff08;环境部署自测&#xff09;、生产环境等&#xff0c;由于不同的环境需要不同的配置信息&#xff0c;为了便于开发使…

opencv——将2张图片合并

效果演示: 带有绿幕的图片的狮子提取出来,放到另一种风景图片里! 1. 首先我们要先口出绿色绿幕,比如: 这里将绿色绿色绿幕先转为HSV,通过修改颜色的明暗度,抠出狮子的轮廓。 代码 : import cv2 as cv import numpy as np import matplotlib.pyplot as plt def showI…

spring-boot-admin的介绍和使用

概述 Spring Boot 有一个非常好用的监控和管理的源软件&#xff0c;这个软件就是 Spring Boot Admin。该软件能够将 Actuator 中的信息进行界面化的展示&#xff0c;也可以监控所有 Spring Boot 应用的健康状况&#xff0c;提供实时警报功能。 主要的功能点有&#xff1a; 显…

tcpdump 抓包无法落盘

文章目录 问题背景解决办法 问题背景 在嵌入式设备中(Linux系统)&#xff0c;为了分析两个网络节点的通讯问题&#xff0c;往往需要用到tcpdump&#xff0c;抓一个.pcap的包在PC端进行分析。博主在实际操作中发现&#xff0c;抓包无法实时落盘。 解决办法 # 下面的命令是写在…

面试八股文(2)

文章目录 1.ArrayList和LinkedList区别2.HashMap和HashTable区别3.线程的创建方式4.Java中异常处理5.Java序列化中某些字段不想进行序列化&#xff1f;6.Java序列化7.静态方法和实例方法8.List、Set、Map三者区别9.ArrayList和Vector区别10.HashMap和HashSet区别 1.ArrayList和…

还在用findViewById,不来了解下其它方式?

众所周知&#xff0c;都2225年了&#xff0c;如果你还在用Java敲安卓代码&#xff0c;findViewById已经是一种非常繁琐的操作&#xff0c;如果要去获取的id数量多&#xff0c;则对开发更加不友好。如果一个页面id过多&#xff0c;经常会有如下场景&#xff1a; TextView title…

ISOLAR-A/B问题总结

ISOLAR-A/B报错问题一&#xff1a; 1. Target ARObject: <ECUC-MODULE-CONFIGURATION-VALUES-REF> Unable to resolve reference /ETAS_Project/EcucModuleConfigurationValuess/E2E. - Line: 99. [Infos] <ECUC-MODULE-CONFIGURATION-VALUES-REF> : </ARPacka…

Pytest 与allure测试报告集成

通过Feature, story, step 记录测试的功能&#xff0c;场景及测试步骤 # login.pylogin_func函数 传入参数是name 和 password 当输入的name和password与数据库db_data中数据一致时&#xff0c;返回“XXX成功登录系统&#xff01;” 当输入的name存在于数据库db_data但密码不正…

Qt应用开发(安卓篇)——调用ioctl、socket等C函数

一、前言 在 Qt for Android 中没办法像在嵌入式linux中一样直接使用 ioctl 等底层函数&#xff0c;这是因为因为 Android 平台的安全性和权限限制。 在 Android 中&#xff0c;访问设备硬件和系统资源需要特定的权限&#xff0c;并且需要通过 Android 系统提供的 API 来进行。…

自定义SpringBoot启动图标

在SpringBoot项目的resources目录下创建banner.txt文件 在https://www.bootschool.net/网站上复制Ascll艺术字&#xff08;图&#xff09;粘贴到banner.txt中保存。 启动项目就会加载 可以修改颜色&#xff0c;和版本号 ${application.version} 输出版本 ${spring-boot.v…