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

news2024/9/28 23:05:43
头像
🚀个人主页:@小羊
🚀所属专栏: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.coloradmin.cn/o/2175048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++篇】启航——初识C++

引言 在编程语言的浩瀚海洋中&#xff0c;C以其强大的功能和灵活性脱颖而出。自1979年由Bjarne Stroustrup在贝尔实验室开发以来&#xff0c;C逐渐成为高性能应用和系统编程的首选语言。它不仅继承了C语言的高效特性&#xff0c;还引入了面向对象编程的概念&#xff0c;使得软…

9月28日

#ifndef WIDGET_H #define WIDGET_H //防止头文件重复包含#include <QWidget> #include<QIcon> #include<QDebug> #include<QPushButton> #include<QLabel> #include<QLineEdit>//ui_mywnd.h中的命名空间的声明 QT_BEGIN_NAMESPACE namesp…

多级侧边菜单(递归)

需要编写两个文件 aside-menu.vue 和 menu-item.vue menu-item.vue <script setup> defineOptions({name: MenuItem}) defineProps({menuList: Array}) </script><template><template v-for"menu of menuList"><!-- 如果当前有子菜单&a…

探索JMeterTools:一个Python驱动的JMeter脚本生成器

JMeterTools 简介 JMeterTools 是一个由 Python 编写的开源项目&#xff0c;旨在帮助测试人员快速生成 JMeter 测试脚本。通过简单的 Python API&#xff0c;用户可以方便地定义测试计划、线程组、HTTP 请求等&#xff0c;可以结合接口自动化测试项目&#xff0c;将接口自动化…

电子数据交换EDI 835 的处理

电子数据交换 (EDI) 835 电子数据交换 (EDI) 835 医疗保健索赔付款和汇款通知 电子数据交换 835 专注于交换医疗保健付款和福利信息。HIPAA 标准的更新版本 HIPAA 5010 指定了此交易集的格式、结构、数据字段和元素。医疗保险计划在与医疗保健提供者沟通以付款、提供福利…

如何快速降低文章重复率?试试芝士AI,智能降痕省时省力

论文查重的原理是连续出现13个字符类似就判断为重复部分&#xff0c;并将重复的内容计算到论文的重复率之中。 芝士AI官网&#xff1a;https://www.paperzz.cn/ 芝士AI论文查重系统会对内容进行分层处理&#xff0c;按照篇章&#xff0c;段落&#xff0c;句子等层级分别创建指…

江科大笔记——新建工程

STM32的开发方式 目前STM32的开发方式主要有基于寄存器的方式、基于标准库的方式&#xff08;库函数的方式&#xff09;、基于HAL库的方式&#xff1a; 基于库函数的方式是使用ST官方提供的封装好的函数&#xff0c;通过调用这些函数来间接地配置寄存器。基于HAL库的方式可以…

8000多道超全题库+高频题+大厂面试官原创题解+真实面经,绝对的求职秘密武器

正在找工作或者想要提升技术的程序员都可以去试试这款刷题神器【面试鸭】。你能想到的各种题目都被整理得明明白白&#xff0c;再也不用自己到处找七零八落的资料。8000多道超全题库高频题大厂面试官原创题解真实面经&#xff0c;绝对的求职秘密武器&#xff0c;扫码即可体验⬇…

数据结构:树、森林

二叉树与树结构差异 树&#xff08;一般树&#xff09;&#xff1a;树是一种数据结构&#xff0c;其中每个节点可以有任意数量的子节点&#xff08;除了根节点和叶子节点外&#xff09;。因此&#xff0c;一般树的节点在数组中的表示并不是那么直接&#xff0c;特别是当树不是完…

赵长鹏今日获释,下一步会做什么?币安透露2024年加密货币牛市的投资策略!

中国时间2024年9月28日&#xff0c;加密货币行业的风云人物赵长鹏&#xff08;Changpeng Zhao&#xff0c;简称CZ&#xff09;终于从监狱获释。他因在担任币安首席执行官期间未能有效执行反洗钱(AML)计划而被判刑四个月。赵长鹏的获释引发了广泛关注&#xff0c;不仅因为他是全…

一不小心,给腾讯云提了一个Bug

大家好&#xff0c;这里是程序员晚枫。 我使用腾讯的cos服务2年多了&#xff0c;一直都是在网页手动管理资源。 最近身边有高人”突发奇想“&#xff1a;要不自己封装一个专用的api&#xff1f;于是苦命打工人晚枫上线&#xff0c;吭哧吭哧把腾讯已经封装很好的Python SDK又包…

企业微信(企微)审批与影刀RPA结合

企业微信审批与影刀RPA结合 效果先看视频&#xff1a; 影刀与企业微信审批结合 具体步骤&#xff1a; 1、登录企微管理后台&#xff0c;新建一个审批流。 添加模板→自定义模板&#xff0c;根据需求添加审批节点。 添加完之后&#xff0c;回到审批界面&#xff0c;可以看…

Java新手指南:从菜鸟到编程大师的趣味之路-多态

这里是Themberfue 本章讲的是Java三大特性之一的多态&#xff0c;也是最后一个特性 多态概念 既然我们要学习多态&#xff0c;首先得知道这玩意儿到底是个什么东西&#xff1f; 通俗地说&#xff0c;多态其实就是多种形态。具体来说就是去完成某个行为&#xff0c;当不同的对象…

win11电脑长时间锁屏会变得非常卡(rundll.32过多)——解决方法

一、问题 当你长时间锁屏后&#xff0c;电脑会变得十分的卡&#xff0c;有些甚至会死机崩溃&#xff0c;这个时候你可能并不需要修改电源的计划设置&#xff0c;也可能并不需要修改电脑注册表之类的东西。 赶紧打开你的任务管理器&#xff0c;winx&#xff0c;选择任务管理器…

利士策分享,攀登职场高峰:成功者的十大特质

利士策分享&#xff0c;攀登职场高峰&#xff1a;成功者的十大特质 在职场这个竞争激烈的舞台上&#xff0c;那些能够迅速崛起、实现职业辉煌的佼佼者&#xff0c;往往凭借一系列独特且鲜明的特质脱颖而出。以下是对这些特质的深入探讨&#xff1a; 第一章&#xff1a;高情商的…

Elasticsearch学习笔记(1)

初识 Elasticsearch 认识和安装 Elasticsearch 是由 Elastic 公司开发的一套强大的搜索引擎技术&#xff0c;属于 Elastic 技术栈的一部分。完整的技术栈包括&#xff1a; Elasticsearch&#xff1a;用于数据存储、计算和搜索。Logstash/Beats&#xff1a;用于数据收集。Kib…

代码为笔,合作作墨,共绘共赢画卷———未来之窗行业应用跨平台架构

合作共赢&#xff0c;代码同创&#xff0c;成就非凡 一、资源整合方面 1.1. 技术资源共享 - 不同的合作伙伴可能在技术领域各有所长。例如&#xff0c;一方可能擅长前端用户界面设计&#xff0c;具有丰富的交互设计经验&#xff0c;能够打造出美观、易用的预订界面&#xff…

云舟观测:集成开源Grafana Faro构建前端页面性能监控平台

在当今互联网时代&#xff0c;面对纷乱繁杂的网上资源&#xff0c;用户的耐心和注意力是极为宝贵的资源&#xff0c;当用户访问一个网站或应用时&#xff0c;他们期望的是快速且无缝的体验&#xff0c;任何加载延迟或功能故障都可能导致用户流失&#xff0c;影响品牌体验。因此…

MySQL 中的 FOREIGN KEY 约束:确保数据完整性的关键

在 MySQL 数据库中&#xff0c;FOREIGN KEY&#xff08;外键&#xff09;约束是一种非常重要的机制&#xff0c;它可以帮助我们确保数据的完整性和一致性。那么&#xff0c;FOREIGN KEY 约束究竟是什么呢&#xff1f;让我们一起来深入了解一下。 一、什么是 FOREIGN KEY 约束&…

计算机毕业设计 招生宣传管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…