[ 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 命令详解-文本处理命令