【Linux】基础开发工具(软件包、vim)

本文是小编巩固自身而作,如有错误,欢迎指出!


目录

一、软件包管理器

1.1什么是软件包

1.2Linux软件生态

1.3yum的具体操作

1.3.2卸载软件

二、编辑器Vim

2.1vim是什么

2.2vim的基本使用方式

2.3vim的基本操作

[正常模式]切换⾄[插⼊模式]

[插⼊模式]切换⾄[正常模式]

[正常模式]切换⾄[末⾏模式]

2.4vim正常模式命令集

插⼊模式

移动光标

删除文字

复制

替换

撤销上⼀次操作

重复执行命令

跳⾄指定的⾏

2.5vim底行模式命令集

列出行号

强制措施

跳到⽂件中的某⼀⾏

查找字符

vim分屏

vim操作总结


一、软件包管理器

1.1什么是软件包

Linux系统下下载软件的常见方式:

1、源代码安装。

2、rpm包安装。

3、包管理器安装。

但在这三方法中前两种都比较麻烦,而第三种就相对简单,但包管理器安装我们该怎么理解呢?

其实就可以理解为应用商店和APP之间的关系。

linux系统就好像我们的手机,软件包管理器就是我们手机上的应用商店。

而我们现在市场上主要流通的包管理器大概有两种:

**yum(Yellow dog Updater,Modified)**是Linux下⾮常常⽤的⼀种包管理器.主要应⽤在Fedora, RedHat,Centos等发⾏版上.

Ubuntu:主要使⽤**apt(Advanced Package Tool)**作为其包管理器。apt同样提供了⾃动解决依 赖关系、下载和安装软件包的功能。

1.2Linux软件生态

下图是Linux下载软件的过程

Linux系统云服务器整个流程

1.3yum的具体操作

1.3.1安装软件

下面我们看一条很简答的gcc安装指令

bash 复制代码
# Ubuntu
$ sudo apt install -y gcc

yum/apt会⾃动找到都有哪些软件包需要下载,这时候敲"y"确认安装.

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

我们看上图就可以看出第五行

gcc is already the newest version (4:11.2.0-1ubuntu1).

gcc set to manually installed.

这句话的意思就是本机已经安装过gcc并且能够运行

1.3.2卸载软件

bash 复制代码
# Ubuntu
sudo apt remove [-y] gcc

可以看出在我们输入这条命令后,系统会询问我们是否删除。

二、编辑器Vim

2.1vim是什么

之前我们在C/C++学习过程中使用的vs2022等等编译器是在Windows系统下集编写、编译、运行、调试等所有功能为一体的叫做集成开发环境,也就是IDE。

而在Linux系统下开发工具是独立存在的。

编写代码:vim

编译代码:gcc\g++

调试:gbd\cgbd

构建工具:makefile\make\cmake\git

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,⽽且还有⼀些新的特性在⾥⾯。例如语法加亮,可视化操作不仅可以在终端运⾏,也可以运⾏于x window、 mac os、 window

2.2vim的基本使用方式

vim是进行文本编写的多模式编辑器,最基本的三种模式是命令模式,插入模式,底行模式

命令模式:最初使用vim打开文件的模式,控制屏幕光标的移动,控制字符,行的删除或移动复制到某区段

插入模式:只有在插入模式下才可以进行代码的编写

底行模式:文件的保存或退出,也可进行文件的替换,查找字符串还有列出行号的操作

2.3vim的基本操作

进⼊vim,在系统提⽰符号输⼊vim及⽂件名称后,就进⼊vim全屏幕编辑画⾯:

输入以上指令我们就可以看到

界面变成如上图

不过有⼀点要特别注意,就是你进⼊vim之后,是处于[正常模式],你要切换到[插⼊模式]才能够输⼊⽂字。

[正常模式]切换⾄[插⼊模式]

输⼊a

输⼊i

输⼊o

输入i后我们就可以看到下面变成了一个大写的INSERT,表明已经进入了插入模式

[插⼊模式]切换⾄[正常模式]

⽬前处于[插⼊模式],就只能⼀直输⼊⽂字,如果发现输错了字,想⽤光标键往回移动,将该字删除,可以先按⼀下「ESC」键转到[正常模式]再删除⽂字。当然,也可以直接删除。

[正常模式]切换⾄[末⾏模式]

「shift + ;」, 其实就是输⼊「:」

退出vim及保存⽂件,在[正常模式]下,按⼀下「:」冒号键进⼊「Last line mode」,例如:

w (保存当前⽂件)

wq (输⼊「wq」,存盘并退出vim)

q! (输⼊q!,不存盘强制退出vim)

2.4vim正常模式命令集

插⼊模式

• 按「i」切换进⼊插⼊模式「insert mode」,按"i"进⼊插⼊模式后是从光标当前位置开始输⼊

⽂件;

• 按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;

• 按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。

• 从插⼊模式切换为命令模式

• 按「ESC」键。

移动光标

vim可以直接⽤键盘上的光标来上下左右移动,但正规的vim是⽤⼩写英⽂字⺟「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移⼀格

按「G」:移动到⽂章的最后

按「 $ 」:移动到光标所在⾏的"⾏尾"

按「^」:移动到光标所在⾏的"⾏⾸"

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

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

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

按「#l」:光标移到该⾏的第#个位置,如:5l,56l

按[gg]:进⼊到⽂本开始

按[shift+g]:进⼊⽂本末端。

按"n+shift+g":定位到任意一行。

按「ctrl」+「b」:屏幕往"后"移动⼀⻚

按「ctrl」+「f」:屏幕往"前"移动⼀⻚

按「ctrl」+「u」:屏幕往"后"移动半⻚

按「ctrl」+「d」:屏幕往"前"移动半⻚

删除文字

「x」:每按⼀次,删除光标所在位置的⼀个字符

「#x」:例如,「6x」表⽰删除光标所在位置的"后⾯(包含⾃⼰在内)"6个字符

「X」:⼤写的X,每按⼀次,删除光标所在位置的"前⾯"⼀个字符

「#X」:例如,「20X」表⽰删除光标所在位置的"前⾯"20个字符

「dd」:删除光标所在⾏

「#dd」:从光标所在⾏开始删除#⾏

复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在⾏到缓冲区。

「#yy」:例如,「6yy」表⽰拷⻉从光标所在的该⾏"往下数"6⾏⽂字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。(粘贴功能)

替换

「r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为⽌。

撤销上⼀次操作

「u」:如果您误执⾏⼀个命令,可以⻢上按下「u」,回到上⼀个操作。按多次"u"可以执⾏

多次回复。

「ctrl + r」: 撤销的恢复

重复执行命令

! +字符会继续执行最近以字符为开头的历史命令再执行一次

更改

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

「c#w」:例如,「c3w」表⽰更改3个字

跳⾄指定的⾏

「ctrl」+「g」列出光标所在⾏的⾏号。

「#G」:例如,「15G」,表⽰移动光标⾄⽂章的第15⾏⾏⾸。

2.5vim底行模式命令集

在使⽤末⾏模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进⼊末⾏模式。

列出行号

「set nu」: 输⼊「set nu」后,会在⽂件中的每⼀⾏前⾯列出⾏号。

如果要取消掉输入"set nonu"。

强制措施

w!:"强制"保存

q!:"强制"退出

wq!:"强制"保存并退出

主要是权限问题。

如果vim打开文件突然终端退出,vim为了形成临时文件,在当前目录下的一个.swp。临时ls -al

跳到⽂件中的某⼀⾏

「#」:「#」号表⽰⼀个数字,在冒号后输⼊⼀个数字,再按回⻋键就会跳到该⾏了,如输⼊数字15,再回⻋,就会跳到⽂章的第15⾏。

查找字符

「/关键字」: 先按「/」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往后寻找到您要的关键字为⽌。

「?关键字」:先按「?」键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按「n」会往前寻找到您要的关键字为⽌。

vim分屏

:后加上文件名即可

vim操作总结

vim的三种模式:

正常模式

插⼊模式

底⾏模式

vim⼀共有12种总模式,⼤家下来可以研究⼀下

vim操作:打开,关闭,查看,查询,插⼊,删除,替换,撤销,复制等等操作。

更多详细的可以看看vim从入门到nb


本次分享就到这里结束了,感谢阅读!后续会进行更新

相关推荐
岳清源1 小时前
【无标题】Keepalived
linux·服务器·网络
先做个垃圾出来………1 小时前
Python常见文件操作
linux·数据库·python
tod1131 小时前
OS 核心知识点全解析(一)
linux·开发语言·面试经验
czxyvX1 小时前
020-Linux-应用层自定义协议与序列化
linux·网络
vortex52 小时前
只能进入、不能查看的目录权限
linux
IP搭子来一个2 小时前
独享IP和共享IP怎么选?全面对比解析
运维·网络·tcp/ip
云司科技codebuddy2 小时前
技术支持过硬Trae核心代理
大数据·运维·python·微服务
代码游侠2 小时前
STM32开发——基础外设
linux·运维·arm开发·stm32·单片机·嵌入式硬件·学习
xmlhcxr2 小时前
Nginx(二)
运维·nginx