Linux 第六讲 --- 工具篇(一)yum/apt与vim
前言:
经过前五讲对Linux基础指令与权限系统的系统学习,相信你已经能在命令行中自如地穿梭于文件丛林,精准调配权限密钥。但真正的Linux玩家,绝不会止步于基础操作的重复劳作。
从今天起,我们将打开Linux的"瑞士军刀"套装——如果说基础命令是生存工具,那么包管理工具与文本编辑器则是工程师的生产力倍增器。yum/apt将赋予你一键部署软件生态的魔法,而vim这把双刃剑,在淬炼出指尖飞舞的编辑艺术后,将成为你征战代码战场最忠实的伙伴。准备好告别低效的软件安装方式,挣脱图形化编辑器的舒适区,这场效率革命,就从此刻开始。
目录
前言:
一、Linux软件包管理器 - yum/apt
1.1 Linux的几种安装方式
1.21 认识yum
1.3 yum/apt的使用
1.4 啥是yum源
1.41 Linux的软件生态
1.5Linux与Windows的文件交流
1.51rzsz软件
1.52 工具的安装
1.53 使用技巧
二、Linux文本编辑器 - vim
2.1vim的介绍
2.2vim的安装
2.3vim的模式介绍
2.4命令模式指令使用
2.41 移动光标
2.42 删除
2.43 复制
2.44 注释
2.45 其他常用命令
2.5底行模式指令
2.6 vim的配置
常见的配置项:
Vim 常用配置选项速查表
总结:
一、Linux软件包管理器 - yum/apt
1.1 Linux的几种安装方式
在Linux下安装软件的方法大概有以下三种:
1)下载到程序的源代码,自行进行编译,得到可执行程序。
2)获取rpm安装包,通过rpm命令进行安装。(未解决软件的依赖关系)
3)通过yum/apt进行安装软件。(常用)
前面的两种安装方式特别麻烦,且对新手来说容易出错
1.21 认识yum
yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
说白了,yum就是一个Linux下的一个软件商城。
1.3 yum/apt的使用
yum
主要使用发行版:Red Hat及其衍生版,如CentOS、Fedora(在Fedora 22及以后版本被DNF取代)
功能:YUM是一个基于RPM的包管理器,能够自动下载、安装、更新和删除软件包,同时处理依赖关系
常用命令:
- sudo yum install package_name:安装指定的软件包及其依赖项
- sudo yum groupinstall group_name:安装指定的软件包组
- sudo yum remove package_name:卸载指定的软件包,但保留其配置文件
- sudo yum check-update:检查所有可更新的软件包
- sudo yum update:更新所有已安装的软件包到最新版本
- sudo yum list:列出所有可安装和更新的软件包
- sudo yum search keyword:根据关键字搜索软件包
apt
主要使用发行版:Debian及其衍生版,如Ubuntu、Linux Mint等
功能:支持从软件仓库自动下载、安装、更新和卸载软件包,同时自动处理软件包之间的依赖关系
常用命令:
- sudo apt update:更新软件包列表,以便可以安装最新版本的软件包及其依赖项
- sudo apt install package_name:安装名为package_name的软件包及其依赖项
- sudo apt remove package_name:删除名为package_name的软件包,但保留其配置文件
- sudo apt purge package_name:删除名为package_name的软件包及其配置文件
- sudo apt upgrade:升级所有已安装的软件包到最新版本,同时解决依赖关系
- sudo apt autoremove:删除不再需要的软件包和依赖项
- sudo apt search <keyword>:在软件仓库中搜索包含指定关键字的软件包
- apt list --installed:列出所有已安装的软件包
注意事项:
1)安装软件时由于需要向系统目录中写入内容,一般需要sudo或者切换到root账户下才能完成。
2)yum安装软件只能一个装完了再装另一个,正在使用yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错。
1.4 啥是yum源
1.41 Linux的软件生态
我们知道,在手机/ipad/笔记本中,当我们想要下载一个软件的时候,我们会去应用商店,软件管家这些客户端app去下载,这些软件商城也是要在对应的操作系统中跑的,然后他们会通过网络与后面的服务器进行链接,从而获取到要下载的安装包等,而在linux中,yum就类似于这个应用商店,这个yum也是要在一个操作系统上跑的,比如centos。然后我们就可以去下载了
那么现在问题来了
- 操作系统怎么知道去哪里下载?
- 公司,个人组织出于什么目的,或者动机给我们提供给软件服务?
我们先来看第二个问题
其实这些给我们提供软件服务的都是一些职业程序员
这里就要谈到Linux的生态:开源
- 开源,是一种商业战略
- 开源,有时候也挺贵的
当我们对一个操作系统进行选型的时候,我们作为使用者要考虑的是生态是否是良好的。
站在OS的设计者和推动者,他们是提供者,它们要让更多的人使用它们的服务器,那就要使生态更加完善,让别人认为它的操作系统更好。
但是提供操作系统的人,他们不可能为爱发电,因为服务器都是要钱的。但是对于使用者而言,他们不希望这样的组织,社区倒闭,所以就会有一些大公司的捐助。有了捐助,操作系统才能更好的发展。
所以开源可以使得生态越来越好,这就像一种商业战略。开源,有时候也挺贵的意思就是我们虽然使用了它们免费的技术,但是我们也在无形中付出了代价。
我们再来看第一个问题
操作系统使用apt/yum的安装软件是不是需要找到一个又一个的软件包,而软件包肯定是存在某些特定的服务器上的。
所以我们的操作系统要去特定的服务器上下载对应的软件包,而一个独立的服务器是如何知道另外的服务器呢?那我们是不是需要一个地址找到对应服务器,所以在操作系统当中我们将这些地址称为yum源/软件源。
1.5Linux与Windows的文件交流
1.51rzsz软件
这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件
安装完毕之后可以通过拖拽的方式将文件上传过去
1.52 工具的安装
我们可以先来查看一下这款软件在我们的系统当中有没有。
yum list | grep lrzsz
这是在Ubuntu环境下的结果
如果没有可以安装一下
#CentOS
sudo yum install -y lrzsz
#ubuntu
sudo apt-get install lrzsz
1.53 使用技巧
sz指令
作用:sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。常用参数
- -a 以文本方式传输(ascii)
- -b 以二进制方式传输(binary)
- -e 对控制字符转义(escape),这可以保证文件传输正确。
如果能够确定所传输的文件是文本格式的,使用 sz -a files。
如果是二进制文件,使用 sz -be files
rz指令
作用:从本地电脑上传文件到Linux服务器,可以使用该命令。
- -b 以二进制方式,默认为文本方式。
- -e 对所有控制字符转义。
如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用:
rz -be
此命令执行时,会弹出文件选择对话框,选择好需要上传的文件之后,点确定,就可以开始上传的过程了。上传的速度取决于当时网络的状况。
二、Linux文本编辑器 - vim
2.1vim的介绍
vim是一个多模式的文本编辑器,在我们做开发的时候,解决我们编写代码的问题。
它有很多的模式,不过我们暂时先只考虑这四种模式
- 命令模式
- 插入模式
- 底行模式
- 替换模式
2.2vim的安装
如果你的服务器上没有安装vim,可以按照上面的安装方法安装一下。
查看是否安装了vim
安装vim
#Ubuntu
1 sudo apt install vim
#CentOS
2 sudo yum install -y vim
2.3vim的模式介绍
我们这里主要介绍vim最常用的三种模式和一种好用的模式:命令模式、插入模式、底行模式以及替换模式。
1、命令模式
在命令模式下,我们可以控制屏幕光标的移动,字符、字或行的删除,复制粘贴,剪贴等操作。在我们刚进入vim的时候,就是命令模式。
2、插入模式
只有在插入模式下才能进行文字输入,该模式是我们使用最频繁的编辑模式。要进入插入模式,你可以从命令模式开始,然后使用i(在当前光标位置插入)、a(在当前光标位置的下一个字符开始插入)、o(在当前光标所在行的下一行开始新行并插入)等命令之一
3、底行模式
在底行模式下,我们可以将文件保存或退出,也可以进行查找字符串等操作。在底行模式下我们还可以直接输入vim help-modes查看当前vim的所有模式。在命令行模式下,你可以输入以冒号(:)开头的命令。要从普通模式进入命令行模式,只需输入冒号(:)即可。执行完命令后,Vim通常会返回到普通模式
4、替换模式
在替换模式下,我们的输入字符会直接替换掉光标所在位置的字符。
要进入插入模式,你可以从命令模式开始,然后使用r即可。
注意:
1.一般插入模式和底行模式是不能互相直接进入的,一般都要经过命令模式来跳转。
2.如果不清楚当前在哪种模式下,无脑ESC进入普通模式就行。
2.4命令模式指令使用
2.41 移动光标
- vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母h,j,k,l,分别控制光标左、下、上、右移一格
- G:移动到文章的最后、
- #G:移动到第#行
- gg:进入到文本开始
- $ :移动到光标所在行的“行尾”
- ^:移动到光标所在行的“行首”
- w:光标跳到下个字的开头
- e:光标跳到下个字的字尾
- b:光标回到上个字的开头
- n+l:光标移到该行的第n个位置
- ctrl+b:屏幕往“后”移动一页
- ctrl+f:屏幕往“前”移动一页
- ctrl+u:屏幕往“后”移动半页
- ctrl+d:屏幕往“前”移动半页
2.42 删除
- x:每按一次,删除光标所在位置的一个字符
- n+x:例如,6x表示删除光标所在位置的“后面(包含自己在内)”6个字符
- X:大写的X,每按一次,删除光标所在位置的“前面”一个字符
- n+X:例如,20 X表示删除光标所在位置的“前面”20个字符
- dd:删除光标所在行
- n+dd:从光标所在行开始删除n行
2.43 复制
-
y+w:将光标所在之处到字尾的字符复制到缓冲区中
-
n+y+w:复制#个字到缓冲区
-
yy:复制光标所在行到缓冲区
-
n+yy:例如,6yy表示拷贝从光标所在的该行“往下数”6行文字
-
p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
-
n+p:复制n次
2.44 注释
- 注释指定行
- 在命令模式下,先将光标移动到需要注释的开始,按Ctrl + v,在用上下键(通常用j、k)调整需要注释的所有行(如果需要注释的行太多也可以配合#G快速移动光标),输入I(大写i),输入注释符//,最后快速按ESC两次。
- 取消指定行的注释
- 在命令模式下,先将光标移动到需要取消注释的开始,按Ctrl + v,再配合j、l键选中需要取消的注释符,按d就删除了选中的注释符。
2.45 其他常用命令
u : 撤销之前的操作
ctrl + r : 撤销之前的撤销
shift + ~ : 大小写转换
(n)r : 对光标字符开始的n个字符进行批量化替换,替换为新输入的字符,n默认为1
2.5底行模式指令
在使用底行模式之前,请记住先按「ESC」键确定您已经处于命令模式,再按“shift+;”即可进入底行模式。
注意:底行指令的执行,必须在底行模式下,以“:”开头
1.列出行号
「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号
2.跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行
3.查找字符
「/ 关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止
「? 关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止
4.保存文件
「w」: 在冒号输入字母「w」就可以将文件保存起来
5.离开vim
「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件
6.执行外部命令后返回vim
在 Vim 的底行模式中,! 符号有一个特殊的作用,它允许你执行外部命令。当你以 ! 开头输入一个命令时,Vim 会退出到 shell 环境中执行这个命令,并在命令执行完毕后返回到 Vim(最常见的是与man手册使用)。这个功能允许你直接从 Vim 内部调用系统命令,比如查看文件、搜索文本、编译程序等
7.分屏
在底行模式下输入:vs文件名,Vim 会在当前窗口的右侧(或左侧,取决于你的 Vim 配置和当前分屏情况)垂直地打开一个新窗口,并尝试加载指定的文件名
Ctrl+w :在分屏之间切换光标
wq:保存并退出当前分屏
2.6 vim的配置
Vim的基础配置主要涉及对其配置文件.vimrc的编辑,以实现对Vim编辑器的个性化设置。
在目录/etc/vim/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。但是一般不推荐直接对所有的用户一起配置,最好是在个人账号下配置。
在Linux系统中,Vim的配置文件通常位于用户的家目录下,文件名为.vimrc。使用命令vim ~/.vimrc打开(或创建).vimrc文件进行编辑,因为这里配置的文件位于用户的家目录下,所以只对当前用户有效。
进入插入模式(按i键),在.vimrc文件中添加所需的配置选项
设置完成后,按下Esc键退出插入模式,然后输入:wq(表示保存并退出)并回车,以保存对.vimrc文件的更改
常见的配置项:
Vim 常用配置选项速查表
类别 | 配置项 | 命令/示例 | 说明 |
---|---|---|---|
基础设置 | 显示行号 | set number | 显示绝对行号 |
相对行号 | set relativenumber | 显示相对行号(便于跳转) | |
语法高亮 | syntax enable | 启用语法高亮 | |
文件类型检测 | filetype plugin indent on | 根据文件类型加载插件和缩进规则 | |
搜索与替换 | 高亮搜索结果 | set hlsearch | 高亮所有匹配项 |
实时搜索 | set incsearch | 输入时实时显示匹配结果 | |
智能大小写 | set ignorecase set smartcase | 搜索默认忽略大小写,含大写时区分 | |
缩进与制表符 | 自动缩进 | set autoindent set smartindent | 继承上一行缩进,支持智能缩进(如代码块) |
Tab 转空格 | set expandtab | 将 Tab 转换为空格 | |
缩进宽度 | set tabstop=4 set shiftwidth=4 | Tab 显示为4空格,自动缩进用4空格 | |
界面优化 | 高亮当前行/列 | set cursorline set cursorcolumn | 高亮光标所在行或列 |
滚动边界 | set scrolloff=5 | 滚动时保留上下5行上下文 | |
状态栏显示 | set laststatus=2 set ruler | 始终显示状态栏及光标位置(行:列) | |
鼠标支持 | set mouse=a | 启用鼠标操作(滚动、选择等) | |
文件与编码 | 默认编码 | set encoding=utf-8 | 设置默认编码为 UTF-8 |
禁用备份文件 | set nobackup set noswapfile | 不生成备份文件(如 file~ 或 .swp ) | |
快捷键映射 | 自定义 Leader 键 | let mapleader = "," | 将 Leader 键设为逗号 |
快速保存/退出 | nnoremap <Leader>w :w<CR> nnoremap <Leader>q :q<CR> | 按 ,w 保存,,q 退出 | |
分屏操作 | nnoremap <Leader>v :vsplit<CR> nnoremap <Leader>s :split<CR> | 垂直/水平分屏 | |
插件管理 | Vim-Plug 插件管理器 | call plug#begin('~/.vim/plugged') Plug 'preservim/nerdtree' call plug#end() | 插件安装示例(运行 :PlugInstall 安装) |
主题与外观 | 颜色主题 | colorscheme desert | 使用 desert 主题 |
真彩色支持 | set termguicolors | 启用终端真彩色(需终端支持) |
懒人配置:
大家直接到gitee,搜索“Vim ForCpp”上面有专门针对Centos7的懒人配置方案,很简单。
总结:
通过本讲对yum/apt
与vim
的探索,我们撕开了Linux高效运维的第一层帷幕——工具的本质是思维的延伸。
记住,工具的价值不在其本身,而在与如何被人类使用。下一站,我们将深入更多核心工具(如gcc/g++,make),继续用代码编织Linux的无限可能。我们下期见。