记录我自己零开始学习Linux。
目录
[一、Linux 软件包管理器 yum](#一、Linux 软件包管理器 yum)
[1. 什么是软件包](#1. 什么是软件包)
[2. 如何安装软件](#2. 如何安装软件)
[3. 如何卸载软件](#3. 如何卸载软件)
[1. vim 的核心模式](#1. vim 的核心模式)
[2. vim 基础使用流程(从打开到保存退出)](#2. vim 基础使用流程(从打开到保存退出))
[3. 高频实用操作(普通模式下)](#3. 高频实用操作(普通模式下))
[4. 实用小技巧](#4. 实用小技巧)
[离开 vim](#离开 vim)
[执行系统命令(不退出 vim)](#执行系统命令(不退出 vim))
前言
前面我们已经学习了 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 的效率核心,记住这些快捷键能大幅提升编辑速度:
- 光标移动(不用方向键,更高效)
基础移动:k(上)、j(下)、h(左)、l(右)
行级移动:0(行首)、$(行尾)
文档级移动:gg(文档开头)、G(文档结尾)、数字+G(跳指定行,如10G跳第 10 行)
翻页:Ctrl+f(下翻一页)、Ctrl+b(上翻一页)- 文本编辑(复制 / 删除 / 撤销)
删除:
x:删除光标所在字符
dd:删除整行(最常用)
3dd:删除光标开始的 3 行(n+dd 删除 n 行)
d$:删除光标到行尾的内容
复制粘贴:
yy:复制整行(最常用)
5yy:复制光标开始的 5 行(n+yy 复制 n 行)
p:粘贴到光标下一行,P(大写)粘贴到光标上一行
撤销 / 重做:
u:撤销上一步操作
Ctrl+r:重做被撤销的操作- 查找替换(命令行模式)
查找:/关键词(如/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 就能完成多操作。