Linux基础(4)Linux中的开发工具(1)--yum和vim
·
记录我自己零开始学习Linux。
目录
前言
前面我们已经学习了 Linux 的基础指令,以及文件、目录权限的管理方式。接下来,我们将介绍 Linux 环境下的两款基础开发工具 —— 包管理工具 yum,以及文本编辑器 vim;其中的核心要点,是要熟练掌握 vim 编辑器的各类操作命令,以便能顺畅地运用它开展操作。
一、Linux 软件包管理器 yum
1. 什么是软件包
在Linux下安装软件, ⼀个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
但是这样太麻烦了, 于是有些人把⼀些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在⼀个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
yum(Yellow dog Updater, Modified)是Linux下非常常用的⼀种包管理器. 主要应用在Fedora,
RedHat, Centos等发行版上.
Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。
Linux 中常见的软件安装方式包括 CentOS/RHEL 系列的 yum 与 rpm 安装、Ubuntu/Debian 系列的 apt 与 dpkg 安装、支持自定义配置的源码编译安装,以及便捷的脚本一键安装。
2. 如何安装软件
通过 yum,我们可以通过很简单的一条命令完成 gcc 的安装。
sudo yum install -y lrzsz
3. 如何卸载软件
sudo yum remove lrzsz
二、Linux编辑器-vim使用
1. vim 的核心模式
vim 的核心特点是模式化操作,不同模式对应不同功能:
模式名称 进入方式(从命令 / 默认模式) 返回方式 核心用途
命令 / 默认模式 vim 启动后默认进入 执行命令后自动回普通模式 移动光标、执行复制 / 删除 / 粘贴等快捷操作,是其他模式的中转核心
替换模式 按Shift+R(即R) 按Esc键 直接替换光标所在位置的字符(输入新字符会覆盖原有字符)
插入模式 按i/a/o(不同位置插入) 按Esc键 常规文本输入与编辑(类似普通文本编辑器的编辑状态)
Visual Block 模式 按Ctrl+v 按Esc键 实现列级文本选择(如批量给多行代码添加注释、批量修改列内容)
底行模式 按Shift+;(即输入:) 按Esc键 执行文件操作(保存、退出)、查找替换、vim 参数设置(如:wq保存退出)
2. vim 基础使用流程(从打开到保存退出)
# 1. 打开/新建文件(普通模式) vim test.txt # 打开test.txt,不存在则新建 # 2. 进入插入模式开始编辑 i # 最常用:在光标当前位置前插入文字 # 可选:a(光标后插入)、o(光标下新建一行插入) # 3. 回到普通模式(关键) Esc # 按一次即可,不确定可以多按几次 # 4. 保存/退出(命令行模式) :w # 仅保存文件 :q # 仅退出(文件未修改时) :wq # 保存并退出(最常用) :q! # 强制退出(放弃所有修改) :w new.txt # 另存为new.txt
3. 高频实用操作(普通模式下)
普通模式是 vim 的效率核心,记住这些快捷键能大幅提升编辑速度:
1. 光标移动(不用方向键,更高效)
基础移动:k(上)、j(下)、h(左)、l(右)
行级移动:0(行首)、$(行尾)
文档级移动:gg(文档开头)、G(文档结尾)、数字+G(跳指定行,如10G跳第 10 行)
翻页:Ctrl+f(下翻一页)、Ctrl+b(上翻一页)
2. 文本编辑(复制 / 删除 / 撤销)
删除:
x:删除光标所在字符
dd:删除整行(最常用)
3dd:删除光标开始的 3 行(n+dd 删除 n 行)
d$:删除光标到行尾的内容
复制粘贴:
yy:复制整行(最常用)
5yy:复制光标开始的 5 行(n+yy 复制 n 行)
p:粘贴到光标下一行,P(大写)粘贴到光标上一行
撤销 / 重做:
u:撤销上一步操作
Ctrl+r:重做被撤销的操作
3. 查找替换(命令行模式)
查找:/关键词(如/error),按n找下一个,N找上一个;?关键词(反向查找)
替换:
单行替换::s/旧内容/新内容(替换当前行第一个匹配)
单行全替换::s/旧内容/新内容/g(g=global,全局)
全文替换::%s/旧内容/新内容/g(最常用)
全文替换并确认::%s/旧内容/新内容/gc(c=confirm,每个匹配都确认)
4. 实用小技巧
显示 / 隐藏行号: :set nu(显示)、:set nonu(隐藏),想永久显示行号可编辑~/.vimrc,添加set nu并保存。
快速保存退出:普通模式下按ZZ(等价于:wq)。
缩进:>>(向右缩进一行)、<<(向左缩进一行),3>>缩进 3 行。
替换字符大小写:普通模式下按~(切换光标所在字符的大小写)。 在任何模式下想要回命令模式,直接无脑 [Esc]。
三、vim命令模式命令集
光标移动命令
vim可以直接用键盘上的按键来上下左右移动,但正规的vim是用小写英文字母 [h],[j],[k],[l],分别控制光标左,下,上,右移一格
[shift+g = G]:定位到文本的末尾
[n+shift+g]:定位到文本的第 n 行
[gg]:定位到文本的最开始
[$]:移动到光标所在行的 "行尾"
-[ ^]:移动到光标所在行的 "行首"
[w]:以单词为单位,向后跳
[e] :以单词为单位,向前跳
[ctrl + b]:屏幕往 "后" 移动一页
[ctrl + f] :屏幕往 "前" 移动一页 [f + 字符]:快速跳转到当前行的下一个指定字符处(按;跳至下一个匹配,按,跳至上一个匹配)
[F + 字符]:跳转到当前行的上一个指定字符处
[t + 字符]:跳转到当前行下一个指定字符的前一格位置
[T + 字符]:跳转到当前行上一个指定字符的后一格位置
[zz]:将光标所在行居中显示在屏幕
[%]:跳转到光标所在括号(如()、{})的匹配括号处
删除命令
[x]:每按一次,删除光标所在位置的一个字符
[n+x]:删除 n 个字符。例如,[6x] 表示删除光标所在位置的 "后面(包含自己在内)"6 个字符
[dd]:删除光标所在行
[n+dd]:从光标所在行开始删除 n 行
[X]:大写的 X,每按一次,删除光标所在位置的 “前面” 一个字符
[n+X]:例如,[20X] 表示删除光标所在位置的 “前面” 20 个字符
复制命令
[yy]:复制光标所在行到缓冲区
[n+yy]:复制 n 行。例如,「6yy」表示拷贝从光标所在的该行 “往下数” 6 行文字。
[p]:将缓冲区内的字符贴到光标所在位置。注意:所有与 “y” 有关的复制命令都必须与 “p” 配合才能完成复制与粘贴功能。
[yw]:将光标所在之处到字尾的字符复制到缓冲区中。
[n+yw]:复制 n 个字到缓冲区 [Y]:复制光标所在行到缓冲区(等价于yy)
[P]:将缓冲区内的字符贴到光标所在行的上一行
[y$]:复制光标所在位置到当前行尾的内容
[y^]:复制光标所在位置到当前行首的内容
[v/V]:进入可视化选择模式(v为字符级选择,V为行级选择),选中后按y可复制选中内容
替换命令
[r]:替换光标所在处的字符。
[R]:批量替换。替换光标所到之处的字符,直到按下 [ESC] 键为止。 [~]:切换光标所在处字符的大小写
[gUw]:将光标所在的单词全部转换为大写
[guw]:将光标所在的单词全部转换为小写
撤销上一次操作命令
[u]:如果您误执行一个命令,可以马上按下 [u],回到上一个操作。按多次 “u” 可以执行多次回复。
[ctrl + r] :撤销的恢复 批量加 #注释:ctrl+v --> hjkl (选中注释列) --> shift+i --> # --> Esc(适用于 shell/Python 等)
批量取消 #注释:ctrl+v --> hjkl (选中 #列) --> d
批量注释指定行:命令模式按:,输入[n1,n2s/^/\/\//g](给 n1 到 n2 行加 // 注释)
批量取消指定行注释:命令模式按:,输入[n1,n2s/^\/\///g](取消 n1 到 n2 行的 // 注释)
跳至指定的行命令
[ctrl + g]:列出光标所在行的行号。
[n+G]:例如,[15G],表示移动光标至文章的第 15 行行首。 [ctrl + g]:列出光标所在行的行号、文件总行数及光标位置占比
更改命令
cw]:更改光标所在处的字到字尾处
[c+n+w]:例如,[c3w] 表示更改 3 个字 [cc]:删除光标所在行并进入插入模式[C]:删除光标所在位置到当前行尾的内容并进入插入模式[s]:删除光标所在处的字符并进入插入模式[S]:等价于cc,删除光标所在行并进入插入模式
其他实用命令
[.]:重复执行上一次的编辑命令
[J]:合并当前行与下一行(删除两行之间的换行符)
[ZZ]:保存当前文件并退出 vim(等价于:wq)
[ZQ]:强制退出 vim 且不保存修改(等价于:q!)
四、vim底行模式命令集
在使用底行模式之前,请记住先按[ESC]键确定您已经处于命令模式,再按[:]冒号即可进入底行模式。
列出行号
[set nu]:设置显示行号(新手编辑代码 / 文本必备)
[set nonu]:取消显示行号
查找字符
[/ + 关键字]:先按 [/] 键,再输入想找的字符,按 [n] 往后找下一个匹配的关键字,按 [N] 往前找
[? + 关键字]:先按 [?] 键,再输入想找的字符,按 [n] 往前找下一个匹配的关键字,按 [N] 往后找
[set hlsearch]:开启查找结果高亮显示
[set nohlsearch]:关闭查找结果高亮显示
[set ic]:查找时忽略大小写(比如搜 Name 和 name 都能匹配)
[set noic]:查找时区分大小写
保存文件
[w]:在冒号后输入 [w],保存当前文件的修改(只保存不退出)
[w!]:强制保存文件(适用于文件是只读权限的情况)
[w 新文件名]:将当前文件另存为新文件(比如 [w test_bak.txt],把内容存成 test_bak.txt)
[e!]:放弃当前所有修改,恢复文件到上次保存的状态
离开 vim
[q]:按 [q] 退出 vim,仅文件没修改时能退出
[q!]:在 [q] 后加 [!],强制退出 vim,放弃所有未保存的修改
[wq]:搭配 [w] 和 [q] 使用,保存修改后退出 vim(最常用)
[wq!]:强制保存并退出 vim(针对只读文件)
[x]:等价于 [wq],仅文件有修改时才保存并退出,更智能
执行系统命令(不退出 vim)
[!ls]、[!ll]、[!pwd]:在冒号后输入 [!+ 命令],直接执行系统命令(比如 [!ls] 看当前目录文件,[!pwd] 看当前路径)
[!gcc code.c -o hello]:不退出 vim,直接编译 C 代码(生成 hello 可执行文件)
[!./hello]:不退出 vim,直接执行编译好的可执行文件
[r !date]:将系统命令执行结果插入到光标所在行(比如 [r !date] 插入当前时间)
分屏操作
[vs + 文件名]:垂直分屏并打开指定文件(比如 [vs config.conf],分屏打开配置文件)
[sp + 文件名]:水平分屏并打开指定文件(比如 [sp test.txt],上下分屏)
[ctrl + ww]:分屏后,按 [ctrl+ww] 切换光标到另一个屏幕
[ctrl + w + 上下键]:水平分屏时,切换上下屏幕
[ctrl + w + 左右键]:垂直分屏时,切换左右屏幕
查找替换
[s / 旧内容 / 新内容]:替换当前行第一个匹配的旧内容为新内容(比如 [s/error/warning])
[s / 旧内容 / 新内容 /g]:替换当前行所有匹配的旧内容(g 表示全局)
[n1,n2s / 旧 / 新 /g]:替换 n1 到 n2 行所有匹配的内容(比如 [10,20s///g] 删除 10-20 行所有空格)
[% s / 旧 / 新 /g]:替换全文所有匹配的内容(最常用,比如 [% s/debug/info/g])
[% s / 旧 / 新 /gc]:全文替换但逐个确认(按 y 确认替换,n 跳过,c 表示确认)
[% s / 旧 / 新 /gi]:全文替换且忽略大小写(i 表示忽略大小写)
行操作(删除 / 复制 / 移动)
[n1,n2d]:删除 n1 到 n2 行(比如 [5,8d] 删除 5-8 行)
[n1,n2y]:复制 n1 到 n2 行(比如 [10,15y] 复制 10-15 行)
[n1,n2m n3]:将 n1 到 n2 行移动到 n3 行之后(比如 [3,5m 10] 把 3-5 行移到 10 行后)
[n]:跳转到第 n 行(比如 [100] 直接跳到第 100 行)
格式设置
[set ai]:开启自动缩进(编程时换行自动对齐)
[set noai]:关闭自动缩进
[set shiftwidth=4]:设置缩进宽度为 4 个字符(Python/Java 常用)
[set tabstop=4]:设置 Tab 键对应 4 个空格(避免 Tab 和空格混用)
[set list]:显示不可见字符(空格显示为・,换行显示为 $,排查格式问题)
多标签页操作
[tabnew 文件名]:新建标签页并打开指定文件(比如 [tabnew app.py])
[tabn]:切换到下一个标签页
[tabp]:切换到上一个标签页
[tabclose]:关闭当前标签页
帮助查询
[help + 命令]:查看指定命令的帮助文档(比如 [help w] 查看保存命令的说明)
总结
底行模式核心高频操作是保存退出(w/wq/q!)、全文替换(% s / 旧 / 新 /g [ci])、分屏 / 标签页(vs/sp/tabnew);
替换命令的 g(全局)、c(确认)、i(忽略大小写)可组合使用,适配不同替换场景;
执行系统命令加 [!] 前缀,插入命令结果用 [r!],无需退出 vim 就能完成多操作。
更多推荐
所有评论(0)