【Linux】linux基础开发工具(一) 软件包管理器yum、编辑器vim使用与相关命令

文章目录


一、linux下常见的安装软件方式

1、源代码安装:拿到软件的源代码在系统里自己编译,编译好后将二进制文件自己拷贝到系统的指定路径下如/user/bin(手动挡)

2、rpm包安装:将源代码编译好后将文件打包给别人安装,不过需要自己解决在哪下rpm下哪个rpm和下载好后的文件依赖等等问题,rpm包和也不够方便。

3、包管理器安装:安装一条龙服务(自动挡),上面的两种方法都太⿇烦了, 于是有些⼈把⼀些常⽤的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在⼀个服务器上, 通过包管理器可以很⽅便的获取到这个编译好的软件包, 直接进⾏安装,肥肠方便,所以我们接下来来仔细盘一盘软件包管理器。

二、软件包管理器

软件包本质上是包含程序文件、配置文件、依赖信息等的压缩文件集合。

我们再来认识一下什么是软件包管理器,软件包和软件包管理器, 就好⽐ "App" 和 "应⽤商店" 这样的关系。

linux下常见的软件包管理器有两种:

  • yum(Yellow dog Updater, Modified)是Linux下⾮常常⽤的⼀种包管理器. 主要应⽤在Fedora,RedHat, Centos等发⾏版上.
  • Ubuntu:主要使⽤apt(Advanced Package Tool)作为其包管理器。apt同样提供了⾃动解决依赖关系、下载和安装软件包的功能

我们看上图可以知道下载的软件并不是在自己的云服务器上,而是在另一台系统提供的软件包服务器上拉取的软件。

软件包的安装、搜索、卸载指令

centos下:

sudo yum install -y xxx //下载

sudo yum list | grep xxx //搜索

sudo yum remove -y xxx //卸载

ubuntu下:

sudo apt install -y xxx //下载

sudo apt list | grep xxx //搜索

sudo apt remove -y xxx //卸载

注意事项:

1、安装软件时由于需要向系统⽬录中写⼊内容, ⼀般需要 sudo 或者切到 root 账⼾下才能完成.。

2、yum/apt安装软件只能⼀个装完了再装另⼀个. 正在yum/apt安装⼀个软件的过程中, 如果再尝试⽤ yum/apt安装另外⼀个软件,yum/apt会报错,也就是同一时间只允许一个用户安装软件。

三、编辑器vim

把代码编写->代码编译->代码调试->代码运行功能集成到一起的软件叫集成开发环境IDE。由于windows有图形化界面和开发生态的原因,windows里的开发软件大部分都是用的集成化的解决方案,比如vs2022。

为什么linux在大多数情况下不用IDE,而是用独立的命令行工具呢?其实linux也有IDE,但是linux的生态、历史和应用场景(服务器、嵌入式)决定了命令行工具的不可替代性。
在linux下我们常用的命令行工具如下:

写代码 ------vim

编译代码------gcc/g++

调试工具------gdb、cgdb

构建工具------makefile、make、cmake

下面我们就来结合实践来详细介绍如何使用vim和相关指令。

进入vim指令

直接vim就可以进入到vim编辑器内部,vim内部示意如下:

  • vim xxx +n
  • (打开xxx文件光标直接定位到第n行)

这样方便我们看到文件第几行报错时直接定位。

vim的模式

vim模式主要有三种,小编还会补充两种,会用这五种模式就完全够用了,下面是五种模式之间相互转化的示意图:

有的读者看到这些模式可能一头雾水,其实我们在windows也接触过相似的操作,只是习以为常了没太注意,这里的命令模式就类似windows的ctrl+c ctrl+v,插入模式就是我们自己一个一个手动输入。而类似ctrl+c ctrl+v的命令可以大大提高我们的编辑效率,因为命令的背后就是自动化和批量化的行为模式。所以命令模式是vim中最核心的模式。

我们进入vim后默认处在命令模式,输入"i"进入插入模式,也就是常规的编辑模式。按ESC退出到命令模式。我们要退出vim一般需要进入底行模式,按shift+:进入底行模式,在底行中输入w(保存)q(退出)按回车键就可以保存并退出了。其他模式回到命令模式都是ESC。除了命令模式之外的其他模式相互切换都需要先切换到命令模式做过渡。

命令模式

光标移动命令
  • shift+g
    (光标移动到文本末尾)

n+shift+g:光标定位到文本第n行

  • gg
    (光标回到文本最开始)

n+gg:光标定位到文本第n行

  • shift+4

    (光标移动到当前行结尾)

  • shift+6

    (光标移动到当前行开始)

  • h、j 、k 、 l

    (光标局部移动)

h(光标向左移动)j (光标向下移动)k (光标向上移动) l(光标向右移动)

因为有些老式键盘没有方向键,所以需要用字母适配方向键

  • w、b
    (以单词为单位左右移动)

w(以单词为单位向右移动)b(以单词为单位向左移动)

n+w/b(向左/向右移动n个字母)

复制、粘贴、编辑、查找命令
  • yy
    (复制光标所在行到剪切板)

n+yy: 复制从光标开始往下的n行

  • p
    (粘贴到当前行的下一行)

n+p: 粘贴n行剪切版的内容

  • dd
    (删除光标所在行并将内容拷贝到剪切板)

n+dd: 删除光标所在行及往下的n行

所以单走dd就是删除,dd后再p就是剪切。

  • shift+~

    (大小写快速转换)

  • r

    (替换光标所在位置的一个字符)

n+r:将光标所在位置及往后的n个字符批量替换

  • x
    (删除光标所在字符,连续x向右删除)

n+x:删除光标所在位置及往右的n个字符

  • shift+x
    (删除光标所在字符,连续shift+x向左删除)

shift+n+x:删除光标所在位置及往左的n个字符

其他命令
  • u

    (撤销命令)

  • ctrl+r

    (对u的撤销进行撤销)

通俗点来说就是反向撤销。
上面两个指令只要没有退出vim随时可以撤销,退出vim后就无法撤销。

底行模式

两个坑

在介绍底行模式之前小编先讲几个我们容易踩的坑,如果文件没有r权限,我们vim打开改文件后是看不到文件里面的内容的,并且会提示noperm,示意如下:

如果文件没有w权限,那么我们是无法保存文件内容的,因为保存就相当于对文件进行写操作。

还有一个坑如果vim打开文件后不知道什么原因vim没保存直接退出了,vim会自动形成一个在当前路径下的临时文件,这个临时文件是以.开头的临时文件,我们想要正常vim进入这个文件需要将这个临时文件删除。

底行模式的命令
  • w、q
    (保存和退出)

在底行模式下输入w是保存,q是退出vim,wq就是保存并退出。

如果chmod把文件的写权限去了那么你可以w!强制保存,但是仅适用于你是文件拥有者或root,且文件本身是可读的。还有q! 强制退出,wq!强制保存并退出。

另外小编补充一个命令:shift+zz,它可以在任意模式保存并退出vim,等于wq。

  • set nu
    (调出行号) set nonu(取消行号)
  • /key
  • (匹配关键字符搜索)

按n可以跳转到下一个搜索出的字符。

  • !cmd
  • (可以不退出vim执行shell命令,包括对代码直接编译和运行)
  • %s/src/dst/g
  • (批量化替换,g代表全部)
分屏相关命令
  • vs
    (新创建一个屏)
  • ctrl+ww
    (光标切换到另一个分屏)

因为光标只有一个,所以操作不同的屏需要切换光标,底行也只有一个,光标在哪个屏底行就属于哪个屏。

替换模式

shift+r让vim进入替换模式,可以进行批量化的内容替换。

视图模式

shift+v让vim进入视图模式,可以进行批量化的内容替换。

批量化注释/去注释

用视图模式比较复杂,小编来详细解释。
批量化注释:

1、ctrl+v进入试图模式

2、用h、j、k、l方向键选择区域(可以n+j直接选择当前位置及往下的n行)

3、shift+i进入插入模式,这也是为数不多的可以不经过命令模式切换模式的方法

4、输入//

5、按ESC退出视图模式自动注释选择的区域

批量化去注释:

1、ctrl+v进入试图模式

2、用h、j、k、l方向键选择区域

3、输入d直接删除
除此之外在视图模式选择内容后还可以输入r,在输入一个字符可以将选中的内容全部替换为目标字符,视图模式下还有许多有趣的功能等以后读者们慢慢发掘吧。

插入模式

插入模式小编认为不需要其他特殊的说明,我们天生就会用,主要了解3个由命令模式进入插入模式是三个命令:

  • i
    (直接进入插入模式,光标不移动)
  • a
    (进入插入模式并且光标向右移动一个字符)
  • o
    (进入插入模式并且光标移动到下一行)

以上就是小编分享的全部内容了,如果觉得不错还请留下免费的关注和收藏如果有建议欢迎通过评论区或私信留言,感谢您的大力支持。
一键三连好运连连哦~~

相关推荐
花下的晚风1 小时前
如何搭建Linux环境下的flink本地集群
linux·flink
RainbowSea1 小时前
用户中心项目部署上线03
linux·服务器·spring boot
Gss7772 小时前
Vim 编辑器全模式操作指南
linux·编辑器·vim
sagima_sdu2 小时前
银河麒麟安装软件商店方法
linux·运维·服务器
Gene_20224 小时前
Ubuntu 22.04 使用 Issac Gym 进行人形强化学习训练
linux·运维·ubuntu
快乐肚皮4 小时前
Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议
linux·学习·zookeeper·源码
toradexsh5 小时前
Yocto meta-toradex-security layer 使用 TI AM62 安全启动功能
linux·安全·arm·ti·am62
程序员JerrySUN8 小时前
Linux 内核基础统简全解:Kbuild、内存分配和地址映射
java·linux·运维·服务器·嵌入式硬件·缓存·文件系统
努力做小白9 小时前
Linux驱动19 --- FFMPEG
linux·运维·驱动开发·单片机·嵌入式硬件·ffmpeg
果子⌂13 小时前
Kubernetes 服务发布进阶
linux·运维·服务器·云原生·容器·kubernetes·云计算