Linux速览(2)——环境基础开发工具篇(其一)

本章我们来介绍一些linux的常用工具

目录

一. Linux 软件包管理器 yum

1.什么是软件包?

2. 查看软件包

3. 如何安装软件

4. 如何卸载软件

5.yum补充

6. 关于 rzsz

二. Linux编辑器-vim使用

 1. vim的基本概念

2. vim的基本操作

3. vim正常模式命令集

4. vim末行模式命令集

5. vim操作总结

6. 简单vim配置

7.补充


一. Linux 软件包管理器 yum

1.什么是软件包?

        (1)在Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 ,但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好 , 做成软件包 ( 可以理解成 windows 上的安装程序)放在一个服务器上 , 通过包管理器可以很方便的获取到这个编译好的软件包 , 直接进行安装。
        (2)软件包和软件包管理器, 就好比 "App" " 应用商店 " 这样的关系 .
        (3)yum(Yellow dog Updater, Modified)是 Linux 下非常常用的一种包管理器 . 主要应用在 Fedora, RedHat, Centos等发行版上 .
注意事项:
        (1)关于 yum 的所有操作必须保证主机 ( 虚拟机 ) 网络畅通 !!!
        (2)可以通过 ping 指令验证
ping www.baidu.com

2. 查看软件包

        通过 yum list 命令可以罗列出当前一共有哪些软件包 . 由于包的数目可能非常之多 , 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如 :
yum list | grep lrzsz
结果如下 :
lrzsz.x86_64          0.12.20-36.el7        @base
注意事项 :
        (1)软件包名称: 主版本号 . 次版本号 . 源程序发行号 - 软件包的发行号 . 主机平台 .cpu 架构 .
        (2)"x86_64" 后缀表示 64 位系统的安装包 , "i686" 后缀表示 32 位系统安装包 . 选择包时要和系统匹配 .
        (3)"el7" 表示操作系统发行版的版本 . "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
        (4)最后一列, base 表示的是 " 软件源 " 的名称 , 类似于 " 小米应用商店 ", " 华为应用商店 " 这样的概念 .

3. 如何安装软件

        通过 yum, 我们可以通过很简单的一条命令完成 gcc 的安装 .
sudo yum install lrzsz
yum 会自动找到都有哪些软件包需要下载 , 这时候敲 "y" 确认安装 .
出现 "complete" 字样 , 说明安装完成 .
注意事项 :
        (1)安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成 .
        (2)yum安装软件只能一个装完了再装另一个 . 正在 yum 安装一个软件的过程中 , 如果再尝试用 yum 安装另外一个软件, yum 会报错 .
        (3)如果 yum 报错 , 请根据情况进行 百度 .

4. 如何卸载软件

        仍然是一条命令:
sudo yum remove lrzsz

5.yum补充

6. 关于 rzsz

  这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件 .
  安装完毕之后可以通过拖拽的方式将文件上传过去.

6.1 安装

常规而言云服务器上一般都已预装,如果没有可以通过以下命令安装:
(1)在 root 账户下:
先输入:
yum list | grep rzsz

查找到需要安装的版本:

然后输入以下命令进行安装:

yum install lrzsz.x86_64

(2)在普通账户下:

sudo yum install -y lrzsz.x86_64

6.2 使用

(1)接收文件

方法一:直接拖拽

        就是直接将文件拖拽到终端就可以了

方法二:直接在终端输入rz
rz

        在弹出的窗口中选择文件即可~~

(2)发送文件
sz

        选择要发的文件即可

二. Linux编辑器-vim使用

vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window mac os 、windows。本章我们统一按照 vim 来进行讲解。

 1. vim的基本概念

vim有 三种模式 ( 其实有好多模式,目前掌握这 3 种即可 ), 分别是命令模式( command mode )、插入模式(Insert mode )和底行模式( last line mode ),各模式的功能区分如下:
(1)正常/普通/命令模式(Normal mode)
        控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode 下,或者到 last line mode
(2)插入模式(Insert mode)
        输入  进入该模式,只有在Insert mode 下,才可以做文字输入,按「 ESC 」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
(3)末行模式(last line mode)
        文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下, shift + :   可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 :
help vim-modes
我这里一共有 12 种模式 :six BASIC modes six ADDITIONAL modes.

2. vim的基本操作

进入 vim, 在系统提示符号输入 vim 及文件名称后,就进入 vim 全屏幕编辑画面 :
           
vim test.c

注意:       

进入vim之后,是处于[正常模式],要切换到[插入模式]才能够输入文字。

2.1 [正常模式]切换至[插入模式]

       (1)输入a
       (2)输入i
       (3)输入o

2.2 [插入模式]切换至[正常模式]

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

2.3 [正常模式]切换至[末行模式]

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

2.4 退出vim及保存文件

[正常模式]下,按一下「:」冒号键进入「Last line mode,例如:
     (1): w (保存当前文件)
     (2): wq (输入「wq , 存盘并退出 vim)
     (3): q! (输入q!, 不存盘强制退出 vim)

3. vim正常模式命令集

3.1 插入模式

(1)按「 i 」切换进入插入模式「 insert mode 」,按 “i” 进入插入模式后是从光标当前位置开始输入文件;
(2)按「 a 」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
(3)按「 o 」进入插入模式后,是插入新的一行,从行首开始输入文字。

3.2 从插入模式切换为命令模式

(1)按「 ESC 」键。

3.3 移动光标

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

3.4 删除文字

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

3.5 复制

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

3.6 替换

(1)「r 」:替换光标所在处的字符。
(2)「R 」:替换光标所到之处的字符,直到按下「 ESC 」键为止。

3.7 撤销上一次操作

(1)「u 」:如果您误执行一个命令,可以马上按下「 u 」,回到上一个操作。按多次 “u” 可以执行多次回复。
(2)「ctrl + r : 撤销的恢复

3.8 更改

(1)「cw 」:更改光标所在处的字到字尾处
(2)「c#w 」:例如,「 c3w 」表示更改 3 个字

3.9 跳至指定的行

(1)「ctrl + g 」列出光标所在行的行号。
(2)「#G 」:例如,「 15G 」,表示移动光标至文章的第 15 行行首。

4. vim末行模式命令集

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

4.1 列出行号

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

4.2 跳到文件中的某一行

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

4.3 查找字符

(1)「/ 关键字」 : 先按「 / 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按
(2)「n 」会往后寻找到您要的关键字为止。
(3)「? 关键字」:先按「 ? 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n 」会往前寻找到您要的关键字为止。

4.4 保存文件

(1)「w : 在冒号输入字母「 w 」就可以将文件保存起来

4.5 离开vim

(1) 「q 」:按「 q 」就是退出,如果无法离开 vim ,可以在「 q 」后跟一个「 ! 」强制离开 vim
(2)「wq 」:一般建议离开时,搭配「 w 」一起使用,这样在退出的时候还可以保存文件。

5. vim操作总结

6. 简单vim配置

6.1 配置文件的位置

(1)在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。
(2)而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为: “.vimrc” 。例如, /root 目录下,通常已经存在一个.vimrc 文件 , 如果不存在,则创建之。
(3)切换用户成为自己执行 su ,进入自己的主工作目录 , 执行 cd ~
(4)打开自己目录下的 .vimrc 文件,执行 vim .vimrc

6.2 常用配置选项,用来测试

(1)设置语法高亮 : syntax on
(2)显示行号 : set nu
(3)设置缩进的空格数为 4: set shiftwidth=4

6.3 使用插件

要配置好看的 vim ,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来:
(1)安装 TagList 插件 , 下载 taglist_xx.zip , 解压完成,将解压出来的 doc 的内容放到~ /.vim/doc,  将解压出来的plugin 下的内容拷贝到~ /.vim/plugin
(2)在~ /.vimrc 中添加 :
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1

(3)安装文件浏览器和窗口管理器插件: WinManager

(4)下载 winmanager.zip 2.X 版本以上的
(5)解压 winmanager.zip ,将解压出来的 doc 的内容放到~ /.vim/doc,  将解压出来的 plugin 下的内容拷贝到~/.vim/plugin
(6)在~ /.vimrc 中添加:             
let g:winManagerWindowLayout=‘FileExplorer|TagList
nmap wm :WMToggle<cr>

(7)然后重启vim,打开~/XXX.c或~/XXX.cpp, normal状态下输入"wm", 你将看到上图的效果。更具体移步:点我, 其他手册,请执行 vimtutor 命令。

6.4 参考资料

Vim从入门到牛逼(vim from zero to hero)

7.补充

待续

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

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

相关文章

2013年认证杯SPSSPRO杯数学建模C题(第一阶段)公路运输业对于国内生产总值的影响分析全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 C题 公路运输业对于国内生产总值的影响分析 原题再现&#xff1a; 交通运输作为国民经济的载体&#xff0c;沟通生产和消费&#xff0c;在经济发展中扮演着极其重要的角色。纵观几百年来交通运输与经济发展的相互关系&#xff0c;生产水平越高…

unity学习(74)——服务器Dispose异常

1.返回的1 2 11是怪物初始化&#xff0c;源代码中也没有 2. 3.客户端中的网络连接初始化如下&#xff1a; 4.不是因为超时&#xff0c;设置10s为超时期限后&#xff0c;客户端和服务器有时依然会报错&#xff01; 5.我感觉就是update中发包给弄坏的&#xff01; 6.不在“帧”…

Python版【植物大战僵尸 +源码】

文章目录 写在前面&#xff1a;功能实现环境要求怎么玩个性化定义项目演示&#xff1a;源码分享Map地图:Menubar.py主菜单 主函数&#xff1a;项目开源地址 写在前面&#xff1a; 今天给大家推荐一个Gtihub开源项目&#xff1a;PythonPlantsVsZombies&#xff0c;翻译成中就是…

web 技术中前端和后端交互过程

1、客户端服务器交互过程 客户端:上网过程中,负责浏览资源的电脑,叫客户端服务器:在因特网中,负责存放和对外提供资源的电脑叫服务器 服务器的本质: 就是一台电脑,只不过相比个人电脑它的性能高很多,个人电脑中可以通过安装浏览器的形式,访问服务器对外提供的各种资源。 个人…

【JavaEE初阶系列】——常见的锁策略

目录 &#x1f6a9;乐观锁和悲观锁 &#x1f6a9;读写锁和普通互斥锁 &#x1f6a9;轻量级锁和重量级锁 &#x1f6a9;自旋锁和挂起等待锁 &#x1f6a9;公平锁和非公平锁 &#x1f6a9;可重入锁和不可重入锁 &#x1f6a9;关于synchronized的锁策略以及自适应 接下来讲解的锁策…

transformers微调模型后使用pieline调用无法预测列表文本

初学transformers框架 使用trainer简单训练一个文本分类模型三个epoch后 使用piepline调用model 和tokenizer后 发现 传入列表文本后 输出就变得不正常了&#xff0c;为么子哇 如下图

语义分割——Dark Zurich数据集

一、重要性及意义 首先&#xff0c;Dark Zurich为语义分割提供了大量真实且多样化的图像数据。该数据集包含了在夜间、黄昏和白天拍摄的大量图像&#xff0c;涵盖了不同光照条件和场景下的图像变化。这些图像数据不仅丰富了语义分割任务的数据集&#xff0c;也为模型提供了更全…

LLM:函数调用(Function Calling)

1 函数调用 虽然大模型能解决很多问题&#xff0c;但大模型并不能知晓一切。比如&#xff0c;大模型不知道最新消息(GPT-3.5 的知识截至 2021年9月&#xff0c;GPT-4 是 2023 年12月)。另外&#xff0c;大模型没有“真逻辑”。它表现出的逻辑、推理&#xff0c;是训练文本的统计…

IDEA一键备份MySQL数据库(mysqldump版)

问题 又到了搬MySQL数据库的时刻&#xff0c;这次我不想使用命令行备份&#xff0c;这次我想使用IDEA一键备份MySQL数据库。 解决 假设安装好mysqldump命令后&#xff0c;让IDEA使用mysqldump一键备份指定的数据库。具体IDEA配置如下&#xff1a; 这是IDEA上面的数据库到处…

掌握未来商机:如何利用会话式AI赢在起跑线

AI智能助手&#xff1a;提升工作效率的秘密武器 在这个信息爆炸的时代&#xff0c;内容策略成为了品牌与用户之间沟通的重要桥梁。一个有效的内容策略能够帮助品牌提升知名度&#xff0c;建立与目标受众的深度连接&#xff0c;并最终实现转化目标。内容策略不仅涉及内容的创作与…

【Pytorch学习笔记(二)】张量的创建(补充)

一、知识回顾 我们在博客《张量的创建与访问》中已经讨论了一些张量的创建方法如torch.CharTensor()、torch.FloatTensor()以及torch.zeros()等张量创建方法&#xff0c;但由于其仅仅介绍了cpu版本torch下张量的创建方法和只有具体数据类型张量&#xff0c;本节内容旨在补充gp…

深入理解MapReduce:从Map到Reduce的工作原理解析

当谈到分布式计算和大数据处理时&#xff0c;MapReduce是一个经典的范例。它是一种编程模型和处理框架&#xff0c;用于在大规模数据集上并行运行计算任务。MapReduce包含三个主要阶段&#xff1a;Map、Shuffle 和 Reduce。 ** Map 阶段 ** Map 阶段是 MapReduce 的第一步&am…

微信开发者工具创建一个小程序

创建项目 对于上面这个AppID可以自行选择是注册还是测试号&#xff0c;我是使用的测试号&#xff0c;之后再下面选择模板&#xff0c;我这里选择了JS-基础模板。 进入项目后在模拟器中可看到如下页面&#xff1a; 添加提交按钮进行页面跳转 添加需要跳转的文件夹&#xff0c;…

Node.js------模块化

◆ 能够说出模块化的好处◆ 能够知道 CommonJS 规定了哪些内容◆ 能够说出 Node.js 中模块的三大分类各自是什么◆ 能够使用 npm 管理包◆ 能够了解什么是规范的包结构◆ 能够了解模块的加载机制 一.模块化的基本概念 1.模块化 模块化是指解决一个复杂问题时&#xff0c…

Express

可以方便、快速创建Web网站的服务器&#xff08;提供web网页资源&#xff09;或API接口服务器&#xff08;提供API接口&#xff09; app.get(请求URL&#xff0c;function(req,res)>{}) //req:请求对象&#xff08;包括请求属性和方法&#xff09; //res:响应对象&#xff…

Go 源码之 gin 框架

Go 源码之 gin 框架 go源码之gin - Jxy 博客 一、总结 gin.New()初始化一个实例&#xff1a;gin.engine&#xff0c;该实例实现了http.Handler接口。实现了ServeHTTP方法 注册路由、注册中间件&#xff0c;调用addRoute将路由和中间件注册到 methodTree 前缀树&#xff08;节…

HashSet解析

文章目录 集合简介对HashSet进行遍历迭代器增强forLambda表达式 Hash底层原理 集合简介 HashSet是Set集合下的子接口&#xff0c;set集合添加的元素是无索引&#xff0c;不重复&#xff0c;无序&#xff0c;与List系列集合正好相反。 无序&#xff1a;存储顺序不一致。 不重复…

全新的分布式锁,几行代码搞定,简单且强大

# 前言 分布式锁是分布式系统中一个极为重要的工具。目前有多种分布式锁的设计方案&#xff0c;比如借助 redis&#xff0c;mq&#xff0c;数据库&#xff0c;zookeeper 等第三方服务系统来设计分布式锁。tldb 提供的分布式锁&#xff0c;主要是要简化这个设计的过程&#xff0…

数据挖掘入门项目二手交易车价格预测之特征工程

文章目录 目标常见的特征工程具体步骤1. 导入数据2. 删除异常值3. 特征构造3.1 为树模型构造特征3.2 为LR NN 之类的模型构造特征 4. 特征筛选过滤式包裹式嵌入式 5. 总结 本文数据集来自阿里天池&#xff1a;https://tianchi.aliyun.com/competition/entrance/231784/informat…

初始Java篇(JavaSE基础语法)(5)(类和对象(下))

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 封装 访问限定符 封装扩展之包 自定义包 static成员 static修饰成员变量 static修饰成员方法 static成员变量初始化 内部类 对象的打…