• 46-文本编辑器及文本处理


    常见文本编辑器

    linux文本编辑器介绍

    • 文本处理是操作系统对文件管理的基础操作,文本编辑器是操作系统基础的功能软件之一,主要用来编写和查看文本文件。不同的文件编辑器有不同的辅助功能。根据使用环境的不同,Linux 的文本编辑器有很多类型。
    • 常见的 Linux 文本编辑器有:emacs,nano,gedit,kedit,vi,vim。

    Linux文本编辑器-emacs

    • emacs是一款功能强大的编辑器,与其说是一款编辑器,它更像一个操作系统。emacs带有内置的网络浏览器、IRC客户端、计算器,甚至是俄罗斯方块。当然,emacs需要在图形化界面的Linux中使用。
    • 优点:
      可定制,可扩展
      功能强大
      可以与许多自由软件编程工具集成
    • 缺点:
      入门单独搞,对普通用户不友好

    Linux文本编辑器-nano

    • nano是命令行界面下一个相对简单的文本编辑器,它是为了代替闭源的Pico文本编辑器而开发的,1999年以GPL协议发布第一个版本,是一个自由软件,同时也是GNU计划的一个组成部分。nano有很多人性化的功能设计,如语法高亮、正则表达式搜索和替换、平滑滚动、多个缓冲区、自定义快捷键、撤销或重复编辑。
    • 优点:
      易于使用,操作简单,适用于简单文本编辑。
    • 缺点:
      对复杂的文本编辑比较耗时,无强大的命令功能进行复杂操作,不支持如宏、一次编辑多个文件、窗口分割、垂直块/矩形选择/编辑、自动完成等高级功能。

    Linux文本编辑器- gedit

    • gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。它简单易用,有良好的语法高亮,对中文支持很好,支持包括GB2312、GBK在内的多种字符编码。gedit是一款自由软件。gedit包含语法高亮和标签编辑多个文件的功能。利用GNOME VFS库,它还可以编辑远程文件。它支持完整的恢复和重做系统以及查找和替换。
    • 优点:
      图形化界面,易上手,操作习惯与Windows类似,包括常用的快捷键如复制粘贴等。
    • 缺点:
      需要安装图形化桌面才能使用。

    Linux文本编辑器- kedit

    • 与gedit类似,kedit是KDE图形化桌面中常用的一种文本编辑器。kedit编辑器,特别适用于浏览文本和各种配置文件。
    • 优点:
      图形化界面,易上手,操作习惯与Windows类似,包括常用的快捷键如复制粘贴等。
    • 缺点:
      需要安装图形化桌面才能使用。

    Linux文本编辑器- vi

    • vi是标准的Unix文本编辑器,也是最古老的文本编辑器、最通用的文本编辑器。所有的Linux、Unix都默认带有vi文本编辑器。虽然vi的操作方式与其他常用的文本编辑器(如gedit)很不相同,但是由于其运行于字符界面,并可用于所有unix/linux环境,仍被经常使用。
    • vi的三种命令模式:
      Command : 命令模式,用于输入命令;
      lnsert : 插入模式,用于插入文本;
      Visual : 可视模式,用于浏览文本。
    • 优点 : 通用,几乎所有的Unix、Linux都自带vi。
    • 缺点 : 功能简单,显示效果单一。

    Linux文本编辑器- vim

    • Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
    • Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi lMproved。现在是在开放源代码方式下发行的自由软件。
    • 从vi派生出来的vim具有多种模式:
      基本模式 : 普通模式、插入模式、可视模式、选择模式、命令行模式、Ex模式
      派生模式 : 操作符等待模式、插入普通模式、插入可视模式、插入选择模式、替换模式
      其他: Evim
    • openEuler 20.03 LTS系统安装后默认没有安装vim,需要手动安装vim

    使用vim编辑器

    vim基础操作-打开文件

    [root@openEuler~]# vim filename

    • 如果filename文件存在,则会打开文件并显示文件内容
    • 如果filename文件不存在,vim会在下面提示[New File],并且会在第一次保存时创建该文件。
      在这里插入图片描述

    vim基础操作-移动光标

    • 快速移动光标:
      上下左右键或k、j、h、l键上下左右移动光标。
      0 移动到行首
      g0移到光标所在屏幕行行首
      :n移动到第n行。
      gg:到文件头部。
      G:到文件尾部。
      :set nu : 显示行编号
    • 数据操作:
      yy or Y:复制整行文本。
      y[n]w:复制一(n)个词。
      d[n]w:删除(剪切)1(n)个单词
      [n] dd:删除(剪切)1(n)行。

    vim基础操作–数据操作

    • 复制:
      yy or Y:复制整行文本。
      y[n]w:复制一(n)个词。
    • 粘贴:
      面向行的数据:
      ·p放置数据在当前行的下面
      ·Р放置数据在当前行的上面
      面向字符的数据:
      ·p放置数据在光标的后面.
      Р放置数据在光标前
    • 删除(剪切):
      d[n]w:删除(剪切)1(n)个单词
      [n] dd:删除(剪切)1(n)行。

    vim基础操作-行号显示与取消

    • 显示行号
      :set nu
      在这里插入图片描述

    • 取消显示行号
      :set nonu

    vim基础操作-查找与替换

    • 查找
      :/word在光标之后查找一个字符串word,按n向后继续搜索,shift+n向上搜索。
      :?word在光标之前查找一个字符串word,按n向后继续搜索。
    • 替换
      :\s/word1/word2 : word1替换为word2,替换光标后的第一个word1
      :\s?word1?word2 : word1替换为word2,替换光标前的第一个word1
      :1,5s/word1/word2/g : 将文档中1-5行的word1替换为word2
      不加g则只替换每行的第一个
      word1。
      %s/word1/word2/gi : 将文档所有的word1替换为word2,i不区分大小写。

    vim基础操作-设置搜索高亮

    • 临时设置时,在命令模式下输入:
      :set hlsearch
      在这里插入图片描述

    • 永久设置,需要在/etc/vimrc中配置,增加一行set hlsearch,然后更新变量即可。

    vim基础操作-修改文件

    • 使用vim filename打开文件后,进入的是普通模式。当想要修改文件时,可以按i键进入插入模式。进入插入模式时,会在最下面提示当前模式是Insert。按ecs可以退出插入模式,回到普通模式。
      在这里插入图片描述

    vim基础操作-撤销或重做

    • u撤销最近的改变
    • U撤销当前行自从光标定位在上面开始的所有改变.
    • Ctrl+r重做最后一次“撤销”改变

    vim基础操作-保存文件并退出

    • 退出插入模式:
      ·在插入模式下按ecs键退出插入模式
    • 常用的保存/退出的命令:
      :w 保存
      :q 退出
      :wq 保存并退出
      :q! 强制退出
      :wq! 强制保存并退出

    文本处理

    查看文件- cat (1)

    • cat是一个文本文件查看和连接工具。cat有如下功能:
      显示文件内容,cat filename
      编辑一个文件,cat > filename。
      将几个文件合并为一个文件,cat file1 file2 > file3.(这里>表覆盖(原文件内容))
      如果要保留原文件 cat >> filename或cat file1 file2 >> file3
    • cat常用选项有:
      -n:从1开始对所有行编号并显示在每行开头
      -b:从1开始对非空行编号并显示在每行开头
      -s:当有多个空行在一起时只输出一个空行
      -E:在每行结尾增加$
      –help:显示帮助信息

    在这里插入图片描述
    在这里插入图片描述

    查看文件- more (1)

    • more可以一次查看文件或者标准输入的一页,与cat不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
    • 命令格式: more [options] …
    • more常用的选项有:
      +n : 从第n行开始显示
      -n : 定义屏幕大小为n行
      -c : 从顶部清屏,然后显示 (例:more -c10 file.txt :)
      -s ∶把连续的多个空行显示为一行
    • more白常用操作:
      Enter : 默认向下滚动1行
      Ctrl+F : 向下滚动一屏
      空格键 : 向下滚动一屏
      Ctrl+B : 向上滚动一屏
      b : 向上滚动一屏
      = : 输出当前行号
      :f : 输出文件名和当前行号
      q : 退出more

    查看文件- less (1)

    • less可以一次查看文件或者标准输入的一页,less的用法比起more更加的有弹性。支持与vim相似的编辑:(/word 向后查找关键字 , ?word向前查找关键字)
    • 命令格式: less [option]文件
    • less常用的选项有:
      -f:强制打开特殊文件,例如外围设备代号、目录和二进制文件-g:∶只标志最后搜索到的关键字
      -i:忽略搜索时的大小写
      -N:显示每行的行号
      -s:当有多个空行在一起时只输出一个空行
      前面这几个选项可以进入less之前使用,也可以在进入less之后使用
      -o<文件名> : 将less输出的内容保存到指定文件
      例:
      ls -l /etc | less -o /root/output.txt
      用less选项显示ls命令的输出信息,并保存在指定目录下的output.txt文件当中
    • less常用的操作:
      b:向上翻一页
      d:向下翻半页
      h:显示帮助界面
      q:退出less
      u:向上翻半页
      y:向上翻一行
      空格键:向下翻一页
      Enter:向下翻一行
      上下键:向上/下翻一行

    文件摘选和字段提取

    文件摘选- head

    • head用来显示文件的开头至标准输出中,默认head命令可以显示文件的前10行
    • 命令格式: head [option]…[文件]…
    • head常用的选项有:
      -q : 输出时隐藏文件名,head默认不显示文件名
      -v : 输出时显示文件名
      -c num : 显示前num 个字节
      -n num:显示前num行

    文件摘选- tail

    • tail用来显示文件的末尾至标准输出中,默认tail命令可以显示文件的后10行
    • 命令格式: tail [option]… [file]…
    • tail常用的选项有:
      -f : 循环读取,对于日志文件的监控非常有用
      -q : 不显示文件名,tail默认不显示文件名
      -v : 显示文件名
      -c num : 显示文件最后num个字节
      -n num : 显示文件最后num行
      -s : 与-f结合使用,表示每次反复的时间间隔休眠s秒

    在这里插入图片描述

    提取列或字段- cut

    • cut用于显示文件或者标准输入的特定列,如:
    • [root@openEuler ~]# cut -d: -f1/etc/passwd
      #显示/etc/passwd文件以:间隔的第一列
    • 命令格式: cut [option]… [文件]
    • cut常用的选项有:
      -b:仅显示行中指定直接范围的内容
      -c[范围]∶仅显示行中指定范围的字符
      -d : 指定字段的分隔符,默认的字段分隔符为“TAB"
      -f[范围] : 显示指定第num个字段的内容,可以用逗号隔开显示多个字段
    • 指定范围的方式:
      N : 每行的第N个字节,字符或字段
      N- : 每行的第N个字节,字符或字段到每行的末尾
      -M : 每行的第1个字节,字符或字段到每行第M个
      N-M : 每行的第N到M个字节,字符或字段

    在这里插入图片描述

  • 相关阅读:
    在Ubuntu/Linux中修改MySQL的数据目录
    软件测试用例设计练习
    ES6 Promise和ES7async、await
    vue element编辑功能
    软件测试概念总结
    小程序源码:网课查题微信小程序源码下载,题库资源丰富自动采集,支持语音拍照识别-多玩法安装简单
    正则表达式
    基于Siamese网络的zero-shot意图分类
    vue轮播图使用swiper插件
    RT-Thread 快速上手(学习)
  • 原文地址:https://blog.csdn.net/m0_68516464/article/details/127878006