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字符

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

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

相关文章

深入理解 Vue 中的指针操作(二)

文章目录 ☘️引言☘️基本用法&#x1f342;v-for指令&#x1f342;v-model指令&#x1f331;v-model适用表单控件&#x1f331;修饰符&#x1f9c4;.lazy 修饰符&#x1f9c4;.number 修饰符&#x1f9c4;.trim 修饰符 ☘️结论 ☘️引言 Vue.js 是一款非常流行且功能强大的…

Golang数据类型(数组)

数组重要概念 数组&#xff08;Array&#xff09;是一种非常常见的数据类型&#xff0c;几乎所有的计算机编程语言中都会用到它 在Go语言中&#xff0c;数组有如下的特点&#xff1a; 数组里的元素必须全部为同一类型&#xff0c;要嘛全部是字符串&#xff0c;要嘛全部是整数…

onelist能让alist聚合网盘拥有海报墙

什么是 onelist &#xff1f; onelist 是一个类似 emby 的专注于刮削 alist 聚合网盘形成影视媒体库的程序。 主要解决以下痛点&#xff1a; alist 挂载云盘后能在网页端看视频&#xff0c;却没有分类&#xff0c;没有海报墙&#xff1b;使用 webdav 挂载本地后&#xff0c;用…

最大熵模型

1. 最大熵原理 学习概率模型时&#xff0c;在所有可能的概率模型(分布)中&#xff0c;熵最大的模型是最好的模型。 假设离散随机变量X的概率分布是P(X)&#xff0c;则其熵为 且满足0<H(P)<logN 当且仅当X的分布是均匀分布时右边的等号成立&#xff0c;即当X服从均匀分布…

卷积神经网络(CNN)注意力检测

文章目录 一、前言二、前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据3. 查看数据 二、数据预处理1.加载数据2. 可视化数据4. 配置数据集 三、调用官方网络模型四、设置动态学习率五、编译六、训练模型七、模型评估1. Accuracy与Loss图2. …

外汇天眼:外汇市场中的“双向交易”是什么意思?

说到外汇市场&#xff0c;总免不了提到它双向交易的优势&#xff0c;很多新手会对这一点有所疑问&#xff0c;今天我们就帮大家解决这一个疑问。 何谓双向交易&#xff1f; 金融市场上&#xff0c;交易者最常接触到的股票&#xff0c;多属于单向交易。 单向交易的模式便是「先…

1145. 北极通讯网络(Kruskal,并查集维护)

北极的某区域共有 n 座村庄&#xff0c;每座村庄的坐标用一对整数 (x,y) 表示。 为了加强联系&#xff0c;决定在村庄之间建立通讯网络&#xff0c;使每两座村庄之间都可以直接或间接通讯。 通讯工具可以是无线电收发机&#xff0c;也可以是卫星设备。 无线电收发机有多种不…

MySQL之redo log

聊聊REDO LOG 为什么需要redolog&#xff1f; 那redolog主要是为了保证数据的持久化&#xff0c;我们知道innodb存储引擎中数据是以页为单位进行存储&#xff0c;每一个页中有很多行记录来存储数据&#xff0c;我们的数据最终是要持久化到硬盘中&#xff0c;那如果我们每进行…

MySQL修改已存在数据的字符集

在实际应用中&#xff0c;如果一开始没有正确的设置字符集&#xff0c;在运行一段时间以后&#xff0c;才发现当前字符集不能满足要求&#xff0c;需要进行调整&#xff0c;但又不想丢弃这段时间的数据&#xff0c;这个时候就需要修改字符集。 在MySQL设置默认字符集和校对规则…

【探索Linux】—— 强大的命令行工具 P.18(进程信号 —— 信号捕捉 | 信号处理 | sigaction() )

阅读导航 引言一、信号捕捉1. 内核实现信号捕捉过程2. sigaction() 函数&#xff08;1&#xff09;函数原型&#xff08;2&#xff09;参数说明&#xff08;3&#xff09;返回值&#xff08;4&#xff09;函数使用 二、可重入函数与不可重入函数1. 可重入函数条件2. 不可重入函…

Pytorch模型编译报错 UserWarning: (Resize(), RandomResizedCrop(), etc.)——解决办法

1、问题描述 使用Pytorch训练模型时&#xff0c;编译报错&#xff1a; UserWarning: The default value of the antialias parameter of all the resizing transforms (Resize(), RandomResizedCrop(), etc.) will change from None to True in v0.17, in order to be consis…

linux socket套接字

文章目录 socket流socket&#xff08;TCP&#xff09;数据报socket&#xff08;UDP&#xff09; 讨论 socket 所谓套接字&#xff0c;就是对网络中不同主机上的应用程序之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;套接字提供了应用层进程利…

【内网安全】搭建网络拓扑,CS内网横向移动实验

文章目录 搭建网络拓扑 ☁环境CS搭建,木马生成上传一句话&#xff0c;获取WebShellCS上线reGeorg搭建代理&#xff0c;访问内网域控IIS提权信息收集横向移动 实验拓扑结构如下&#xff1a; 搭建网络拓扑 ☁ 环境 **攻击者win10地址&#xff1a;**192.168.8.3 dmz win7地址&…

VSCode 代码调试

断点调试&#xff08;debug&#xff09;&#xff1a; 指在程序的某一行设置一个断点&#xff0c;调试时&#xff0c;程序运行到这一行就会停住&#xff0c;然后你可以一步一步往下调试&#xff0c;调试过程中可以看各个变量当前的值&#xff0c;出错的话&#xff0c;调试到出错…

PostgreSQL-SQL联表查询LEFT JOIN 数据去重复

我们在使用left join联表查询时&#xff0c;如果table1中的一条记录对应了table2的多条记录&#xff0c;则会重复查出id相同的多条记录。 1、解决方法一 SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.id t2.tid 第一种方法我们发现还是有重复数据 2、解决方法二…

无限移动的风景 css3 动画

<style>*{margin:0;padding:0;/* box-sizing: border-box; */}ul{list-style: none;}#nav{width:900px;height:100px;border:2px solid rgb(70, 69, 69);margin:100px auto; overflow: hidden;}#nav ul{animation:moving 5s linear infinite;width:200%; /*怎么模拟动画…

【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第二次作业

Written Part 1. 给定包含属性&#xff5b;Height, Hair, Eye&#xff5d;和两个类别&#xff5b;C1, C2&#xff5d;的数据集。构建基于信息增益&#xff08;info gain&#xff09;的决策树。 HeightHairEyeClass1TallBlondBrownC12TallDarkBlueC13TallDarkBrownC14ShortDark…

Java实现简单的王者荣耀游戏

一、创建新项目 首先创建一个新的项目&#xff0c;并命名为wangzherongyao。 其次在飞翔的鸟项目下创建一个名为img的文件夹用来存放游戏相关图片。详细如下图&#xff1a; 二、游戏代码 1、创建怪物类 1.bear&#xff1a; package beast;import wangzherogyao.GameFrame;…

a-table:表格组件常用功能记录——基础积累2

antdvue是我目前项目的主流&#xff0c;在工作过程中&#xff0c;经常用到table组件。下面就记录一下工作中经常用到的部分知识点。 a-table&#xff1a;表格组件常用功能记录——基础积累2 效果图1.table 点击行触发点击事件1.1 实现单选 点击事件1.2 实现多选 点击事件1.3 实…

知识社区问答平台源码系统 开源的知识问答平台 附带完整的搭建教程

互联网的快速发展&#xff0c;人们对于知识的需求越来越高。知识社区问答平台源码系统是一款基于开源框架搭建的知识问答平台&#xff0c;旨在帮助人们快速、准确地获取所需知识&#xff0c;提高学习效率。 以下是部分代码示例&#xff1a; 系统特色功能一览&#xff1a; 1.知…