Linux创建与编辑视图

本博客将会详细讲解如何在Linux中如何编辑配置文件

输出重定向

对于一台设备而言,存在着两种设备,分别负责输入与输出:
显示器(输出设备>) 与 键盘(输入设备<)
对于Linux系统而言,我们可以使用 echo 命令在终端上输出一些我们想要的内容
image.png
即使是命令错误,Linux也会输出错误信息到终端上
image.png
对于这两种情况,我们分别可以理解为标准输出设备/0标准错误输出/2
在未来的一些比较专业的需求中,也许我们需要保存一些数据,或者是日志错误信息等
这时候我们就需要使用到输出中的输出重定向
输出重定向的标识符为>
一般是下面的这种使用方式
image.png
可以看到,echo原本会将haha输出到终端上,现经过>输出重定向后到一个文件中
这里便多创造了一个文件,cat显示该文件内容,发现是原本该输出在终端的haha
这便是输出重定向的作用
image.png

追加重定向

但是假如我们想要重定向其他信息到文件中,继续使用>会发现原来的信息被覆盖了
这时候我们就需要使用到追加重定向>>
image.png
这里我们使用>>将I Love Linux!追加重定向到1.txt文件中
cat显示该文件内容,可以看到,在原有的hehe基础上,换行添加了I Love Linux!的数据
image.png

错误重定向

如果我们这里直接使用>>追加重定向到一个新的文件中,会发现与>效果一致
所以与输出重定向不同的是,追加重定向并不会将原来的信息覆盖
而是在原有的基础上继续添加数据
我们也可以使用错误重定向2>将错误信息给重定向到文件中
image.png
由于这里使用了大写的Echo,终端在正常情况下会报错
但是我们使用2>错误重定向将错误信息输出在3.txt文件中
使用cat显示该文件内容,可以发现错误信息被输出了出来
这个方法可以运用在未来需要导出错误报告数据的生产环境中


构造管道

什么是管道?
管道拥有两个参数:命令1 | 命令2(|即为管道)
他的作用是将命令1的结果传递给命令2,作为命令2的第一个参数继续执行
我们下面举个例子来观察一下现象:
image.png

bc命令是一个用于执行数学计算的命令行工具。它支持各种数学运算,包括整数和小数的加减乘除,取余数,指数运算等

这里我们使用echo 10-5 | bc的命令,最后在终端上输出5
过程是首先echo将10-5作为输出值,也就是返回值,通过管道传递给bc
bc接收到10-5作为参数,随后将其计算出值为5,输出在终端上
当然,这只是一个很简单的例子,真正在生产中往往还有比这更加复杂的使用情景
除此之外,|管道还有一个非常强大的功能:tee
tee是三通,下面使用一个例子来方便理解:
image.png
这里我们使用echo 233666 | tee 4.txt的命令来进行操作
可以看到,命令执行完毕之后首先在终端上输出了233666
随后使用ls查看当前文件可以发现多了一个文件4.txt
使用cat显示4.txt文件内容,可以发现4.txt的文件内容是233666
这便是三通的用法
首先将233666输出至终端上,并将输出值保留,存放至4.txt中
当然,tee还有非常强大的一个选项 -a
他的使用效果如下:
image.png
我们这里使用了echo 666233 | tee -a 4.txt的命令来进行操作
与上面一样,首先是在终端中输出了666233的内容
随后显示4.txt的文件却发现
666233被追加在了233666的后面
这便是tee -a的使用效果:追加(等同于>>)
这个方法一般使用在权限操作文件的生产中,在未来会提及


vim编辑器

Vim是一个在Linux和其他Unix操作系统上广泛使用的文本编辑器
它包含了很多高级的特性和功能
如语法高亮、智能缩进、宏、光标位置记录、多级撤销、拼写检查和补全等
我们一般在Linux进行文件编辑修改一般都是使用vim编辑器
在Linux中,我们可以使用vim + [文件名] 或者 vi + [文件名]
使用vim编辑器打开一个文件进行编辑操作(vi是vim的别名)

三种环境

vim编辑器中有三种模式:命令模式编辑模式行底模式

  • 命令模式:进入vim默认是命令模式,在此模式下无法编辑,需要按i进入编辑模式
  • 编辑模式:在此模式下可以进行文本编辑,按esc键退出编辑模式回到命令模式
  • 行底模式:想要进入此模式,需要在命令模式下输入’:’
    下面给大家举一个实例来观察一下:
    image.png
    首先我们创建一个名为test.txt的文件
    随后使用vim test.txt命令在vim中打开此文件
    image.png
    进入之后显示如图上
    现在我们所在的是命令模式
    我们需要在此模式下按键盘i键进入编辑模式
    image.png
    进入编辑模式后如图所示,我们当前便可以在此页面输入或修改我们想要的信息
    image.png
    输入结束后我们需要保存并退出vim编辑器,在编辑模式下按esc退出回到命令模式
    image.png
    随后在此页面输出键盘组合键Shitf + ;(也就是输入’:')进入行底模式
    在行底模式输入w(保存)q(退出)即可保存并退出vim编辑器
    image.png
    推出之后我们再使用cat test.txt命令来查看文件内容
    image.png
    可以看到,文件已经被保存了,这就是vim的最简单的使用方法
    除了上面三种模式之外,下面还有两种模式需要大家了解:
  • 视图模式:在命令模式下使用v进入(选择单个单词)使用V进入(选择一行数据)
  • 块模式:在命令模式下用键盘组合键Ctrl+v进入

快捷键

  • 命令模式
    键盘'h'(光标左移)
    键盘'l'(光标右移)
    键盘'j'(光标下移)
    键盘'k'(光标上移)
    键盘'w'(单词后移)
    键盘'b'(单词前移)
    键盘'gg'(光标移到第一行)
    键盘'G'(光标移到最后一行)
    键盘'y'(复制)
    键盘'yw'(复制一个单词)
    键盘'yy'(复制一行)
    键盘'p'(粘贴在光标下面)
    键盘'P'(粘贴在光标上面)
    键盘'x'(删除光标所在字符)
    键盘'X'(删除光标前的字符)
    键盘'u' (撤销)
    键盘'dw'(删除一个单词)
    键盘'dd'(删除一行)
    键盘'd^'(删除到行首)
    键盘'd$'(删除到行尾)
    键盘'Ctrl + r'(撤销撤销操作)
  • 编辑模式
    键盘'I'(行首插入)
    键盘'a'(光标前插入)
    键盘'A'(行末插入)
    键盘'o'(光标下开一行)
    键盘'O'(光标上开一行)
    键盘's'(删除光标所在字符,并进入命令模式)
    键盘'S'(删除光标所在行,并进入命令模式)
  • 行底模式
    set nu显示行号
    set nonu取消显示行号
    w保存文件
    w /newfile另存为其他文件
    q未保存退出
    q!放弃对内容修改并强制退出
    s/old/new 将当前行中所查找到的第一个old字符替换为new字符
    s/old/new/g 将当前行中查找到的所有old字符全部替换为new字符
    #,#s/old/new/g 在行号"#,#"范围内查找到的所有old字符全部替换为new字符
    %s/old/new/g 将整个文件中查找到的所有old字符全部替换成new字符
    #,$s/old/new/g 将#行到末行中查找到的所有old字符全部替换成new字符

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

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

相关文章

存储过程与触发器的练习题

1&#xff0e;实验目的 掌握使用SQL Server管理平台和Transact-SQL语句创建存储过程、执行存储过程、修改存储过程、删除存储过程的用法。理解使用SQL Server管理平台和Transact-SQL语句查看存储过程定义、重命名存储过程的用法。掌握通过SQL Server管理平台和Transact-SQL语句…

【古月居《ros入门21讲》学习笔记】18_常用可视化工具的使用

目录 说明&#xff1a; 1. Qt工具箱 日志输出工具&#xff1a;rqt_console 绘制数据曲线&#xff1a;rqt_plot 图像渲染工具&#xff1a;rqt_image_view 综合工具&#xff1a;rqt 2. 三维可视化工具&#xff1a;Rviz Rviz启动 使用示例 3. 仿真平台&#xff1a;Gazebo…

通用plantuml模板头

通用plantuml文件 startuml participant Admin order 0 #87CEFA // 参与者、顺序、颜色 participant Student order 1 #87CEFA participant Teacher order 2 #87CEFA participant TestPlayer order 3 #87CEFA participant Class order 4 #87CEFA participant Subject order …

004:Direct 2D离屏渲染(Qt中实现)

简介&#xff1a; 用QT开发图像显示的小程序&#xff0c;需要一些标注工具&#xff0c;由于用的是opengl渲染&#xff0c;所以就在内存中进行绘制&#xff0c;然后纹理贴图贴出去&#xff0c;发现Qt绘制的效果太差&#xff0c;且速度一般&#xff0c;于是就想着用direct2d来绘制…

MySQL根据binlog恢复数据

简介 本文介绍了使用mysqlbinlog导出数据&#xff0c;根据binlog恢复数据&#xff0c;和导出数据时报需要super权限的解决方法。 环境 MySQL: 5.7.40 说明 MySQL的binlog是数据库服务器在运行过程中产生的日志文件&#xff0c;记录了数据库增删改的操作&#xff0c;可用于恢复和…

leetcode二叉树

下面的两个题呢是比较类似的所以放在一起讲&#xff0c;更好的理解起来。 https://leetcode.cn/problems/same-tree/description/ 这个题就是比较两颗树是不是一样的&#xff0c;这个其实看起来就只要比较当前节点&#xff0c;我们分析成子问题就是判断两颗树当前节点是不是一致…

Java实现动态加载的逻辑

日常工作中我们经常遇到这样的场景&#xff0c;某某些逻辑特别不稳定&#xff0c;随时根据线上实际情况做调整&#xff0c;比如商品里的评分逻辑&#xff0c;比如规则引擎里的规则。 常见的可选方案有: JDK自带的ScriptEngine 使用groovy&#xff0c;如GroovyClassLoader、Gro…

《尚品甄选》:后台系统——分类品牌和规格管理(debug一遍)

文章目录 一、分类品牌管理1.1 表结构介绍1.2 列表查询1.3 添加功能1.4 修改功能1.5 删除功能 二、商品规格管理2.1 表结构介绍2.2 列表查询2.3 添加功能2.4 修改功能2.5 删除功能 一、分类品牌管理 分类品牌管理就是将分类的数据和品牌的数据进行关联&#xff0c;分类数据和品…

48、Flink DataStream API 编程指南(1)- DataStream 入门示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

Web安全漏洞分析-XSS(中)

随着互联网的迅猛发展&#xff0c;Web应用的普及程度也愈发广泛。然而&#xff0c;随之而来的是各种安全威胁的不断涌现&#xff0c;其中最为常见而危险的之一就是跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称XSS&#xff09;。XSS攻击一直以来都是Web安全领…

微信小程序本地和真机调试文件上传成功但体验版不成功

可能是微信小程序ip白名单的问题&#xff0c;去微信公众平台&#xff08;小程序&#xff09;上设置小程序的ip白名单 1、在本地中取消不校验 然后在本地去上传文件&#xff0c;就会发现控制台报错了&#xff0c;会提示一个https什么不在ip白名单&#xff0c;复制那个网址 2、…

【中间件】DAL中间件intro

中间件middleware 内容管理 intro数据访问层why use DAL中间件主流DAL中间件方案DAL浅析 本文从理论上介绍一下服务化背景下的DAL中间件的理论并浅析相关中间件 cfeng之前work的时候产品发展到分离服务不分库的阶段&#xff0c;所以根本不需要DAL中间件&#xff0c;也没有分布式…

机器学习——决策树

1.决策树 2.熵&#xff08;不确定程度&#xff09; 3.信息增益 & 信息增益比 3.1 信息增益 & 信息增益比 的 概念 3.2 案例解释说明 &#xff13;.&#xff12;.&#xff11;数据集说明 &#xff13;.&#xff12;.&#xff12;计算 &#xff14;&#xff0e;&#x…

软件设计师——计算机组成原理(一)

&#x1f4d1;前言 本文主要是【计算机组成原理】——软件设计师计算机组成原理的习题&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &…

[React] 2023年最新面试题

[React] 2023年最新面试题 1. class 组件与函数组件的区别2. react 18 新特性有那些?新增 createRoot API自动批处理过渡更新新的Hook 3. redux 和 react-redux 的区别4. redux 中间件的原理5. setState 发生了什么 &#xff0c;render 函数做了什么6. 虚拟DOM&#xff0c; Fi…

海外储能认证标准

北美认证 UL9540 代表一个封装完整的储能系统功能安全认证&#xff0c;关注机械测试&#xff0c;电器测试和环境测试 UL9540A 关注消防本身&#xff0c;UL9540A测试主要从电池储能系统安装参数&#xff0c;安装通风要求&#xff0c;消防设施&#xff0c;消防策略和应对措施…

SpringCloud 一

认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打成一个…

springmvc实验(三)——请求映射

【知识要点】 方法映射概念 所谓的方法映射就是将前端发送的请求地址和后端提供的服务方法进行关联。在springMVC框架中主要使用Controller和RequestMapping两个注解符&#xff0c;实现请求和方法精准匹配。注解符Controller Spring中包含了一个Controller接口&#xff0c;但是…

【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目

解决idea至少创建jdk17项目 问题idea现在只能创建最少jdk17&#xff0c;不能创建java8了吗?解决 问题 idea现在只能创建最少jdk17&#xff0c;不能创建java8了吗? 我本来以为是 IDEA 版本更新导致的 Bug&#xff0c;开始还没在意。 直到我今天自己初始化项目时才发现&…

在日常工作中怎么处理vue项目中的错误的?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue项目中的错误如何处理 目录 一、错误类型 二、如何处理 后端接口错误 代码逻辑问题 全局设…