【Linux】深入理解awk命令

简介: 【Linux】深入理解awk命令

8a25217478584704b3c5725743942507.png


前言


在面试时,当面试官询问你是否会熟练使用Linux中的vim时,你是否会自信地回答:当然了,小菜一碟!不就是打开vim编辑器,进入编辑模式(i),退出编辑模式(esc),最后保存文件并退出(wq)嘛!这谁不会?,然后你得意洋洋地等待面试官的下一轮提问,然而,面试官却在沉默片刻后突然问道:那你知道如何在vim中进行查找、替换、复制、粘贴吗?此时,你是不是愣住了,心想:咋还有这玩意呢,没听说过啊?于是你在内心默默流泪,却只能支支吾吾地回答:嗯……这个……然后面试官就笑了笑……


什么是vim命令

Vim,全称为“Vi IMproved”(vi改进版),是一款备受欢迎且功能强大的文本编辑器。它广泛应用于Linux/UNIX系统,可以用来创建、编辑和查看文本文件。类似于Windows系统中的记事本。与其他编辑器不同,Vim没有提供菜单选项,而是通过命令操作,这使得它更加高效和灵活。


vim安装命令

linux下一般默认是安装了vim,没有下载vim执行下面指令即可:

sudo yum intsall -y vim


04

vim四种模式下的命令介绍

 

Vim有多种不同的工作模式,那么什么是模式呢?简单来说,就是在不同的模式下按下同一个键会有不同的效果。比如,比如在Vim的命令模式下,按下"x"键会删除光标所在处的字符;而在插入模式下,按下"x"键会在光标位置插入字符"x"。


今天,我们将重点学习Vim的四种主要模式。通过了解这些模式,我们将能够更有效地与Vim进行交互,提升编辑文本的效率。


1、正常/普通/命令模式(Command Mode)

当我们在终端中输入"vim 文件名"来打开文件时,如果该文件不存在,系统会自动创建它。一旦文件被打开,就会进入命令模式(需要注意的是,如果文件不存在且我们没有添加任何内容,该模式将不会创建文件)。在这个模式下,我们可以使用方向键(上、下、左、右)或者使用命令键(k、j、h、l)来移动光标。此外,还可以进行复制、粘贴、替换和删除等编辑操作,以便对文件内容进行修改和调整。


 

假设我们在test目录下,现在有一个file.txt的文本文件,我们使用vim file.txt打开该文件。

 


此时,发现光标在最后一行?没问题,按下gg键就可以一键回到文件顶部啦!想要再回到文件末尾?简单,使用G键就可以啦!如果觉得文件内容太少了,我们可以使用YY或者yy复制内容,再使用P键粘贴内容。



一不小心复制了过多的内容,密密麻麻的,想要快速删除?使用dd命令就可以删除一行。


如果想快速更改formatted_now这个变量名,可以使用ciw直接删掉并进入插入模式。这样就可以避免先使用i进入插入模式再一个一个地删掉,方便多了。如果你后悔了,还是想使用formatted_now这个变量名,可以使用u撤销。



除了上述提到的命令,实际上命令模式下还有很多其他命令,下面整理了常用的一些命令:


1、光标操作

  • $:光标移动到所在行的行尾
  • 0 或者^:光标移动到所在行的行首
  • G:移动到文件最后
  • gg:移动到文件的开头
  • nG:跳到指定行,n代表的是行号
  • w:向后按照单词移动
  • b:向前按照单词移动
  • ctrl+f:往下翻一页
  • ctrl+b:往上翻一页


2、复制操作

  • yy:复制光标所在行内容
  • nyy:复制光标所在位置向下的n行,包括光标所在的行
  • yw:复制光标所在处到词尾的内容(相当于复制一个单词)
  • p:粘贴
  • np:对复制的内容进行多行粘贴


3、删除操作

  • dd:删除光标所在行
  • ndd:删除光标所在位置向下的n行,包括光标所在的行
  • dw:删除光标所在处到词尾的内容(相当于删除一个单词)
  • x:删除光标所覆盖的字符
  • nx:根据光标的位置删除n个字符


4、撤销操作和取消撤销

  • u:撤销操作
  • ctrl + r:取消u操作
  • ndd + p:剪切操作


5、文本转换

  • shift+~:单词大小写切换


2、插入模式(Insert Mode)

在插入模式下,可以对文件进行类似于Windows文档的写入操作,我们只需在命令模式下按下iao键即可进入该模式。这三种插入方式有所不同:

  • i:在光标所在位置插入输入的字符
  • a:在光标所在位置的下一个字符处插入输入的字符
  • o:在光标所在行的下一行插入新行,光标位于行首


当我们进入插入模式后,可以看到左下角的状态(INSERT)。完成编辑后,按Esc退出插入模式,进入命令模式。可以使用Shift+zz命令保存并退出,其他保存和退出命令可参考下文末行模式命令。


3、末行模式(Last Line Mode)

末行模式,也被称为Ex模式,提供了一系列强大的文本操作功能,包括保存、查找、替换等。要在Vim中进入末行模式,只需在命令模式下按下:键。一旦进入末行模式,就可以输入相关的指令进行操作。当完成指令后,按下Enter键即可执行该指令,之后Vim将自动返回命令模式。


下面整理了常用的一些命令:

 

1、显示行号

  • set number:显示行号
  • set nonumber:不显示行号
  • ndd + p:剪切操作


在末行模式下,直接输入数字即可快速跳转到想要的行。如果输入的数字超过了文档的总行数,则会自动跳转到最后一行。


2、搜索

在Vim编辑器中,想要搜索一个关键词?只需在末行模式中输入/加上关键词或者?加上关键词,并按下回车键即可立即找到该关键词。同样地,在命令模式下直接输入/加上关键词或者?加上关键词也能达到相同效果。


而且,还可以按下n键去 "探访" 下个匹配的关键词,或者按下N键去 "拜访" 上个关键词

 

若要忽略大小写,只需在末行模式下输入:set ic,可启用忽略大小写模式,更灵活地进行搜索!要关闭忽略大小写,可使用set noic


3、字符替换

在末行模式下,您可以使用特定的命令来执行文本替换。其中:

  • :s/old/new :替换全文中的 "old" 为 "new"
  • :n1,n2s/old/new/g:从第 n1 行到第 n2 行替换所有的 "old"。其中 "g" 代表全局替换,即不询问,直接替换所有匹配项。c代表询问


如果我们想在替换之前保存一个备份,可以添加w参数,例如::s/old/new/gcw。这将在当前目录下创建一个新的文件,文件名是原文件名加上.bak 后缀。在执行替换操作前,编辑器会询问您是否确定要进行更改。


4、保存和退出

  • w:保存不退出
  • q:不保存
  • :强制性操作


4、可视模式(Visual Mode)

在命令模式下按下vVCtrl+v等键进入可视模式。在该模式下,用户可以选择文本块,以便执行复制、删除、替换等操作。


如果我们想复制多行,然后粘贴。该怎么操作?首先,将光标移动到要复制文本的起始位置,然后按下大写字母V,进入可视模式。此时,光标所在行文本块将被高亮显示,表示已选择。接着,将光标移动到要复制文本的结束位置,按下y键进行复制。这时,vim会自动将光标定位到选中文本的起始位置,并退出可视模式。最后,将光标移动到要粘贴的位置,按下p键进行粘贴操作。

当然,也可以使用小写字母v进行多行复制操作。唯一不同的是,按下v进入可视模式后,需要按下回车键或向下键才能使文本高亮显示。


同理,如果想要删除多行文本,也可以按照类似的方式操作,不过命令由y变成了d。


另外,如果你想要替换文本中的内容,可以使用r键进行替换操作。


由于篇幅限制,关于vim命令的分享暂时告一段落,下次我们将继续分享关于vim个性化配置内容。通过配置我们可以更好地满足个人的使用需求,敬请期待下期精彩内容!


希望这个系列能帮助大家更好地理解和使用Linux命令。如果你有任何问题或建议,请随时告诉我。

相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
95 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
265 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
80 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
72 2
|
15天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
44 14
Linux 10 个“who”命令示例
|
4天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
57 20
|
4天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
26 7
|
24天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
31 9
|
22天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
28天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
116 3
下一篇
DataWorks