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

Linux和gcc/g++常用命令总结

目录

Linux命令总结

文件操作相关命令

ls

cd

pwd

cp

mv

rm

cat

mkdir

rmdir

touch

文本处理操作命令

grep

awk

sed

进程管理操作相关命令

ps

top

htop

kill

pkill

killall

chmod

chown

网络操作相关命令

ping

ifconfig

netstat

ss

lsof

curl

wget

ssh

端口操作相关命令

nmap

系统信息查看相关命令

uname

df

du

free

查看CPU和内存使用相关命令

top

htop

ps

vmstat

free

gcc/g++编译器选项总结

编译链接选项

调优选项

警告和错误选项

其他选项


Linux命令总结

文件操作相关命令

ls

1. ls:列出目录中的文件和目录

常用选项:

-a        显示包括隐藏文件在内的所有文件;

-l        以长格式显示文件信息,包括文件权限、所有者、大小等;

-t        按修改时间排序

示例:ls -al列出当前目录下所有文件的详细信息,包括隐藏文件

cd

  2. cd :切换目录

常用选项:

..        返回上一级目录;

~        返回当前用户的主目录

示例:cd /home/user切换到 /home/user目录;cd ..返回上一级目录。

pwd

  3. pwd:显示当前工作目录

cp

  4. cp :复制文件或目录

常用选项:

-r        复制目录时递归复制子目录

示例:cp file1.txt file2.txt复制/拷贝 file1.txt为 file2.txt;cp -r dir1 dir2复制/拷贝目录 dir1到 dir2。

mv

  5. mv :移动或重命名文件或目录

示例:mv file1.txt /home/user 将 file1.txt 移动到 /home/user目录;mv oldname.txt newname.txt将文件 oldname.txt重命名为 newname.txt

rm

  6.rm :删除文件或目录

常用选项:

-r        递归删除目录及其内容

示例:rm file.txt删除文件 file.txt;rm -r dir删除目录 dir及其内容

cat

  7. cat :查看文件内容

示例:cat file.txt 显示 file.txt的内容

mkdir

  8.mkdir:创建目录

示例:mkdir dir 创建一个名为 dir的目录

rmdir

  9. rmdir :删除空白目录

示例:rmdir dir删除空白的 dir目录

touch

  10. touch :创建空文件或更新文件的访问和修改时间

示例:touch file.txt创建一个名为 file.txt的空文件

文本处理操作命令

grep

grep:在文件中搜索特定的字符串

awk

awk:强大的文本处理工具

sed

sed:流编辑器,用于文本的替换、插入、删除等操作

进程管理操作相关命令

ps

  1.ps:显示当前系统中的进程信息

常用选项:

aux        显示所有进程,包括其他用户的进程;

-eo pid,ppid,%cpu,%mem,cmd        指定显示的列,如进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。

示例:ps aux显示系统中所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd指定显示特定的列。

top

  2.top:动态显示系统中进程的资源使用情况,包括 CPU 和内存使用情况等

常用选项:

-d        后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间

示例:top -d 2每 2 秒刷新一次屏幕,动态显示进程信息

htop

  3. htop:类似于 top,但提供了更直观的界面和更多的功能

常用选项:

可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等

示例:直接输入 htop 启动该命令

kill

4. kill :终止进程

常用选项:

-9(信号)        强制终止进程

示例:kill 1234终止进程 ID 为 1234 的进程;kill -9 1234强制终止进程 ID 为 1234 的进程

pkill

  5. pkill:通过进程名或其他属性终止进程

示例:pkill firefox终止所有名为 firefox 的进程

killall

  6. killall:通过进程名终止所有匹配的进程

示例:killall firefox终止所有名为 firefox 的进程

chmod

  7.  chmod:更改文件或目录的权限

chmod基本语法

chmod [选项] 权限模式 文件/目录
  • 权限模式:定义了文件的权限,可以使用数字表示(如 755 或 644),也可以使用符号表示(如 +rw 或 +x)。
  • 文件/目录:要更改权限的文件或目录的路径。

数字表示法

在数字表示法中,每个权限用一个数字表示:读权限(r)为 4,写权限(w)为 2,执行权限(x)为 1。通过将这些数字相加,可以为文件设置所需的权限。例如:

  • 7:读、写、执行权限(4+2+1)
  • 5:读、执行权限(4+1)
  • 4:只读权限
  • 6:读、写权限(4+2)

数字权限模式通常是三个数字的组合,分别代表用户(文件所有者)、组和其他用户的权限。例如:

  • 755:用户有读、写、执行权限,组和其他用户有读、执行权限。
  • 644:用户有读、写权限,组和其他用户有只读权限。

符号表示法

符号表示法使用操作符(+-=)和权限字母(rwx)来更改权限。例如:

  • chmod +x filename:为文件 filename 添加执行权限。
  • chmod -w filename:移除文件 filename 的写权限。
  • chmod u=rw filename:设置文件 filename 的用户权限为读和写。

常用选项

  • -R, --recursive:递归更改目录及其内容的权限。

示例

  1. 更改文件的权限
chmod 755 script.sh

将 script.sh 文件的权限设置为用户有读、写、执行权限,组和其他用户有读、执行权限。

  1. 为文件添加执行权限
chmod +x script.sh

为 script.sh 文件添加执行权限。

  1. 移除文件的写权限
chmod -w file.txt

移除 file.txt 文件的写权限。

  1. 递归更改目录及其内容的权限
chmod -R 755 myproject

递归地将 myproject 目录及其所有子目录和文件的权限设置为用户有读、写、执行权限,组和其他用户有读、执行权限。

  1. 设置文件的具体权限
chmod u=rw,g=rx,o=rx file.txt

设置 file.txt 文件的用户权限为读和写,组权限为读和执行,其他用户权限为读和执行。这也可以简写为 chmod u=rw,g+rx,o+rx file.txt 或使用数字表示法 chmod 655 file.txt(但注意,数字表示法无法直接表达只添加或移除特定权限,它总是设置完整的权限模式)

注意事项

  • 使用 chmod 命令时需要确保具有足够的权限,通常只有文件的所有者或超级用户(root)才能修改权限
  • 谨慎操作,避免不小心修改了文件的权限,导致数据丢失或其他安全问题。特别是使用 -R 选项时,要确保递归更改的范围是正确的

chown

    8.chown:更改文件或目录的所有者

chown基本语法

chown [选项] [所有者][:[组]] 文件/目录
 
  • 所有者:指定新的文件所有者用户名或用户 ID。
  • :可选,指定新的文件所属组组名或组 ID。如果指定了组,它应该紧跟在所有者之后,并用冒号 (:) 分隔。如果只指定了组,前面应该加一个冒号。
  • 文件/目录:要更改所有权的文件或目录的路径。

常用选项

  • -R, --recursive递归更改目录及其内容的所有者和组
  • -v, --verbose显示处理的每个文件的详细信息。
  • -c, --changes仅显示更改的文件,对于未更改的文件不显示任何信息
使用如下:
  1. 更改文件的所有者
chown newowner filename

例如,将 file.txt 的所有者更改为 john

chown john file.txt
  1. 更改文件的所有者和组
chown newowner:newgrooup filename

例如,将 file.txt 的所有者更改为 john,组更改为 staff

chown john:staff file.txt
  1. 仅更改文件的组
chown :staff file.txt

例如,将 file.txt 的组更改为 staff

chown :staff file.txt
  1. 递归更改目录及其内容的所有者和组
chown -R newowner:newgroup directoryname

例如,将 myproject 目录及其所有子目录和文件的所有者更改为 john,组更改为 staff

chown -R john:staff myproject
  1. 显示更改的详细信息
chown -v newowner filename

例如,详细显示 file.txt 所有者的更改信息

chown -v john file.txt
  1. 仅显示更改的文件
chown -c newowner filename

如果 file.txt 的所有者已经是 john,则不会显示任何信息;如果所有者被更改,则会显示更改信息。

注意事项

  • 只有超级用户(root)或当前文件的所有者才有权限使用 chown 命令更改文件的所有者。
  • 如果指定的用户或组不存在,chown 命令会报错。
  • 使用 chown 命令时要小心,特别是与 -R 选项一起使用时,因为它会递归地更改目录及其内容的所有权。

假设你有一个目录 docs,其中包含多个文件和子目录,你想要将 docs 目录及其所有内容的所有者更改为 alice,组更改为 developers,并显示详细信息,你可以使用以下命令:

chown -Rv alice:developers docs

这将递归地更改 docs 目录及其所有子目录和文件的所有者和组,并显示每个被更改文件的详细信息。

网络操作相关命令

ping

  1. ping :测试网络连通性

示例:ping google.com测试与 google.com 的网络连通性

ifconfig

  2. ifconfig :配置和显示网络接口信息

示例:ifconfig 查看当前网络接口的配置信息

netstat

  3. netstat :显示网络连接、路由表等信息,可以查看端口的使用情况

常用选项:

-an        显示所有监听的和非监听的端口;

-tuln        显示监听的 TCP 和 UDP 端口

示例:netstat -an显示所有网络连接和端口信息;netstat -tuln显示监听的 TCP 和 UDP 端口。

ss

  4. ss :类似于 netstat,用于查看套接字统计信息,可以更快速地显示端口的使用情况

常用选项:

-antlp         显示所有监听的 TCP 端口及其对应的进程信息;

-anu         显示所有监听的 UDP 端口

示例:ss -antlp 显示所有监听的 TCP 端口及其对应的进程信息;ss -anu 显示所有监听的 UDP 端口

lsof

  5. sof :列出当前系统打开的文件和端口等信息

常用选项:

-i          后跟端口号,显示指定端口的使用情况。

示例:lsof -i :80 显示 80 端口的使用情况及对应进程信息

curl

  6. curl :用于从服务器传输数据或向服务器发送数据,常用于测试和操作网络请求

示例:curl google.com获取 google.com 的网页内容;curl -X POST -d "key=value" google.com向 google.com 发送 POST 请求并携带数据

wget

  7. wget :从网络上下载文件

示例:wget google.com下载 google.com 的网页内容;wget -O output.html google.com将下载的内容保存为 output.html文件

ssh

8.  ssh:用于远程登录到另一台计算机

端口操作相关命令

ss

使用方法同上!!!

lsof

使用方法同上!!!

netstat

使用方法同上!!!

nmap

nmap 命令

功能:网络探测工具,可用于扫描端口开放情况等

常用选项:

-p         后跟端口号或端口范围,指定扫描的端口;

-sS         进行 TCP SYN 扫描

示例:nmap -p 1-1000 192.168.1.1 扫描 192.168.1.1 主机的 1 到 1000 端口开放情况

系统信息查看相关命令

uname

 1. uname:显示系统信息

常用选项:

-a       显示所有系统信息,包括内核版本、主机名等;

-r        仅显示内核版本号。

示例:uname -a 显示所有系统信息;uname -r显示内核版本号

df

  2. df:显示文件系统的磁盘使用情况

常用选项:

-h        以人类可读的格式显示磁盘空间,如自动根据大小选择合适的单位

示例:df -h显示文件系统的磁盘使用情况,包括每个文件系统的总空间、已用空间、可用空间等。

du

  3. du:显示文件或目录的磁盘使用情况

常用选项:

-h        以人类可读的格式显示磁盘空间;

-s        仅显示总计。

示例:du -h /home/user显示 /home/user目录及其子目录的磁盘使用情况;du -sh /home/user仅显示 /home/user目录的总计磁盘使用情况

free

  4. free:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情

常用选项:

-m        以 MB 为单位显示内存信息;

-h         以人类可读的格式显示内存信息,如自动根据大小选择合适的单位;

-s        指定更新时间间隔,持续显示内存信息。

示例:free -m表示以 MB 为单位显示内存信息;free -h以人类可读的格式显示内存信息;free -s 2 表示每 2 秒更新一次内存信息

查看CPU和内存使用相关命令

top

top命令

功能:提供了动态的实时系统进程信息,可以查看 CPU 和内存的使用情况以及其他相关信息,如进程的用户、运行时间、命令等

常用选项:

-d        后跟时间间隔,以秒为单位指定两次屏幕刷新之间的间隔时间。

示例:top -d 2,表示每 2 秒刷新一次屏幕

htop

htop命令

功能:是一个更高级的进程浏览器,它提供了比 top更直观的界面和更多的功能,可以方便地查看 CPU 和内存的使用情况,以及各个进程的信息

常用选项:

可以通过方向键和各种快捷键来操作,如 F5以树形视图显示进程,F6按内存使用排序等。

示例:直接输入 htop即可启动该命令

ps

ps命令

功能:用于报告当前系统中的进程状态,结合不同的选项可以查看进程的 CPU 和内存使用情况

常用选项:

aux        显示所有进程的信息,包括其他用户的进程。

eo pid,ppid,%cpu,%mem,cmd        指定显示的列,包括进程 ID、父进程 ID、CPU 使用率、内存使用率和命令等。

示例:ps aux | less,表示分页显示所有进程的信息;ps -eo pid,ppid,%cpu,%mem,cmd,指定显示特定的列

vmstat

vmstat命令

功能:报告虚拟内存的统计信息,包括进程、内存、分页、块设备、陷阱和 CPU 活动等信息,可以间接反映出 CPU 和内存的使用情况

常用选项:

1        表示每秒更新一次。

-s        以更易读的格式显示统计信息。

示例:vmstat 1,表示每秒更新一次虚拟内存统计信息;vmstat -s,以更易读的格式显示统计信息

free

free命令

功能:用于显示系统中空闲、已用和交换的内存量,可以方便地查看内存的使用情况。

常用选项:

-m         以 MB 为单位显示内存信息。

-h        以人类可读的格式显示内存信息,如自动根据大小选择合适的单位。

-s        指定更新时间间隔,持续显示内存信息。

示例:free -m,表示以 MB 为单位显示内存信息;free -h,以人类可读的格式显示内存信息;free -s 2,表示每 2 秒更新一次内存信息

gcc/g++编译器选项总结

编译链接选项

-c只编译,不链接。

示例:g++ -c main.cpp 将 main.cpp 编译成目标文件 main.o。

-o 指定输出文件名

示例:g++ -o myprogram main.cpp将编译链接后的可执行文件命名为 myprogram。

-I添加头文件搜索路径。(i大写)

示例:g++ -I /usr/local/include main.cpp指定在 /usr/local/include目录下搜索头文件

-L添加库文件搜索路径

示例:g++ -L /usr/local/lib main.cpp -lmylibc指定在 /usr/local/lib目录下搜索库文件 mylibc。

-l链接库文件。(L小写)

示例:g++ main.cpp -lmylib 链接库文件 mylib。

-shared生成共享库(动态库)

示例:g++ -shared -fPIC mylib.cpp -o libmylib.so 生成共享库 libmylib.so。

  -static 生成静态库

示例:g++ -static mylib.cpp -o libmylib.a生成静态库 libmylib.a。

调优选项

-O1启用基本的优化

示例:g++ -O1 main.cpp -o myprogram对生成的代码进行基本的优化

-O2更高一级的优化,在 -O1的基础上增加更多的优化

示例:g++ -O2 main.cpp -o myprogram对生成的代码进行更高级的优化

-O3 最高级别的优化,会在编译时进行更充分的优化,但可能会增加编译时间
示例:g++ -O3 main.cpp -o myprogram对生成的代码进行最高级别的优化

-Os优化代码大小,在优化代码执行效率的同时,尽可能减小生成的二进制文件大小
示例:g++ -Os main.cpp -o myprogram优化代码大小

-g 生成调试信息,便于使用调试器(如 GDB)进行调试
示例:g++ -g main.cpp -o myprogram在生成的可执行文件中包含调试信息

警告和错误选项

 -Wall启用所有常见的警告
示例:g++ -Wall main.cpp -o myprogram启用所有常见的警告

-Wextra启用额外的警告,比 -Wall更严格
示例:g++ -Wextra main.cpp -o myprogram启用额外的警告

-Werror将所有警告视为错误,如果出现警告,编译将失败
示例:g++ -Werror main.cpp -o myprogram将所有警告视为错误

其他选项

-std=c++11指定使用 C++11 标准
示例:g++ -std=c++11 main.cpp -o myprogram指定使用 C++11 标准进行编译。

-fPIC生成位置无关代码,通常用于生成共享库
示例:g++ -fPIC mylib.cpp -shared -o libmylib.so生成位置无关代码生成共享库

-pg添加性能分析代码,用于性能分析工具(如 gprof)。
示例:g++ -pg main.cpp -o myprogram添加性能分析代码

-v 显示编译器版本信息和编译过程的详细信息
示例:g++ -v显示编译器版本信息

相关文章:

Linux和gcc/g++常用命令总结

目录 Linux命令总结 文件操作相关命令 ls cd pwd cp mv rm cat mkdir rmdir touch 文本处理操作命令 grep awk sed 进程管理操作相关命令 ps top htop kill pkill killall chmod chown 网络操作相关命令 ping ifconfig netstat ss lsof curl …...

uniapp封装路由管理(兼容Vue2和Vue3)

1:uniapp已经有路由管理了为什么还要二次封装路由? 简化配置和调用增强灵活性和可扩展性实现统一的功能和策略提升开发效率和团队协作 2. 增强灵活性和可扩展性 灵活配置:二次封装允许开发者根据实际需求灵活配置路由参数,如跳…...

π0源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司的部分落地实践

前言 ChatGPT出来后的两年多,也是我疯狂写博的两年多(年初deepseek更引爆了下),比如从创业起步时的15年到后来22年之间 每年2-6篇的,干到了23年30篇、24年65篇、25年前两月18篇,成了我在大模型和具身的原始技术积累 如今一转眼…...

【C++】Class(1)

《C程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记 文章目录 1、类的定义1.1、结构体和类1.2、基本概念1.3、成员函数的定义1.4、内联成员函数 2、对象2.1、对象的定义2.2、成员访问 3、构造函数3.1、构造函数的定义3.2、子…...

doris: Oracle

Apache Doris JDBC Catalog 支持通过标准 JDBC 接口连接 Oracle 数据库。本文档介绍如何配置 Oracle 数据库连接。 使用须知​ 要连接到 Oracle 数据库,您需要 Oracle 19c, 18c, 12c, 11g 或 10g。 Oracle 数据库的 JDBC 驱动程序,您可以从 Maven 仓库…...

Android14 OTA差分包升级报Package is for source build

制作好差分包&#xff0c;使用adb线刷模式验证ota升级&#xff0c;出现E:Package is for source build错误 使用adb方式验证 进入recovery模式 adb reboot recovery稍等一会界面会提示 Now send the package you want to apply to the device with "adb sidelaod <…...

双向选择排序算法

一 概述 双向选择排序(又称鸡尾酒选择排序)是选择排序的优化版本,核心改进在于每轮遍历同时确定未排序部分的最小值和最大值,分别交换到序列两端,从而减少遍历轮数。 二 时间复杂度 时间复杂度为(O(n^2)),但实际比较次数约为标准选择排序的 (1/2)。 三 C++实现代…...

Node.js setImmediate 教程

Node.js setImmediate 教程 简介 setImmediate() 是 Node.js 环境中的一个函数&#xff0c;用于安排一个回调函数在当前事件循环周期结束后立即执行。它提供了一种在当前操作完成后&#xff0c;但在任何 I/O 事件或定时器触发之前执行代码的方法。 基本用法 setImmediate((…...

MyBatis @Param 注解详解:多参数传递与正确使用方式

Param 注解主要用于 MyBatis 进行参数传递时给 SQL 语句中的参数 起别名&#xff0c;通常用于 多参数 方法&#xff0c;使参数在 XML Mapper 文件或注解 SQL 语句中更清晰易用。 1. 基本用法 在 Mapper 接口中使用 Param 来为参数命名&#xff0c;避免 MyBatis 解析时出现参数…...

Spring实战spring-ai运行

目录 1. 配置 2 .搭建项目 3. 查看对应依赖 3.1 OpenAI 依赖 3.2 配置 OpenAI API 密钥 application.properties application.yml 4. openai实战 5. 运行和测试 6. 高级配置 示例&#xff1a;配置模型和参数 解释&#xff1a; 7. 处理异常和错误 示例&#xff1a;…...

STL:C++的超级工具箱(一)

书接上回&#xff0c;内存管理和指针&#xff1a;C的双刃手术刀&#xff08;一&#xff09;-CSDN博客&#xff0c;在上篇我们聊到了什么是内存&#xff0c;堆栈&#xff0c;内存管理和智能指针相关的内容&#xff0c;接下来让我们一起去看看STL是什么吧。 第一步&#xff1a;提…...

leetcode349 两个数组的交集

求两个数组的交集&#xff0c;直白点儿就是【nums2 的元素是否在 nums1 中】。 在一堆数中查找一个数&#xff0c;当然是扔出哈希。碰到这种对目前来说是未知数值大小的情况&#xff0c;我们可以使用集合 set 来解决。 使用数组来做哈希的题目&#xff0c;是因为题目都限制了数…...

快速生成viso流程图图片形式

我们在写详细设计文档的过程中总会不可避免的涉及到时序图或者流程图的绘制&#xff0c;viso这个软件大部分技术人员都会使用&#xff0c;但是想要画的好看&#xff0c;画的科学还是比较难的&#xff0c;现在我总结一套比较好的方法可以生成好看科学的viso图(图片格式)。主要思…...

鸿蒙Android4个脚有脚线

效果 min:number122max:number150Row(){Stack(){// 底Text().border({width:2,color:$r(app.color.yellow)}).height(this.max).aspectRatio(1)// 长Text().backgroundColor($r(app.color.white)).height(this.max).width(this.min)// 宽Text().backgroundColor($r(app.color.w…...

【NetTopologySuite类库】geojson和shp互转,和自定义对象互转

geojson介绍 1. 示例 在visual studio中使用NuGet中安装了三个库&#xff08;.net4.7.2环境&#xff09;&#xff1a; NetTopologySuite 2.5NetTopologySuite.IO.Esri.Shapefile 1.2NetTopologySuite.IO.GeoJSON 4.0 1.1 shp数据转geojson 先创建一个shp文件作为例子&…...

【哇! C++】类和对象(三) - 构造函数和析构函数

目录 一、构造函数 1.1 构造函数的引入 1.2 构造函数的定义和语法 1.2.1 无参构造函数&#xff1a; 1.2.2 带参构造函数 1.3 构造函数的特性 1.4 默认构造函数 二、析构函数 2.1 析构函数的概念 2.2 特性 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中…...

Ubuntu20.04本地配置IsaacLab 4.2.0的G1训练环境(一)

Ubuntu20.04本地配置IsaacLab的G1训练环境&#xff08;一&#xff09; 配置Omniverse环境配置IsaacSim配置IsaacLab 写在前面&#xff0c;如果Ubuntu剩余空间低于60G&#xff0c;则空间不足&#xff0c;除非你不需要资产包。但资产包中却包含了G1模型、Go2模型等机器人模型和代…...

浅谈汽车系统电压优缺点分析

汽车电气系统的电压等级选择直接影响整车性能、能效和兼容性。以下是 12V、24V、48V 系统的简单介绍&#xff0c;包括技术特点、优缺点及典型应用场景。 汽车电气系统的发展随着车辆电子设备的增多和对能效要求的提高&#xff0c;电压等级也在逐步提升&#xff0c;从传统的12V…...

Springboot基础篇(4):自动配置原理

1 自动配置原理剖析 1.1 加载配置类的源码追溯 自动配置的触发入口&#xff1a; SpringBootApplication 组合注解是自动配置的起点&#xff0c;其核心包含 EnableAutoConfiguration&#xff0c;该注解使用AutoConfigurationImportSelector 实现配置类的动态加载。 启动类的注…...

Dify 开源大语言模型应用开发平台使用(一)

文章目录 一、创建锂电池专业知识解答应用1.1 应用初始化二、核心功能模块详解2.1 知识库构建2.2 工作流与节点编排节点类型说明工作流设计示例:锂电池选型咨询2.3 变量管理三、测试与调试3.1 单元测试3.2 压力测试3.3 安全验证四、部署与优化建议4.1 部署配置4.2 持续优化结论…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...