[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令
🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
我们搞网络安全需要经常用到 linux 命令,比用拿到 linux 的 shell,需要使用 linux 命令。再比如 sh 脚本,我们经常需要使用。这里我将开始详细介绍一些常用的 linux 命令。本文讲解与网络管理相关的命令。
文章目录
- 🍬 博主介绍
- 4.1 查看文本内容
- 4.1.1 cat
- 4.1.1.1 基本功能:
- 4.1.1.2 常用选项:
- 4.1.1.3 cat 命令常用用途:
- 4.1.2 more
- 4.1.2.1 基本功能:
- 4.1.2.2 基本语法
- 4.1.2.3 常用选项:
- 4.1.2.4 常用交互命令:
- 4.1.3 less
- 4.1.3.1 基本功能:
- 4.1.3.2 主要功能:
- 4.1.3.3 基本语法:
- 4.1.3.4 常用交互式命令
- 4.1.4 head
- 4.1.4.1 基本功能:
- 4.1.4.2 基本语法:
- 4.1.4..3 常用选项:
- 4.1.5 tail
- 4.1.5.1 主要功能:
- 4.1.5.2 基本语法:
- 4.1.5.3 常用选项:
- 4.1.6 hexdump
- 4.1.6.1 基本功能:
- 4.1.6.2 基本语法:
- 4.1.6.3 常用选项:
- 4.2 文本搜索和处理
- 4.2.1 grep
- 4.2.1 基本功能:
- 4.2.2 基本语法:
- 4.2.3 常用选项:
- 4.2.4 使用示例:
- 4.2.2 awk
- 4.2.2.1 基本功能:
- 4.2.2.2 基本特性
- 4.2.2.3 基本语法
- 4.2.2.4 常用操作:
- 4.2.3 sed
- 4.2.3.1 基本功能:
- 4.2.3.2 基本特性:
- 4.2.3.3 基本语法:
- 4.2.3.4 常用命令和选项
- 4.3 文本编辑器
- 4.3.1 vim
- 4.3.1.1 核心特性:
- 4.3.1.2 基本使用
- 4.3.2 nano
- 4.3.2.1 主要特性:
- 4.3.2.2 基本使用
- 相关资源
4.1 查看文本内容
4.1.1 cat
4.1.1.1 基本功能:
cat命令最直接的用途是显示文本文件的内容。同时利用这个命令还可以做到合并多个文件、创建新文件、向现有文件添加内容。
4.1.1.2 常用选项:
-b: 编号非空输出行。不会为空白行编号-e: 在每行的结束处显示$符号,能够较好区分出文件中的空格和空行。-s: 压缩连续的空白行成一行。-t: 显示制表符为^I-A: 显示所有控制字符
4.1.1.3 cat 命令常用用途:
# 显示文件内容
cat file.txt
# 合并多个文件
cat file1.txt file2.txt > combined.txt
# 创建新的文件
cat > new.txt
# 向现有文件添加内容
cat >> exsitingfile.txt
# 显示行号
cat -n file.txt
4.1.2 more
4.1.2.1 基本功能:
more命令是Linux和Unix系统中一个传统的文本阅读器,用于在命令行逐页查看较长的文本文件。
交互式逐页显示文本内容: 默认将文件内容分页显示,每页的大小通常由终端窗口的大小决定。
搜索文本: 在查看文件时进行搜索操作。
查看百分比位置: 在浏览文件时,
more显示当前位置在文件中的百分比.
4.1.2.2 基本语法
# 支持传递一个或多个文件名作为参数
more [options] file ...# 搭配管道符使用
ls -l | more
4.1.2.3 常用选项:
-d: 显示翻页和退出 提示-l: 忽略换行符作为分页条件。-f: 计算行的方式更为宽松,显示为两行的视为多行。-p: 通过清楚窗口而不是滚动屏幕来显示每个新屏幕。-c: 在显示每页之前清屏。-s: 多空行压缩为一行-u: 关闭下划线显示
4.1.2.4 常用交互命令:
- 空格键: 显示下一页内容
- Enter: 逐行显示内容
- b或Ctrl + B: 回滚到上一屏内容。
- f: 向前滚动一屏
- / 搜索字符串: 从当前位置向下搜索包含指定字符串的文本行。
- n : 重复前一次的搜索。
- =: 显示当前行的行号
- v: 在当前行启动
vi或vim编辑器 - h: 显示帮助屏幕,列出所有的控制命令。
4.1.3 less
4.1.3.1 基本功能:
文本查看器,用于在Linux和Unix系统中查看(但不修改)文本文件的内容。
less允许你快速浏览大文件,支持向前和向后移动,这是它相较于旧的more命令的主要优势。因为less不需要读取整个文件就能开始显示内容,所以它在打开大型日志文件或其他长文本时特别有用。
4.1.3.2 主要功能:
双向导航
部分文件加载: less读取所需的文件部分,而不是一开始就加载整个文件,从而提高处理大文件的效率。
搜索功能: 支持向前向后的搜索功能。
自定义显示: 可调整显示设置
4.1.3.3 基本语法:
less [options] file ...
4.1.3.4 常用交互式命令
- 空格键或
f: 向下翻一页。 b: 向上翻一页d: 向下翻半页u: 向上翻半页g: 跳转到文件的开始G: 跳转到文件的结束/pattern: 向下搜索匹配的字符串?pattern: 向上搜索匹配的字符产n:重复最近的搜索(向下)N: 重复最近的搜索(向上)q: 退出less
4.1.3.5 常用选项:-N:显示行号-S: 禁止自动换行-i: 搜索时忽略大小写
4.1.4 head
4.1.4.1 基本功能:
用来显示一个文本文件的开头部分。默认情况下,head会显示文件的前十行。
4.1.4.2 基本语法:
head [options]... [file]..
# 未指定文件名,head将从标准输入读取数据
4.1.4…3 常用选项:
-n <行数>:指定要显示的行数。-c <字节数>: 指定要显示的字节数-q: 当显示多个文件的头部时,不显示每个文件的名字-v: 总是显示每个文件的名字,即使只有一个文件
4.1.5 tail
4.1.5.1 主要功能:
用于查看文件文件或数据流魔为部分内容的实用工具。默认显示指定文件的最后10行内容。这个命令适合于监视实时更新的日志文件。
4.1.5.2 基本语法:
tail [option].. [file]..
# 不指定文件名时,tail将从标准输入读取数据
4.1.5.3 常用选项:
-n <行数>: 指定显示的行数-c <字节数>: 指定显示的字节数。-f: 跟踪显示文件的新增内容。-F: 与-f类似,当文件被删除或重命名时,会尝试重新打开该文件。--pid=<pid>: 与-f选项一起使用,当指定的进程终止时,tail会自动停止监控文件。
4.1.6 hexdump
4.1.6.1 基本功能:
是一个在Unix和Linux系统中用来查看文件内容的命令行工具,它以十六进制格式显示二进制数据。
4.1.6.2 基本语法:
hexdump [options] file...
4.1.6.3 常用选项:
-C: 规范的十六进制和ASCII显示,每行16字节,十六进制值和对应的ASCII字符并排显示。-b: 单字节八进制显示,一个字节一个八进制值。-c: 单字节字符显示,一个字节一个字符。-d: 双字节十进制显示,每两个字节一组。-o:双字节八进制显示,每两个字节一组。-x: 双字节十六进制显示,每两个字节一组。-n length: 显示文件前length字节的数据-s offset: 从文件的offset字节处开始显示数据。
4.2 文本搜索和处理
4.2.1 grep
4.2.1 基本功能:
文本搜索工具,用于搜索包含指定模式的行。grep支持使用正则表达式来进行复杂的模式和匹配操作。
4.2.2 基本语法:
grep [options] pattern [file...]
4.2.3 常用选项:
-i: 忽略大小写-v: 反向查找,只输出不匹配的行。-c: 统计匹配的行数而不是显示匹配的文本-n:显示匹配的行及其行号-r或-R: 递归搜索目录中所有文件-l: 只输出包含匹配文本的文件名-L:只输出不包含匹配文本的文件名-o:只输出匹配到的部分,而不是整行文本-e: 允许指定多个搜索模式,或用于模式以-开头的情况
4.2.4 使用示例:
# 搜索包含指定文本的行
grep "special text" filename.txt
#递归搜索包含文本的文件
grep -r "special text" filename.txt
# 忽略大小写的搜索
grep -i "special text" filename.txt
#统计文件中匹配到的行数
grep -c "special text" filename.txt
#查找不含特定文本的行
grep -v "special text" filename.txt
4.2.2 awk
4.2.2.1 基本功能:
awk是一个强大的文本分析工具。它不仅是一个命令行工具,也是一个完整的编程语言,非常适合对文本和数据进行模式扫描和处理。
4.2.2.2 基本特性
模式扫描和处理: awk通过模式匹配和提供处理逻辑来分析和操作文本
内置变量和函数: awk有多种内置变量和函数,支持数学运算、字符串操作等。
字段识别: 模式情况下,awk根据空白字符(空格、制表符)将每行分割成多个字段,每个字段可以单独处理
4.2.2.3 基本语法
awk [options] `program` input-file(s)
# program中的直累,指定如何处理输入的文本,可以将处理逻辑编写成一个文件,通过—f进行指定
4.2.2.4 常用操作:
# 打印文件的某些列
awk '{print $1,$2}'filename
# 模式匹配,匹配输出整行
awk `/pattern/ {print $0}` filename
# 字段求和
awk '{sum += $1} END {print sum}' filename
# 文本替换并输出
awk `{gsub(/old/, "new"); print}` filename
# 多条件和符合模式
awk '$1 > 100 && $2 == "YES" {print $0}' filename
# 使用内置函数
awk '{print toupper($1)}' filename
4.2.3 sed
4.2.3.1 基本功能:
文本处理工具。主要用于自动编辑一个或多个文件;简化对文件的重复操作;
sed可以读取指定的文本输入,执行对其的处理,然后输出结果。sed处理时不会修改原始文件,除非明确指示,而是将结果发送到标准输出。
4.2.3.2 基本特性:
行处理: sed 主要按行处理文本数据支持正则表达式: 使用正则表达式来匹配文本- 脚本化编辑: 可以通过编写脚本来执行复杂的文本操作,支持插入、删除、替换和更多操作。
4.2.3.3 基本语法:
sed [options] `command` file...
# 不指定sed的话,从标准输入读取数据
4.2.3.4 常用命令和选项
# 替换,默认只替换匹配到的第一个
sed 's/old-pattern/new-pattern/' filename
# 全局替换
sed 's/old-pattern/new-pattern/g' filename
# 删除行
sed '/pattern/d' filename
# 插入和追加
# i 在指定行前插入文本
sed '3iThis is inserted text.' filename
# a在指定行后追加文本
sed '3aThis is inserted text' filename
# 编辑原文件
sed -i 's/old/new/g' filename# 多点编辑
sed -e 's/old/new/g' -e '/delete-pattern/d' filename
# 指定行的范围
sed '1,5d' filename
4.3 文本编辑器
4.3.1 vim
文本编辑器。
4.3.1.1 核心特性:
- 模式编辑:
- 普通模式: 移动光标、复制、粘贴、删除等操作
- 插入模式: 输入文本
- 命令行模式: 保存文件、设置、执行更复杂的编辑命令等
- 可视模式:选择文本块进行操作
- 替换模式: 替换字符
- 可拓展性:可以通过安装插件来增强功能,如代码自动完成、语法高亮、项目管理等
- 定制化: 用户可以通过
.vimrc配置文件来自定义键绑定、插件和设置,使得编辑环境完全符合个人习惯。 - 强大的搜索和替换: 支持复杂的正则表达式,进行高效的文本操作。
- 多窗口和标签页:支持同时打开多个文件,并通过分屏和标签页来组织工作区域
4.3.1.2 基本使用
- 进入和退出
- 打开或常见文件:
vim filename - 退出: 在普通模式下,
:q(未做修改情况下),:q!不保存退出,:wq 或ZZ保存修改并退出
- 打开或常见文件:
- 编辑命令
- 插入文本:
i进入插入模式,在当前光标位置插入。a在当前光标后插入,o在当前行下新开一行。 - 复制粘贴:
yy复制当前行,p粘贴到光标后,P粘贴到光标前 - 删除文本:
dd删除当前行,dw删除一个词 - 撤销和重做:
u撤销,Ctrl+r重做
- 插入文本:
- 命令行模式
- 保存和退出:
:w保存,:wq保存并退出,:x和ZZ同样保存并退出。 - 查找和替换:
:/pattern查找文本,:%s/old/new/g全局替换
- 保存和退出:
- 高级功能
- 分屏:
:split水平分屏,:vsplit垂直分屏,Ctrl + w切换窗格 - 标签页:
:tabnew新建标签页,:tabnext和:tabprev切换标签页
- 分屏:
4.3.2 nano
简易文本编辑器。
4.3.2.1 主要特性:
- 用户界面: 提供一个直观的命令行界面,底部显示常用的快捷键提示
- 基本文本编辑功能:包括插入、删除、剪切、复制和粘贴文本
- 搜索和替换: 支持搜索文本,并可选择替换匹配项
- 软换行: 允许长行文本在屏幕上自动换行显示
- 多缓冲区: 可以同时打开多个文件
4.3.2.2 基本使用
- 打开和创建文件:
nano filename - 保存文件:
Ctrl + o保存文件更改,然后按Enter确认文件名 - 退出编辑器:
Ctrl + X退出nano. - 剪切整行:
Ctrl + k - 粘贴:
Ctrl + U - 查找文本:
Ctrl + W打开查找界面,输入要搜索的字符串 - 替换文本:
Ctrl + \进入替换页面,输入要查找的字符串和替换用的字符串。
相关资源
shell脚本 从入门到精通
[ DOS 命令基础 1 ] DOS 命令命令详解-系统查询相关命令
[ DOS 命令基础 2 ] DOS 命令命令详解-网络相关命令
[ DOS 命令基础 3 ] DOS 命令命令详解-文件操作相关命令
[ DOS 命令基础 4 ] DOS 命令命令详解-端口进程相关命令
[ Linux 命令基础 7 ] Linux 命令详解-磁盘管理相关命令
[ Linux 命令基础 6 ] Linux 命令详解-权限和用户管理命令
[ Linux 命令基础 5 ] Linux 命令详解-网络管理命令
[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令
相关文章:
[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
Odoo:免费开源的钢铁冶金行业ERP管理系统
文 / 开源智造 Odoo亚太金牌服务 简介 Odoo免费开源ERP集成计质量设备大宗原料采购,备件设材全生命周期,多业务模式货控销售,全要素追溯单品,无人值守计量物流,大宗贸易交易和精细化成本管理等方案;覆盖…...
33.Redis多线程
1.Redis队列与Stream Redis5.0 最大的新特性就是多出了一个数据结构 Stream,它是一个新的强大的支持多播的可持久化的消息队列。 Redis Stream 的结构如上图所示,每一个Stream都有一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯…...
【Python】解析 XML
1、Python 对 XML 的解析 1.1 SAX (simple API for XML ) SAX 解析器使用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。 xml.sax 模块牺牲了便捷性来换取速度和内存占用。 事件驱动指一种基于回调(ca…...
【复平面】-复数相乘的几何性质
文章目录 从数学上证明1. 计算乘积 z 1 ⋅ z 2 z_1 \cdot z_2 z1⋅z22. 应用三角恒等式3. 得出结果 从几何角度证明1.给出待乘的复数 u i u_i ui2.给出任意复数 l l l3.复数 l l l 在不同坐标轴下的表示图 首先说结论: 在复平面中,两个复数&a…...
为什么ta【给脸不要脸】:利他是一种选择,善良者的自我救赎与智慧策略
你满腔热忱,他却视而不见; 你伸出援手,他却恩将仇报; 你谦让包容,他却得寸进尺; 你善意提拔,他却并不领情,反而“给脸不要脸”。 所有人都曾被这种“好心当成驴肝肺”遭遇内耗&a…...
mysql 配置文件 my.cnf 增加 lower_case_table_names = 1 服务启动不了的原因
原因:在MySQL8.0之后的版本,只允许在数据库初始化时指定,之后不允许修改了 mysql 配置文件 my.cnf 增加 lower_case_table_names 1 服务启动不了 报错信息:Job for mysqld.service failed because the control process exited …...
SIwave:释放 SIwizard 求解器的强大功能
SIwave 是一种电源完整性和信号完整性工具。SIwizard 是 SIwave 中 SI 分析的主要工具,也是本博客的主题。 SIwizard 用于研究 RF、clock 和 control traces 的信号完整性。该工具允许用户进行瞬态分析、眼图分析和 BER 计算。用户可以将 IBIS 和 IBIS-AMI 模型添加…...
强化学习不愧“顶会收割机”!2大创新思路带你上大分,毕业不用愁!
强化学习之父Richard Sutton悄悄搞了个大的,提出了一个简单思路:奖励聚中。这思路简单效果却不简单,等于是给几乎所有的强化学习算法上了一个增强buff,所以这篇论文已经入选了首届强化学习会议(RLC 2024)&a…...
mac 修改启动图图标数量
调整每行显示图标数量: defaults write com.apple.dock springboard-rows -int 7 调整每列显示的数量 defaults write com.apple.dock springboard-columns -int 8 最后重置一下启动台 defaults write com.apple.dock ResetLaunchPad -bool TRUE;killall Dock 其…...
网站架构知识之Ansible进阶(day022)
1.handler触发器 应用场景:一般用于分发配置文件时候,如果配置文件有变化,则重启服务,如果没有变化,则不重启服务 案列01:分发nfs配置文件,若文件发生改变则重启服务 2.when判断 用于给ans运…...
VMware调整窗口为可以缩小但不改变显示内容的大小
也就是缩小窗口不会影响内容的大小 这样设置就好...
Vue 3 中,ref 和 reactive的区别
在 Vue 3 中,ref 和 reactive 是两种用于创建响应式数据的方法。它们有一些关键的区别和适用场景。以下是它们的主要区别: ref 用途: ref 主要用于处理基本数据类型(如字符串、数字、布尔值等)以及需要单独响应的复杂…...
window 利用Putty免密登录远程服务器
1 在本地电脑用putty-gen生成密钥 参考1 参考2 2 服务器端操作 将公钥上传至Linux服务器。 复制上述公钥到服务器端的authorized_keys文件 mkdir ~/.ssh vi ~/.ssh/authorized_keys在vi编辑器中,按下ShiftInsert键或者右键选择粘贴,即可将剪贴板中的文…...
OGNL表达式
介绍 OGNL生来就是为了简化Java属性的取值,比如想根据名称name引用当前上下文环境中的对象,则直接键入即可,如果想要引用当前上下文环境中对象text的属性title,则键入text.title即可。如果想引用对象的非值属性,OGNL也…...
AI 大模型重塑软件开发流程的现状与未来展望
 大家好,我是程序员小羊! 前言: 随着AI技术,尤其是大模型的快速发展,软件开发领域正在经历深刻…...
Spring Boot 的核心注解
一、引言 Spring Boot 作为一种流行的 Java 开发框架,以其简洁高效的开发方式受到广泛关注。其中,核心注解在 Spring Boot 应用的开发中起着至关重要的作用。理解这些注解的含义和用法,对于充分发挥 Spring Boot 的优势至关重要。本文将深入剖…...
蓝桥杯备考——算法
一、排序 冒泡排序、选择排序、插入排序、 快速排序、归并排序、桶排序 二、枚举 三、二分查找与二分答案 四、搜索(DFS) DFS(DFS基础、回溯、剪枝、记忆化) 1.DFS算法(深度优先搜索算法) 深度优先搜…...
MutationObserver与IntersectionObserver的区别
今天主要是分享一下MutationObserver和IntersectionObserver的区别,希望对大家有帮助! MutationObserver 和 IntersectionObserver 的区别 MutationObserver 作用:用于监听 DOM 树的变动,包括:元素的属性、子元素列表或节点文本的…...
生产与配置
1.鲁滨孙克苏鲁经济 鲁滨孙克苏鲁经济是一种非常简单的自给自足的经济,劳动时间与休息时间总和为总的时间。 即 摘椰子的数量为劳动时间的函数 由于鲁滨孙喜欢椰子,厌恶劳动时间,因此无差异曲线表现为厌恶品的形态。 根据无差异曲线和生…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
