【Linux基础】Linux中的开发工具(1)--yum和vim

目录

  • ✈️前言
  • 一,Linux 软件包管理器 yum
    • 1. 什么是软件包
    • 2. 如何安装软件
    • 3. 如何卸载软件
  • 二,Linux编辑器-vim使用
    • 1. vim的基本概念
      • 1.1 命令/正常/普通模式
      • 1.2 插入模式
      • 1.3 底行模式
  • 三,vim命令模式命令集
    • 1. 移动光标
    • 2. 删除字符
    • 3. 复制
    • 4. 替换
    • 5. 撤销上一次操作
    • 6. 注释和去注释
    • 7. 跳至指定的行
    • 8. 更改
  • 四,vim底行模式命令集
    • 1. 列出行号
    • 2. 查找字符
    • 3. 保存文件
    • 4. 离开vim
    • 5. 不退出vim,对代码进行编译执行
    • 6. 分屏

点击跳转至文章: 【Linux基础】对Linux权限的理解与管理

✈️前言

前面我们已经介绍了Linux的基本指令和文件,目录权限的管理。本篇文件我们介绍Linux中的基础开发工具—yum与vim,重点是要熟练的使用vim的操作命令

一,Linux 软件包管理器 yum

在Linux中常见的软件安装方式有:yum/apt,rpm安装包安装,源码安装其中,centos默认是用yum,ubuntu默认是用apt

1. 什么是软件包

在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译, 得到可执行程序。

但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。

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

yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器。 主要应用在Fedora,RedHat,Centos等发行版上

2. 如何安装软件

通过 yum,我们可以通过很简单的一条命令完成 gcc 的安装

sudo yum install -y lrzsz

(1) yum 会自动找到都有哪些软件包需要下载
(2) -y 可以避免在下载安装过程中每次询问我们是否安装
(3) lrzsz这个工具用于windows机器和远端的 Linux 机器通过 XShell 传输文件,安装完毕之后可以通过拖拽的方式将文件上传过去

注意事项:

1、安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成
2、yum安装软件只能一个装完了再装另一个。正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错。
3、如果 yum 报错, 请自行百度

3. 如何卸载软件

仍然是一条命令:

sudo yum remove lrzsz

二,Linux编辑器-vim使用

1. vim的基本概念

vim是一个多模式的编辑器。我们目前使用vim能接触到的有五种模式:命令/正常/普通模式,插入模式,底行模式,visual block模式但是重点掌握前三种模式

1.1 命令/正常/普通模式

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式

1.2 插入模式

只有在插入模式下,才可以做文字输入,按「Esc」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式

1.3 底行模式

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作在命令模式下,shift+: 即可进入该模式要查看你的所有模式:打开vim,底行模式直接输入 :help vim-modes

五种模式的切换如下图:

在这里插入图片描述

(1) 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面

$ vim test.c

不过有一点要特别注意就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字

(2) [正常模式]切换至[插入模式]

输入a:是从光标当前位置开始输入文字。
输入i:光标所在位置的下一个位置开始输入文字。
输入o:是插入新的一行,从行首开始输入文字。

(3) [插入模式]切换至[正常模式]

目前处于[插入模式],就只能一直输入文字如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除

(4) [正常模式]切换至[底行模式]

「shift + ;」, 其实就是输入「:」

(5) 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「底行模式」,例如

: w (保存当前文件)
: wq (输入「wq」,存盘并退出vim)
: q! (输入q!,不存盘强制退出vim)

所以,在任何模式下想要回命令模式,直接无脑 [Esc]

三,vim命令模式命令集

1. 移动光标

  • vim可以直接用键盘上的按键来上下左右移动,但正规的vim是用小写英文字母 [h],[j],[k],[l],分别控制光标左,下,上,右移一格
  • [shift+g = G]:定位到文本的末尾
  • [n+shift+g]:定位到文本的第n行
  • [gg]:定位到文本的最开始
  • [$]:移动到光标所在行的"行尾"
    -[ ^]:移动到光标所在行的"行首"
  • [w]:以单词为单位,向后跳
  • [e] :以单词为单位,向前跳
  • [ctrl + b]:屏幕往"后"移动一页
  • [ctrl + f] :屏幕往"前"移动一页

2. 删除字符

  • [x]:每按一次,删除光标所在位置的一个字符
  • [n+x]:删除n个字符例如,[6x]表示删除光标所在位置的"后面(包含自己在内)"6个字符
  • [dd]:删除光标所在行
  • [n+dd]:从光标所在行开始删除n行
  • [X]:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  • [n+X]:例如,[20X]表示删除光标所在位置的“前面”20个字符

3. 复制

  • [yy]:复制光标所在行到缓冲区
  • [n+yy]:复制n行例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字
  • [p]:将缓冲区内的字符贴到光标所在位置注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
  • [yw]:将光标所在之处到字尾的字符复制到缓冲区中
  • [n+yw]:复制n个字到缓冲区

4. 替换

  • [r]:替换光标所在处的字符
  • [R]:批量替换。替换光标所到之处的字符,直到按下[ESC]键为止

5. 撤销上一次操作

  • [u]:如果您误执行一个命令,可以马上按下[u],回到上一个操作按多次“u”可以执行多次回复
  • [ctrl + r] :撤销的恢复

6. 注释和去注释

  • 注释:ctrl+v --> hjkl(光标定位) -->shift+i --> //(双斜杠) --> Esc
  • 去注释:ctrl+v --> hjkl --> d

7. 跳至指定的行

  • [ctrl + g]:列出光标所在行的行号
  • [n+G]:例如,[15G],表示移动光标至文章的第15行行首

8. 更改

  • [cw]:更改光标所在处的字到字尾处
  • [c+n+w]:例如,[c3w]表示更改3个字

四,vim底行模式命令集

在使用底行模式之前,请记住先按[ESC]键确定您已经处于命令模式,再按[:]冒号即可进入底行模式

1. 列出行号

  • [set nu/set nonu]:设置/取消行号

2. 查找字符

  • [ / + 关键字]: 先按 [/] 键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以==一直按 [n]==会往后寻找到您要的关键字为止。
  • [? + 关键字]:先按 [?] 键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 [n] 会往前寻找到您要的关键字为止。

3. 保存文件

  • [w]: 在冒号后输入字母[w]就可以将文件保存起来

4. 离开vim

  • [q]:按[q]就是退出,如果无法离开vim,可以在[q]后跟一个 [!] 强制离开vim

  • [wq]:一般建议离开时,搭配 [w] 一起使用,这样在退出的时候还可以保存文件

  • [!ls],[!ll],[!pwd]:直接跳回目录并执行该命令

5. 不退出vim,对代码进行编译执行

!gcc code.c -o hello.txt
! ./hello.txt

6. 分屏

  • [vs + 文件名]:在vim中分屏打开指定文件。看光标判断字在哪个文件里
  • [ctrl + ww]:分屏时光标跳到另一个屏幕

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JSONP跨域访问漏洞

目录 JSONP跨域访问漏洞 课程目标 一、漏洞一:利用回调GetCookie 二、漏洞二:利用CSRF获取数据 三、JSON攻击防御方案 课程目标 1、理解JSONP跨域访问漏洞原理 2、掌握JSONP跨域访问的防御方案 一、漏洞一:利用回调GetCookie 说变了…

跨平台无缝编辑,2024年免费视频剪辑工具全解析

在众多视频剪辑工具中,免费视频剪辑软件凭借其易用性、功能丰富性以及零成本的优势,赢得了广大用户的青睐。今天,就让我们一起盘点那些2024年大家都在用的免费视频剪辑软件,探索它们如何助力我们轻松实现创意梦想。 1.福昕视频剪…

基于Sringboot+Vue个人驾校预约管理系统--论文pf

TOC springboot503基于SringbootVue个人驾校预约管理系统--论文pf 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。…

多平台编译libexif

下载地址:https://github.com/libexif/libexif/releases 1. ubuntu x64 (银河麒麟系统aarch64步骤相同) # 解压 > tar -jxvf libexif-0.6.24.tar.bz2 > cd libexif-0.6.24 # 配置 > ./configure # 编译 > make # 安装 > mak…

openstack基本操作

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

Shell参考 - Linux Shell 训练营

出品方<Linux.cn & 阿里云开发者学堂> 一&#xff0c;Linux 可以划分为以下四个部分&#xff1a; 1. 应用软件 2. 窗口管理软件 Unity Gnome KDE 3. GNU 系统工具链 Software- GNU Project - Free Software Foundation 4. Linux 内核 二&#xff0c;什么是shell 1. L…

ArcGIS高/低聚类(Getis-Ord General G)——探究人口空间格局的20年变迁

先了解什么是莫兰指数高/低聚类莫兰指数&#xff1f; 高/低聚类 (Getis-Ord General G) 统计是一种用于检测空间数据中是否存在高值或低值聚类的统计方法&#xff0c;这种方法可以帮助我们理解数据点在空间上是否呈现某种聚集模式。 高/低聚类 (Getis-Ord General G) 和空间自…

centos系统配置转发和iptables使之成为网关

centos系统配置转发和iptables使之成为网关 在当下互联网环境中&#xff0c;有很多内网服务器不能出网&#xff0c;例如安装软件包&#xff0c;更新程序之类的&#xff0c;偶尔会需要出网&#xff0c;下面这种方式就是专门解决这个事情的。 如下配置在 centos 6 7 8 rocky 8 …

期权的集合竞价是什么?期权集合竞价时间分享

今天带你了解期权的集合竞价是什么&#xff1f;期权集合竞价时间分享。期权的集合竞价是指在交易日的特定时间段内&#xff0c;期权合约的买卖双方提交并匹配他们的买卖意愿&#xff0c;以确定期权的开盘价格。 期权的集合竞价是一种特定的交易机制&#xff0c;用于确定期权合…

位图与布隆过滤器 —— 海量数据处理

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 &#x1f680; 位图 一&#xff1a; &#x1f525; 位图概念 二&#xff1a; &#x1f525; 位图的实现思路及代码实现三&#xff1a; &#x1f525; 位图的应用四&#xff1a;…

文书智能助手

背景 司法、医疗等行业存在着大量的文书&#xff0c;一份文书或者卷宗少则几十页&#xff0c;多则几万页。在查看和检查这些文书时&#xff0c;会遇到大量的信息。当需要查询进一步的详细内容时&#xff0c;往往需要选择一下文字&#xff0c;然后再在各种系统中 查询详细的信息…

IDEA安装和使用(配图)

功能强大&#xff1a; 1、强大的整合能力&#xff0c;比如Git,Maven,Spring等 2、开箱即用&#xff08;集成版本控制系统&#xff0c;多语言支持的框架随时可用&#xff09; 3、符合人体工程学 1、高度智能 2、提示功能的快速&#xff0c;便捷&#xff0c;范围广 3、好用…

Nginx平滑升级与回滚示例

Nginx 的平滑升级和平滑回滚是确保 Web 服务高可用性的重要组成部分。这两种操作允许你在不中断服务的情况下更新或回滚 Nginx 的版本。 Nginx 平滑升级与回滚 Nginx 的平滑升级和平滑回滚是确保 Web 服务高可用性的重要组成部分。这两种操作允许你在不中断服务的情况下更新或…

Vue 生命周期详解含demo、面试常问问题案例

Vue 生命周期详解、面试常问问题案例 含 demo 文章目录 Vue 生命周期详解、面试常问问题案例 含 demo一、Vue 生命周期是什么二、Vue 中如何使用生命周期钩子1. **beforeCreate**2. **created**3. **beforeMount**4. **mounted**5. **beforeUpdate**6. **updated**7. **beforeD…

AIoTedge边缘计算平台V1.0版本发布

AIoTedge边缘计算平台V1.0&#xff0c;一款创新的AIoT解决方案&#xff0c;现已正式发布。该产品集成了NodeRED软网关、边缘物联网平台和边缘AI能力&#xff0c;为企业提供强大的边云协同能力。它支持设备管理和泛协议接入&#xff0c;确保不同设备间的无缝连接。AIoTedgeV1.0还…

Hexo通过GitHub设置自定义域名

本身GitHub也是支持自定义域名的&#xff0c;本次教程将讲解如何使用GitHub自带的自定义域名解析。 1. GitHub设置 1.1 登录GitHub账号 登录GitHub账号&#xff0c;找到名称为 用户名.github.io的仓库&#xff0c;并点击进入。 1.2 进入Settings页面 点击如图的Settings按…

https://developer.nvidia.com/cuda-toolkit-archive

CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive

一款免费的文件锁定占用解除工具,绿色免安装版

IObit Unlocker是一款由IObit公司开发的免费文件解锁工具&#xff0c;旨在解决用户在删除、重命名、移动或复制文件和文件夹时遇到的“无法删除”或“访问被拒绝”的问题。该软件体积小巧&#xff0c;不到3MB&#xff0c;非常易于使用&#xff0c;并且不需要安装&#xff0c;可…

代码随想录 day 49 单调栈

第十章 单调栈part02 42. 接雨水 接雨水这道题目是 面试中特别高频的一道题&#xff0c;也是单调栈 应用的题目&#xff0c;大家好好做做。 建议是掌握 双指针 和单调栈&#xff0c;因为在面试中 写出单调栈可能 有点难度&#xff0c;但双指针思路更直接一些。 在时间紧张的情…

volta引发的血案

什么是volta volta用于做项目级别的node版本控制&#xff0c;当手头上的项目有多个时&#xff0c;且node版本可能还不一样&#xff0c;我们需要不断切换node版本。使用volta可以很好的解决这个问题。只需要安装volta&#xff0c;然后在下面的package.json中配置好node版本即可…