Linux命令进阶

grep 从文件中搜索字符串

grep "字符串" 文件
参数:
-n 显示行号
-R 递归及子目录

例如

grep "hello" log.c
grep "main" * -nR

find 在指定路径下搜索文件

find 路径 -name 文件名
find /home/linux -name hello.c  //在/home/linux目录下搜索hello.c

管道连接符 |

说明:管道就是将一个命令的输出当作另一个命令的输入,通过|连接多个命令

(理解:后一个命令的操作,是在前一个命令的基础上进行的)

cat /etc/passwd | grep "linux"ls /usr/include | grep "stdio.h"

head 显示文件开头的内容

head -行数 文件head -10 /etc/passwd 显示/etc/passwd文件开头前10行

tail 显示文件尾部指定的行数

tail -行数 文件tail -1 /etc/passwd 显示/etc/passwd文件最后一行的信息

cut 字符串裁剪函数

cut -d "分割字符" -f 字段
参数:
-d 指定我们的分割字符
-f 指定我们显示的区域tail -1 /etc/passwd | cut -d ":" -f 1,3,4grep "linux" /etc/passwd | cut -d ":" -f 1,3

wc:统计某个文件的行数/单词个数/字节数

-l 显示一个文件的行数
-w 显示一个文件的单词个数
-c 显示一个文件的字节数
wc -l log.txt
wc -w log.txt
wc -c log.txt

shell中的通配符

通配符含义实例
*匹配任意长度的字符串ls file_*.txt
?匹配一个长度的字符串ls file_?.txt
[…]匹配其中指定的一个字符ls file_[otr].txt
[-]匹配指定的一个字符范围ls file_[a-z}.txt
[^…]除了其中指定的字符,其他均可匹配ls file_[^obt].txt

输入/输出重定向

输入/输出重定向是改变 shell 命令或程序默认的标准输入/输出目标,重新定向到新的目标。

Linux 中默认的标准输入定义为键盘,标准输出定义为终端窗口

用户可以为当前操作改变输入或输出,迫使某个特定命令的输入或输出来源作为外部文件。

输出重定向(>)

含义:把本来应该输出到屏幕上的正确的数据,修改输出到其他的地方(文件)

echo "hello world" > log [把hello world写入log.txt文件中,写入前会把log.txt文件内容清除
echo "123" >>log [追加方式]

输入重定向(<)

含义:改变默认的输入源,把本来应该从键盘输入的信息该从其他位置获取。(例如从文件中)

cat /etc/passwd
cat </etc/passwd

错误重定向(2>)

含义:把本来应该输出到屏幕上错误的信息改输出到文件中

das123 2> log.txt

命令置换

含义:将一个命令的输出当作另一个命令的参数,我们叫做命令置换

command1 `command2` command2的输出当作command1的参数
注:这里不是单引号,而是反撒号 esc下面的键为反撒号
find `pwd` -name hello.c
ls `pws`

sed命令详解

采用的是流编辑模式,最明显的特点是,在sed处理数据之前,需要预先提供一组规则,sed会按照此规则来编辑数据

使用场景

  • 超大文件处理
  • 对文件进行批量增加,替换等
  • 有规律的文本,例如 以分号,空格等分隔的日志文件等

说明

sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在-个文本文件中,此命令执行数据的顺序如下:

  • 每次仅读取一行内容;
  • 根据提供的规则命令匹配并修改数据。注意,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据
  • 将执行结果输出。

当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕。

格式:

sed [options] '{command}[flags]' [filename]

[]中的数据必须存在 {}内容可省略

options 命令选项

-e 脚本命令 该选项会将其后面的脚本命令添加到已有的命令中
-f 脚本文件 该选项会将其文件中的脚本命令添加到已有的命令中
-n 					只显示匹配的行
-i 					直接对原文件进行操作,会修改原文件内容。sed命令默认不修改文件

{command}[flags]

sed 内部常用命令

i:insert,在制定或匹配到的行前面添加新行内容为string
a:append,在指定或匹配到的行后面追加新行,内容为string
d: delete,删除符合地址定界条件的的行
p: print,默认 sed 对模式空间内的处理完毕后,将输出的结果输出在标准输出
添加 p 命令,相当于输出了原文,又一次输出了模式匹配处理后的内容。
s: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串,如果修饰符为 g 则为全部替换。

flags

n:1~512之间的数字 表示指定要替换的字符串出现第几次时才进行替换例如,一行中有 3个 A,但用户只想替换第二个 A,这是就用到这个标记g:对数据中所有匹配到的内容进行替换,如果没有g,则只会在第一次匹配成功时做替换操作例如,一行数据中有3个A,则只会替换第一个A;P:会打印与替换命令中指定的模式匹配的行。此标记通常与-n选项一起使用

场景1 :显示 /etc/passwd 第三行的信息

sed -n '3p' /etc/passwd

3代表行数,p代表输出结果

场景2:在 /etc/passwd 中第一行前添加一行内容为“Good”

sed -e '1iGood' /etc/passwd

1代表第一行,i代表insert插入的意思。表示在第1行前插入新的字符串

场景3: 把/etc/passwd 中使用名字为root的字符串改为 class

格式:

sed 's/旧字符串/新字符串/g' 文件名
功能:替换所有的字符串
sed 's/旧字符串/新字符串/2' 文件名
功能:替换每行中第二次出现该字符串的数据
sed 's/root/class/g' /etc/passwd

场景4:删除 /etc/passwd 中内容并列出行号,并且将第2-5行删除

cat -n /etc/passwd sed '2,5d'

场景5:把 /etc/passwd 文件中root用户的信息带行号的形式重定向到log.txt文件中

要求把log.txt 文件中root替换我linux,并且log.txt中保存替换后的文件

cat /etc/passwd | grep -n "root">log.txt
sed -i 's/root/linux/g' log.txt

awk命令

AWVK 语言的基本功能是在文件或者字符串中基于指定规则浏览和抽取信息。awk 抽取信息后,才能对其他文本操作。它是一个强大的文本分析工具。简单来说 awk 就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。之所以叫 AWK 是因为其取了三位创始人Alfred Aho,Peter Weinberger,和 Brian Kernighan 的 Family Name 的首字符。

sed命令常用于整行的处理。而awk更倾向与包一行分为多个‘字段’然后进行处理

awk的适用场景:

  • 超大文件处理
  • 输出格式化的文本报表
  • 执行算数运算
  • 执行字符串操作等

语法

awk [options] 'pattern {action}' filename

options: 可选参数

-F 指明输入时用到的字段分隔符,默认分隔符为空格或tab键

-V (var=Value)自定义变量

pattern: 匹配规则

action: 某些计算操作/格式化数据/流控制语句

filename: 文件名

例:

awk -F “:” ‘{print $1}’ /etc/passwd

输出第一列

基础用法:

awk '条件1 {动作1} 条件2 {动作2} ...' 文件名

条件:一般使用关系表达式作为条件

动作(Action):格式化输出、流程控制语句

awk流程控制用法

awk BEGIN关键字

介绍:默认情况下,awk 会从输入中读取一行文本,然后针对该行的数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用 BEGIN 关键字。

格式:

BEGIN{commands}
功能:在执行awk命令前,先执行BEGIN对应的动作

用法:

awk END关键字

和 BEGIN 关键字相对应,END 关键字允许我们指定一些脚本命令,awk 会在读完数据后执行它们

cat /etc/passwd | tail -1 | awk -F ":" 'BEGIN {print "The data3 File Contents:"} {print $2} END {print "End of File"}

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

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

相关文章

Win10 安装 Redis 数据库

一、Redis 数据库介绍 Redis 是一个开源的高性能键值对&#xff08;key-value&#xff09;的非关系型数据库。它通常用作数据结构服务器&#xff0c;支持多种类型的数据结构&#xff0c;如字符串&#xff08;strings&#xff09;、哈希&#xff08;hashes&#xff09;、列表&a…

【大事件】国产软件出头,Web版数据库管理工具

SQLynx在今年口碑大火&#xff0c;成为数据库管理工具市场的一匹黑马。那么&#xff0c;SQLynx究竟如何&#xff1f;它究竟有哪些引人注目的优点呢&#xff1f; 首先&#xff0c;SQLynx完全免费&#xff0c;这无疑为众多用户带来了福音。在这个追求性价比的时代&#xff0c;谁…

【MySQL基础刷题】总结题型(二)

最多10题&#xff0c;再多不消化了 1.至少有5名直接下属的经理2.销售员3.订单最多的客户4.计算布尔表达式的值5.查询球队积分6.苹果和桔子7.两人之间的通话次数8.确认率9.各赛事的用户注册率 1.至少有5名直接下属的经理 注意左连接的使用 select e1.name from Employee e1 lef…

低代码框架参考

企业管理信息系统作为一类重要的应用软件系统&#xff0c;具有自己的特点&#xff0c;主要有两个方面&#xff1a; 1. 系统规模大&#xff0c;目前市场上常见的ERP系统一般都有几千个页面。 2. 页面逻辑相似性强。经过比较可以发现&#xff0c;大部分页面具有类似的功能&…

见证 RTE 的新篇章丨 RTE 年度场景 Showcase 暨第四届 RTE 创新大赛开幕

人工智能技术的快速发展&#xff0c;推动 RTE 行业持续进化&#xff0c;让实时互动场景变得更丰富、更有趣、更高效。2024 年 10 月 25 日 -26 日&#xff0c;由声网和 RTE 开发者社区联合主办的  RTE2024 第十届实时互联网大会 将在北京悠唐皇冠假日酒店正式开启&#xff0c…

精选优质不收费数据恢复软件全解析

数据已经成为了我们生活和工作中无比珍贵的资产。然而我们在使用中总会因为各种意外导致数据丢失。今天&#xff0c;我们就来深入了解一些优秀的不收费的数据恢复软件&#xff0c;看看他们如果帮我们力挽狂澜。 1.福晰数据恢复 链接直达&#xff1a;https://www.pdf365.cn/fo…

Java常见集合一条龙讲解版(结合底层原理以及面试题)

Java集合大体上可以分为俩类&#xff0c;一类是单列集合&#xff08;Collection&#xff09;&#xff0c;另一类是双列集合&#xff08;Map&#xff09;。 其中单列集合还包括俩种集合&#xff0c;一类是List&#xff0c;另一类是Set。 在Java中对于这些位级比较高的都会封装…

No.16 笔记 | SSRF(服务器端请求伪造)基础

一、SSRF基础知识 1.1 什么是SSRF&#xff1f; &#x1f50d; SSRF是"Server-Side Request Forgery"的缩写&#xff0c;中文意思是"服务器端请求伪造"。 &#x1f3ad; 简单来说&#xff1a;攻击者让服务器去访问它不应该访问的地方。 1.2 SSRF的基本模…

【Spring】Spring实现加法计算器和用户登录

加法计算器 准备工作 创建 SpringBoot 项目&#xff1a;引入 Spring Web 依赖&#xff0c;把前端的页面放入项目中 **<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport"…

2024国际潜水小姐大赛中国区总决赛盛典在广州举行,吉林选手张潇文获冠军!

传承“以美之名&#xff0c;保护海洋”的精神&#xff0c;2024年10月15日晚&#xff0c;2024国际潜水小姐大赛中国区总决赛盛典在广州渔民新村隆重举行&#xff01;来自全国多个城市&#xff0c;经过层层选拔产生的20位佳丽齐聚广州&#xff0c;以独特的女性水下之美和健康美&a…

ubuntu18.04系统中图形化界面

一、Ubuntu 18.04 中&#xff0c;使用 GDM 作为默认的图形用户界面&#xff08;GUI&#xff09;管理器。GDM 是 GNOME Display Manager 的缩写&#xff0c;它是用于 Ubuntu 的显示管理器&#xff0c;负责处理登录和会话管理。 通过命令行重启 Ubuntu 18.04 上的图形界面服务&am…

Windows系统快捷键(自用)

Microsoft Windows 的键盘快捷方式 未标记&#xff1a;表示已掌握&#xff0c;少数&#xff08;不常用&#xff09;作为笔记 红色标记&#xff1a;表示尚需掌握 黄色标记&#xff1a;表示第一序列 系统快捷键 Esc&#xff1a;停止或离开当前任务 F2&#xff1a;重命名选中的文…

若依框架篇-若依框架搭建具体过程、后端源代码分析、功能详解(权限控制、数据字典、定时任务、代码生成、表单构建、接口测试)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 若依框架概述 1.1 若依构建 1.2 后端项目搭建 1.3 前端项目搭建 2.0 利用若依框架生成前后端代码案例 3.0 功能详解 3.1 功能详解 - 权限控制 3.1.1 使用权限控制…

ORM框架简介

什么是ORM&#xff1f; ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;是一种编程技术&#xff0c;用于在关系数据库和对象程序语言之间转换数据。ORM框架允许开发者以面向对象的方式来操作数据库&#xff0c;而不需要编写复杂的SQL语句。简单…

计算机网络 tcp和udp

目录 一、TCP 建立连接-TCP 三次握手 1&#xff09; 什么是半连接队列和全连接队列&#xff1f; 2&#xff09; 为什么要三次握手? 3&#xff09; 三次握手过程中可以携带数据吗&#xff1f; 断开连接-TCP 四次挥手 1&#xff09; 为什么要四次挥手&#xff1f; 2&…

美洽入选中国信通院《2024高质量数字化转型产品及服务全景图》AI 版块

近日&#xff0c;2024大模型数字生态发展大会在北京举办&#xff0c;中国信息通信研究院发布了《高质量数字化转型产品及服务全景图&#xff08;2024&#xff09;》。美洽凭借“AI客服平台”产品入选人工智能、AI大模型、客户服务三大板块。 中国信息通信研究院是工业和信息化部…

超全!一文详解大型语言模型的11种微调方法

导读&#xff1a;大型预训练模型是一种在大规模语料库上预先训练的深度学习模型&#xff0c;它们可以通过在大量无标注数据上进行训练来学习通用语言表示&#xff0c;并在各种下游任务中进行微调和迁移。随着模型参数规模的扩大&#xff0c;微调和推理阶段的资源消耗也在增加。…

基于springboot实习管理系统

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的&#xff0c;前后端分离。 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;…

编译原理——扫描器设计与实现

改进了一下&#xff0c;加入了能够输出错误提示&#xff08;注意&#xff1a;我们是用char接收的&#xff0c;但是遇到中文的时候因为码值的原因&#xff0c;一个中文字占三个char所以按照我们判断流程会输出三个错误提示&#xff0c;你们要是见意的话可以自行修改&#xff09;…

【JMeter】使用BeanShell写入内容到文件

一、前言 在我们日常工作中&#xff0c;可能会遇到需要将请求返回的数据写入到文件中。在我们使用JMeter进行性能测试时&#xff0c;就经常能够遇到这种情况。要想达到这种目的&#xff0c;我们一般采取BeanShell后置处理器来将内容写入到文件。 二、提取 在目前大多数的性能…