当前位置: 首页 > news >正文

【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、进度条的讲解


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


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

相关文章:

  • Dubbo框架注册中心-Zookeeper搭建
  • 前端自己整理的学习面试笔记
  • 【Vue】2-8、Axios 网络请求
  • Redis核心技术与实战【学习笔记】 - 7.Redis GEO类型 - 面向 LBS 应用的数据类型
  • 深度强化学习(王树森)笔记09
  • Golang的数字签名之旅:crypto/ecdsa库详解
  • 2024美赛数学建模C题思路+模型+代码+论文
  • 提效IntelliJ IDEA插件
  • react经验10:与jquery配合使用
  • 笔记本电脑Win11重装系统教程
  • uniapp H5 px转换rpx
  • K8S网络
  • 与数组相关经典面试题
  • activemq 默认端口说明
  • 路飞项目--05
  • 【Amaple教程】5. 插件
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【前端学习】-粗谈选择器
  • 07.Android之多媒体问题
  • 2017年终总结、随想
  • Centos6.8 使用rpm安装mysql5.7
  • es6(二):字符串的扩展
  • iOS 颜色设置看我就够了
  • Linux后台研发超实用命令总结
  • ucore操作系统实验笔记 - 重新理解中断
  • 计算机在识别图像时“看到”了什么?
  • 简析gRPC client 连接管理
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 使用权重正则化较少模型过拟合
  • 思否第一天
  • ​虚拟化系列介绍(十)
  • #每天一道面试题# 什么是MySQL的回表查询
  • (9)目标检测_SSD的原理
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (一)Linux+Windows下安装ffmpeg
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • ******IT公司面试题汇总+优秀技术博客汇总
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bat批处理(一):@echo off
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net core控制台应用程序初识
  • .NET MVC第三章、三种传值方式
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • /run/containerd/containerd.sock connect: connection refused
  • @RequestMapping用法详解
  • @ResponseBody
  • @SentinelResource详解
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [Assignment] C++1
  • [BetterExplained]书写是为了更好的思考(转载)
  • [BZOJ4016][FJOI2014]最短路径树问题