从0开始学习Linux——文本编辑器

往期目录:

1、从0开始学习Linux——Linux简介&安装

2、从0开始学习Linux——搭建属于自己的Linux系统

 我们通过前面教程的学习已经了解了什么是Linux,并且我们也定制安装了属于我们自己的一个Linux系统。从这个章节开始我们将开始学习如何去操作Linux系统。

Linux 的文本编辑器是用于创建、编辑和处理文本文件的程序。它们在 Linux 操作系统中扮演着重要角色,尤其是在编程、配置系统和管理文件时。文本编辑器可以是命令行工具,也可以是图形用户界面(GUI)应用程序。

文本编辑器的功能特点如下所示:

  • 文本编辑:基本的创建、删除、复制、粘贴、搜索和替换文本。
  • 语法高亮:支持多种编程语言的语法高亮显示。
  • 多文档支持:同时打开和编辑多个文件。
  • 插件支持:可以通过插件扩展功能,增加工作效率。
  • 版本控制:与 Git 等版本控制系统集成,方便管理代码。

Linux中的文本编辑器主要分为两大类即命令行文本编辑器和图形桌面文本编辑器。

一、命令行文本编辑器

1.1 Nano编辑器

Nano 是一个简单易用的命令行文本编辑器,广泛用于 Linux 和其他类 Unix 操作系统。它特别适合新手用户,因为它的界面友好且操作直观。

1.1.1 安装Nano编辑器

首先我们可以在我们的linux系统中输入一条命令:nano --version。

nano --version

然后我们可以发现报错找不到nano命令,因此下面我们就需要先去安装nano。

对于nano我们可以使用yum进行安装。

yum install nano

有的同学在执行这条命令的时候可能会抛出一个错误即镜像源错误。

如果发生镜像源错误,那么我们可以将镜像源给修改为阿里云镜像源。

首先我们使用vi命令打开CentOS-base.repo文件去修改镜像源。

vi /etc/yum.repos.d/CentOS-Base.repo

接着将下列内容给替换到上述文件中。

[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-centos7[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-centos7[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-centos7

替换完成以后按下键盘上的Esc键,再按下“:”,接着再输入wq并按下回车进行文件内容的一个保存。

接下来我们需要清理yum缓存即删除所有缓存以确保YUM使用新的配置。

yum clean all

紧接着我们需要去更新yum源,以确保yum可以访问新的资源。

yum makecache

最后我们来验证一下yum的配置是否生效。

yum repolist

到此为止我们的yum镜像源已经更新完成了。

下面我们就可以继续安装我们的nano。

yum install nano

现在我们的nano编辑器就已经安装好了。

1.1.2 启动Nano

在命令行中使用nano命令,然后在该命令后面加上文件路径+文件名。

例如我们要去编辑/opt目录下的的一个user.txt文件。

nano /opt/user.txt

注意:对于nano的目录文件结构将在后续文章中讲解。

执行完上述命令以后就可以直接进入该文件了。

补充:我们如果在使用文本编辑器去编辑文件的时候若该文件不存在,那么就会创建一个空的文件然后再进行编辑,就如我们的/opt目录下没有user.txt文件,那么就会创建一个空的user.txt文件,然后再进入该文件进行编辑状态。

1.1.3 编辑文本

当我们执行完1.1.2中的命令以后就已经进入了文件的编辑状态,我们可以直接编辑。

1.1.4 保存文件

如果我们已经编辑好了文件,那么我们可以按下Ctrl+O,再按下Enter就可以完成文件的保存操作。

1.1.5 退出Nano

我们在编辑好文件并且保存好以后可以按下Ctrl+X退出Nano了。

注意:如果有未保存的更改,Nano 会提示是否保存。

1.1.6 常用快捷键

上述我们使用Nano的一些命令,当然Nano还有很多命令供我们使用,如下所示:

  • Ctrl + G:显示帮助信息。
  • Ctrl + X:退出 Nano。
  • Ctrl + O:保存文件。
  • Ctrl + W:搜索文本。
  • Ctrl + K:剪切当前行。
  • Ctrl + U:粘贴剪切的行。
  • Ctrl + J:自动换行。
  • Ctrl + C:显示光标位置。

1.1.7 高级功能

Nano文本编辑器支持多文档,也就是说可以在一个 Nano 会话中打开多个文件,使用Ctrl+R可以打开其他文件。

注意:打开多文档就需要确保另外打开的文档是存在的,例如我们这里编辑user.txt文档,那么我们使用Nano的多文档模式打开student.txt就需要确保该文件的存在。

当然我们可以直接去编辑~/nanorc文件去定制编辑器的行为和外观。

nano ~/.nanorc

接下来我们就可以去定制我们的Nanno编辑器的行为和外观了。

例如我们在该文件中设置语法高亮等。

# 启用语法高亮
include /usr/share/nano/*.nanorc# 启用软换行
set softwrap

1.2 Vi编辑器

Vi编辑器是一种强大的文本编辑器,广泛用于 Unix 和类 Unix 系统。它以其高效和灵活性而著称,尤其适合于编程和系统管理。

补充:Vi编辑器通常是 Unix 和类 Unix 系统(如 Linux 和 macOS)自带的文本编辑器。几乎所有的 Unix 系统都会预装Vi或其增强版本。

1.2.1 文件类型

Vi编辑器处理的文件是普通文本文件,适用于任何文本编辑任务。

1.2.2 模式

Vi编辑器有三种模式,如下所示:

  • 普通模式(Normal Mode):默认模式,可以使用命令进行导航和编辑。
  • 插入模式(Insert Mode):用于输入文本。可以通过在普通模式下按 iao 等进入。
  • 命令行模式(Command-Line Mode):用于执行文件保存、退出等命令。可以通过在普通模式下按 : 进入。

1.2.1 文件启动

如果我们想要使用vi去编辑一个文件,那么我们可以直接使用vi命令然后在后面跟上文件。

例如这里我们去/opt目录下编辑student.txt文件。

注意:这里和nano一样若student.txt文件不存在,那么就会先创建student.txt空白文件,然后再进入vi模式。

vi /opt/student.txt

1.2.2 文件内容插入&修改

我们使用vi命令打开student.txt文件以后进入的是普通模式,如果我们想要再文件中添加内容或者修改内容,那么我们就需要进入插入模式,对此我们可以使用如下命令完成操作:

  • i:在当前光标前修改内容
  • I:在当前光标所在行首修改内容
  • a:在当前光标后修改内容
  • A:在当前光标所在行尾修改内容
  • o:在当前光标所在行下方新建一行并插入。
  • O:在当前光标所在行上方新建一行并插入。

注意:进入插入模式以后会在文件的下方显示一个INSERT标志。

如果添加/修改操作完成以后就可以按下Esc按键进入到普通模式。

1.2.3 光标移动

在普通模式下如果想要移动光标,一方面我们可以使用键盘上的上下左右按键完成操作另外也可以通过其它按键完成该功能,如下所示:

  • h:向左移动一个字符
  • j:向下移动一行
  • k:向上移动一行
  • l:向右移动一个字符
  • o:移动到行首
  • $:移动到行尾
  • G:移动到文件末尾
  • gg:移动到文件开头

1.2.4 内容删除

对于文件中内容删除既可以在插入模式完成也可以在普通模式下完成,在插入模式中如果要删除内容可以使用键盘中的Delete按键和Backspace按键完成,在普通模式下可以使用Delete按键完成内容的删除,当然在普通模式下vi编辑器提供了更多的删除操作,如下所示:

  • x:删除光标处的字符
  • dd:删除光标所在的行
  • d数字d:删除指定行内容,从光标所在行开始计数
  • d+数字+其它命令:删除命令指定的内容

上述删除操作中x、dd可能很好理解,这里说明一下d数字d和d+数字+其它命令,例如d3d表示删除3行内容,从光标所在行开始计算,例如d3k表示删除从当前光标所在行的往上数3行内容。

1.2.5 内容复制粘贴

在普通模式下我们可以通过命令完成快速完成文件中内容的复制和粘贴操作,如下所示:

  • yy:表示复制光标所在行的内容
  • y数字y:表示复制自光标后往下数指定数字行的内容
  • y+数字+其它命令:复制命令指定内容
  • p:表示将复制的内容粘贴到光标后

上述复制操作中yy可能很好理解,这里说明一下y数字y和y+数字+其它命令,例如y3y表示复制3行内容,从光标所在行开始计算(往下数),例如p3k表示复制从当前光标所在行的往上数3行内容。

1.2.6 内容撤销&重做

在普通模式下我们可以通过指定命令完成内容的撤销和重做:

  • u:撤销上一步操作
  • Ctrl+u:重做撤销的操作

1.2.7 内容搜索

有时候我们需要快速定位到某部分内容,那么在普通模式下我们可以使用如下命令完成:

  • /搜索字符:向下搜索内容
  • ?/搜索字符:向上搜索内容
  • n:跳转到搜索内容的下一个匹配项
  • N:跳转到搜索内容的上一个匹配项

例如我在这里搜索29这个字符,那么我就可以在普通模式下先按下“/”按键然后输入要搜索的字符,最后在回车就可以去匹配。

1.2.8 内容替换

如果我们想要对文件中指定内容完成替换,那么我们可以在命令行模式下完成(在普通模式下按下":"就可以进入命令行模式),具体如下所示:

  • :%s/旧的内容/新的内容/g:将整个文档中的所有旧的内容替换为新的内容
  • :s/旧的内容/新的内容/g:将光标所在行的旧的内容替换为新的内容

例如我想把文本中的“李四”替换成“我是李四”。

1.2.9 文件保存&退出

我们在编辑好文件以后便可以去保存或者退出vi命令,那么我们旧需要在命令行模式下完成这些操作,如下所示:

  • :w:保存文件
  • :wq:保存文件并退出
  • :q:不保存仅退出
  • :q!:不保存且强制退出
  • :w 文件名:文件另存为

1.2.10 其它操作

Vi编辑器提供的操作还有很多,这里就不去一一赘述,上述我们完成文件的增删改查,下面我们探讨一下Vi编辑器的其它用法如下所示:

  • 行号显示:命令模式下:set number可以显示行号
  • 打开文件:命令模式下:e 文件

1.3 Vim编辑器

Vim是一个类似于Vi的高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个。

对于vim编辑器我们需要自行下载。

yum install vim

 Vim编辑器是Vi编辑器的一个升级版本,Vi编辑器的操作在Vim编辑器中也是可以使用的,对此Vim编辑器操作在这里省略,当然Vim编辑器相比于Vi编辑器有着更加强大的功能,大家可以根据自己的需求去学习。

二、图形文本编辑器

对于图形文本编辑器,如果有感兴趣的可以自行学习一下,由于后面我们的所有操作都是命令行操作,对此就先不去讲解图形编文本辑器,常见图形文本编辑器如下所示:

  • gedit:GNOME桌面环境下的默认文本编辑器,简单易用。
  • Kate:KDE桌面环境的编辑器,功能强大,支持多文档编辑。
  • Sublime Text:跨平台编辑器,支持多种语言和强大插件。

本次内容就到此为止,新的内容将在下一个教程。

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

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

相关文章

“北斗三号”如何赋能工业物联网

北斗三号是我国独立自主研发的第三代卫星导航系统,是北斗卫星导航系统的重要组成部分。北斗三号系统具有全球覆盖能力,除了提供基本的定位、导航、授时服务外,还提供高精度和短报文通信服务等。针对产业物联网应用,北斗三号也发挥…

相关衍生 pika+mongo

衍生相关 pikamongo 很多平台不提供完整的数据展示, 翻页只能翻几页,不过提供相关推荐等方法可获取更多的数据; 使用 rabbitmq 是因为数据量可能有几十上百万, 且能持久化 mongo对于数据并不实时的更新到查询里 def main():# mongodb# client MongoClient(localhost, 27017)cl…

Odoo | 免费开源ERP:汽车及零配件行业信息化解决方案

文 / 开源智造 Odoo亚太金牌服务 概述 围绕汽车行业产业链上下游企业的整体业务主线,提供面向汽车主机厂整车个性化制造解决方案,产业链上下游一体化协同解决方案,数字化精益制造解决方案、全价值链质量管理解决方案,数字化运营解…

【Linux】【守护进程】总结整理

守护进程(Daemon)是运行在后台的进程,通常没有与之关联的控制终端。守护进程在启动后会脱离控制终端,并继续在后台运行,即使用户退出登录或者终端关闭也不会影响它们的运行。守护进程常用于提供网络服务、定期执行任务…

Spring Cloud微服务:构建弹性、可扩展的分布式系统

Spring Cloud微服务:构建弹性、可扩展的分布式系统 在当今的软件开发领域,微服务架构已经成为构建复杂应用的首选方案。微服务架构通过将应用拆分为多个独立的服务,每个服务专注于单一的业务功能,从而提高了系统的可维护性、可扩…

vue中html如何转成pdf下载,pdf转base64,忽略某个元素渲染在pdf中,方法封装

一、下载 html2Canvas jspdf npm install jspdf html2canvas二、封装转换下载方法 htmlToPdf.js import html2Canvas from html2canvas import JsPDF from jspdf/*** param {*} reportName 下载时候的标题* param {*} isDownload 是否下载默认为下载,传false不…

Docker配置及简单应用

谈论/理解 Docker 的常用核心部分,以下皆在 Ubuntu 操作系统下进行 1 国内源安装 Docker-ce 1.1 配置 Linux 内核流量转发 因为docker和宿主机的端口映射,本质是内核的流量转发功能,所以要对其进行配置 1.1.1 未配置流量转发 如果没有配置流…

火山引擎云服务docker 安装

安装 Docker 登录云服务器。 执行以下命令,添加 yum 源。 yum update -y yum install epel-release -y yum clean all yum list依次执行以下命令,添加Docker CE镜像源。更多操作请参考Docker CE镜像。 # 安装必要的一些系统工具 sudo yum install -y yu…

探索数据科学与大数据技术专业本科生的广阔就业前景

随着信息技术的不断发展,数据科学与大数据技术已经成为各大行业的关键推动力。在这样一个数据驱动的时代,越来越多的企业依赖数据来驱动决策、优化运营和创造价值。因此,数据科学与大数据技术专业的本科生在就业市场上具有广阔的前景和多样的…

CSS例子: 横向排列的格子

效果 HTML <view class"content"><view class"item" v-for"item of 5">{{item}}</view></view> CSS .content {height: 100vh;display: flex;flex-direction: row; flex-wrap: wrap;align-content: flex-start;backgro…

智能家居的未来:AI让生活更智能还是更复杂?

内容概要 智能家居的概念源于将各种家居设备连接到互联网&#xff0c;并通过智能技术进行控制和管理。随着人工智能的迅速发展&#xff0c;这一领域也迎来了前所未有的机遇。从早期简单的遥控器到如今可以通过手机应用、语音助手甚至是环境感应进行操作的设备&#xff0c;智能…

ios打包文件上传App Store windows工具

在苹果开发者中心上架IOS APP的时候&#xff0c;在苹果开发者中心不能直接上传打包文件&#xff0c;需要下载mac的xcode这些工具进行上传&#xff0c;但这些工具无法安装在windows或linux电脑上。 这里&#xff0c;我们可以不用xcode这些工具来上传&#xff0c;可以用国内的香…

ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染

一、组件基础 1.什么是ArkTS ArkTS是HarmoyOS优选的助力应用开发的语言&#xff0c;ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步的扩展&#xff0c;继承了TS所有的特性&#xff0c;是TS的超集。 扩展的能力如下&#xff1a; 基本语法 …

连接kafka消息队列报org.apache.kafka.clients.NetworkClient异常

启动kafka后&#xff0c;连接kafka消息队列报org.apache.kafka.clients.NetworkClient异常 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) 检查kafka运行日志&#xff0c;报The broker is trying to join the wrong clu…

全文检索ElasticSearch到底是什么?

学习ElasticSearch之前&#xff0c;我们先来了解一下搜索 1 搜索是什么 ① 概念&#xff1a;用户输入想要的关键词&#xff0c;返回含有该关键词的所有信息。 ② 场景&#xff1a; ​ 1互联网搜索&#xff1a;谷歌、百度、各种新闻首页&#xff1b; ​ 2 站内搜索&#xff…

大众汽车合肥社招入职笔试测评SHL题库:综合能力、性格问卷、英语口语真题考什么?

大众汽车合肥社招入职笔试测评包括综合能力测试、性格问卷和英语口语测试。以下是各部分的具体内容&#xff1a; 1. **综合能力测试**&#xff1a; - 这部分测试需要46分钟完成&#xff0c;建议准备计算器和纸笔。 - 测试内容涉及问题解决能力、数值计算能力和逻辑推理能力。 -…

Docker-软件容器平台

一、容器 1、什么是容器 容器就是将软件打包成标准化单元&#xff0c;以用于开发、交付和部署 容器镜像是轻量的、可执行的独立软件包 &#xff0c;包含软件运行所需的所有内容&#xff1a;代码、运行时环境、系统工具、系统库和设置。容器化软件适用于基于 Linux 和 Windows…

K8s使用nfs

改动点 ip和路径改为自己的 --- apiVersion: v1 kind: ServiceAccount metadata:name: nfs-client-provisioner# replace with namespace where provisioner is deployednamespace: nfs-client --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:nam…

Spring Boot集成Access DB实现数据导入和解析

1.什么是Access DB&#xff1f; microsoft office access是由微软发布的关联式 数据库管理系统。它结合了 microsoft jet database engine 和 图形用户界面两项特点&#xff0c;是一种关系数据库工具。它在很多地方得到广泛使用&#xff0c;例如小型企业&#xff0c;大公司的部…

Linux命令--paste

简介 paste命令用于合并文件行 参数说明 -d: 自定义间隔符&#xff0c;默认为tab -s&#xff1a;串行处理&#xff0c;非并行 示例 将两个文件&#xff0c;按照行合并 demo1.conf内容如下&#xff1a; name domain ip area user password roledemo2.conf内容如下 test t…