我最近在系统复习 Linux 基础,这次整理的是压缩解压、离线安装还有 Vim 编辑器。Vim 这块之前一直半懂不懂,这次终于把里面的细节搞明白了,顺便也踩了几个坑,比如压缩时忘记带 f 参数结果报错......下面把我的笔记和心得分给大家,希望能帮到同样在学 Linux 的同学。
一、压缩和解压缩
1.1 先了解背景
Linux 操作系统默认支持的压缩格式有 gzip 和 bzip2 ,但有个坑------这两种格式只能压缩单体文件 ,不支持打包,而且压缩后原文件会消失。所以在 Linux 里,我们一般先用 tar 命令打包 ,再用 gzip/bzip2 压缩。tar 就是用来"打包"的。
1.2 压缩
压缩的格式是:
text
tar zcvf 压缩包名.tar.gz 压缩原材料
参数说明:
- z :使用 gzip 压缩格式;如果用 bzip2,把
z换成j。 - c:创建压缩包(create)
- v:显示压缩过程(verbose)
- f :指定压缩包名,f 必须是最后一个参数,后面紧跟压缩包名称
💡 踩坑提醒:压缩包的后缀名系统不做强制要求,但为了以后自己知道是什么格式 ,建议按实际压缩格式命名,比如
.tar.gz或.tar.bz2。
实际命令示例:
shell
# gzip 格式
tar zcvf test2vim.tar.gz testdir test.txt
# bzip2 格式
tar jcvf test2vim.tar.bz2 testdir test.txt
1.3 解压缩
解压缩的格式:
text
tar zxvf 压缩包名.tar.gz # 直接解压到当前目录
参数 x 代表解压缩(extract)。示例如下:
shell
tar zxvf test2vim.tar.gz
如果想解压到指定目录,用 -C 参数:
shell
tar zxvf test2vim.tar.gz -C outdir
之前我老忘了加
-C,结果文件乱放,找半天。现在养成习惯,解压时先mkdir个目录再用-C。
二、离线安装(dpkg)
在 Linux 里离线安装 .deb 软件包用的是 dpkg 工具。
安装
shell
sudo dpkg -i 安装包名.deb
卸载
shell
sudo dpkg -r 软件名
注意卸载时用的是软件名 ,不是包名。比如 sudo dpkg -r vim,而不是 sudo dpkg -r vim.deb。
三、Vim 编辑器
Vim 是我学习 Linux 以来最大的一道坎。刚接触时完全懵了,怎么退出都不知道。现在总算搞清楚了它的三种工作模式,下面详细说说。
3.1 Vim 的三种工作模式
- 命令模式:进入 vim 后默认的模式。所有输入都被当作命令执行。
- 编辑模式:可以输入文本、写代码。
- 末行模式 :输入以
:开头的命令(如保存、退出、搜索替换)。

3.2 切换编辑模式
从命令模式进入编辑模式有很多方式,我常用的有:
| 按键 | 作用 |
|---|---|
i |
在光标前插入(首选) |
a |
在光标后插入 |
o |
在光标下一行插入(首选) |
I |
在光标所在行行首插入 |
A |
在光标所在行行尾插入 |
O |
在光标上一行插入 |
s |
删除光标选中的字符并进入编辑模式 |
S |
删除光标所在行的所有数据并进入编辑模式 |
我习惯用
i和o,尤其是写代码时,o直接新起一行非常方便。
3.3 保存和退出
- 命令模式 下:按
ZZ(大写)直接保存退出。 - 末行模式 下(按
:进入):w:保存q:退出q!:强制退出不保存x:保存退出(相当于wq)
3.4 光标移动
| 操作 | 效果 |
|---|---|
h j k l |
左下上右(熟练度要练到和 WASD 一样) |
G |
跳转到文件末行 |
gg |
跳转到文件首行 |
gg=G |
自动排版(缩进对齐) |
0 |
移动到本行行首 |
$ |
移动到本行行尾 |
NG |
跳转到第 N 行(如 50G 跳到第 50 行) |
:N 回车 |
末行模式跳转到第 N 行 |
3.5 复制粘贴
- 单行复制 :光标移到行上任意位置,按
yy复制,移动光标到目标行,按p向下粘贴,按P向上粘贴。 - 多行复制 :
Nyy,例如3yy复制光标所在行及以下 3 行。 - 片段复制 :
- 移动光标到要复制的首个字母,按
v进入可视模式 ,移动光标选中文字,按y复制,然后p/P粘贴。
- 移动光标到要复制的首个字母,按
- 复制一个单词 :光标移到单词首字母,按
yw,然后p/P粘贴。
3.6 撤销和反撤销
- 撤销 :命令模式下按
u - 反撤销 :
Ctrl + r
这个组合我记了好久,后来用多了就肌肉记忆了。
3.7 剪切、删除
Vim 中剪切后如果不粘贴,就是删除。操作和复制类似,只是把 y 换成 d。
- 单行剪切 :
dd,然后p/P粘贴。 - 多行剪切 :
Ndd,例如3dd剪切 3 行。 - 片段剪切 :可视模式下按
d。 - 剪切一个单词 :光标移到单词首字母,按
dw。 - 剪切光标至行首 :光标移动到起始位置,按
d0。 - 剪切光标至行尾 :光标移动到起始位置,按
D(大写的 D)。
3.8 查找和替换
查找
- 正向查找 :命令模式下按
/,输入关键词,回车,按n找下一个,N找上一个。找到文件末尾会循环。 - 逆向查找 :光标放在单词上,按
*向后查找,按#向前查找。
替换
- 单行替换 :末行模式下输入
:s/旧/新,只替换该行第一个匹配。如果替换该行所有匹配,加g::s/旧/新/g。 - 通篇替换 :
: %s/旧/新/g - 多行替换 :
起始行号,结束行号s/旧/新
例如将文件中的 printf 全部替换成 cout:
shell
:%s/printf/cout/g
3.9 分屏
Vim 可以分屏操作,特别适合对比文件或拷贝内容。
- 水平分屏 :
:sp(当前文件)或:sp 新文件名 - 垂直分屏 :
:vsp或:vsp 新文件名 - 切换分屏 :
Ctrl + w后按w(即Ctrl-w-w) - 退出分屏 :在某个窗口中执行
q或wq退出该窗口,wqall退出所有窗口。
我经常用
vsp同时打开两个文件,然后复制粘贴,非常高效。
四、Vim 配置
Vim 的配置主要在系统配置文件中,路径:/etc/vim/vimrc(系统级),或者自己在家目录下建 ~/.vimrc。每次启动 Vim 时都会执行这些配置。
下面是我整理的一份常用配置,可以直接复制到 .vimrc 里。注意:注释用双引号 " 开头。
shell
" -------------------------- 基础设置 --------------------------
set nocompatible " 关闭vi兼容模式,开启vim专属功能
filetype off " 先关闭文件类型检测
filetype plugin indent on " 开启文件类型检测、插件、缩进支持
syntax enable " 开启语法高亮
" -------------------------- 界面优化 --------------------------
set number " 显示行号
set relativenumber " 显示相对行号(可选jfka,不习惯可以删掉)
set cursorline " 高亮当前行
set showcmd " 右下角显示输入的命令
set showmode " 左下角显示当前模式(插入/命令/可视)
set laststatus=2 " 始终显示状态栏
set ruler " 右下角显示光标位置
set scrolloff=5 " 光标上下至少保留5行
set sidescrolloff=5 " 光标左右至少保留5列
set termguicolors " 开启真彩色(终端支持的话)
set background=dark " 背景设为深色(可选,看终端主题)
" -------------------------- 缩进与格式 --------------------------
set tabstop=4 " 一个tab显示为4个空格
set shiftwidth=4 " 自动缩进的宽度
set expandtab " 把tab自动替换为空格(可选,写Python建议开)
set autoindent " 自动缩进
set smartindent " 智能缩进(代码更规范)
set smarttab " 智能处理tab
set softtabstop=4 " 按退格键时删除4个空格
" -------------------------- 搜索优化 --------------------------
set hlsearch " 搜索结果高亮
set incsearch " 边输入边搜索
set ignorecase " 搜索不区分大小写
set smartcase " 搜索包含大写字母时自动区分大小写
" -------------------------- 编辑体验 --------------------------
set encoding=utf-8 " 文件编码设为utf-8
set fileencodings=utf-8,gbk " 支持打开gbk编码文件
set wrap " 自动换行
set linebreak " 不在单词中间换行
set clipboard=unnamedplus " 开启系统剪贴板支持(Linux/macOS用unnamedplus,Windows用unnamed)
set mouse=a " 开启鼠标支持(点击、滚轮、选中)
set backup " 开启备份(可选,建议开启防误删)
set writebackup " 写入前备份
set undofile " 开启持久化撤销(重启vim后仍可撤销)
set undodir=~/.vim/undo/ " 撤销文件保存路径(需要先mkdir ~/.vim/undo)
set backupdir=~/.vim/backup/ " 备份文件保存路径(需要先mkdir ~/.vim/backup)
set swapfile " 开启交换文件(防止崩溃丢失内容,建议开启)
set splitbelow " 水平分屏时新窗口在下方
set splitright " 垂直分屏时新窗口在右侧
" -------------------------- 快捷键映射 --------------------------
nnoremap <C-s> :w<CR> " 普通模式下Ctrl+s保存
nnoremap <C-q> :q<CR> " 普通模式下Ctrl+q退出
inoremap <C-s> <Esc>:w<CR>a " 插入模式下Ctrl+s保存并回到插入模式
nnoremap <C-h> <C-w>h " Ctrl+h切换到左分屏
nnoremap <C-j> <C-w>j " Ctrl+j切换到下分屏
nnoremap <C-k> <C-w>k " Ctrl+k切换到上分屏
nnoremap <C-l> <C-w>l " Ctrl+l切换到右分屏
这段配置我是从网上学来再自己修改的,特别推荐
set clipboard=unnamedplus,这样可以直接用系统剪贴板复制粘贴,省去了很多麻烦。
小结
这次 Linux 笔记主要记录了:
- tar 压缩解压 :注意参数顺序和
-C指定目录。 - dpkg 离线安装:简单但要注意软件名 vs 包名。
- Vim:三种模式、光标移动、复制剪切、查找替换、分屏,这些是日常使用最频繁的功能。
- Vim 配置:一份比较全面的配置,拿来即用,可以大幅提升编辑体验。
Vim 的学习曲线确实陡峭,但只要坚持用两天,就会觉得离不开了。我现在写代码、改配置文件都用 Vim,效率提升不少。如果大家有更好的配置或技巧,欢迎一起交流!