Linux复习4——shell与文本处理

认识vim编辑器

#基本语法格式:

vim 文件名

•如果文件存在,进入编辑状态对其进行编辑

•如果文件不存在,创建文件并进入编辑状态

例:

[root@localhosttest]# vim practice.txt

#Vim 编辑器三种模式:

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。

输入模式:正常的文本录入。

末行模式:保存或退出文档,以及对文件内容进行替换。

#命令模式常用命令:

#末行模式常用命令:

通配符

定义:一类具有特殊含义的键盘字符,称之为元字符

常用:*, ?, [],{}

功能: 用于模糊搜索文件,也就是匹配文件名

举例:?用于匹配任意一个字符,a?b可以匹配abb、acb,不能匹配ab

实例:

例1:查找当前目录下以“.txt”结尾的文件

find . -name *.txt

例2:显示当前目录下以“.txt”结尾的文件的详细属性信息

ll *.txt

例3:查询文件名只有一个字符的文件

find . -name ?

例4:查询不是以.txt结尾的文件

find . ! -name *.txt

例5:查询以名字是bak或者bbk的文件

find -name "b[ab]k"

grep

find是查找文件,grep查找文件内容

不支持*和?等通配符

使用正则表达式搜索文本

命令格式:

grep [选项] 查找条件 目标文件

工作方式:在一个或多个文件中搜索符合查找条件的字符串,并打印出该字符串所在行的内容。不影响原文件内容。

选项:

--color=auto: 对匹配到的文本着色显示

-v: 显示不被pattern(查找条件)匹配到的行

-i: 忽略字符大小写

-n:显示匹配的行号

-c: 统计匹配的行数

-o: 仅显示匹配到的字符串

-e:实现多个选项间的逻辑or关系

-E:支持使用扩展正则表达式

正则表达式

概念:由普通字符和特殊字符(元字符)组成的字符串匹配的模式

功能:描述一个字符串模式

组成:

一般字符:没有特殊意义的字符

特殊字符(meta字符):元字符,有在正则表达式中有特殊意义

注意:

正则表达式规则与文件名通配符规则不同

正则表达式用于文本处理的场合

文件通配符用于文件处理的场合

不同软件对正则表达式的定义会有差异

linux正则表达式以行为单位处理字符串

[]用法

[]定义集合:

基本用法:

在一对方括号之间的字符为集合,表示匹配该集合内的任意单字符

如:单字符正则表达式[abcd]与a或b、c、d匹配

圆点、星号、反斜线在方括号内时,代表它们自己

如:[\*.]可匹配3个单字符

[]定义集合:

用减号-定义一个区间:

如[A-Z]、[0-9]、[A-Za-z0-9]

[][]集合中含左右中括号两个字符

减号在最后,则失去表示区间的意义

如:[az-]只与3个字符匹配

用^表示补集:

^在开头,表示与除集合内字符外的任意字符匹配

如:[^a-z]匹配任意非小写字符

[^][]匹配任意非中括号字符

^不在开头,则失去表示补集的意义

如:[a-z^]能匹配27个单字符

grep和find的区别

grep:查找文件中的字符串——类比在Word中查找内容

按行查找

find:查找文件或目录——类比windows“搜索”功能

重定向与管道命令

1. 输入输出重定向——重定向至/dev/null

/dev/null:特殊文件,不保存数据,写入其中的内容都会被丢弃。将命令的输出重定向到它,会起到“禁止输出”的效果

command > /dev/null 屏蔽stdout

command 2> /dev/null 屏蔽stderr

command > /dev/null 2>&1 屏蔽stdout和stderr:

2.管道符“|”

概念:一种通信机制,通常用于进程间通信。将前面一个进程的输出直接作为下一个进程的输入

作用:将前后的命令衔接在一起,形成一个管道线

格式:命令1 | 命令2 | …… | 命令n

例1:使用grep命令通过匹配文件/etc/passwd中的关键词/sbin/nologin找出了所有被限制登录系统的用户,计算一个有多少个用户。

找出被限制登录用户的命令是grep "/sbin/nologin" /etc/passwd;

统计文本行数的命令则是wc -l。

使用管道符连接两条命令:

[root@localhost ~]# grep "/sbin/nologin" /etc/passwd | wc -l

例2:ls -l /etc | less

例3:ps -ef | grep firefox 过滤firefox相关进程信息

例4:echo "123456" | passwd --stdin 用户名 修改密码

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

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

相关文章

GIT与github的链接(同步本地与远程仓库)

1.官网下载GIT Git - 安装 Git 2.GIT生成密钥 2.1 打开gitbash配置邮箱与用户名(非初次使用GIT跳过这一步) git config --global user.name "你的用户名" git config --global user.email "你的邮箱" 2.2 生成ssh密匙 1&#xff0…

小程序租赁系统开发指南与实现策略

内容概要 在如今这个快节奏的时代,小程序租赁系统的开发正逐渐成为许多商家提升服务质量与效率的重要选择。在设计这样一个系统时,首先要明白它的核心目标:便捷、安全。用户希望在最短的时间内找到需要的物品,而商家则希望通过这…

深度学习之超分辨率算法——FRCNN

– 对之前SRCNN算法的改进 输出层采用转置卷积层放大尺寸,这样可以直接将低分辨率图片输入模型中,解决了输入尺度问题。改变特征维数,使用更小的卷积核和使用更多的映射层。卷积核更小,加入了更多的激活层。共享其中的映射层&…

vue3项目history路由模式部署上线405、刷新404问题(包括部分页面刷新404问题)

一、找不到js模块 解决方法:配置Nginx配置文件: // root /your/program/path/dist root /www/wwwroot/my_manage_backend_v1/dist;二、刷新页面导致404问题(Not found) 经过一系列配置后发现进入页面一切正常,包括路由前进和回退&#xff0…

微服务篇-深入了解 XXL-JOB 分布式任务调度的具体使用(XXL-JOB 的工作流程、框架搭建)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 XXL-JOB 调度中心概述 1.2 XXL-JOB 工作流程 1.3 Cron 表达式调度 2.0 XXL-JOB 框架搭建 2.1 XXL-JOB 调度中心的搭建 2.2 XXL-JOB 执行器的搭建 2.3 使用调度中心…

JS中若干相似特性的区别

Object.is与的区别? 其他时候都相等 字符串concat()和号有什么区别? 数组at和直接索引区别 at里是负值,计算方法是:数组的长度加这个负值,得到的数作为索引值 substring与slice的区别 substring是负值,则视为0,等于全部复制 slice是负值,则从后往前复制,-2就是复制最后2个字…

Fuel库实战:下载失败时的异常处理策略

Fuel库作为一个轻量级的Kotlin HTTP客户端库,因其简洁的API和强大的功能而受到开发者的青睐。然而,网络请求总是伴随着失败的风险,比如网络不稳定、服务器错误、资源不存在等。因此,合理地处理这些异常情况对于提升用户体验和应用…

vscode插件更新特别慢的问题

点击插件标题去网页查看 命令行安装 D:\Software\VSCode\Code.exe --extensions-dir "D:\Software\VSCode\extendions" --install-extension Vue.volar-2.2.0.vsix安装完成之后重启vs code即可 参考 https://www.cnblogs.com/yiquanfeng/p/18218722

2.利用docker进行gitlab服务器迁移

一、Docker安装 安装Ubuntu 22.04.3 LTS \n \l 1、旧版本安装包清理 sudo apt-get remove docker docker-engine docker.io containerd runc当你卸载Docker时,存储在/var/lib/docker/中的图像、容器、卷和网络不会自动删除。如果你想从一个干净的安装开始&#x…

大型语言模型(LLMs)演化树 Large Language Models

大型语言模型(LLMs)演化树 Large Language Models flyfish 下面的图来自论文地址 Transformer 模型(如 BERT 和 GPT-3)已经给自然语言处理(NLP)领域带来了革命性的变化。这得益于它们具备并行化能力&…

springboot477基于vue技术的农业设备租赁系统(论文+源码)_kaic

摘 要 使用旧方法对农业设备租赁系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在农业设备租赁系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的农…

如何在 Ubuntu 22.04 上安装和使用 Composer

简介 如果你是一名 PHP 开发者,想要简化你的项目依赖管理,那么 Composer 是一个必不可少的工具。Composer 可以简化包管理,并允许你轻松地将外部库集成到你的项目中。 本教程将向你展示如何在 Ubuntu 22.04 操作系统上安装 Composer&#x…

16_HTML5 语义元素 --[HTML5 API 学习之旅]

HTML5 引入了许多新的语义元素,这些元素有助于创建结构更清晰、更具描述性的网页。语义化 HTML 不仅改善了代码的可读性,还增强了搜索引擎优化(SEO),提高了无障碍访问性,并使得开发者更容易理解和维护代码。…

国标GB28181视频监控平台与Liveweb视频监控汇聚平台对接方案

应急管理部门以“以信息化推动应急管理能力现代化”为总体目标,加快现代信息技术与应急管理业务深度融合,全面支持现代应急管理体系建设,这不仅是国家加强和改进应急管理工作的关键举措,也是应对日益严峻的应急管理形势和满足公众…

内部知识库的未来展望:技术融合与用户体验的双重升级

在当今数字化飞速发展的时代,企业内部知识库作为知识管理的关键载体,正站在变革的十字路口,即将迎来技术融合与用户体验双重升级的崭新时代,这一系列变化将深度重塑企业知识管理的格局。 一、技术融合:开启知识管理新…

EasyGBS国标GB28181公网平台P2P远程访问故障诊断:云端服务端排查指南

随着信息技术的飞速发展,视频监控领域正经历从传统安防向智能化、网络化安防的深刻转变。EasyGBS平台,作为基于国标GB28181协议的视频流媒体平台,为用户提供了强大的视频监控直播功能。然而,在实际应用中,P2P远程访问可…

HW护网分析研判思路,流量告警分析技巧

《网络安全自学教程》 这篇文章,写给每一个「护网黑奴」,为初次护网的小伙伴普及一下护网工作内容,提供一些简单的分析思路。 护网分析研判思路 1、护网组织架构和责任划分1.1、安全监控1.2、分析研判1.3、应急处置 2、分析研判2.1、判断告警…

springBoot发布https服务及调用

一、服务端发布https服务 1、准备SSL证书 (1)自签名证书:如果你只是用于开发或测试环境,可以生成一个自签名证书。 (2)CA 签名证书:对于生产环境,应该使用由受信任的证书颁发机构 …

Web 第一次作业 初探html 使用VSCode工具开发

目录 初探html? 代码展示&#xff1a; 初探html 大多数代码都比较冗长 不是很简洁 还有许多标签功能不会使用 记录一下成长过程 哈哈哈哈哈&#xff01;<–_–> 代码展示&#xff1a; 12.10首次确定书写对象 牢9门 <!DOCTYPE html> <html lang"en&quo…

分别查询 user 表中 avatar 和 nickname 列为空的用户数量

文章目录 1、要查询 user 表中 avatar 列为空的用户数量2、要查询 user 表中 nickname 列为空的用户数量 1、要查询 user 表中 avatar 列为空的用户数量 好的&#xff0c;要查询 user 表中 avatar 列为空的用户数量&#xff0c;你可以使用以下 SQL 查询语句&#xff1a; SELE…