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

Linux——基础开发工具

一、软件包管理

(1)如何下载软件

1、源码安装

2、rpm安装方式,安装包的本质,就是把源代码在windows下编译好,然后打包

3、yum/apt

注意:软件是由依赖关系的,当我们使用前两种方法的时候需要我们手动解决依赖关系,但是第三种方式,时间所有依赖关联的打包放在一起了

(2)什么是软件包

在Liunx下安装软件,一个通常的方法就是下载程序的源代码,得到可执行程序。但是这样带过于麻烦,于是有些人把一些常见的软件提前编译好,做成软件包,放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装

软件包和软件包管理器,就好比App和应用商店这样的关系

yum是Linux下非常常用的一种包管理器,主要应用在Fedora,RedHat,Centos等发行办上

Ubuntu主要使用apt作为其包管理器。

(3)Linux下载软件的过程

操作系统的好坏评估————生态问题

国内镜像源

有一些软件是由国外生成的国内没有办法使用,国内的一些公司和大学对这些进行镜像

以下是一些常用的国内镜像源链接:

1. 清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/
2. 中科大开源镜像站:https://mirrors.ustc.edu.cn/
3. 阿里云开源镜像站:https://mirrors.aliyun.com/
4. 网易开源镜像站:http://mirrors.163.com/
5. 腾讯开源镜像站:https://mirrors.cloud.tencent.com/

二、yum具体操作

(1)查看软件包

通过yum list命令可以罗列出当前一共有那些软件包,由于包的数目非常之多,这里我们需要使用grep命令只筛选出我们关注的包,例如:

 注意:软件包名称:主版本号。此版本号。源程序发行号—软件的发行号。主机平台。cpu 架框

“x84_64”后缀表示32位系统安装包,选择包时要和系统匹配

“el7”表示操作系统发行版的版本

base表示的是“软件源”的名称,类似于“小米应用商店”,“华为应用商店”这样的概念

(2)安装软件

sudo yum install 需安装的软件名称

sudo apt install 需安装的软件名称

注意:yum/apt会自动找到那些软件包需要下载,这时候敲y确认安装

           出现complete 字样或者中间未出现报错,说明安装完成

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

           yum/apt安装软件只能一个装完了再装另一个。正在yum/apt安装一个软件的过程中,如果               再尝试用yum/apt安装另一软件,yum/apt会报错

            

(3)卸载软件

 sudo yum remove -y 软件名

 sudo apt remove -y 软件名

(4)编译器Vim

1、Linux编译器-vim使用

vi/vim的区别简单来说,它们都是多模式编译器,不同的是vim是vi的升级版本,兼容vi同时扩展

2、vim的基本概念

本文主要重点讲述三种模式分别是 命令模式、插入模式、和底行模式,各模式的功能区别如下:

正常模式/普通模式/命令模式

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入insert mode下,或者到lastline mode

插入模式(Insert mode)

只有在Insert mode 下,才可以做文字输入,按ESC键可回到命令行模式

末行模式(lastline mode)

文件保存或退出,也可以进行文字的替换,找字符串,列出行号等操作

在命令模式下,shift+:即可进入该模式。要看你的模式:打开vim,底行模式直接输入:help vim-modes

3、vim的基本操作

进入vim,在系统提示符号输入vim 及文件名称后,就进入vim全屏幕编辑画面

进入时默认是命令模式

4、模式的切换

正常模式 到 插入模式

a               i                 o

他们三个不同点是:按i进入插入模式的时候,光标保持原来不变

                                按a进入插入模式的时候 ,光标自动到原来位置的下一个位置                        

                                按o进入插入模式的时候,光标自动到下一个行

  

正常模式到末行模式

shift + ; 其实就是输入:

这时候输入 w  (保存当前文件)    wq(保存并退出)q!(强制退出,不保存)

底行模式/插入模式  到 正常模式

   按ESC键

5、正常模式命令合集

移动光标

vim中可以使用小键盘的光标和hjkl来控制左下上右移一个

按G:移动到文章的最后(数字表示到第几行的行首)

按gg :进入文本开始的开始

按shift + 4 : 移动到光标所在行的行尾

按shift + 6 :  移动到光标所在行的行首

按w : 光标跳到下个字的开头

按e : 光标跳到下个字的字尾

按b : 光标回到上个字的开头

按数字 l :光标移到该行的第数字个位值

注意:以上的四个按键都可以在前面添加数字表示到第几个

按ctrl +b :屏幕往后移动一页

按ctrl +f :屏幕往前移动一页

按ctrl +u :屏幕往后移动半页

按ctrl +d :屏幕往前移动半页

删除文字

x :每按一次,删除光标所在的位置的一个字符(前面加数字,表示删除从自己开始后面几个的字符)

X:每按一次,删除光标所在位置前的一个字符(前面加数字,表示删除光标所在位置的前面的几个字符)

dd :删除光标所在行(前面加数字从光标所在行开始删除几行)

复制

yw:将光标所在之处到词尾的字尾复制到缓冲区中(前面加数字表示复制#个词到缓冲区)

yy :复制光标所在行到缓冲区(前面加数字表示复制#行到区)

p: 将缓冲区内的字符贴到光标所在位置。(所有于复制到缓冲区的命令必须要和p配合才能完成复       制与粘贴功能)(前面加数字表示粘贴几行)

替换

r :替换光标所在储的字符

R:替换光标所在处的字符,直到按下ESC键为止。(替换模式)

撤销上一次操作

u:如果您误执行一个命令,可以马上按下u,回到上一个操作。按多次u可以执行多次回复

ctrl + r :撤销的恢复

更改

cw:更改光标所在字到字尾处

c数字w:表示更改几个字

跳到指定的行

ctrl + g:列处光标所在行的行号

6、Vim末行模式命令集

在使用末行模式之前,请记住ESC确定您已经处于正常模式,在按:冒号即可进入末行模式

列出行号

set nu: 文件的每一行前面都会列出行号

跳到文件的某一行

数字 :在冒号后输入一个数字,再按回车键就会跳到该行

大小写替换

~:快速进行大小写替换

查找字符

/关键字:先按/,在输入你想寻找的字符,如果第一次找的关键词不是你要的,可以一直按n会往前           寻找到你要到

保存文件

w : 在冒号之前输入w可将文件保存起来

离开vim

q:按q就是退出,如果无法离开vim,可以在q后跟一个!强制离开vim

wq : 一般建议离开时,搭配w一起使用,这样在退出的时候还可以保存文件

7、批量化操作

ctrl + v: 视图模式(可以进行批量化修改)

例如:批量化注释

命令模式下ctrl + v  按hjkl 选定范围  shift + i (进入insert模式)  在按//     最后按esc 

模式切换总结

底行其他命令

vs 文件名(如果不存在保存退出后,系统自动生成一个) 分屏打开另一个文件

ctrl + ww:光标在哪,我们就是在编译哪一个 ctrl + ww 切换到另一个

 

(5)简单vim 的配置

我们观察到我们开始打开vim的时候什么都没有 ,没有换行,没有单词高亮等编译器的功能,这就需要我们配置文件

1、配置文件的位置

在目录/etc/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

而在每个用户的主目录下,都可以自己建立私有的配置文件,名为:.virmrc .例如,/root目录下,通常已经存在一个。vimrc文件,如果不存在,则创建之。

切换用户成为自己执行su,进入自己的主工作目录,执行 cd ~

打开自己目录下的.vimrc文件,执行 vim.vimrc

常用配置选项,用来测试

设置语法高亮:syntax on;

显示行号:set nu

设置缩进空格为4:set shiftwidth = 4;

更多的基本设置可以使用deepseek让他帮你生成

2、使用插件

配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善

一键化配置

如果你是centos 7 我们可以在gitee中搜索vimforcpp

复制上面的链接(注意不能在root下执行)

 

 

相关文章:

  • 【第43节】实验分析windows异常分发原理
  • 低功耗设计:Level Shift的种类(以SAED EDK 32/28nm工艺库为例)
  • ubuntu上,e1000e,i1210有线网卡驱动安装
  • 从暴力到动态规划再到双指针:使用 Java 探索接雨水问题的不同解法
  • 处理Long类型长度超长导致前端精度丢失问题
  • Python用户管理系统深度解析(附源码):从类设计到安全实现的完整指南
  • 「数据可视化 D3系列」入门第一章:Hello D3.js
  • 数据库实战篇,JSON对象在Kooboo中的实际应用(二)
  • SQL注入之时间盲注攻击流程详解
  • SLAM文献之DM-VIO: Delayed Marginalization Visual-Inertial Odometry
  • 大模型之Hugging Face
  • 信奥还能考吗?未来三年科技特长生政策变化
  • 【开发教程】学生团队项目开发协调管理文档库构建以及使用指南
  • #4 为什么要物联以及 物联网的整体结构
  • linux tracepoint系列宏定义(TRACE_EVENT,DEFINE_TRACE等)展开过程分析之三 define_trace.h头文件
  • 【blender小技巧】Blender导出带贴图的FBX模型,并在unity中提取材质模型使用
  • telepresence使用指南
  • 【LH-开发记录】
  • Dockerfile 学习指南和简单实战
  • 一文介绍关于多模态的基础知识 !!
  • 朱守科任西藏自治区政府副主席、公安厅厅长
  • 詹妮弗·劳伦斯、罗伯特·帕丁森新片入围戛纳主竞赛单元
  • 中国泳协:新奥运周期竞争激烈,“三从一新”全力提升实力
  • 在现代东京,便利店如何塑造了饮食潮流、生活方式和日本社会
  • 如何保护人工智能领域的知识产权?上海市知识产权局局长解答
  • 大家聊中国式现代化|权衡:在推进中国式现代化中当好龙头