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

news2024/11/29 2:52:03

本章我们来介绍一些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.coloradmin.cn/o/1559952.html

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

相关文章

计算机网络-从输入网址到访问网站的全过程

当我们在浏览器中输入一个网址并按下回车键时&#xff0c;会发生一系列复杂的过程&#xff0c;最终使我们能够看到网页的内容。以下是这个过程的详细步骤&#xff1a; 客户端&#xff1a;首先&#xff0c;用户在浏览器中键入网址&#xff0c;然后浏览器会根据这个网址生成一个H…

vultr ubuntu 服务器远程桌面安装及连接

一. 概述 vultr 上开启一个linux服务器&#xff0c;都是以终端形式给出的&#xff0c;默认不带 ui 桌面的&#xff0c;那其实对于想使用服务器上浏览器时的情形不是很好。那有没有方法在远程服务器安装桌面&#xff0c;然后原程使用呢&#xff1f;至少ubuntu的服务器是有的&am…

C练习题(1)

变种水仙花&#xff08;来自牛课网&#xff09; 题目 变种水仙花数 - Lily Number&#xff1a;把任意的数字&#xff0c;从中间拆分成两个数字&#xff0c;比如1461 可以拆分成&#xff08;1和461&#xff09;,&#xff08;14和61&#xff09;,&#xff08;146和1),如果所有拆…

IDEA 如何快速创建 Springboot 项目,面试题kafka数据丢失问题

&#xff08;3&#xff09;填写并选择&#xff1a; 1&#xff0c;2 处&#xff1a;是 Maven 工程的两个属性唯一标识&#xff0c;随意填。 3处&#xff1a;类型选择 Maven 项目 4处&#xff1a;语言选择 Java 5处&#xff1a;打包方式选择 Jar 6处&#xff1a;Java版本选择…

KeepAlived使用介绍

目录 1、Introduce 2、基本使用 &#xff08;1&#xff09;安装 &#xff08;2&#xff09;配置文件 &#xff08;3&#xff09;使用教程 1、Introduce keepalived是一个用于实现高可用性和负载均衡的开源软件。它提供了一种轻量级的方式来管理多个服务器&#xff0c;并确保…

【Spring Boot 源码学习】ConditionEvaluationReport 日志记录上下文初始化器

《Spring Boot 源码学习系列》 ConditionEvaluationReport 日志记录上下文初始化器 一、引言二、往期内容三、主要内容3.1 源码初识3.2 ConditionEvaluationReport 监听器3.3 onApplicationEvent 方法3.4 条件评估报告的打印展示 四、总结 一、引言 上篇博文《共享 MetadataRe…

【嵌入式智能产品开发实战】(十二)—— 政安晨:通过ARM-Linux掌握基本技能【运行环境】

目录 简述 开始 操作系统环境下的程序运行 裸机环境下的程序运行 程序入口main()函数分析 BSS段的小提示 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 嵌入式智能产品开发实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不…

Python 后端 Flask 使用 Flask-SocketIO、前端 Vue3 实现长连接 Websocket 通信详细教程(更新中)

Flask 安装 Flask-Socketio Flask-SocketIO 第三方库使 Flask 应用程序可以实现客户端和服务器之间的低延迟双向通信。客户端应用程序可以使用 Javascript、Python、C、Java 和 Swift 中的任何 SocketIO 客户端库或任何其他兼容客户端来建立与服务器的永久连接。 Flask-Socke…

施耐德 PLC 控制系统 产品 + 软件总体介绍 2020

参考 2020.7 官方说明视频&#xff1a;https://www.bilibili.com/video/BV1Mi4y1G7Qc/ 总体说明 施耐德作为工业控制界巨头&#xff08;公认的几大巨头&#xff1a;西门子、AB、施耐德&#xff09;&#xff0c;PLC 控制器产品线很庞大&#xff0c;涵盖了高中低的完整产品线&…

代码随想录Day24:回溯算法Part1

回溯算法理论&#xff1a; Leetcode 77. 组合 这道题其实有点绕的我头晕&#xff0c;对于start index的解释我能够理解&#xff0c;但是我很难去想清楚他是如何在一次次递归中变化的因为他在for循环外面扮演我们每一次在一个数字找完了他开头的所有组合之后&#xff0c;就把st…

永磁同步电机PMSM和直流无刷电机BLDCM整理

刚完成的永磁同步电机的助力转向项目&#xff0c;接下来又遇到一个直流无刷电机的项目。刚好有时间将两个电机控制的异同和经典的控制方案总结一下。首先解释一下PMSW和BLDCM的含义。PMSW(Permanent Magnet Synchronous Motor)永磁同步电机的缩写&#xff1b;BLDCM(BrushLess D…

Datacom HCIP笔记-OSPF协议 之三

从骨干区域传来的三类LSA不再传回骨干区域 VLINK 1、只要创建的VLINK的路由器都是ABR 2、VLINK永远属于区域0的链路。 3、VLINK只能在非骨干区域创建&#xff0c;只能跨越一个非骨干区域。 4、特殊区域不能创建VLINK 5、用于修复不连续的骨干区域 6、将非骨干区域和骨干区域直接…

财务管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …

GridLayoutManager 中的一些坑

前言 如果GridLayoutManager使用item的布局都是wrap_cotent 那么会在布局更改时会出现一些出人意料的情况。&#xff08;本文完全不具备可读性和说教性&#xff0c;仅为博主方便查找问题&#xff09; 布局item: <!--layout_item.xml--> <?xml version"1.0&qu…

Python爬虫:爬虫常用伪装手段

目录 前言 一、设置User-Agent 二、设置Referer 三、使用代理IP 四、限制请求频率 总结 前言 随着互联网的快速发展&#xff0c;爬虫技术在网络数据采集方面发挥着重要的作用。然而&#xff0c;由于爬虫的使用可能会对被爬取的网站造成一定的压力&#xff0c;因此&#…

政安晨:【Keras机器学习实践要点】(十二)—— 迁移学习和微调

目录 设置 介绍 冻结层&#xff1a;了解可训练属性 可训练属性的递归设置 典型的迁移学习工作流程 微调 关于compile()和trainable的重要说明 BatchNormalization层的重要注意事项 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: T…

基于Uni-app的体育场馆预约系统的设计与实现

文章目录 基于Uni-app的体育场馆预约系统的设计与实现1、前言介绍2、开发技术简介3、系统功能图3、功能实现4、库表设计5、关键代码6、源码获取7、 &#x1f389;写在最后 基于Uni-app的体育场馆预约系统的设计与实现 1、前言介绍 伴随着信息技术与互联网技术的不断发展&#…

轻量应用服务器16核32G28M腾讯云租用优惠价格4224元15个月

腾讯云16核32G服务器租用价格4224元15个月&#xff0c;买一年送3个月&#xff0c;配置为&#xff1a;轻量16核32G28M、380GB SSD盘、6000GB月流量、28M带宽&#xff0c;腾讯云优惠活动 yunfuwuqiba.com/go/txy 活动链接打开如下图&#xff1a; 腾讯云16核32G服务器租用价格 腾讯…

Nginx的反向代理

Nginx的反向代理 location ^~ /aaa {proxy_pass http://192.168.15.78/; } 1. 跨域 2.Nginx 代理服务器缓存 3.Nginx 负载均衡 4. 动静分离 Nginx的跨域 跨源资源共享 (CORS) 是一种机制&#xff0c;它使用额外的 HTTP 标头让用户代理获得访问来自不同来域的服务器上选定资…

怎么快速上手虚拟化(容器)技术——以 Docker 为例

Docker 整体介绍 Docker 是一种使用 Go 语言开发的容器工具。所谓容器&#xff0c;实际上是一种虚拟化技术&#xff0c;用于为应用提供虚拟化的运行环境&#xff0c;相较于虚拟机具有轻量级、低延迟的特性。 下面是对上述介绍的说明&#xff1a; 应用程序运行需要一定的依赖…