【Linux】包管理器、vim详解及简单配置

头像
🚀个人主页:@小羊
🚀所属专栏:Linux
很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

动图描述

目录

  • 前言
  • 一、包管理器
    • 1.1 apt
    • 1.2 yum
  • 二、Linux编辑器——vim
    • 2.1 vim的三种模式
    • 2.2 vim普通模式常用命令
      • 2.2.1 移动光标
      • 2.2.2 删除
      • 2.2.3 复制
      • 2.2.4 注释
      • 2.2.5 其他常用命令
    • 2.3 vim命令行模式常用命令
  • 三、配置vim


前言


一、包管理器

包管理器(Package Manager)是一种软件工具,它自动化了安装、更新、配置、移除和管理计算机程序库中软件包的过程。在操作系统和软件开发的上下文中,包管理器使得用户能够轻松管理各种软件包,包括它们的依赖关系、版本和配置,而无需手动处理复杂的安装和更新过程。这里只简单介绍两种常见的包管理器。

软件包和包管理器, 就好比 “App” 和 “应用商店” 这样的关系。

安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成。

1.1 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.2 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:根据关键字搜索软件包

二、Linux编辑器——vim

vim是一个多模式的编辑器,最常用的有三种模式。

2.1 vim的三种模式

  • 普通模式
    这是Vim的默认模式,也是用户最常使用的模式。在普通模式下,几乎所有的按键都用来执行命令,而不是直接输入文本。这包括移动光标、删除文本、复制粘贴、搜索替换等操作。要进入普通模式,如果你当前不在此模式下,只需按Esc键即可
  • 插入模式
    在插入模式下,Vim的行为类似于大多数其他文本编辑器,即你输入的任何字符都会被直接插入到文本中。要进入插入模式,你可以从普通模式开始,然后使用i(在当前光标位置插入)、a(在当前光标位置的下一个字符开始插入)、o(在当前光标所在行的下一行开始新行并插入)等命令之一
  • 命令行模式
    命令行模式不是Vim中最常用的模式,但它非常强大,允许你执行更复杂的命令,如搜索替换、保存文件、退出Vim等。在命令行模式下,你可以输入以冒号(:)开头的命令。要从普通模式进入命令行模式,只需输入冒号(:)即可。执行完命令后,Vim通常会返回到普通模式
    • :help vim-modes:查看当前vim的所有模式

在这里插入图片描述

注意: 一般插入模式和命令行模式是不能互相直接进入的,一般都要经过普通模式来跳转。

如果不清楚当前在哪种模式下,无脑ESC进入普通模式就行。


2.2 vim普通模式常用命令

2.2.1 移动光标

  1. vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母h,j,k,l,分别控制光标左、下、上、右移一格
  2. G:移动到文章的最后、
  3. #G:移动到第#行
  4. gg:进入到文本开始
  5. $ :移动到光标所在行的“行尾”
  6. ^:移动到光标所在行的“行首”
  7. w:光标跳到下个字的开头
  8. e:光标跳到下个字的字尾
  9. b:光标回到上个字的开头
  10. n+l:光标移到该行的第n个位置
  11. ctrl+b:屏幕往“后”移动一页
  12. ctrl+f:屏幕往“前”移动一页
  13. ctrl+u:屏幕往“后”移动半页
  14. ctrl+d:屏幕往“前”移动半页

2.2.2 删除

  1. x:每按一次,删除光标所在位置的一个字符
  2. #x:例如,6x表示删除光标所在位置的“后面(包含自己在内)”6个字符
  3. X:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  4. #X:例如,20X表示删除光标所在位置的“前面”20个字符
  5. dd:删除光标所在行
  6. #dd:从光标所在行开始删除#行

2.2.3 复制

  1. yw:将光标所在之处到字尾的字符复制到缓冲区中
  2. #yw:复制#个字到缓冲区
  3. yy:复制光标所在行到缓冲区
  4. #yy:例如,6yy表示拷贝从光标所在的该行“往下数”6行文字
  5. p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
  6. #p:复制#次

2.2.4 注释

  • 注释指定行
    在普通模式下,先将光标移动到需要注释的开始,按Ctrl + v,在用上下键(通常用j、k)调整需要注释的所有行(如果需要注释的行太多也可以配合#G快速移动光标),输入I(大写i),输入注释符//,最后快速按ESC两次。

  • 取消指定行的注释
    在普通模式下,先将光标移动到需要取消注释的开始,按Ctrl + v,再配合j、l键选中需要取消的注释符,按d就删除了选中的注释符。


2.2.5 其他常用命令

  1. r:替换光标所在处的字符
  2. u:回到上一个操作,可执行多次
  3. Ctrl + r:u操作的恢复
  4. shift + ~:光标所在字符大小写切换
  5. shift + r:进入替换模式

2.3 vim命令行模式常用命令

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按:冒号即可进入末行模式。

  • 列出行号
    「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号

  • 跳到文件中的某一行
    「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行

  • 查找字符

    • 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止
    • 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止
  • 保存文件
    「w」: 在冒号输入字母「w」就可以将文件保存起来

  • 离开vim

    • 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim
    • 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件
  • 执行外部命令后返回vim
    在 Vim 的底行模式中,! 符号有一个特殊的作用,它允许你执行外部命令。当你以 ! 开头输入一个命令时,Vim 会退出到 shell 环境中执行这个命令,并在命令执行完毕后返回到 Vim。这个功能允许你直接从 Vim 内部调用系统命令,比如查看文件、搜索文本、编译程序等

  • 分屏

    • 在底行模式下输入:vs文件名,Vim 会在当前窗口的右侧(或左侧,取决于你的 Vim 配置和当前分屏情况)垂直地打开一个新窗口,并尝试加载指定的文件名
    • Ctrl+w w:在分屏之间切换光标
    • :wq:保存并退出当前分屏

三、配置vim

Vim的基础配置主要涉及对其配置文件.vimrc的编辑,以实现对Vim编辑器的个性化设置。

  • 在目录/etc/vim/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效
  • 在Linux系统中,Vim的配置文件通常位于用户的家目录下,文件名为.vimrc。使用命令vim ~/.vimrc打开(或创建).vimrc文件进行编辑
  • 因为这里配置的文件位于用户的家目录下,所以只对当前用户有效
  • 进入插入模式(按i键),在.vimrc文件中添加所需的配置选项
  • 设置完成后,按下Esc键退出插入模式,然后输入:wq(表示保存并退出)并回车,以保存对.vimrc文件的更改

| vim常用功能:

可以直接复制粘贴到 ~/.vimrc 中,保存退出直接生效。

syntax on               " Set syntax highlighting
set number              " Set the line number
set tabstop=4           " Set an indent to account for 4 spaces
set autoindent          " Set up automatic indentation
set mouse=a             " Set mouse is always available, set mouse= (empty) cancel
set cc=80               " Column 80 highlighted, set cc=0 cancellation
set cursorline          " Settings to highlight the current row
set cindent             " Format C language
set st=4                " Set the width of the soft tab to 4 spaces
set shiftwidth=4        " The width automatically indented when setting a new line is 4 spaces
set sts=4               " Set the number of spaces inserted when the Tab key is pressed in insertion mode to 4
set ruler               " Show the status of the last line
set showmode            " The status of this row is displayed in the lower left corner.
set bg=dark             " Show different background tones
set hlsearch            " Enable Search Highlight
set laststatus=2        " Always display the status bar
  1. syntax on : 设置语法高亮
  2. set number : 设置行号
  3. set tabstop=4 : 设置一个缩进,考虑到4个空格
  4. set autoindent : 设置自动缩进
  5. set mouse=a : 设置鼠标总是可用,设置鼠标=(空)取消
  6. set cc=80 : 列80已突出显示,设置cc=0取消
  7. set cursorline : 设置以突出当前行
  8. set cindent : 格式化 C 语言
  9. set st=4 : 将软制表符的宽度设为4个空格
  10. set shiftwidth=4 : 设置新行时自动缩进的宽度是4个空格
  11. set sts=4 : 在插入模式下,按下 Tab 键时插入的空格数设置为 4
  12. set ruler : 显示光标当前位置的行号和列号
  13. set showmode : 显示当前Vim的工作模式在屏幕的左下角
  14. set bg=dark : 设置编辑器的背景色为深色
  15. set hlsearch : 启用搜索高亮功能,使得进行搜索时匹配的文本被高亮显示
  16. set laststatus=2 : 总是显示状态栏

另外vim中默认是不支持成对符号自动补全的,这个也可以配置,不过我一般是不喜欢自动补全的,这个看个人喜好:

inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap < <><ESC>i
inoremap { {<CR>}<ESC>O

其中大括号除了将光标移入括号内,还会另起一行并缩进。


本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

头像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/438007.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++复习】C++11经典语法

文章目录 {}列表初始化1. 初始化内置类型变量2. 初始化数组3. 初始化标准容器4. 初始化自定义类型5. 构造函数初始化列表6. 初始化列表&#xff08;initializer_list&#xff09;7. 返回值初始化8. 静态成员变量和全局变量的就地初始化9. 防止类型收窄总结 decltype右值引用完美…

使用Pytorch构建自定义层并在模型中使用

使用Pytorch构建自定义层并在模型中使用 继承自nn.Module类&#xff0c;自定义名称为NoisyLinear的线性层&#xff0c;并在新模型定义过程中使用该自定义层。完整代码可以在jupyter nbviewer中在线访问。 import torch import torch.nn as nn from torch.utils.data import T…

IP 数据包分包组包

为什么要分包 由于数据链路层MTU的限制,对于较⼤的IP数据包要进⾏分包. 什么是MTU MTU相当于发快递时对包裹尺⼨的限制.这个限制是不同的数据链路对应的物理层,产⽣的限制. • 以太⽹帧中的数据⻓度规定最⼩46字节,最⼤1500字节,ARP数据包的⻓度不够46字节,要在后⾯补填 充…

IDEA在git提交时添加忽略文件

在IntelliJ IDEA中&#xff0c;要忽略target目录下所有文件的Git提交&#xff0c;你可以通过设置.gitignore文件来实现。以下是步骤和示例代码&#xff1a; 1、打开项目根目录下的.gitignore文件。也可以先下载这个.ignore插件。 2、如果不存在&#xff0c;利用上面的插件新建…

Stable Diffusion绘画 | 来训练属于自己的模型:炼丹参数调整--步数设置与计算

要想训练一个优质的模型&#xff0c;一定要认识和了解模型训练中&#xff0c;参数的作用和意义。 整个模型训练的过程&#xff0c;参数并不是一成不变的&#xff0c;也没有固定的模板&#xff0c; 当我们修改了模型训练里面的某个参数&#xff0c;很可能就需要连带其他一系列…

五.运输层

目录 5.1概述 5.2传输层的寻址与端口 熟知端口号 套接字(Socket) 5.3 UDP 特点 UDP报文格式 UDP校验 二进制反码求和 5.4 TCP 特点 可靠传输 停止等待协议 流水线方式 累计应答 流量控制 滑动窗口 拥塞控制 三次握手&#xff0c;四次握手 5.1概述 只有主机…

首屏优化之:SSR(服务端渲染)

引言 今天我们来聊一下首屏优化之SSR-服务端渲染&#xff08;Server-Side Rendering&#xff09;。 可能很多朋友并不了解什么是 SSR&#xff0c;包括在工作中写的网站是什么类型的也不太清楚&#xff0c;是 CSR 还是 SSR&#xff1f;作者在阅读过大量的文章之后&#xff0c;…

MySQL进阶篇 - 存储引擎

01 MySQL体系结构 【1】索引是在存储引擎层实现的&#xff0c;不同的存储引擎&#xff0c;索引的结构是不一样的。 【2】InnoDB引擎是MySQL5.5版本之后默认的存储引擎。 【3】MySQL体系结构分为客户端和服务器&#xff0c;服务器又分为4个层次。 02 存储引擎简介 【1】引擎…

C--编译和链接见解

欢迎各位看官&#xff01;如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论 感谢各位看官的支持&#xff01;&#xff01;&#xff01; 一&#xff1a;翻译环境和运行环境 在ANSIIC的任何一种实现中&#xff0c;存在两个不同的环境1&#xff0c;…

BugReport中的App Processor wakeup字段意义

一、功耗字段意义&#xff1a; App processor wakeup:Netd基于xt_idletimer 待机下监视网络设备的收发工作状态&#xff0c;即当设备发生联网从休眠态变成为唤醒态时&#xff0c;会记录打醒者的uid(uid大于0)和网络类型(wifi或数据类型)、时间戳 实际日志&#xff1a;我们在B…

【Streamlit案例】制作销售数据可视化看板

目录 一、案例效果 二、数据分析 三、加载数据 四、网站前端 &#xff08;一&#xff09;网页标题和图标 &#xff08;二&#xff09;侧边栏和多选框 &#xff08;三&#xff09;主页面信息 ​&#xff08;四&#xff09;主页面图表 &#xff08;五&#xff09;隐藏部…

微信小程序操作蓝牙

主要流程&#xff1a; 1.初始化蓝牙适配器openBluetoothAdapter&#xff0c;如果不成功就onBluetoothAdapterStateChange监听蓝牙适配器状态变化事件 2.startBluetoothDevicesDiscovery开始搜寻附近的蓝牙外围设备 3.onBluetoothDeviceFound监听寻找到新设备的事件&#xff0c;…

用Python+flask+mysql等开发的Excel数据资产落地工具

话不多说 1)Excel文件上传,列表预览 2)选中要导入结构及数据的Excel文件 约束说明: 2.1)Excel文件的第一行约定为表头名称 2.2)系统自动识别字段列名及数据类型,目前不支持合并表头 3)Excel建表导入数据成功后,可在表源列表中预览查看 4)对数据表源可进行透视图设计管理,可对…

可以无限次使用o1-mini和o1-preview模型API接口的方法,并且比便宜便宜7倍以上

打开网站 https://open.xiaojingai.com 然后点击令牌页面&#xff0c;生成令牌&#xff0c;令牌就是api-key

Hive数仓操作(一)

Hive 介绍 Hive 是一个基于 Hadoop 的数据仓库工具&#xff0c;旨在简化大规模数据集的管理和分析。它将结构化数据文件映射为表&#xff0c;并提供类似 SQL 的查询功能。Hive 的数据存储在 Hadoop 分布式文件系统&#xff08;HDFS&#xff09;中&#xff0c;使用 Hive 查询语…

12.梯度下降法的具体解析——举足轻重的模型优化算法

引言 梯度下降法(Gradient Descent)是一种广泛应用于机器学习领域的基本优化算法&#xff0c;它通过迭代地调整模型参数&#xff0c;最小化损失函数以求得到模型最优解。 通过阅读本篇博客&#xff0c;你可以&#xff1a; 1.知晓梯度下降法的具体流程 2.掌握不同梯度下降法…

数据仓库简介(一)

数据仓库概述 1. 什么是数据仓库&#xff1f; 数据仓库&#xff08;Data Warehouse&#xff0c;简称 DW&#xff09;是由 Bill Inmon 于 1990 年提出的一种用于数据分析和挖掘的系统。它的主要目标是通过分析和挖掘数据&#xff0c;为不同层级的决策提供支持&#xff0c;构成…

云服务架构与华为云架构

目录 1.云服务架构是什么&#xff1f; 1.1 云服务模型 1.2 云部署模型 1.3 云服务架构的组件 1.4 云服务架构模式 1.5 关键设计考虑 1.6 优势 1.7 常见的云服务架构实践 2.华为云架构 2.1 华为云服务模型 2.2 华为云部署模型 2.3 华为云服务架构的核心组件 2.4 华…

【C++】STL标准模板库容器set

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;关联式容器set(集合)简介 &#x1f4cc;set(集合)的使用 &#x1f38f;set(集合)的模板参数列表 &#x1f38f;set(集合)的构造函数 &#x1f38f;set(集合)的迭代…

翔云 OCR:发票识别与验真

在数字化时代&#xff0c;高效处理大量文档和数据成为企业和个人的迫切需求。翔云 OCR 作为一款强大的光学字符识别工具&#xff0c;在发票识别及验真方面表现出色&#xff0c;为我们带来了极大的便利。 一、翔云 OCR 简介 翔云 OCR 是一款基于先进的人工智能技术开发的文字识别…