当前位置: 首页 > news >正文

Linux扩展

目录

扩展

查找如何进行后台运行程序的指令

使用 & 符号

使用 nohup 命令

使用 screen 或 tmux

find命令

基本语法

常用选项

grep 命令

基本语法

常用选项

如何使用 vim 直接定位到错误行

1. 使用 :make 和 :copen

2. 使用 :lineno 定位

3. 通过 :grep 或 :vimgrep

4. 错误标记和高亮

5. 自动跳转(插件)

6.进入到 vim 后,:行号  

7. vim 文件名 +行号

使用/字符串查找完之后,如何取消高亮

利用 find 和 grep 组合实现查找某个目录下包含指定字符串的文件

gdb 主函数传参 3 种方式

(1) 在命令行中传递参数

(2) 使用 set args 命令传递参数

(3) 在程序启动时通过环境变量传递

如何在 makefile 文件中做 echo 提示且不显示执行指令

SOURCES := $(wildcard $(patsubst %,%/*.c, $(SOURCEDIRS)))

1. $(SOURCEDIRS)

2. $(patsubst %,%/*.c, $(SOURCEDIRS))

3. $(wildcard ...)

4. 综合结果

5.举例

lstat 判断文件权限用的宏

1. lstat 函数

2. st_mode 字段和文件权限

3. 判断文件权限的宏

4. 示例代码:如何使用 lstat 判断文件权限

5. 解释

6. 结果示例

glob()


扩展

查找如何进行后台运行程序的指令

在 Linux 或 Unix 系统中,可以通过以下几种方式让程序在后台运行:

使用 & 符号

  • 语法command &

  • 说明:在命令后面加上 &,可以让程序在后台运行。例如:

    sleep 100 &

    这会启动一个 sleep 命令,让它在后台运行100秒。

使用 nohup 命令

  • 语法nohup command &

  • 说明nohup 是一个用于在用户注销后继续运行命令的工具。它会将程序的输出重定向到 nohup.out 文件中。例如:

    nohup python myscript.py &

    这会运行一个 Python 脚本,并将其输出保存到 nohup.out 文件中,同时让程序在后台运行。

使用 screentmux

  • screen

    • 启动screen -S session_name(创建一个名为 session_name 的会话)

    • 进入后台:在 screen 会话中按 Ctrl+A,然后按 D 键,会话会进入后台。

    • 重新连接screen -r session_name(重新连接到后台的会话)

  • tmux

    • 启动tmux new -s session_name(创建一个名为 session_name 的会话)

    • 进入后台:在 tmux 会话中按 Ctrl+B,然后按 D 键,会话会进入后台。

    • 重新连接tmux attach -t session_name(重新连接到后台的会话)

find命令

find 是一个强大的命令行工具,用于在文件系统中查找文件和目录。

基本语法

find [路径] [选项] [表达式]

常用选项

  • -name:按文件名查找

    find . -name "*.txt"  # 查找当前目录及其子目录下所有扩展名为.txt的文件
  • -type:按文件类型查找

    • f:普通文件

    • d:目录

    • l:链接

    find . -type d -name "bin"  # 查找当前目录及其子目录下所有名为bin的目录
  • -mtime:按修改时间查找

    find . -mtime +7  # 查找7天前修改的文件
  • -size:按文件大小查找

    find . -size +10M  # 查找大于10MB的文件

grep 命令

grep 是一个用于搜索文本内容的工具,可以在文件中查找匹配特定模式的行。

基本语法

grep [选项] 模式 文件

常用选项

  • -i:忽略大小写

    grep -i "hello" file.txt  # 在file.txt中查找包含"hello"的行,忽略大小写
  • -r-R:递归搜索

    grep -r "hello" .  # 在当前目录及其子目录中递归查找包含"hello"的行
  • -v:反向匹配

    grep -v "hello" file.txt  # 在file.txt中查找不包含"hello"的行
  • -n:显示行号

    grep -n "hello" file.txt  # 在file.txt中查找包含"hello"的行,并显示行号
  • -w:匹配整词

    grep -w "hello" file.txt  # 在file.txt中查找整词"hello"的行

如何使用 vim 直接定位到错误行

1. 使用 :make:copen

如果你在 Vim 中编译代码并且遇到错误,通常你会使用 :make 命令来进行编译。编译过程中,Vim 会生成一个错误列表,通常显示在 quickfix 窗口中。你可以通过以下步骤直接定位到错误行:

  1. 运行编译命令:例如 :make,它会调用你配置的编译器(如 gcc)进行编译,错误信息会被捕捉到 quickfix 列表中。
  2. 打开 quickfix 窗口:运行 :copen,这会打开一个窗口,显示所有编译错误。
  3. 跳转到特定错误:在 quickfix 窗口中,使用 :cnext 跳转到下一个错误,使用 :cprev 跳转到上一个错误,或者使用 :cc <number> 跳转到指定的错误。

2. 使用 :lineno 定位

如果你已经知道错误所在的行号,你可以使用 :linenumber 直接跳转到该行。例如:

:15

这将会跳转到第 15 行。

3. 通过 :grep:vimgrep

如果你要查找某个关键字或错误信息,可以使用 :grep:vimgrep 来搜索并定位到相关行。例如:

:vimgrep /error/ *.c

这会在当前目录下的所有 .c 文件中搜索包含 "error" 的行,然后你可以通过 :copen 查看错误列表并跳转。

4. 错误标记和高亮

当你打开代码后,你可以使用 :set errorformat 配置错误格式,以便能够更好地解析编译器输出的错误信息。

5. 自动跳转(插件)

如果你经常需要定位错误行,也可以使用一些插件,比如 AleSyntastic,这些插件会自动扫描文件并在你编写代码时实时显示错误信息,你只需按下快捷键(如 ]e[e)即可直接跳转到错误行。

6.进入到 vim 后,:行号  

7. vim 文件名 +行号

使用/字符串查找完之后,如何取消高亮

        :noh

利用 find 和 grep 组合实现查找某个目录下包含指定字符串的文件

        可以使用 find 命令来查找目录下的文件,然后使用 grep 来查找包含指定字符串的文件。组合命令如下:

find /path/to/dir -type f -exec grep -l "search_string" {} \;
  • /path/to/dir:你要查找的目录。
  • -type f:仅查找文件。
  • -exec grep -l "search_string" {} \;:对于每个找到的文件,执行 grep 命令查找包含 search_string 的文件,并且 -l 选项使得 grep 输出匹配该字符串的文件名。

        这将列出所有包含指定字符串的文件。

        如果你想让 grep 支持递归查找文件,可以直接使用 grep-r 选项来查找:

grep -rl "search_string" /path/to/dir

gdb 主函数传参 3 种方式

(1) 在命令行中传递参数

        可以在启动 GDB 时通过 --args 参数传递命令行参数:

gdb --args ./your_program arg1 arg2 arg3

        然后,使用 run 命令启动调试,会将 arg1, arg2, arg3 传递给主函数。

(2) 使用 set args 命令传递参数

        在 GDB 会话中,可以通过 set args 命令设置主函数的命令行参数:

(gdb) set args arg1 arg2 arg3
(gdb) run

        这将把 arg1, arg2, arg3 作为参数传递给主函数。

(3) 在程序启动时通过环境变量传递

        通过环境变量传递参数也是一种方式,虽然不常见,但可以在某些情况下使用。在 GDB 中,可以使用 set environment 命令来设置环境变量:

(gdb) set environment VAR=value

        但要注意,主函数的 argcargv 是通过命令行参数传递的,环境变量方式一般用于设置特定的程序行为。

如何在 makefile 文件中做 echo 提示且不显示执行指令

        在 Makefile 中,想要做一个 echo 提示,但不显示执行指令,你可以使用 @ 符号来禁止显示当前命令。示例如下:

all:@echo "This is a message without showing the command"
  • @ 符号可以让 make 在执行时不显示该命令本身,只显示 echo 输出的内容。

如果你不加 @make 会显示执行的命令行:

all:echo "This is a message with the command visible"

这样会在终端显示 echo 命令以及其输出。

SOURCES := $(wildcard $(patsubst %,%/*.c, $(SOURCEDIRS)))

        这行代码使用了 Makefile 中的 wildcard 函数和 patsubst 函数,来动态获取文件路径。具体来说,它的作用是根据给定的 SOURCEDIRS 变量中的目录列表,查找这些目录下的所有 .c 文件,并将这些文件的路径存储到 SOURCES 变量中。

        逐步分析这个表达式:

SOURCES := $(wildcard $(patsubst %,%/*.c, $(SOURCEDIRS)))

1. $(SOURCEDIRS)

SOURCEDIRS 是一个包含目录路径的变量,可能是类似这样的列表:

SOURCEDIRS := src lib

这个变量包含了多个目录路径(比如 srclib)。

2. $(patsubst %,%/*.c, $(SOURCEDIRS))

patsubstMakefile 中的一个函数,用于模式替换。它的语法是:

$(patsubst pattern,replacement,text)

它会将 text 中所有匹配 pattern 的部分替换为 replacement

  • pattern:匹配的模式,这里是 %,代表任意字符串。
  • replacement:替换成的内容,这里是 /%/*.c,表示每个目录后面加上 /*.c,以匹配该目录下的 .c 文件。
  • text:要进行替换的字符串,这里是 $(SOURCEDIRS),即包含目录路径的列表。

举个例子,如果 SOURCEDIRS 包含 srclib,那么:

$(patsubst %,%/*.c, $(SOURCEDIRS))

会将 src 替换为 src/*.c,将 lib 替换为 lib/*.c,最终结果是:

src/*.c lib/*.c

这表示 srclib 目录下的所有 .c 文件。

3. $(wildcard ...)

wildcardMakefile 中的一个函数,用于匹配文件名。它接受一个模式字符串并返回匹配该模式的所有文件路径。假设有如下目录结构:

src/file1.cfile2.c
lib/file3.c

执行:

$(wildcard src/*.c lib/*.c)

将返回:

src/file1.c src/file2.c lib/file3.c

4. 综合结果

        首先,$(patsubst %,%/*.c, $(SOURCEDIRS))SOURCEDIRS 中的每个目录替换成该目录下的所有 .c 文件(比如 src/*.c lib/*.c)。然后,wildcard 函数会列出这些目录下所有匹配 .c 文件的实际路径。最终,SOURCES 变量将包含所有 .c 文件的路径。

5.举例

假设 SOURCEDIRS 如下:

SOURCEDIRS := src lib

且目录结构为:

src/file1.cfile2.c
lib/file3.c

那么,执行后的结果是:

SOURCES := src/file1.c src/file2.c lib/file3.c

SOURCES 变量将包含这三个 .c 文件的路径。

lstat 判断文件权限用的宏

lstat 中判断文件权限通常涉及到使用文件的 mode(权限掩码)。通过 lstat 获取文件的属性后,可以通过位运算和相应的宏来判断文件的权限。

在 Linux 中,文件权限包括读、写、执行权限,分别对应 Owner(文件拥有者)、Group(文件所属组)和 Others(其他用户)权限。这些权限在 struct stat 结构体中的 st_mode 字段内。

1. lstat 函数

lstat 是用于获取文件或符号链接的状态信息的系统调用。其原型如下:

#include <sys/stat.h>int lstat(const char *pathname, struct stat *statbuf);

调用 lstat 后,你会得到一个 struct stat 结构体,其中的 st_mode 字段保存了文件的模式(即文件权限)。

2. st_mode 字段和文件权限

st_mode 字段是一个位掩码,包含了文件的类型和权限信息。通过一些宏,你可以解析出不同类型的权限。

3. 判断文件权限的宏

以下是一些常见的宏,它们可以用来从 st_mode 中提取文件权限:

  • S_ISDIR(st_mode):判断是否为目录。
  • S_ISREG(st_mode):判断是否为常规文件。
  • S_ISLNK(st_mode):判断是否为符号链接。
  • S_ISCHR(st_mode):判断是否为字符设备文件。
  • S_ISBLK(st_mode):判断是否为块设备文件。
  • S_ISFIFO(st_mode):判断是否为 FIFO 文件(命名管道)。
  • S_ISSOCK(st_mode):判断是否为套接字。

关于权限的宏:

  • S_IRUSR:用户读取权限(Owner read)。
  • S_IWUSR:用户写入权限(Owner write)。
  • S_IXUSR:用户执行权限(Owner execute)。
  • S_IRGRP:组读取权限(Group read)。
  • S_IWGRP:组写入权限(Group write)。
  • S_IXGRP:组执行权限(Group execute)。
  • S_IROTH:其他用户读取权限(Others read)。
  • S_IWOTH:其他用户写入权限(Others write)。
  • S_IXOTH:其他用户执行权限(Others execute)。

4. 示例代码:如何使用 lstat 判断文件权限

以下是一个示例,展示如何使用 lstat 和上述宏判断文件的权限:

#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>void check_permissions(const char *path) {struct stat st;if (lstat(path, &st) == -1) {perror("lstat");return;}printf("File: %s\n", path);// 检查文件类型if (S_ISDIR(st.st_mode)) {printf("It is a directory.\n");} else if (S_ISREG(st.st_mode)) {printf("It is a regular file.\n");} else if (S_ISLNK(st.st_mode)) {printf("It is a symbolic link.\n");} else {printf("Unknown file type.\n");}// 检查文件权限if (st.st_mode & S_IRUSR) printf("Owner has read permission.\n");if (st.st_mode & S_IWUSR) printf("Owner has write permission.\n");if (st.st_mode & S_IXUSR) printf("Owner has execute permission.\n");if (st.st_mode & S_IRGRP) printf("Group has read permission.\n");if (st.st_mode & S_IWGRP) printf("Group has write permission.\n");if (st.st_mode & S_IXGRP) printf("Group has execute permission.\n");if (st.st_mode & S_IROTH) printf("Others have read permission.\n");if (st.st_mode & S_IWOTH) printf("Others have write permission.\n");if (st.st_mode & S_IXOTH) printf("Others have execute permission.\n");
}int main() {const char *file_path = "testfile";  // 替换为你的文件路径check_permissions(file_path);return 0;
}

5. 解释

  1. lstat(path, &st):获取文件状态信息,并将结果存储在 st 中。
  2. S_ISDIR(st.st_mode) 等宏用于检查文件的类型。
  3. 权限是通过位掩码来检查的,例如,st.st_mode & S_IRUSR 会判断是否设置了用户的读取权限。

6. 结果示例

假设文件 testfile 拥有如下权限:-rwxr-xr--(即用户有读、写、执行权限,组有读、执行权限,其他用户只有读取权限)。执行上述程序,输出可能如下:

File: testfile
It is a regular file.
Owner has read permission.
Owner has write permission.
Owner has execute permission.
Group has read permission.
Group has execute permission.
Others have read permission.

glob()

glob函数的使用 - dolinux - 博客园

相关文章:

Linux扩展

目录 扩展 查找如何进行后台运行程序的指令 使用 & 符号 使用 nohup 命令 使用 screen 或 tmux find命令 基本语法 常用选项 grep 命令 基本语法 常用选项 如何使用 vim 直接定位到错误行 1. 使用 :make 和 :copen 2. 使用 :lineno 定位 3. 通过 :grep 或 :…...

Java Hotspot VM researcher

** therefore, careful design and understanding of modules are essential to fully reap the performance benefits. **...

java—基础

目标 ├── 第一阶段&#xff1a;内容清单 │ └── 目标&#xff1a;建立编程思想 ├── 第二阶段&#xff1a;内容清单 │ └── 目标&#xff1a;提升编程能力 └── 第三阶段&#xff1a;内容清单└── 目标&#xff1a;分析需求&#xff0c;代码实现能力以下是根…...

【OpenCV】第二章——图像处理基础

图像处理基础学习笔记 本章节详细介绍了图像处理的基础内容&#xff0c;包括图像的读取、显示、保存&#xff0c;基本属性的查看&#xff0c;图像的变换与操作&#xff0c;以及常用的图像处理方法。 目录 图像的读取与显示图像基本属性图像的灰度化与二值化图像的色彩空间转换…...

在WSL2+Ubuntu22.04中通过conda pack导出一个conda环境包,然后尝试导入该环境包

如何导出一个离线conda环境&#xff1f;有两种方式&#xff0c;一种是导出env.yml即环境配置&#xff0c;一种是通过conda pack导出为一个环境包&#xff0c;前者只是导出配置&#xff08;包括包名、版本等&#xff09;&#xff0c;而后者是直接将环境中所有的内容打包&#xf…...

C++:类和对象(上)---镜中万象:C++类的抽象之境与对象的具体之象

类&#xff08;Class&#xff09;是一种用户自定义的数据类型。 文章目录&#xff1a; 前言一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 3.1类是什么&#xff1f; 3.2类的定义 四、类的访问限定符和封装 4.1类的访问限定符 4.2封装 五、类和对象的关系 六、类对…...

碰一碰发视频源码搭建全解析,支持OEM

在数字化交互体验不断升级的背景下&#xff0c;“碰一碰发视频” 功能凭借其便捷性和趣味性&#xff0c;逐渐成为营销推广、社交分享等场景中的热门需求。该功能基于近场通信技术&#xff0c;实现设备间快速的数据传输。本文将详细介绍其源码搭建过程&#xff0c;助力开发者实现…...

搭建spark-local模式

要搭建Spark的local模式&#xff0c;你可以按照以下步骤进行操作&#xff08;以在Linux系统上安装为例&#xff0c;假设你已经安装了Java环境&#xff09;&#xff1a; 1. 下载Spark安装包&#xff1a;访问Spark官方网站&#xff08;https://spark.apache.org/downloads.html&a…...

Goland终端PowerShell命令失效

Goland终端Terminal的PowerShell不能使用&#xff0c;明明windows上升级了PowerShell 7设置了配置文件&#xff0c;但是只能在windows终端下使用&#xff0c;goland终端下直接失效报错&#xff0c;安装升级PowerShell请看[博客](Windows11终端升级PowerShell7 - HashFlag - 博客…...

前端节流、防抖函数

节流 什么是节流&#xff1f; 节流就是同一个事件 一秒钟他执行了很多次。但是我不想他执行这么多次&#xff0c;我只想让他执行一次 或者两次。 那该怎么办&#xff1f; why baby why 那我想就是他执行的时候 我就设置一个定时器&#xff0c;如果定时器是空的&#xff0c;等会…...

如何使用WebRTC

WebRTC比较容易使用&#xff0c;只需要很少的步骤&#xff0c;有些消息在浏览器和服务器之间流动&#xff0c;有些则直接在两个浏览器之间流动&#xff0c; 1、建立WebRTC会话 a&#xff1a;建立WebRTC连接需要加入以下几个步骤&#xff1a; 获取本地媒体&#xff1a;getUse…...

在 Vue 3 setup() 函数中使用 TypeScript 处理 null 和 undefined 的最佳实践

在 Vue 3 中使用 setup() 函数和 TypeScript 时&#xff0c;null 和 undefined 是两个需要特别关注的类型。虽然它们看起来都表示“没有值”&#xff0c;但它们在 JavaScript 和 TypeScript 中有着不同的含义和使用场景。如果不小心处理它们&#xff0c;可能会导致潜在的 bug 或…...

【C++11】Lambda表达式

前言 上文我们学习了C11新语法&#xff0c;可变参数模板以及用可变参数模板作为形参的emplace接口。【C11】可变参数模板-CSDN博客 本文我们来学习C11下一个新语法&#xff0c;Lambda表达式。 1.Lambda表达式语法 Lambda表达式本质是一个匿名函数对象&#xff0c;与普通函数不同…...

【落羽的落羽 C++】vector

文章目录 一、vector类介绍二、vector中的常用接口三、迭代器失效问题四、vector的使用实例五、vector模拟实现 一、vector类介绍 vector是STL中的一种容器&#xff0c;本质上是顺序表。它和string类的结构很相似&#xff0c;其也有size、capacity、数组等&#xff0c;不同的是…...

DIFY 浅尝 - Dify + Ollama 抓取BBC新闻

假设你已经按照上篇文章 DIFY 浅尝 - DIFY Ollama 添加模型搭建好了本地环境. 创建一个新的工作流 进入你的本地Dify工作台&#xff0c;选择工作室->创建空白应用 选择工作流&#xff0c;输入应用名称BBC旅游新闻&#xff0c;点击创建 创建一个网页爬虫 配置网页爬虫…...

基于MTF的1D-2D-CNN-BiLSTM-Attention时序图像多模态融合的故障分类识别(Matlab完整源码和数据),适合研究学习,附模型研究报告

基于MTF的1D-2D-CNN-BiLSTM-Attention时序图像多模态融合的故障分类识别&#xff08;Matlab完整源码和数据&#xff09;&#xff0c;适合研究学习&#xff0c;附模型研究报告 目录 基于MTF的1D-2D-CNN-BiLSTM-Attention时序图像多模态融合的故障分类识别&#xff08;Matlab完整…...

nuxt3项目搭建:一、初始化项目流程指南

一、初始化项目 初始化命令 1、创建nuxt3项目 npm create nuxtlatest2、填写项目名称 这里我直接填了nuxt-app 3、选择包管理器 这里的包管理器我们选择pnpm 4、选择是否创建git仓库 选择完包管理器后&#xff0c;脚手架会自动下载依赖&#xff0c;git仓库我已经创建好了…...

案例速成GO+redis 个人笔记

更多个人笔记&#xff1a;&#xff08;仅供参考&#xff0c;非盈利&#xff09; gitee&#xff1a; https://gitee.com/harryhack/it_note github&#xff1a; https://github.com/ZHLOVEYY/IT_note &#xff08;更多GOredis等见内部&#xff0c;会及时更新&#xff5e;&#x…...

C/C++ 头文件包含机制:从语法到最佳实践

在C/C++编程中,头文件(.h 或 .hpp)扮演着至关重要的角色。它们不仅是代码模块化的基石,更是编译器理解程序结构的关键。然而,头文件的使用看似简单,实则暗含许多细节,稍有不慎便可能导致编译错误、代码冗余,甚至隐藏难以调试的问题。本文将从语法、编译器行为到工程实践…...

职业教育新形态数字教材的建设与应用:重构教育生态的数字化革命

教育部新时代职业学校名师(名匠)名校长培养计划、四川省第四批职业学校名师(名匠)培养计划专题 在某职业院校的智能制造课堂上&#xff0c;学生佩戴VR设备&#xff0c;通过数字教材中的虚拟工厂完成设备装配训练&#xff0c;系统实时生成操作评分与改进建议。这一场景折射出职业…...

跟着deepseek学golang--Go vs Java vs JavaScript三语言的差异

文章目录 一、类型系统与编译方式1. 类型检查时机2. 空值安全设计 二、并发模型对比1. 并发单元实现4. 锁机制差异 三、内存管理机制1. 垃圾回收对比2. 对象模型差异 四、工程实践差异1. 依赖管理工具4. 异常处理范式 五、跨平台能力对比1. 编译输出目标 综合对比表​​五角星说…...

梯度下降法

梯度下降法是一种常见的求最小值&#xff08;或最值&#xff09;的方法。它是通过沿着函数梯度的负方向进行迭代更新&#xff0c;直到找到局部最小值或最大值。梯度下降法应用于多元函数时&#xff0c;通过更新参数的方式找到最优解。 梯度下降法步骤&#xff1a; 初始化参数&…...

【Java 数据结构】List,ArrayList与顺序表

目录 一. List 1.1 什么是List 1.2 List 的常见方法 1.3 List 的使用 二. 顺序表 2.1 什么是顺序表 2.2 实现自己的顺序表 2.2.1 接口实现 2.2.2 实现顺序表 三. ArrayList 3.1 ArrayList简介 3.2 ArrayList的三个构造方法 3.2.1 无参构造方法 3.2.2 带一个参数的…...

用Python做有趣的AI项目1:用 TensorFlow 实现图像分类(识别猫、狗、汽车等)

项目目标 通过构建卷积神经网络&#xff08;CNN&#xff09;&#xff0c;让模型学会识别图片中是什么物体。我们将使用 CIFAR-10 数据集&#xff0c;它包含 10 类&#xff1a;飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。 &#x1f6e0;️ 开发环境与依赖 安装依赖&…...

正确应对监管部门的数据安全审查

首席数据官高鹏律师团队编著 在当今数字化时代&#xff0c;数据安全已成为企业及各类组织面临的重要议题&#xff0c;而监管部门的数据安全审查更是关乎其生存与发展的关键挑战。随着法律法规的不断完善与监管力度的加强&#xff0c;如何妥善应对这一审查&#xff0c;避免潜在…...

Springboot用IDEA打jar包 运行时 错误: 找不到或无法加载主类

Springboot用IDEA打jar包 运行时 错误: 找不到或无法加载主类 今天遇到个很神奇的问题。 就是我在打包我项目后。用java -jar命令的话 是无法启动这个项目的。 但是我在idea里面进行运行 就可以运行 先说结论 因为我这个是jdk17的项目 而我本机的jdk是1.8 所以说就会出现…...

【Linux网络】构建与优化HTTP请求处理 - HttpRequest从理解到实现

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

【高频考点精讲】实现垂直居中的多种CSS方法比较与最佳实践

前端工程师必看:7种CSS垂直居中方案大比拼(附真实代码) 今天咱们聊聊前端开发中最让人头疼的问题之一——垂直居中。不知道你们有没有遇到过这种情况:明明设置了margin: 0 auto水平居中了,垂直方向怎么折腾都不对劲。全栈老李当年刚入行时,为了一个div居中能折腾一晚上,…...

Java 字符串基础介绍

在 Java 编程中&#xff0c;字符串是不可或缺的一部分。无论是用户界面的消息显示、文件路径的处理&#xff0c;还是用户信息的存储&#xff0c;字符串都扮演着至关重要的角色。本文将带您深入了解 Java 字符串的特性、用法以及一些高级技巧&#xff0c;帮助您在编程实践中更加…...

SpringBoot中暗藏的设计模式

一、工厂模式 想象一下你去奶茶店点单——你只需要告诉店员要"珍珠奶茶"&#xff0c;后厨就会自动完成煮茶、加料、封口整套流程。这就是工厂模式在SpringBoot中的体现。 典型应用场景&#xff1a; Bean的创建过程&#xff08;ApplicationContext就是超级工厂&…...

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。 AFL 的地址是https://lcamt uf.coredump.cx/afl/ 。它已经有一段…...

Java 线程的六种状态与完整生命周期详解

&#x1f680; Java 线程的几种状态详解 在 Java 中&#xff0c;线程状态&#xff08;Thread State&#xff09;是由 Thread.State 枚举定义的&#xff0c;总共有六种&#xff1a; 状态含义典型场景示例NEW新建状态&#xff0c;线程对象刚创建&#xff0c;还未调用 start() 方…...

常见的机器视觉通用软件

国际常用软件 OpenCV &#xff1a; 特点 &#xff1a;开源免费&#xff0c;社区支持强大&#xff0c;拥有丰富的图像处理和计算机视觉算法库&#xff0c;支持多种编程语言&#xff0c;如 C、Python、Java 等&#xff0c;可实现对象检测、图像分割、特征提取等功能&#xff0c;具…...

使用 Frida 绕过 iOS 应用程序中的越狱检测

在这篇博文中,我们将介绍**Frida**,它是用于移动应用程序安全分析的真正有趣的工具之一。 我们在高级 Android 和 iOS 漏洞利用培训中也深入讲解了这一点,您可以在这里注册 -培训链接 即使您从未使用过 Frida,本文也将作为指南,帮助您进入 Frida 的世界,进行移动应用程…...

创建可执行 JAR 文件

&#x1f4e6; 创建可执行 JAR 文件 &#x1f539; 概述 在完成示例的最后环节&#xff0c;我们将创建一个完全自包含的可执行 jar 文件&#xff0c;该文件可直接在生产环境运行。可执行 jar&#xff08;又称 uber jar 或 fat jar&#xff09;是一种包含编译后类文件及全部运行…...

LIDC-IDRI数据集切割代码教程【pylidc库】

数据集&#xff1a; 通过网盘分享的文件&#xff1a;LIDC 链接: 百度网盘 请输入提取码 提取码: ywb8 代码&#xff1a; 通过网盘分享的文件&#xff1a;LIDC-IDRI-Preprocessing.rar 链接: 百度网盘 请输入提取码 提取码: b1za 【代码里的部分数据就不删了&#xff0c;方…...

Java数据结构——Stack

Stack 栈的概念和使用栈的概念栈的使用 栈的应用出栈元素序列有效的括号栈的压入、弹出序列逆波兰表达式最小栈 栈的概念和使用 栈的概念 栈(Stack)&#xff1a;一种特殊的线性表&#xff0c;只允许再栈的一端进行插入和删除元素&#xff0c;这一端点被称为栈顶&#xff0c;另…...

SMT贴片加工费控制与优化实践指南

内容概要 SMT贴片加工费的控制与优化需建立在对成本结构的系统性认知基础上。本节从物料采购、设备运行、工艺参数三大维度切入&#xff0c;结合BOM清单管理、钢网使用规范等实操环节&#xff0c;构建覆盖全流程的降本增效框架。以下表格列举了SMT加工成本的典型构成要素及其占…...

Eclipse 插件开发 4 工具栏

Eclipse 插件开发 4 工具栏 1 增加工具(push)2 增加工具(toggle)3 增加工具(radio) 位置locationURI备注菜单栏menu:org.eclipse.ui.main.menu添加到传统菜单工具栏toolbar:org.eclipse.ui.main.toolbar添加到工具栏 style 值含义显示效果push普通按钮&#xff08;默认&#x…...

Dify中的文本分词处理技术详解

Dify中的文本分词处理技术详解 引言核心架构概览索引处理器工厂 文本分词技术详解基础分词器增强型递归字符分词器固定分隔符文本分词器递归分割算法 索引处理器中的分词应用特殊索引处理器的分词特点问答索引处理器父子索引处理器 分词技术的应用场景技术亮点与优势总结 引言 …...

Linux之netlink(2)libnl使用介绍(1)

Linux之netlink(2)Libnl3使用介绍(1) Author&#xff1a;Onceday Date&#xff1a;2025年4月26日 漫漫长路&#xff0c;才刚刚开始… 全系列文章可查看专栏: Linux内核知识_Once-Day的博客-CSDN博客 本文翻译自libnl3官方文档&#xff1a;Netlink Library (libnl) 参考文档…...

【2025 最新前沿 MCP 教程 04】通信渠道:理解 MCP 传输机制

文章目录 1. 开始啦&#xff01;2. 本地集成与标准输入输出&#xff08;stdio&#xff09;3. 通过 HTTP 实现 SSE&#xff08;服务器发送事件&#xff09;的远程通信4. 展望未来&#xff1a;向可流式 HTTP 的过渡 1. 开始啦&#xff01; 在第三章中&#xff0c;我们解析了模型…...

Qt Charts 绘制曲线图示例

Qt Charts 绘制曲线图示例 Qt Charts 是 Qt 的图表模块&#xff0c;可用于绘制折线图、曲线图等。以下是实现步骤&#xff1a; 1. 配置项目文件 在 .pro 文件中添加 Charts 模块&#xff1a; QT charts2. 创建基础图表 #include <QtCharts>// 创建图表视图和图表对…...

统计学_一元线性回归知识点梳理

1 变量间关系的度量 1.1 变量间的关系 &#xff08;1&#xff09;相关关系&#xff1a;变量之间是不确定的数量关系&#xff0c;比如农作物产量和施肥量的关系。&#xff08;2&#xff09;函数关系&#xff1a;变量之间是一一确定的对应的关系&#xff0c;y 完全依赖于 x。 …...

【计算机视觉】CV项目实战- 深度解析TorchVision_Maskrcnn:基于PyTorch的实例分割实战指南

深度解析TorchVision_Maskrcnn&#xff1a;基于PyTorch的实例分割实战指南 技术背景与核心原理Mask R-CNN架构解析项目特点 完整实战流程环境准备硬件要求软件依赖 数据准备与标注1. 图像采集2. 数据标注3. 数据格式转换 模型构建与训练1. 模型初始化2. 数据加载器配置3. 训练优…...

数据分析岗位-相关知识

数据分析岗位 1.大数据2.业务&#xff08;朴素理念&#xff09; 1.大数据 数据流向 &#xff1a;MySQL等传统业务数据&#xff08;结构、半结构、非结构&#xff09; → ETL → 数据仓库 / 数据计算 → BI&#xff08;BI也提供计算能力&#xff09; sequenceDiagramMySQL->…...

使用 Truffle 和 Ganache 搭建本地以太坊开发环境并部署一个简单智能合约

使用 Truffle 和 Ganache 搭建本地以太坊开发环境并部署一个简单智能合约的详细步骤&#xff1a; 一、环境搭建 安装 Node.js 和 npm Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境&#xff0c;npm 是 Node.js 的包管理器。可以从 Node.js 官方网站下载安装程序…...

Set的学习

1. Set是继承自Collection的一个接口类 2. Set中只存储了key&#xff0c;并且要求key一定要唯一 3. TreeSet的底层是使用Map来实现的&#xff0c;其使用key与Object的一个默认对象作为键值对插入到Map中的 4. Set最大的功能就是对集合中的元素进行去重 5. 实现Set接口的常用…...

Python爬虫实战:获取高考资源网各学科精品复习资料

一、引言 高考资源网拥有丰富的高考复习资料,对于我们而言,获取这些资源并整理分享能为考生提供有价值的帮助。然而,手动从网站查找和下载资源效率低且易出错。利用 Python 爬虫技术可实现自动化资源获取,提高工作效率。但在爬取过程中,需考虑网站反爬机制,采取相应措施…...

Linux下编译并打包MNN项目迁移至其他设备

1. 构建项目结构 该项目是利用MNN框架对MTCNN网络进行推理&#xff0c;实现对目标的实时检测 运行环境&#xff1a;Linux 相关库&#xff1a;opencv&#xff0c;MNN 先给出项目的总体结构&#xff0c;如下&#xff1a; mtcnn_mnn/ ├── include/ │ ├── opencv2/ …...