Linux之 grep、find、ls、wc 命令
Linux之 grep、find、ls、wc 命令
“ 在 Linux 世界中,命令行是不可或缺的一部分,而掌握一些常用的命令可以帮助你更有效率地管理文件和系统。本文将为你介绍四個基礎而强大的 Linux 命令:grep、find、ls 和 wc,带你开启高效文件操作的旅程!”
01
概述
本系列主要讲解Linux运行时命令,包括网络、磁盘、内存、CPU相关参数等,主要是为了分享怎么通过常见的 Linux 命令去排查相关问题。比如:
-
发现机器的CPU负荷比较高,那么怎么查到是哪个进程CPU占用率比较高?
-
磁盘IO的写入很频繁,怎么查到是哪个进程或线程对磁盘IO频繁的操作?等等。
本系列就是分享诸如这类问题的排查技巧。注意,本系列的核心方向不是去讲解Linux的命令查找、显示当前目录等(比如ls、cat等)基础命令操作。本系列的重点分享内容包括:
-
Linux基础命令和工具。
-
CPU性能监控。
-
内存性能监控。
-
文件IO性能监控。
-
网络IO性能监控。
强烈推荐:Linux 大牛,Netflix 高级性能架构师 Brendan Gregg的博客http://www.brendangregg.com。《性能之巅》书籍就是他出版的,主要分为:CPU、内存、磁盘、网络四大块。
下面对应的命令大部分都不是专为某一个模块设计的。所以先把基本的命令都掌握,再去细分每个命令的侧重点。
1.1、监控
常用的命令:
工具 | 描述 |
---|---|
free | 显示系统内存使用情况,包括使用的内存、空闲的内存、缓存和交换区等信息。 |
ping | 用于测试网络连接的工具,通过向目标主机发送 ICMP 回显请求并等待回复来测量网络延迟。 |
vmstat | Virtual Memory Statistics,虚拟内存统计工具,提供系统内存、进程、CPU活动等信息。 |
iostat | 用于报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息。 |
dstat | 显示了cpu使用情况,磁盘io情况,网络发包情况和换页情况,输出是彩色的,可读性较强,相对于vmstat 和iostat 的输入更加详细且较为直观。 |
pidstat | 监控所有或指定进程的资源占用情况,如CPU、内存、设备IO、任务切换、线程等。 |
top | 动态显示系统性能信息,包括负载、进程状态、CPU 使用率、内存使用及交换分区的信息。 |
iotop | LINUX进程实时监控工具,类似于 top 命令的工具,用于实时监控磁盘 I/O 使用情况及进程的信息。 |
htop | 交互式进程查看器,提供用户友好的界面,支持按键操作以管理进程。一个文本模式的应用程序(在控制台或者X终端中),需要ncurses 。 |
mpstat | 报告 CPU 的统计信息,显示每个 CPU 的使用情况,有助于分析 CPU 性能。 |
netstat | 显示与 IP、TCP、UDP 和 ICMP 协议相关的网络连接和统计信息。一般用于检验本机各端口的网络连接情况。 |
ps | 显示当前进程的状态和相关信息,类似于 Windows 的任务管理器。 |
strace | 跟踪程序执行过程中产生的系统调用及接收到的信号,用于诊断程序问题。 |
ltrace | 跟踪进程调用的库函数,帮助分析程序的库函数使用情况。 |
uptime | 显示系统当前运行时间和负载信息,为用户提供系统负载状态的一个快照。能够打印系统总共运行了多长时间和系统的平均负载,uptime命令最后输出的三个数字的含义分别是1分钟,5分钟,15分钟内系统的平均负荷。 |
lsof | 列出当前系统中打开的文件及相关进程,帮助识别文件使用情况。 |
perf | Linux kernel 自带的性能分析工具,帮助识别程序性能瓶颈,通过分析 CPU 使用情况及热点函数。是Linux kernel自带的系统性能优化工具。优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernel的new feature,用于查看热点函数,查看cashe miss的比率,从而帮助开发者来优化程序性能。 |
tcpdump | 网络抓包工具,捕获和分析网络数据包,常用于网络故障排查和监控。 |
sar | 收集和报告系统活动信息,涵盖 CPU、内存、I/O、网络等性能指标。 |
blktrace | 跟踪块设备 I/O 操作,分析系统的磁盘 I/O 性能及行为。 |
下面这张图是 Brendan Gregg 提供的一个性能优化命令集。可以看到有很多命令可以监控系统的性能,比如文件系统相关、调用栈相关、网络相关等的命令。
1.2、测试
sysbench是一个模块化、跨平台、多线程基准测试工具,可用于以下性能测试:
-
CPU性能。
-
磁盘IO性能。
-
调度程序性能。
-
内存分配及传输速度。
-
POSIX线程性能。
-
数据库性能(OLTP基准测试)。
Linux CPU使用率主要是从以下几个维度进行统计:
指标 | 描述 |
---|---|
%usr | 普通进程在用户模式下执行的时间 |
%sys | 进程在内核模式下的执行时间 |
%nice | 被提高优先级的进程在用户模式下的执行时间 |
%idle | 空闲时间 |
%iowait | 等待I/O完成的时间 |
%irp | 处理硬中断请求花费的时间 |
%soft | 处理软中断请求花费的时间 |
%steal | 是衡量虚拟机CPU的指标,是指分配给本虚拟机的时间片被同一宿主机别的虚拟机占用,一般%steal值较高时,说明宿主机的资源使用已达到瓶颈。 |
一般情况下,CPU大部分的时间片都是消耗在用户态和内核态上。
sys
和user
间的比例是相互影响的,%sys
比例高意味着被测服务频繁的进行用户态和系统态之间的切换,会带来一定的CPU开销,这样分配处理业务的时间片就会较少,造成系统性能的下降。对于IO密集型系统,无论是网络IO还是磁盘IO,一般都会产生大量的中断,从而导致%sys
相对升高,其中磁盘IO密集型系统,对磁盘的读写需要占用大量的CPU,会导致%iowait
的值一定比例的升高,所以当出现%iowait
较高时,需排查是否存在大量的不合理的日志操作,或者频繁的数据载入等情况;
1.3、优化
Linux Performance Tuning Tools的示意图,展示了Linux系统中不同的工具及其对应的组件。
02
grep 搜索字符
grep
命令用于在文件中执行关键词搜索,并显示匹配的效果。
基本语法:
grep [选项] 模式 [文件...]
部分常用选项:
参数 | 作用 |
---|---|
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择,仅列出没有关键词的行。v 是 invert 的缩写。 |
-r | 递归搜索文件目录 |
-C n | 打印匹配行的前后n行 |
-E | 使用扩展正则表达式。 |
-l | 仅显示包含匹配行的文件名。 |
-h | 不显示文件名。 |
-w | 仅匹配整个单词。 |
-o | 仅显示匹配的模式。 |
-q | 静默模式,不输出任何内容。 |
-A n | 显示匹配行及其后面的 n 行。 |
-B n | 显示匹配行及其前面的 n 行。 |
-f 文件名 | 从文件中读取模式。 |
基本正则表达式:
-
.
:匹配任意单个字符。 -
*
:匹配前一个字符零次或多次。 -
[]
:匹配括号内的任意一个字符。 -
[^]
:匹配括号内以外的任意一个字符。 -
\
: 转义字符,用于匹配特殊字符。 -
^
:匹配行首。 -
$
:匹配行尾。 -
|
:或运算符。 -
()
:分组运算符。
扩展正则表达式:
-
+
:匹配前一个字符一次或多次。 -
?
:匹配前一个字符零次或一次。 -
{}
:匹配前一个字符指定次数。
示例:
-
在指定文件查找,查找login关键字。
grep login ImUser.cpp
-
多个文件中搜索。
grep login ImUser.cpp MsgConn.cpp
-
在多个文件搜索的时候,可以使用通配符。在以 cpp结尾的文件中,搜索包含login 的行
grep login *.cpp
-
递归搜索目录下所有文件, 搜索 msg_server目录下所有文件,打印出包含 login的行。
grep login -r msg_server/
-
反向查找,查找文件中,不包含 CImUser 的行。
grep -v CImUser ImUser.cpp
-
找出文件中包含 login的行,并打印出行号。
grep -n login ImUser.cpp
-
找出文件中包含 login的行,打印出行号,并显示前后3行。
grep -C 3 -n login ImUser.cpp
-
找出文件中包含 login的行,打印出行号,并显示前后3行,并忽略大小写。
grep -C 3 -i -n login ImUser.cpp
注意事项:
-
grep
命令通常用于处理文本文件,但也支持从标准输入读取数据。 -
grep
命令的效率取决于模式的复杂度和文件的大小。 -
grep
命令可以与其他命令结合使用,例如管道
和重定向
。
其他相关命令:
-
egrep
:等价于grep -E
,使用扩展正则表达式。 -
fgrep
:等价于grep -F
,使用固定字符串匹配。 -
ag
:更快更强大的搜索工具。 -
03
find 查找文件
find
命令用于在文件系统中搜索文件和目录,并对找到的项目执行操作。通过文件名查找文件的所在位置,文件名查找支持模糊匹配。
基本语法:
find [起始目录] [选项] [表达式]
参数:
-
起始目录
: 指定搜索的起始目录。如果省略,则默认从当前目录开始搜索。 -
选项
: 用于控制搜索行为和输出结果。 -
表达式
: 用于描述要搜索的目标文件或目录。
主要选项:
选项 | 作用 |
---|---|
-name 模式 | 根据文件名匹配模式搜索。支持通配符 * 和 ? 。 |
-iname 模式 | 根据文件名匹配模式搜索,忽略大小写。 |
-type 类型 | 根据文件类型搜索。例如 f 表示文件,d 表示目录,l 表示符号链接。 |
-size +n | 搜索大小大于 n 个块的文件。 |
-size -n | 搜索大小小于 n 个块的文件。 |
-size n | 搜索大小等于 n 个块的文件。 |
-mtime +n | 搜索修改时间距离现在超过 n 天的文件。 |
-mtime -n | 搜索修改时间距离现在少于 n 天的文件。 |
-mtime n | 搜索修改时间距离现在正好 n 天的文件。 |
-atime | 根据访问时间进行搜索。用法与 -mtime 相同。 |
-ctime | 根据文件创建时间进行搜索。用法与 -mtime 相同。 |
-user 用户名 | 搜索属于特定用户的文件。 |
-group 组名 | 搜索属于特定组的文件。 |
-perm 模式 | 根据权限模式搜索文件。例如 -perm 644 搜索权限为 -rw-r--r-- 的文件。 |
-exec 命令 {} \; | 对找到的文件执行指定的命令。 |
-ok 命令 {} \; | 对找到的文件执行指定的命令,并在执行前提示用户确认。 |
-print | 打印找到的文件的路径。 |
-print0 | 打印找到的文件的路径,并使用空字符作为分隔符。 |
-depth | 先搜索子目录再搜索当前目录。 |
-maxdepth n | 设置最大搜索深度。 |
-mindepth n | 设置最小搜索深度。 |
! | 取反运算符,用于排除某些文件或目录。 |
-o | 或运算符,用于组合多个搜索条件。 |
-a | 与运算符,用于组合多个搜索条件。 |
() | 括号用于分组搜索条件。 |
示例:
-
查找当前目录下所有以 .txt 结尾的文件:
find . -name "*.txt"
-
查找 /home 目录下所有大于 10M 的文件:
find /home -size +10M
-
查找 /tmp 目录下修改时间距离现在超过 7 天的文件:
find /tmp -mtime +7
-
查找当前目录下所有权限为 755 的文件:
find . -perm 755
-
查找 /var/log 目录下所有以 .log 结尾的文件,并删除它们:
find /var/log -name "*.log" -delete
-
查找当前目录下所有目录,并打印它们的路径:
find . -type d -print
-
查找当前目录下所有以 .txt 结尾的文件,并把它们复制到 /backup 目录:
find . -name "*.txt" -exec cp {} /backup \;
-
查找当前目录下所有以 .txt 结尾的文件,并提示用户是否删除它们:
-
04
ls 显示文件
ls
命令用于列出目录的内容。它可以显示文件和目录的名称、大小、修改时间、权限等信息。
基本语法:
ls [选项] [文件或目录...]
选项 | 描述 | 类别 |
---|---|---|
-a | 显示所有文件,包括隐藏文件(以 . 开头的文件)。 | 列出文件信息 |
-l | 以长格式列出文件信息,包括文件权限、文件大小、文件所有者、修改时间等。 | 列出文件信息 |
-h | 以易于阅读的格式显示文件大小,例如 1K、2M、3G 等。 | 列出文件信息 |
-t | 按修改时间排序。 | 列出文件信息 |
-r | 反转排序顺序。 | 列出文件信息 |
-S | 按文件大小排序。 | 列出文件信息 |
-i | 显示文件 inode 号。 | 列出文件信息 |
-d | 显示目录本身的信息,而不是目录内的文件信息。 | 列出文件信息 |
-R | 递归列出所有子目录。 | 列出文件信息 |
-F | 在文件名后添加标记,表示文件类型。例如 / 表示目录,* 表示可执行文件,@ 表示符号链接等。 | 文件显示格式 |
-b | 将不可打印字符显示为反斜杠转义字符。 | 文件显示格式 |
-c | 使用数字字符编码显示文件。 | 文件显示格式 |
-G | 显示颜色,用于区分不同类型的文件。 | 文件显示格式 |
-1 | 单行显示文件名,每个文件名占一行。 | 其他 |
-C | 多列显示文件名,根据终端宽度自动调整列数。 | 其他 |
-m | 用逗号分隔显示文件名。 | 其他 |
-n | 使用数字用户 ID 和组 ID 显示文件信息。 | 其他 |
-p | 在目录名后添加 / 。 | 其他 |
-q | 将不可打印字符显示为 ? 。 | 其他 |
-s | 显示文件大小(以块为单位)。 | 其他 |
示例:
-
列出当前目录下所有文件:
ls
-
以长格式列出当前目录下所有文件:
ls -l
-
列出当前目录下所有文件,包括隐藏文件:
ls -a
-
列出当前目录下所有文件,按修改时间排序:
ls -lt
-
递归列出 /home/user 目录下所有文件:
ls -R /home/user
-
列出当前目录下所有文件,并用颜色区分文件类型:
ls -G
05
wc 命令
wc
命令用于统计文件中的行数、字数和字节数。利用wc
指令我们可以计算文件的Byte
数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-
",则wc
指令会从标准输入设备读取数据。
基本语法:
wc [选项] [文件...]
主要选项:
-
-l或--lines
: 统计行数。 -
-w或--words
: 统计字数。 -
-c或--bytes或--chars
: 统计字节数。 -
-m
: 统计字符数。 -
-L
: 统计最长行的长度。 -
-W
: 统计单词数。
示例:
-
统计文件 test.txt 的行数、字数和字节数:
wc test.txt
-
只统计文件 test.txt 的行数:
wc -l test.txt
-
统计多个文件 test.txt 和 data.log 的行数:
wc -l test.txt data.log
-
统计文件 test.txt 的最长行的长度:
wc -L test.txt
注意事项:
-
wc
命令默认统计所有三个值(行数、字数和字节数)。 -
wc
命令可以使用多个选项组合,以实现不同的统计功能。 -
wc
命令的输出结果可能会根据文件内容和系统环境有所不同。
其他:
-
wc 命令可以用于统计标准输入的内容,例如:
cat test.txt | wc -l
-
wc 命令可以与其他命令结合使用,例如:
# 统计文件 `test.txt` 中包含 "error" 字符串的行数。 grep "error" test.txt | wc -l
相关文章:
Linux之 grep、find、ls、wc 命令
Linux之 grep、find、ls、wc 命令 “ 在 Linux 世界中,命令行是不可或缺的一部分,而掌握一些常用的命令可以帮助你更有效率地管理文件和系统。本文将为你介绍四個基礎而强大的 Linux 命令:grep、find、ls 和 wc,带你开启高效文件…...
SFC的含义
SFC 即 Single File Component,也就是单文件组件,在现代前端开发尤其是 Vue.js 框架中被广泛应用。下面将从概念、结构、优势、工作原理和应用场景几个方面详细介绍 SFC。 概念 单文件组件是一种将一个组件的模板(HTML)、逻辑&a…...
Qt 性能优化总结
Qt 性能优化总结 本文简单解析 Qt 应用程序的性能优化策略,涵盖 GUI 渲染、内存管理、信号与槽、QML 性能等核心领域,并通过具体示例展示优化效果。 1. Qt 性能优化简介 性能优化目标是减少资源消耗(如 CPU、内存、GPU)、提高响…...
亚马逊关键字搜索数据通过 Product Advertising API 来获取
亚马逊关键字搜索数据主要通过 Product Advertising API 来获取。 以下是使用该接口进行关键字搜索的一般步骤: (测试示例) 注册开发者账号:访问亚马逊开发者中心,完成三方供应商注册并同意相关开发者协议࿰…...
现代C++的范式演进与工程实践深度解析(本文序号不知道怎么整的,有点问题)
引言:C++的复兴时代 在经历了"已死语言"的质疑后,现代C++正迎来前所未有的复兴。据2024年TIOBE指数显示,C++以8.33%的占比稳居第三,较2020年上升2.1个百分点。这种复兴并非偶然——随着C++20标准的全面落地和C++23特性的逐步实现,这门已有40年历史的语言正在系…...
第二十五天 - Web安全防护 - WAF原理与实现 - 练习:请求过滤中间件
一、Celery核心机制解析 1.1 分布式架构四要素 # celery_config.py BROKER_URL redis://:passwordlocalhost:6379/0 # 消息中间件 RESULT_BACKEND redis://:passwordlocalhost:6379/1 # 结果存储 TASK_SERIALIZER json ACCEPT_CONTENT [json] TIMEZONE Asia/Shanghai核…...
springboot自定义starter(避坑教学)
在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在springboot的项目中,一般会将这些公共组件封装为springboot的starter。 1.命名规范 Spring官方Starter通常命名为 spring-boot-starter-{name} 如:spr…...
Python 实现日志备份守护进程
实训背景 假设你是一名运维工程师,需要为公司的监控系统开发一个简单的日志备份守护进程。该进程需满足以下需求: 后台运行:脱离终端,长期监控指定目录(如 /var/log/app/)中的日志文件。自动备份…...
详解JVM的底层原理
目录 1.JVM的内存区域划分 1)程序计数器(Program Counter Register) 2)元数据区(Metaspace) 3)虚拟机栈(Java Virtual Machine Stacks) 4)堆(…...
制表符是什么?与.txt文件的关系?
李升伟 整理 制表符(Tab)是一种控制字符(ASCII码为9,Unicode为\u0009),用于在文本中创建水平间距。它的作用类似于键盘上的 Tab 键,通常表现为光标跳转到下一个预设的“制表位”(一…...
【专题刷题】双指针(三):两数之和,三数之和,四数之和
📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;ÿ…...
Java八种常见的设计模式
一、单例模式 单例模式是(Singleton Pattern)Java中最常用的设计模式之一,它保证一个类仅有一个实例,并提供一个全局访问点。 实现单例模式的核心是将类的构造方法私有化,以防止外部直接通过构造函数创建实例。同时&am…...
用Prompt 技术【提示词】打造自己的大语言智能体
机器如何按照人类的指令执行任务的探索 机器需具备理解任务叙述的能力,以便能够按照人类的指令执行任务,为机器提供一些范例作为参考,使其能够理解该执行的任务类型。这样的学习方式称为“Instruction learning”,透过精心设计的…...
灵鉴 AI五大核心能力洞穿 “数据黑箱”云取证深度支持8大核心应用
本文关键词:灵鉴AI 、电子数据取证分析AI助手、云取证、DeepSeek大模型 1.灵鉴AI ,V1.0深度融合DeepSeek大模型技术,破解行业痛点,5大核心能力,让大模型真正“懂”电子数据分析。 2.LX-A216云取证系统,V2.…...
了解高速设计的信号完整性仿真
高速设计需要精确的信号传输,以确保最佳性能。信号完整性差会导致关键应用中的误码、数据损坏甚至系统故障等问题。介电常数、损耗角正切和插入损耗等因素会显著影响信号质量。通过使用信号完整性仿真,您可以及早发现并解决这些挑战。这种主动方法有助于…...
用 Deepseek 写的html油耗计算器
在油价高企的今天,了解自己爱车的真实油耗情况对每位车主来说都至关重要。本文将介绍一个简单实用的油耗计算方法,并提供一个可以直接使用的HTML油耗计算器。 为什么要计算油耗? 计算油耗不仅能帮助我们: 了解车辆的真实燃油经济…...
SAP系统青果糖无法报工
问题:班长说工单号4100000101青果糖工单 无法报工 原因排查:工单4100000101的工艺路线版本错误,选了版本1的,版本1是委外的工艺,本厂生产应该选版本2. 解决: 1:重读主数据,更改工单4100000101的工艺路线版本. 2:工单成品已交库,不能直接更改工…...
GPU 招投标全流程分析与总结
GPU 招投标全流程分析与总结 招投标流程概述 以下是通过代理商采购Nvidia H20-GPU 141G的招投标全流程分析: #mermaid-svg-hMPPfkCpGj8GKXfV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hMPPfkCpGj8GKXfV .er…...
Centos7.6安装JDK 1.8教程
前提:先把jdk1.8文件上传到usr/local目录下,文件名如:jdk-8u151-linux-x64.tar.gz 1. 解压 JDK 压缩包 假设 jdk-8u151-linux-x64.tar.gz 文件位于 /usr/local 目录下。 进入 /usr/local 目录: cd /usr/local 解压文件&#…...
Golang errors 包快速上手
文章目录 1.变量2.类型3.函数3.1 New3.2 Is简介函数签名核心功能示例代码使用场景注意事项小结 3.3 As简介函数签名核心功能示例代码使用场景注意事项小结 3.4 Unwrap简介函数签名核心功能使用示例使用场景注意事项小结 3.5 Join简介函数签名核心功能使用场景注意事项小结 4.小…...
新型多机器人协作运输系统,轻松应对复杂路面
受到鱼类、鸟类和蚂蚁等微小生物体协作操纵的启发,研究人员开发了多机器人协作运输系统(Multirobot Cooperative Transportation Systems,MRCTS)运输单个机器人无法处理的重型超大物体,可用于搜救行动、灾难响应、军事…...
易境通国际货代系统:如何解决货代物流行业的棘手难题
国际货代行业作为全球贸易的重要纽带,面临着日益复杂的市场环境和客户需求。然而,随着业务规模的扩张和多变的市场需求,传统的粗放式管理模式逐渐暴露出效率低下、成本失控、风险难控等问题。尤其在跨境电商高速发展的背景下,货代…...
基于springboot医药连锁店管理系统(源码+lw+部署文档+讲解),源码可白嫖!
摘要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统医药连锁店管理采取了人工的管理方法&…...
Vue 3 reactive 和 ref 区别及 失去响应性问题
在 Vue 3 中,reactive 和 ref 是实现响应式数据的两个核心 API,它们的设计目标和使用场景有所不同。以下是两者的详细对比: 1. 基本定义与核心功能 特性reactiveref作用创建对象类型的响应式代理(对象、数组、Map 等)…...
d3.js绘制单/多面板组合箱线图
用d3.js研发了个可以单面板、多面板展示的组合箱线图; 组合箱线图中包括普通散点、蜂群散点、小提琴图、小提琴箱线图、柱状图、误差棒、离群点等等,其中大部分你能想到的配置都是自行传参调整的,你想不到的也能稍作修改然后自行调整&#x…...
第二十四天 - 分布式任务队列 - Celery高级应用 - 练习:分布式监控任务系统
一、Celery核心机制解析 1.1 分布式架构四要素 # celery_config.py BROKER_URL redis://:passwordlocalhost:6379/0 # 消息中间件 RESULT_BACKEND redis://:passwordlocalhost:6379/1 # 结果存储 TASK_SERIALIZER json ACCEPT_CONTENT [json] TIMEZONE Asia/Shanghai核…...
IDEA使用jclasslib Bytecode Viewer查看jvm字节码
学习jvm的时候,想查看字节码和局部变量表,可以使用idea安装jclasslib Bytecode View插件查看。 (1)安装工具: 安装完成后需要重启idea. (2)准备一段代码,编译运行 package com.te…...
list.
列表类型是用来存储多个有序的字符串,列表中的每个字符串称为元素(element),⼀个列表最多可以存储个元素 在 Redis 中,可以对列表两端插入(push)和弹出(pop),…...
202520读书笔记|《我要按自己喜欢的方式去生活》——面对可能到来的裁员,那就等正式通知吧
《我要按自己喜欢的方式去生活》作者宝夏夏,很赞的一本书,通透真实,不矫揉造作,直击内心。 因为第一个故事,裁员而进来的。早晨睡眼惺忪醒来,闺蜜半夜发来一大段话,大意是公司在缩减成本裁员&am…...
Linux 文件传输:系统数据交互的动脉
前言:sshd 在Linux系统中,文件传输常依赖于SSH协议(Secure Shell),而sshd(OpenSSH Daemon)是负责处理SSH连接的后台服务程序。通过sshd,用户可以在加密的通道中进行安全的远程登录、…...
Rust + WebAssembly 生产部署指南
1 最小可行部署(MVP) 前端打包wasm-pack build --target web --release # 生成 .wasm JS 包装器 npm run build / vite build / webpack … # 打包 HTML/CSS/JS 资源拷贝产物 到生产服务器的站点目录dist/ ├── index.html ├── pkg…...
git忽略已跟踪的文件/指定文件
在项目开发中,有时候我们并不需要git跟踪所有文件,而是需要忽略掉某些指定的文件或文件夹,怎么操作呢?我们分两种情况讨论: 1. 要忽略的文件之前并未被git跟踪 这种情况常用的方法是在项目的根目录下创建和编辑.gitig…...
基于Django实现的图书分析大屏系统项目
图书分析大屏展示系统项目大纲与启动教程 一、项目概述 图书分析大屏展示系统是一个基于Django框架开发的Web应用,主要用于图书数据的可视化分析与展示。该系统采用MVT(Model-View-Template)架构模式,结合MySQL数据库࿰…...
【OSCP-vulnhub】GoldenEye
目录 端口扫描 查找源代码 目录扫描 POP3邮件枚举 1.先枚举用户名 2.hydra爆破 3.nc连接 boris: natalya: 设置本地hosts文件 doak: 解析图片 exiftool for-007.jpg strings for-007.jpg 使用MSF去搜索内核版本 漏洞利用 ---…...
OpenAI发布GPT-4.1系列模型,主打编程能力提升
OpenAI在本周一推出了全新一代模型家族——GPT-4.1系列。没错,就是“4.1”,尽管OpenAI的命名方式已经让人有些摸不着头脑。 这一系列包括三个型号:GPT-4.1、GPT-4.1 mini和GPT-4.1 nano。据OpenAI介绍,这些模型在编程任务和指令遵…...
压缩包网页预览(zip-html-preview)
zip-html-preview 项目介绍 这是一个基于 Spring Boot 开发的在线 ZIP 文件预览工具,主要用于预览 ZIP 压缩包中的 HTML 文件及其相关资源。 主要功能 支持拖拽上传或点击选择多个 ZIP 文件自动解压并提取 ZIP 文件中的 HTML 文件在线预览 HTML 文件及其相关的 CSS、JavaSc…...
OpenCV 图形API(41)颜色空间转换----- BGR 图像转换为灰度图像函数BGR2Gray()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将图像从BGR色彩空间转换为灰度。 B、G和R通道值的传统范围是0到255。结果的灰度颜色值计算为: dst ( I ) 0.114 ∗ src ( I ) . B…...
影视产业链中的律师角色以及合规风控要点
影视产业链中的律师角色以及合规风控要点 在影视娱乐业务中,律师服务贯穿项目全生命周期,涵盖创意开发、投z制作、发行传播、艺人管理及争议等多个领域 一、影视项目全流程合同法律事务 ✔️项目开发阶段 剧本合作:剧本委托创作、改编、版权…...
Java工具类——实体类列表写入excel
Java工具类——实体类列表写入excel /*** 将实体类 List 数据写入 Excel 文件* param dataList 实体类对象列表* param filePath Excel 文件路径* param sheetName Sheet 名称* param <T> 泛型类型* throws IOException 文件操作异常* throws IllegalAccessException 反…...
C++23 新预处理器指令详解:#elifdef、#elifndef 和 #warning
文章目录 1. #elifdef 和 #elifndef:更灵活的条件编译1.1 背景与动机1.2 语法与示例示例代码: 1.3 编译器支持 2. #warning:发出编译警告2.1 背景与动机2.2 语法与示例示例代码: 2.3 编译器支持 3. 总结 C23 标准引入了多项改进&a…...
书写API文档的最佳实践[特殊字符]
API文档对于API的可用性和成功至关重要。完善的API文档能显著提高开发者体验,加速采用,并培养强大的开发者社区。反之,糟糕的文档可能导致困惑、挫败感和错误,从而降低采用率。本文将探讨编写清晰、全面、开发者友好的API文档的高…...
【Maven】手动安装依赖到本地仓库
【Maven】手动安装依赖到本地仓库 【一】下载依赖【二】安装 JAR 文件到本地仓库【三】验证安装【四】在项目中使用该依赖【1】注意事项【2】额外提示 【一】下载依赖 登录到中央仓库下载依赖,中央仓库地址:https://mvnrepository.com/ 搜搜你的依赖的a…...
kali下maven 的安装与配置
1、下载 maven 安装包 wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz 2、解压 apache-maven-3.9.4-bin.tar.gz tar -zxvf apache-maven-3.9.4-bin.tar.gz 找到文件解压到的位置,由于解压时我们没有指定路径&#x…...
list的模拟实现和反向迭代器的底层
1:list的模拟实现 1:链表的节点 对于list的模拟实现,我们需要先定义一个节点的类可以使用(class也可以使用struct) // List的节点类 template<class T> struct ListNode {ListNode(const T& val T()){_p…...
OpenHarmony - 小型系统内核(LiteOS-A)(七)
OpenHarmony - 小型系统内核(LiteOS-A)(七) 八、文件系统 适配新的文件系统 基本概念 所谓对接VFS层,其实就是指实现VFS层定义的若干接口函数,可根据文件系统的特点和需要适配其中部分接口。一般情况下&…...
四层板的时钟线设计:关键要点与实用策略
在电子电路设计领域,四层板凭借其出色的电气性能和合理的空间布局,广泛应用于各类电子产品中。而时钟线作为系统的 “心跳”,为整个电路提供同步信号,其设计质量直接关系到系统的稳定性、可靠性和性能表现。因此,深入探…...
【TypeScript类型系统解析:一次真实的类型检查修复经历】
TypeScript类型系统解析:一次真实的类型检查修复经历 在最近的管理系统开发过程中,我遇到了一个值得深入探讨的TypeScript类型问题。通过解决这个问题,我更深入地理解了TypeScript的类型系统工作原理,以及如何在Vue项目中正确处理…...
全视通无感护理巡视系统方案及产品,助力医院护士巡视病房到位
传统的护理工作中,护理巡视是一项重要且繁琐的任务。护士们需要根据不同的护理级别,定时对患者进行巡视,并手工填写巡视记录表,登记巡视时间、人员等信息。月末时,还需进行人工数据统计,这一过程不仅效率低…...
初识Redis · 命令、数据结构补充、协议
目录 前言: 数据结构补充 stream geospaital Hyperloglog bitmap bitfield 渐进式遍历命令等 认识Redis客户端及协议 前言: 在前文,我们总览一下,我们已经介绍了什么是Redis,Redis的应用场景是什么ÿ…...
DBA工作常见问题整理
MVCC机制: PostgreSQL的多版本并发控制(MVCC)是其核心特性之一,它允许数据库在高并发环境下保持高性能的同时提供事务隔离。 MVCC通过维护数据的多个版本实现: 读操作不阻塞写操作写操作不阻塞读操作避免使用锁实现并发控制 PostgreSQL的MVCC特点 写时…...