前言

Linux 有八个常用的文本操作命令:catheadtailnlgrepsedmoreless。本文介绍它们的区别和简单用法。

cat命令

显示文本的最基本命令。

  1. cat file
  1. cat /usr/share/metasploit-framework/data/wordlists/passwd.lst

cat命令不是最方便的命令,但却十分快捷。

head命令

该命令将显示文件的前10行(默认情况下)。

  1. head filename

如果你想显示指定的行数,请在head命令后使用-来指定。

  1. head -20 passwd.lst

tail命令

该命令与head命令相反,将显示文件的最后10行(默认情况下)。

  1. tail filename

如果你想显示指定的行数,请在tail命令后使用-来指定。

  1. tail -20 passwd.lst

nl命令

显示带有行号的文件。

  1. nl file

如果你用管道输出到它,它使参考变得更容易。

  1. head -35 passwd.lst | nl

grep命令

可能是使用最广泛的文本处理命令。关于这个命令,有好几本书。

  1. cat file | grep keyword

它可以让你过滤显示文件的内容。

  1. cat passwd.list | grep output

结合前面的命令,让我们查看passwd.lst第20至50行中所有含有23的字词。

  1. head -50 passwd.lst | tail -30 | grep 23 | nl
  • head -50 passwd.lst 表示我们想要显示前50行。
  • tail -30 表示想要从head命令得到的前50行里的最后30行,也就是20-50行。
  • grep 23 将只显示包含23的行。
  • nl将显示行数。

sed命令

这个命令可以让你搜索出现的单词或测试模式,然后对它执行一些操作。类似于Windows中的查找和替换。sed中的命令以单个字母开头。

s是替换命令:

  1. echo "gwyn" | sed 's/gwyn/gps'

让我们使用sedsnort.conf文件中找到mysl的所有实例,并将其替换为MySQL,并将该文件保存为当前目录中的snorttest.conf

  1. sed s/searchterm/replacementterm/occurence

这里的g代表全局,意味着替换发生的所有实例。

  1. sed s/mysql/MySQL/g /etc/snort/snort.conf > snorttest.conf

你可以通过在末尾使用/1/2等来指定你要替换的行的哪一次出现。

我们假设我们有一个textfile.txt文件:

  1. gwyn gps
  2. gwyn gps gps
  3. gwyn gps gps gps

我们如何才能在每一行中只将第二次出现的gps替换为gwyneth

  1. sed s/gps/gwyneth/2 textfile.txt > sample.txt

现在,如果我们想只在第三行中替换第二个出现的内容,该怎么办?我们可以在s命令的前面加上一个数字来表示。

  1. sed 3s/gps/gwyneth/2 textfile.txt > sample2.txt

让我们看看在snort.conf 中,mysql每次出现的地方:

并将第二行中出现的每一个mysql替换为dogs,并将其保存到sample2.txt

more命令

每次显示文件的一页,并允许分页。

  1. more file
  1. more snort.conf

less命令

more命令类似,只不过更加实用。毕竟少即是多。

  1. less file

如果你按下/键,less将允许你在文件中搜索术语。

  1. less snort.conf

在这里,我按下/键,并键入选项:

less带我到第一个发生的地方,按n键是下一个。

总结

就这样吧,我终于开始理解把这些命令连在一起的强大力量了。

Linux系列之文本操作命令的更多相关文章

  1. [Linux] Linux常用文本操作命令整理

    简单的总结一下常用的一些实用的Linux文本操作命令,包括wc(统计).cut(切分).sort(排序).uniq(去重).grep(查找).sed(替换.插入.删除).awk(文本分析). 1.统计 ...

  2. Linux常用文本操作命令整理

    阅读目录 1.统计命令——wc 2.切分命令——cut 3.排序命令——sort 4.去重命令——uniq 5.查找命令——grep 6.替换/查找/删除命令——sed 7.强大的文本分析命令——aw ...

  3. Linux系列教程(十)——Linux文本编辑器vim

    通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...

  4. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  5. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  6. .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用

    一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...

  7. Linux系列(17)之系统服务

    我们知道,在我们登陆Linux后,系统就为我们提供了很多服务,比如例行工作调度服务crond.打印服务.邮件服务等.那么这些服务是如何被启动的呢? 这个问题先放一下,接下来我们先了解一下Linux的启 ...

  8. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  9. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

随机推荐

  1. Android 12(S) 图像显示系统 - SurfaceFlinger之VSync-上篇(十六)

    必读: Android 12(S) 图像显示系统 - 开篇 一.前言 为了提高Android系统的UI交互速度和操作的流畅度,在Android 4.1中,引入了Project Butter,即&quo ...

  2. Emacs基础使用教程及常见命令整理

    前言:最近使用Emacs,因此整理了官方中文教程中的一些知识点和常用的命令,方便查阅使用. 对于用习惯Windows的人来说,想要入门Emacs不是一件特别容易的事,但好在Emacs提供了官方的教程文 ...

  3. MySQL基础之写表(创建表)

    我的博客 工具 市面上的SQL可视化工具不少,我一般常用的主要就是这两个. 当然,IDEA也是集成了数据库可视化功能的.除了这些,还有DBeaver.SQLyog等等. 我比较喜欢DataGrip,我 ...

  4. k8s入门之Service(六)

    将一组pod公开为网络服务,通过service代理,可以实现负载均衡 一.ClusterIP 此方式只能在集群内访问 1.使用命令暴露已存在的pod (1)继续使用前面章节的案例,查看名称为nginx ...

  5. ONNXRuntime学习笔记(二)

    继上一篇计划的实践项目,这篇记录我训练模型相关的工作. 首先要确定总体目标:训练一个pytorch模型,CIFAR-100数据集测试集acc达到90%:部署后推理效率达到50ms/张, 部署平台为wi ...

  6. 1.4 类UNIX系统是什么鬼?

    上节<UNIX和Linux的区别>中讲到了 UNIX 系统的历史,UNIX 是操作系统的开山鼻祖,是操作系统的发源地,后来的 Windows 和 Linux 都参考了 UNIX. 有人说, ...

  7. 浅谈Java-String到底是值传递还是引用传递?

    参数传递 Java 中的参数传递分为 "值传递""引用传递" 如果你学过 C/C++应该很好理解,就是所谓的 "值传递" 和 "指 ...

  8. 微服务生态组件之Spring Cloud OpenFeign详解和源码分析

    Spring Cloud OpenFeign 概述 Spring Cloud OpenFeign 官网地址 https://spring.io/projects/spring-cloud-openfe ...

  9. 中国电子云数据库 Mesh 项目 DBPack 的实践

    作者:刘晓敏 2022 年 4 月,中国电子云开源了其云原生数据库 Mesh 项目 DBPack.该项目的诞生,旨在解决用户上云过程中面临的一些技术难点,诸如分布式事务.分库分表等.由于它数据库 Me ...

  10. Redis集群高频问答,连夜肝出来了

    Redis 集群方案 Redis集群方案应该怎么做?都有哪些方案?  使用codis方案:目前用的多的集群方案,基本和twemproxy一致的效果,但它支持在节点数量改变情况下,旧节点数据可恢复到新h ...