惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
MongoDB | Blog
MongoDB | Blog
U
Unit 42
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
P
Privacy International News Feed
L
LINUX DO - 最新话题
博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
K
Kaspersky official blog
C
Cisco Blogs
博客园 - 【当耐特】
阮一峰的网络日志
阮一峰的网络日志
I
Intezer
罗磊的独立博客
MyScale Blog
MyScale Blog
Last Week in AI
Last Week in AI
A
About on SuperTechFans
G
GRAHAM CLULEY
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
D
DataBreaches.Net
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
I
InfoQ
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 叶小钗
Project Zero
Project Zero

爱吃猫的鱼

当身体被强制暂停 盘点开发者眼里的赛博大善人(一) 博客系统 FlecBlog 现已正式开源 Windows 注册表原理与实战指南 GitHub Actions 自动化部署全攻略 自研博客系统打造极致极简创作体验 2025 年度总结 替代 Alist 的多存储文件列表程序 OpenList 高通 410 随身 WiFi 刷入 Debian 利用 BAT 脚本实现高效自动化部署方案 B7c61c40 全面详解开箱即用的 AI 工具 Cursor 2024 年度总结 使用 Hexo 多种部署方法搭建个人网站 利用 Termux 让安卓手机成为专属家庭服务器 Follow:信息浏览聚合,万物皆可订阅 QRcodeGen项目介绍,基于Python打造二维码生成新利器 Nginx 可视化编辑工具 Nginx UI 安装和使用 深入探究电子邮件三大协议 使用Ventoy集成多PE打造强大U盘 Xterminal:颜值高、功能强,追求卓越体验的SSH工具 高效利用 GitHub 搜索,精准快速获取所需 IDM:广受欢迎的高速下载管理器 让Meting API解锁音乐开发新可能 零基础Docker入门指南 服务器最佳搭档,宝塔和1Panel的部署与选择 FinalShell:功能强大的服务器管理和远程连接工具 掌握Markdown技巧,轻松应对写作需求 C3dc4fa3 玩转npm:从基础到实践的全面指南 GitHub Desktop:让代码托管不再高深莫测 85af4b3 推荐10个有趣的摸鱼网站,让快乐简单起来 F34ad695 E2f1455b 503a6294 22ea4c20 A43ddadb Ba7d8a84 Caffd8d6 20820ccd E3ddac0 88040fa7 Ca1756cf Aa5669ee 78084f29 98b56a65 Efba7c23
全面详细的常用Linux命令汇总(2)
Talen · 2024-11-20 · via 爱吃猫的鱼

无论是Linux的新手还是老手,掌握一些常用命令都是必不可少的,熟练使用它们可以大大提高工作效率,成为工作中的得力助手。本文是常用Linux命令汇总系列文章的第二篇,全面详细的展示了10个与文档编辑相关的命令。

一览表

序号 命令 简述 分类
1 cat 连接与查看文件内容 文档编辑
2 more 分页显示大文件 文档编辑
3 less 功能强大的文本查看器 文档编辑
4 head 查看文件开头部分 文档编辑
5 tail 查看文件结尾部分 文档编辑
6 vim 强大的文本编辑器 文档编辑
7 sed 批量编辑文本文件 文档编辑
8 awk 对文本和数据进行处理的编程语言 文档编辑
9 grep 强大的文本搜索工具 文档编辑
10 diff 比较文件内容差异 文档编辑

1. cat 命令

cat 命令主要用于查看文件内容,也可将多个文件合并输出,还能创建新文件。它会一次性将文件的全部内容输出到标准输出设备(通常是屏幕)。

语法格式

常用参数

BASH

-n    显示行号,会在输出的每一行前加上行号
-b    显示行号,但只对非空行进行编号
-s    压缩连续的空行,只显示一个空行
-E    在每一行的末尾显示 $ 符号
-T    将 Tab 字符显示为 ^I
-v    显示一些非打印字符

实例

(1)显示指定文件内容并显示非空行的行号

image-20241114164504779

(2)把文件A的非空白行内容加上行号,之后将其附加到文件B中

BASH

cat -b file2 >> file3

image-20240320165734429

注意

  • cat命令默认会一次显示整个文件,如果文件过大可能会导致终端卡顿
  • cat命令可以用来创建新的空文件,但不能编辑文件

2. more 命令

more 命令用于分页显示文件内容,每次显示一屏。当文件内容较多时,使用 more 可以逐屏查看,避免内容过多在屏幕上滚动过快而难以阅读。

语法格式

常用参数

BASH

+n    从笫n行开始显示
-n    定义屏幕大小为n行
+/pattern    在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c    从顶部清屏,然后显示
-d    提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l    忽略Ctrl+l(换页)字符
-s    把连续的多个空行显示为一行
-u    把文件内容中的下画线去掉

操作命令

BASH

<回车键>    向下n行,需要定义。默认为1行
<空格键>    向下滚动一屏
<Ctrl> + B    返回上一屏
=    输出当前行的行号
q    退出more

实例

(1)显示指定文件内容并从第 5 行开始显示

image-20241114171900559

(2)从文件中查找第一个出现 34 字符串的行,并从该处前两行开始显示输出

image-20241114172040667

(3)设定每屏显示行数为 5

image-20241114172319103

3. less 命令

less 功能更强大,支持向前和向后翻页,在文件中进行搜索,并且可以在查看文件时不加载整个文件到内存,对于非常大的文件更加高效。

语法格式

常用参数

BASH

-b <缓冲区大小>    设置缓冲区的大小
-e    当文件显示结束后,自动离开
-f    强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g    只标志最后搜索的关键词
-i    忽略搜索时的大小写
-m    显示类似more命令的百分比
-N    显示每行的行号
-o <文件名>    将输出的内容在指定文件中保存起来
-Q    不使用警告音
-s    显示连续空行为一行
-S    行过长时将超出部分舍弃
-x <数字>    将"tab"键显示为规定的数字空格

操作命令

BASH

/字符串    向下搜索"字符串"的功能
?字符串    向上搜索"字符串"的功能
b    向上滚动一页
u    向上滚动半页
y    向上滚动一行
<空格键>    向下滚动一页
d    向下滚动半页
<回车键>    向下滚动一行
h    显示帮助界面
q    退出less

实例

(1)ps 查看进程信息并通过 less 分页显示

image-20241114173653083

(2)浏览多个文件

提示:输入 :n 切换到下一个文件,输入 :p 切换上一个文件

image-20241114174041626

4. head 命令

head 命令用于显示文件的开头部分内容。默认情况下会显示文件的前 10 行内容。

语法格式

常用参数

BASH

-q    隐藏文件名
-v    显示文件名
-c<数目>    显示的字节数
-n<行数>    显示的行数

实例

(1)显示指定文件的前 13 行

image-20241114174815384

(2)显示指定文件除最后 39 行外的全部内容

image-20241114175131721

(3)显示指定文件的前 100 个字节

image-20241114175344903

5. tail 命令

tail 命令用于显示文件的结尾部分内容。默认情况下会显示文件的最后 10 行内容。

语法格式

常用参数

BASH

-f    循环读取
-q    不显示处理信息
-v    显示详细的处理信息
-c<数目>    显示的字节数
-n<行数>    显示的行数
--pid=PID    与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent    从不输出给出文件名的首部
-s, --sleep-interval=S    与-f合用,表示在每次反复的间隔休眠S秒

实例

显示指定文件的后 13 行

image-20241114175550073

6. vim 命令

vim 是强大的文本编辑器,支持多种操作模式,包括命令模式、输入模式和命令行模式。

语法格式

操作模式

  • 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等
  • 输入模式:正常的文本输入
  • 命令行模式:保存或退出文档,以及设置编辑环境

image-20241119201558539

1. 命令模式

用户启动 vim 便进入了命令模式,此状态下敲击键盘动作会被 vim 识别为命令,而非输入字符,比如按下 iao 就进入了输入模式,而按下 : 就进入了命令行模式。

TEXT

i    切换到输入模式,在光标当前位置开始输入文本
a    切换到输入模式,在光标下一个位置开始输入文本
o(小写)    在当前行的下方插入一个新行,并进入输入模式
O(大写)    在当前行的上方插入一个新行,并进入输入模式
dd    剪切当前行
yy    复制当前行
p(小写)    粘贴剪贴板内容到光标下方
P(大写)    粘贴剪贴板内容到光标上方
u    撤销上一次操作
<Ctrl> + r    重做上一次撤销的操作
:    切换到命令行模式,以在最底一行输入命令

2. 输入模式

在输入模式中用户可以随意修改文本内容,当编写完成后可以使用 <ESC> 返回命令模式,进行其它操作。

TEXT

<ENTER>    回车键,换行
<BACK SPACE>    退格键,删除光标前一个字符
<DELETE>    删除键,删除光标后一个字符
<HOME>/<END>    移动光标到行首/行尾
<Page Up>/<Page Down>    上/下翻页
<ESC>    退出输入模式,切换到命令模式

3. 命令行模式

在命令模式下按下 : 就进入了命令行模式,在命令行模式通过输入单个或多个字符的命令来实现丰富与连贯的操作。

TEXT

:w    保存文件
:q    退出 Vim 编辑器
:wq    保存文件并退出 Vim 编辑器
:q!    强制退出 Vim 编辑器,不保存修改
:set nu    (变量变更)显示行号
:set nonu    (变量变更)取消行号

实例

使用 vim 打开指定文件

image-20241114203405731

7. sed 命令

sed 是一种流编辑器,用于对文本进行非交互式的编辑操作,可以进行文本的替换、删除、插入等操作。

语法格式

常用参数

BASH

-e    以选项中指定的事件处理输入的文本文件
-n    仅显示事件处理后的结果

事件动作

BASH

a    新增,a的后面接字串,字串在下一行出现
c    取代,c的后面接字串,字串替换n1,n2之间的行
d    删除,删除行,d的后面通常不接字串
i    插入,i的后面接字串,字串在上一行出现
p    打印,将某个选择的数据输出,通常与参数 -n 一起运行
s    取代,通常搭配正则表达式

实例

(1)在指定文件第 6 行后添加一行,并将结果输出到标准输出设备

BASH

sed -e 6a跟在第6行后的一行 file1

image-20241114232322949

(2)在指定文件中搜索包含 13 的行并输出

image-20241114235444697

(3)替换指定文件中的内容更改为新内容

BASH

sed -e s/13/130/ file1

image-20241115000631362

8. awk 命令

awk 是一种用于处理文本文件的语言,它以行为单位处理文件内容,可以进行复杂的数据提取和分析。

语法格式

常用参数

BASH

-F <分隔符>    指定输入字段的分隔符,默认是空格
-v <变量名>=<值>    设置内部变量值。可以使用该选项将外部值传递给 awk 脚本中的变量
-f <脚本文件>    指定一个包含 awk 脚本的文件。这样可以在文件中编写较大的 awk 脚本,然后通过 -f 选项将其加载

内置变量

BASH

$0    保存当前行的内容
NR    记录号(行号),每处理完一条记录,NR值加1
NF    保存记录的字段数(总共保存的列数),$1,$2...$100
FS    输入字段分隔符,默认空格
OFS    输出字段分隔符

处理规则

BASH

BEGIN{}    BEGIN是在awk处理文本之前运行
//    使用的匹配规则
{}    循环(每次只处理一行数据)
END{}    当所有的处理全部执行完毕之后,执行END中的相关操作

实例

(1)打印指定文件内容的第一列

BASH

awk '{print $1}' file3

image-20241119115814152

(2)打印指定文件内容的第一列,并用分隔符指定列

BASH

awk -F':' '{print $1}' file3

image-20241119115951010

(3)打印指定文件内容的行数

BASH

awk 'END{print NR}' file3

image-20241119120225590

9. grep 命令

grep 命令用于在文件中搜索指定的模式。它可以搜索单个文件或多个文件,并输出包含匹配模式的行。

语法格式

常用参数

BASH

-i    忽略大小写进行匹配
-v    反向查找,只打印不匹配的行
-n    显示匹配行的行号
-r    递归查找子目录中的文件
-l    只打印匹配的文件名
-c    只打印匹配的行数

实例

(1)在指定文件中搜索包含特定字符串的行

image-20241119121130878

(2)使用递归查找指定目录下所有文件包含指定字符串的行

image-20241119121641346

10. diff 命令

diff 用于比较两个文件的差异。它会显示两个文件中不同的行,并可以以不同的格式输出差异信息。

语法格式

常用参数

BASH

-u    显示完整的差异内容
-w    忽略空格和空行的差异
-r    递归比较目录下的所有文件和子目录
-q    仅判断两个文件是否不同,而不显示文件内容的差异
-c    显示上下文差异
-i    忽略大小写的差异
-y    以并列的方式显示差异内容

实例

(1)比较两个文件的差异

image-20241119125830112

(2)比较两个文件的差异,并以并列的方式展示差异

image-20241119130202656

全面详细的常用Linux命令汇总(2)

https://blog.talen.top/posts/428fcd7a