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

Linux进阶命令

目录

一、touch

1. 基本语法

2. 常用选项

二、which

1. 基本语法

2. 主要功能

3. 常用选项

三、find

1. 基本语法

2. 常用选项和表达式

四、more

1. 基本语法

2. 常用操作

3. 对比 more 和 less

五、grep

1. 基本语法

2. 常用选项

六、wc

1. 基本语法

2. 常用选项

七、管道符

1. 基本概念

2. 基本使用

3. 处理大文件

4. 结合awk和sed进行文本处理

5. 查找并实时监控日志文件

6. 注意事项

八、echo

1. 基本语法

2. 常用选项

3. 常见用法

九、tail

1. 基本语法

2. 常用选项

十、重定向符

1. 标准输入、输出和错误

2. 常见重定向符


一、touch

touch 主要用于创建空文件或更新现有文件的时间戳(包括访问时间和修改时间)。它是一个简单但功能强大的工具,广泛应用于文件管理、脚本编写和自动化任务中。

1. 基本语法

 touch [选项] 文件名...

如果指定的文件不存在,touch 会创建一个新的空文件。如果文件已存在,touch 默认会更新该文件的访问时间和修改时间为当前系统时间。

2. 常用选项

  • 无选项:创建新文件或更新现有文件的时间戳。

  • -a:仅改变文件的访问时间。

  • -m:仅改变文件的修改时间。

  • -c 或 --no-create:不创建文件,如果文件不存在,则不进行任何操作。

touch -c non_existing_file.txt
  • -d 或 --date=字符串:使用指定的字符串设置文件的时间戳。

touch -d "2025-04-12 15:27:00" file.txt
  • -t:使用 [[CC]YY]MMDDhhmm[.ss] 格式的指定时间设置文件的时间戳。

touch -t 202504121527 file.txt
  • -r:使用另一个文件的时间戳来设置目标文件的时间戳。

 touch -r reference_file.txt target_file.txt

二、which

which 用于查找并显示可执行文件的完整路径。它通过搜索系统的 PATH 环境变量中定义的目录,找到与指定命令对应的可执行文件的位置。which 命令的主要用途是帮助用户快速确定某个命令的实际位置,尤其是在系统中可能存在多个同名命令时。

1. 基本语法

 which [选项] 命令名...

2. 主要功能

  1. 查找命令路径which 会在 PATH 环境变量中列出的所有目录中搜索指定的命令,并返回第一个匹配的可执行文件的完整路径。

  2. 验证命令是否存在: 如果 which 找不到指定的命令,则说明该命令可能未安装或不在 PATH 中。

3. 常用选项

-a:显示所有匹配的可执行文件路径,而不仅仅是第一个。

 [itjiang@jasmine ~]$ which -a python/usr/bin/python

三、find

find 用于在文件系统中搜索文件和目录。它可以根据多种条件(如文件名、类型、大小、修改时间等)进行搜索,并支持对找到的文件执行操作。find 命令非常灵活,适用于各种复杂的查找需求。

1. 基本语法

 find [路径] [选项] [表达式]
  • 路径:指定搜索的起始目录。例如 . 表示当前目录,/ 表示根目录。

  • 选项:控制搜索行为的参数。

  • 表达式:定义搜索条件和操作。

2. 常用选项和表达式

(1)按名称查找

使用 -name 选项按文件名查找文件(区分大小写)。要忽略大小写,可以使用 -iname。

 [itjiang@jasmine ~]$ find /home/itjiang -name test.txt/home/itjiang/test.txt

使用 * 匹配任意文件名。* 是最常用的通配符,用于匹配任意长度的字符。

 [itjiang@jasmine ~]$ find ~ -name "test*.txt"/home/itjiang/test2.txt/home/itjiang/test1.txt/home/itjiang/test.txt

(2)按类型查找

使用 -type 选项按文件类型查找:

  • f:普通文件

  • d:目录

  • l:符号链接

  • c:字符设备

  • b:块设备

(3)按大小查找

使用 -size 选项按文件大小查找:

+n:大于 n 单位的文件

-n:小于 n 单位的文件

n:等于 n 单位的文件

单位:

  • c:字节

  • k:千字节

  • M:兆字节

  • G:千兆字节

示例:

 [itjiang@jasmine ~]$ find ~ -size +1M  # 查找~目录中大于1MB的文件/home/itjiang/.cache/tracker/meta.db/home/itjiang/.cache/tracker/meta.db-wal/home/itjiang/.cache/gnome-software/odrs/ratings.json

(4)按修改时间查找

使用 -mtime、-atime 或 -ctime 按时间查找文件:

-mtime n:文件内容最后修改时间为 n 天前。 -atime n:文件最后访问时间为 n 天前。 -ctime n:文件状态最后改变时间为 n 天前。 +n:超过 n 天 -n:少于 n 天

 [itjiang@jasmine ~]$ find ~ -mtime -1  # 查找最近1天内修改过的文件/home/itjiang/home/itjiang/.cache/gdm/home/itjiang/.cache/gdm/session.log.old/home/itjiang/.cache/gdm/session.log

(5)按权限查找

使用 -perm 按文件权限查找。

 [itjiang@jasmine ~]$ find ~ -perm 644  # 查找权限为 644 的文件/home/itjiang/.bash_logout/home/itjiang/.bash_profile

(6)按所有者或组查找

使用 -user 和 -group 按文件的所有者或组查找。

find /path/to/search -user username # 查找属于某个用户的文件
find /path/to/search -group groupname # 查找属于某个组的文件

(7)删除文件

使用 -delete 直接删除找到的文件。

find /path/to/search -name "*.log" -delete

四、more

more 用于分页查看文本文件内容。与 less 类似,more 也允许用户逐屏浏览文件内容,但它提供的功能较少,且不支持向后滚动。尽管如此,对于简单的文件浏览任务,more 仍然是一个实用的工具。

1. 基本语法

more [选项] 文件名...

当我们使用 more 打开一个文件时,它会显示文件的前几行,之后可以通过简单的命令进行翻页或搜索等操作。

2. 常用操作

当文件内容超过一屏时,more 会暂停并显示当前屏幕的内容。此时可以使用以下按键进行导航:

  • 空格键:向下翻一页。

  • 回车键:向下滚动一行。

  • /:后面跟上关键词,然后按回车键可以在文件中向前搜索指定的文本。

  • b:仅在某些实现中有效,尝试向后翻页(回到之前的内容),但请注意,由于 more 的限制,这可能并不总是可用或工作如预期。

  • q:退出 more 查看器,返回到命令行提示符。

3. 对比 more 和 less

尽管 more 和 less 都用于分页查看文件内容,它们之间存在一些关键差异:

  • 向前和向后滚动:more 主要设计为向前浏览文件,虽然有些版本支持向后翻页(b),但不如 less 方便和可靠。less 支持完全的前后移动。

  • 搜索功能:两者都支持搜索,但 less 提供更强大的搜索选项,比如区分大小写的搜索、反向搜索等。

  • 打开大文件:less 更加高效,因为它不会一次性读取整个文件,而 more 可能在处理特别大的文件时表现不佳。

因此,虽然 more 对于简单的需求已经足够,但在更多高级场景下,推荐使用 less 来替代 more。然而,由于 more 的广泛可用性和简单性,了解其基本用法仍然很有价值。

五、grep

grep (全称:Global Regular Expression Print)是一个强大的文本搜索工具,广泛用于 Linux 和 Unix 系统中。它通过正则表达式(regular expressions, regex)来搜索文件中的匹配行,并输出这些行或统计相关信息。grep 的名字来源于全球替换命令 g/re/p,意思是全局搜索正则表达式并打印出来。

1. 基本语法

grep [选项] 模式 [文件名...]
  • 模式:要搜索的字符串或正则表达式。

  • 文件名:要搜索的一个或多个文件。如果未指定文件名,则从标准输入读取数据。

2. 常用选项

  • 无选项:在一个或多个文件中搜索指定模式,并显示包含该模式的所有行。

  • -i:忽略大小写差异进行搜索。

  • -v:反转匹配,即显示不包含匹配项的行。

  • -n:显示匹配行及其所在的行号。

  • -r 或 -R:递归地在目录及其子目录中搜索文件。

  • -l:仅列出包含匹配内容的文件名,而不是具体行。

  • -c:统计每个文件中匹配的行数。

  • -E:使用扩展正则表达式(ERE)。允许使用更复杂的正则表达式功能,如 |(或)、+(一次或多次)等。

  • -w:匹配整个单词,而非仅仅是子串。

  • -A n、-B n、-C n:分别表示显示匹配行后 n 行、前 n 行以及前后各 n 行的内容。

六、wc

wc(word count的缩写)用于统计文件中的字节数、字符数、单词数和行数。它是一个非常实用的工具,常用于文本分析、脚本编写以及日志文件处理等场景。

1. 基本语法

wc [选项] [文件名...]

如果不指定文件名,wc 将从标准输入读取数据。

2. 常用选项

  • 无选项:默认情况下,wc 会输出文件的行数、单词数和字节数。输出格式为:行数 单词数 字节数 文件名

  • -l 或 --lines:统计文件的行数。

  • -w 或 --words:统计文件的单词数。

  • -c 或 --bytes:统计文件的字节数。对于纯文本文件,这通常等于字符数;但对于包含多字节字符的文件,则可能不同。

  • -m 或 --chars:统计文件的字符数。这对于理解文件中实际的字符数量特别有用,特别是在处理包含非ASCII字符的文件时。

  • -L 或 --max-line-length:打印最长行的长度。

七、管道符

在 Linux 和 Unix 系统中,管道符(|)是一个非常强大且常用的工具,用于将一个命令的输出作为另一个命令的输入。通过这种方式,用户可以将多个命令串联起来,以实现复杂的数据处理任务。这种机制极大地增强了命令行工具的功能性和灵活性。

1. 基本概念

管道符允许我们将前一个命令的标准输出(stdout)直接连接到下一个命令的标准输入(stdin)。其基本语法如下:

command1 | command2 | command3 ...

在这个例子中,command1 的输出会成为 command2 的输入,command2 的输出又会成为 command3 的输入,依此类推。

2. 基本使用

假设我们想查找某个目录下所有包含特定关键字的文件,并统计有多少个这样的文件。可以结合 grep 和 wc 来完成这个任务:

 grep -rl "search_term" /path/to/search/ | wc -l
  • grep -rl "search_term" /path/to/search/:递归地在指定目录中搜索包含 "search_term" 的文件,并打印这些文件的路径。

  • wc -l:计算由前面的 grep 命令生成的文件列表中的行数,即找到的文件数量。

3. 处理大文件

如果我们有一个很大的日志文件,并希望查看其中最常见的错误信息,可以结合 cat、grep、sort 和 uniq 命令来完成:

 cat large_log_file.log | grep "ERROR" | sort | uniq -c | sort -nr
  • cat large_log_file.log:读取日志文件的内容。

  • grep "ERROR":过滤出包含 "ERROR" 的行。

  • sort:对结果进行排序。

  • uniq -c:统计每个唯一错误信息出现的次数(-c 选项会在每行开头加上计数)。

  • sort -nr:按数字逆序排列结果(-n 表示按数值排序,-r 表示逆序)。

4. 结合awk和sed进行文本处理

假设我们有一个 CSV 文件,并希望提取第二列的数据,同时替换某些特定字符:

 cat data.csv | awk -F',' '{print $2}' | sed 's/old/new/g'
  • cat data.csv:读取 CSV 文件内容。

  • awk -F',' '{print $2}':设置字段分隔符为逗号,并打印第二列的数据。

  • sed 's/old/new/g':将上一步输出中的 "old" 替换为 "new"。

5. 查找并实时监控日志文件

如果我们想实时监控一个日志文件,并只显示包含特定关键词的新添加的行,可以使用 tail 和 grep:

tail -f logfile.log | grep "keyword"
  • tail -f logfile.log:实时显示 logfile.log 中追加的数据。

  • grep "keyword":从实时流中筛选出包含 "keyword" 的行。

6. 注意事项

考虑效率:管道连接的命令序列应该尽可能简洁高效,因为数据需要经过多次传递。如果处理的数据量非常大,可能需要考虑优化或使用更高效的方法(如使用专门的工具或脚本)。

标准错误处理:默认情况下,只有标准输出可以通过管道传输,而标准错误(stderr)不会被传递。如果需要处理标准错误,可以将其重定向到标准输出再通过管道传输:

command 2>&1 | other_command

缓冲问题:某些命令可能会对输出进行缓冲,这可能导致管道链中的延迟或行为不符合预期。在这种情况下,可以尝试使用 stdbuf 或者相应命令的选项来调整缓冲行为。

八、echo

echo 用于在终端中输出文本或变量的值。它常用于脚本编写、调试以及生成文件内容等任务。尽管功能简单,但它是日常操作和自动化任务中非常实用的工具。

1. 基本语法

echo [选项] [字符串]
  • 字符串:要输出的文本或变量。

  • 选项:控制输出格式的参数。

  • ``:反引号包围的内容会作为命令执行,而不是普通的字符串。

2. 常用选项

  • 无选项: 默认情况下,echo 会输出指定的字符串,并在末尾添加一个换行符。

  • -n: 不输出末尾的换行符。

  • -e: 启用转义字符解释(如 \n 换行、\t 制表符等)。

  • -E(默认行为): 禁用转义字符解释。

3. 常见用法

输出普通文本:直接输出一段文本:

输出变量值:结合变量使用,输出变量的内容:

 name="Tom"echo "Hello, $name!"# 输出:Hello, Tom!

使用转义字符:启用 -e 选项后,可以使用以下常见的转义字符:

  • \n:换行

  • \t:制表符

  • \\:反斜杠

  • \":双引号

九、tail

tail 主要用于查看文件的尾部内容。它特别适用于实时监控日志文件或查看大文件的最后几行,因为直接打开大型文件可能会消耗大量资源或者不方便浏览最新的信息。tail 命令可以显示文件的末尾部分,并支持动态跟踪文件的更新。

1. 基本语法

tail [选项] 文件名...

如果不指定文件名,tail 将从标准输入读取数据。

2. 常用选项

  • 无选项:默认情况下,tail 显示文件的最后 10 行。

  • -n 或 --lines=:指定要显示的行数。例如,显示文件的最后 20 行。

tail -n 20 filename.txt
  • -c 或 --bytes=:显示文件的最后 N 个字节的内容。

  • -f 或 --follow:实时输出文件新增加的内容(常用于监视日志文件的变化)。当文件被追加内容时,tail 会持续显示这些新内容。

tail -f logfile.log
  • -q 或 --quiet 或 --silent:不显示文件名头信息,当同时查看多个文件时有用。

tail -q -n 10 file1.txt file2.txt
  • -v 或 --verbose:对每个文件都显示其文件名头信息。

十、重定向符

重定向符(Redirection Operators)用于改变命令的标准输入、标准输出和标准错误的默认行为。通常情况下,程序的标准输入来自键盘,标准输出和标准错误则显示在终端屏幕上。通过使用重定向符,用户可以将这些数据流重定向到文件或其他设备。

1. 标准输入、输出和错误

  • 标准输入(stdin):文件描述符为 0,默认来自键盘。

  • 标准输出(stdout):文件描述符为 1,默认输出到终端。

  • 标准错误(stderr):文件描述符为 2,默认输出到终端。

重定向符允许我们改变这些默认行为。

2. 常见重定向符

(1) 输出重定向 (> 和 >>)

>:将标准输出重定向到文件。如果文件已存在,则覆盖其内容;如果文件不存在,则创建新文件。

 echo "Hello, World!" > output.txt

将字符串 "Hello, World!" 写入 output.txt 文件中。

>>:将标准输出追加到文件末尾。如果文件不存在,则创建新文件。

 echo "Another line" >> output.txt 

将字符串 "Another line" 追加到 output.txt 的末尾。

(2) 输入重定向 (<)

<:将文件内容作为命令的标准输入。

 wc -l < input.txt

统计 input.txt 文件中的行数。

(3) 错误重定向 (2> 和 2>>)

2>:将标准错误重定向到文件。如果文件已存在,则覆盖其内容。

 ls /nonexistent_directory 2> error.log

如果 /nonexistent_directory 不存在,则错误信息会被写入 error.log 文件。

2>>:将标准错误追加到文件末尾。

 ls /another_nonexistent_directory 2>> error.log

将新的错误信息追加到 error.log 文件中。

相关文章:

Linux进阶命令

目录 一、touch 1. 基本语法 2. 常用选项 二、which 1. 基本语法 2. 主要功能 3. 常用选项 三、find 1. 基本语法 2. 常用选项和表达式 四、more 1. 基本语法 2. 常用操作 3. 对比 more 和 less 五、grep 1. 基本语法 2. 常用选项 六、wc 1. 基本语法 2. 常…...

【Spring Boot 过滤器】

文章目录 前言一、什么是过滤器 Filter&#xff1f;二、Spring Boot 中使用 Filter 的方式1. 使用 Component 注解2. 使用 FilterRegistrationBean 显式注册 三、自定义过滤器示例1. 引入必要依赖2. 创建一个自定义 Filter3. 使用 FilterRegistrationBean 显式注册 四、多个 Fi…...

SPI通讯的软硬件NSS SSM SSI

学习自记&#xff1a; 1. NSS&#xff08;Slave Select&#xff0c;从设备选择&#xff09;​​ ​​功能​​&#xff1a; NSS是SPI通信中用于选择从设备的信号线。主设备通过拉低NSS信号选中某个从设备&#xff0c;使其参与通信。通信结束后&#xff0c;主设备释放NSS&#…...

Java基础:集合List、Map、Set(超详细版)

集合体系概述 Collection常用方法 补充&#xff1a;addAll() Collection的遍历方式 迭代器 增强for&#xff08;空集合可以&#xff0c;null不可以&#xff09; lambda 集合对象存储对象原理 遍历方式的区别 List集合 特点、特有方法 遍历方式 &#xff08;同上&#xff09…...

vue+leaflet 区域划分_反向遮罩层

leaflet 区域划分_遮罩层 geojson在线生成器网址:(https://datav.aliyun.com/portal/school/atlas/area_selector) 点击前往阿里云geojson生成器 效果图: 实现下面效果,只需要把addSateLayer函数的调用取消掉就好了. //添加遮罩层代码function addMask() {var latlngs;var fe…...

聊一聊原子操作和弱内存序

1、原子操作概念 在并发编程中&#xff0c;原子操作&#xff08;Atomic Operation&#xff09;是实现线程安全的基础机制之一。从宏观上看&#xff0c;原子操作是“不可中断”的单元&#xff0c;但若深入微观层面&#xff0c;其本质是由底层处理器提供的一组特殊指令来保证其原…...

免费送源码:Java+ssm+MySQL 校园二手书销售平台设计与实现 计算机毕业设计原创定制

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对校园二手书销售平台等问题&#xff0c;对校…...

DAPP实战篇:使用ethersjs连接智能合约并输入地址查询该地址余额

本系列目录 专栏:区块链入门到放弃查看目录-CSDN博客文章浏览阅读400次。为了方便查看将本专栏的所有内容列出目录,按照顺序查看即可。后续也会在此规划一下后续内容,因此如果遇到不能点击的,代表还没有更新。声明:文中所出观点大多数源于笔者多年开发经验所总结,如果你…...

14.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--CAP

CAP 是一款专为 .NET 生态设计的开源框架&#xff0c;其核心目标是解决微服务中跨服务数据一致性问题。在分布式系统中&#xff0c;传统事务无法跨服务保证数据一致性&#xff0c;CAP 通过本地事务与消息记录绑定&#xff0c;再利用消息中间件&#xff08;如 RabbitMQ、Kafka 等…...

智能资源管理机制-重传机制

一、发送端资源管理的核心机制 1. 滑动窗口&#xff08;Sliding Window&#xff09; 这是TCP协议的核心优化设计&#xff1a; 窗口动态滑动&#xff1a;发送端不需要保留所有已发送的分组&#xff0c;只需维护一个"发送窗口"窗口大小&#xff1a;由接收方通告的接…...

【Linux网络与网络编程】08.传输层协议 UDP

传输层协议负责将数据从发送端传输到接收端。 一、再谈端口号 端口号标识了一个主机上进行通信的不同的应用程序。在 TCP/IP 协议中&#xff0c;用 "源IP"&#xff0c;"源端口号"&#xff0c;"目的 IP"&#xff0c;"目的端口号"&…...

局域网下ESP32-S3 LED灯的UDP控制

在局域网下通过IP地址控制ESP32-S3上的LED&#xff0c;可以使用UDP或TCP协议。以下是一个基于UDP协议的完整示例&#xff0c;包括ESP32-S3的服务器代码和一个简单的Python客户端代码。 ESP32-S3 服务器代码 import socket import time import network import machineled Non…...

call、bind、apply

call、bind、apply它们三个都是函数的方法&#xff0c;都可以用于改变this的指向问题。 var person "liangxiao" let obj {name:"张三",say:function() {console.log(this.name);} }obj.say(); setTimeout(function() {obj.say(); },1000) obj.say()打…...

Redis 哨兵模式 搭建

1 . 哨兵模式拓扑 与 简介 本文介绍如何搭建 单主双从 多哨兵模式的搭建 哨兵有12个作用 。通过发送命令&#xff0c;让Redis服务器返回监控其运行状态&#xff0c;包括主服务器和从服务器。 当哨兵监测到master宕机&#xff0c;会自动将slave切换成master&#xff0c;然后通过…...

客户端负载均衡与服务器端负载均衡详解

客户端负载均衡与服务器端负载均衡详解 1. 客户端负载均衡&#xff08;Client-Side Load Balancing&#xff09; 核心概念 定义&#xff1a;负载均衡逻辑在客户端实现&#xff0c;客户端主动选择目标服务实例。典型场景&#xff1a;微服务内部调用&#xff08;如Spring Cloud…...

Ningx负载均衡

Ningx负载均衡 upstream(上游)配置负载均衡1、weight&#xff08;加权轮询&#xff09;2、ip_hash&#xff08;负载均衡&#xff09;3、url hash负载均衡4、least_conn&#xff08;最小连接负载均衡&#xff09; upstream(上游)配置负载均衡 Nginx负载均衡 参考: nginx从安装…...

头歌软件工程导论UML画图题(基于starUML)

一.结构化分析方法-数据流图 本关卡需要画图的一共有5关&#xff0c;直接将此图画好每关提交一次即可&#xff0c;以下的所有图均以此方法提交 二.面向对象分析之用例图 三.面向对象分析之类图 注意此处创建Class之后&#xff0c;双击Class出现以下选项 点击相应的选项创建属性…...

智能车摄像头开源—9 动态权、模糊PID、速度决策、路径优化

目录 一、前言 二、动态权 1.概述 2.偏差值加动态权 三、模糊PID 四、速度决策 1.曲率计算 2.速度拟合 3.速度控制 五、路径 六、国赛视频 一、前言 在前中期通过识别直道、弯道等元素可进行加减速操作实现速度的控制&#xff0c;可进一步缩减一圈的运行速度&#xff…...

java基础 this和super的介绍

this和super this关键字的用法super关键字的用法this与super的区别和注意事项 this关键字的用法 this是自身的一个对象&#xff0c;代表对象本身&#xff0c;可以理解为&#xff1a;指向对象本身的一个指针 class Person{private String name;private int age;public String …...

《Python星球日记》第25天:Pandas 数据分析

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 订阅专栏&#xff1a;《Python星球日记》 目录 一、引言二、数据分组与聚合1. 分组操…...

C++在Linux上生成动态库并调用接口测试

加减乘除demo代码 项目结构 CPP/ ├── calculator.cpp ├── calculator.h ├── main.cpp 头文件 #ifndef CALCULATOR_H #define CALCULATOR_H#ifdef __cplusplus extern "C" {#endifdouble add(double a, double b);double subtract(double a, double b…...

Cesium.js(6):Cesium相机系统

Camera表示观察场景的视角。通过操作摄像机&#xff0c;可以控制视图的位置、方向和角度。 帮助文档&#xff1a;Camera - Cesium Documentation 1 setView setView 方法允许你指定相机的目标位置和姿态。你可以通过 Cartesian3 对象来指定目标位置&#xff0c;并通过 orien…...

机器学习中的数学(PartⅡ)——线性代数:概述

首先引入代数和线性代数的概念&#xff1a; 在将一些直观的、基于经验或直觉的概念转化为严格的数学或逻辑定义时&#xff0c;一种常用方法是构建一组对象和一组操作这些对象的规则&#xff0c;这就是代数。线性代数是研究向量和某些操作向量的规则。 其次从更广泛的意义上定…...

基于双闭环PID控制器的永磁同步电机控制系统匝间故障Simulink仿真

欢迎微♥关注“电击小子程高兴的MATLAB小屋”获取巨额优惠 1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2013Rb&#xff09;软件。建议采用matlab2013 Rb及以上版本打开。&#xff08;若需要其他版本可联系代为转换&#xff0c;高于该版本的matlab均可正…...

在51单片机上实现平滑呼吸灯:50us定时器PWM实战指南

在51单片机上实现平滑呼吸灯:50us定时器PWM实战指南 引言 本文将详细介绍如何在51单片机平台上,通过精确的50us定时器中断实现无闪烁的呼吸灯效果。相比常见的125us实现方案,50us定时器能提供更高的PWM频率和更细腻的亮度控制。 硬件设计 基本电路配置 主控芯片:SC92F8…...

asm汇编源代码之CPU型号检测

提供1个子程序: 1. CPU型号检测 CPUTYPE 无输入参数&#xff0c;返回值AX指示CPU类型(报歉,当时最新CPU型号只有80486) 函数的返回值详细描述如下 CPUTYPE PROC  FAR ;OUT: AX01, 8086; AX02, 80286; AX03, 80386; AX04, 80486 UP; ; more source code at http://www.ahj…...

提高课:数据结构之树状数组

1&#xff0c;楼兰图腾 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm>using namespace std;typedef long long LL;const int N 200010;int n; int a[N]; int tr[N]; int Greater[N], lower[N];int lowbit(int x) {ret…...

python可变对象与不可变对象

文章目录 Python 中的可变对象与不可变对象不可变对象(Immutable Objects)可变对象(Mutable Objects)重要区别 Python 中的可变对象与不可变对象 在 Python 中&#xff0c;对象可以分为可变对象(mutable)和不可变对象(immutable)&#xff0c;这是 Python 中非常重要的概念&…...

C++学习之金融类安全传输平台项目git

目录 1.知识点概述 2.版本控制工具作用 3.git和SVN 4.git介绍 5.git安装 6.工作区 暂存区 版本库概念 7.本地文件添加到暂存区和提交到版本库 8.文件的修改和还原 9.查看提交的历史版本信息 10.版本差异比较 11.删除文件 12.本地版本管理设置忽略目录 13.远程git仓…...

果篮问题 Python

# 给你两个长度为 n 的整数数组&#xff0c;fruits 和 baskets&#xff0c;其中 fruits[i] 表示第 i 种水果的 数量&#xff0c;baskets[j] 表示第 j 个篮子的 容量。 # 你需要对 fruits 数组从左到右按照以下规则放置水果&#xff1a; # 每种水果必须放入第一个 容量大于等于 …...

Spring 是如何解决循环依赖的?

在使用 Spring 框架进行开发时&#xff0c;循环依赖是一个常见而棘手的问题。循环依赖指的是两个或多个 bean 之间的相互依赖&#xff0c;导致 Spring 容器无法正常创建这些 bean。下面将深入探讨 Spring 如何解决循环依赖问题&#xff0c;并提供一些最佳实践。 什么是循环依赖…...

部署NFS版StorageClass(存储类)

部署NFS版StorageClass存储类 NFS版PV动态供给StorageClass(存储类)基于NFS实现动态供应下载NFS存储类资源清单部署NFS服务器为StorageClass(存储类)创建所需的RBAC部署nfs-client-provisioner的deployment创建StorageClass使用存储类创建PVC NFS版PV动态供给StorageClass(存储…...

深入理解 PyTorch 的 nn.Embedding:词向量映射及变量 weight 的更新机制

文章目录 前言一、直接使用 nn.Embedding 获得变量1、典型场景2、示例代码&#xff1a;3、特点 二、使用 iou_token nn.Embedding(1, transformer_dim) 并访问 iou_token.weight1、典型场景2、示例代码&#xff1a;3、特点 三、第一种方法在模型更新中会更新其值吗&#xff1f…...

go语言内存泄漏的常见形式

go语言内存泄漏 子字符串导致的内存泄漏 使用自动垃圾回收的语言进行编程时&#xff0c;通常我们无需担心内存泄漏的问题&#xff0c;因为运行时会定期回收未使用的内存。但是如果你以为这样就完事大吉了&#xff0c;哪里就大错特措了。 因为&#xff0c;虽然go中并未对字符串…...

操作系统

操作系统 操作系统&#xff08;OperatingSystem&#xff0c;OS&#xff09;是指控制和管理整个计算机系统的硬件和软件资源&#xff0c;并合理地组织调度计算机的工作和资源的分配&#xff1b;以提供给用户和其他软件方便的接口和环境&#xff1b;它是计算机系统中最基本的系统…...

《JVM考古现场(十八):造化玉碟·用字节码重写因果律的九种方法》

"鸿蒙初判&#xff01;当前因果链突破十一维屏障——全体码农修士注意&#xff0c;《JVM考古现场&#xff08;十八&#xff09;》即将渡劫飞升&#xff01;" 目录 上卷阴阳交缠 第一章&#xff1a;混沌初开——JVM因果律的量子纠缠 第二章&#xff1a;诛仙剑阵改—…...

【2】k8s集群管理系列--包应用管理器之helm(Chart语法深入应用)

一、Chart模板&#xff1a;函数与管道 常用函数&#xff1a; • quote&#xff1a;将值转换为字符串&#xff0c;即加双引号 • default&#xff1a;设置默认值&#xff0c;如果获取的值为空则为默认值 • indent和nindent&#xff1a;缩进字符串 • toYaml&#xff1a;引用一…...

汇编获取二进制

mov_.S mov %r8d,0 nop执行命令&#xff1a; gcc -c mov_.S 会输出 mov_.o 文件&#xff1a;objdump -D mov_.o : mov_.o&#xff1a; 文件格式 elf64-x86-64Disassembly of section .text:0000000000000000 <.text>:0: 44 89 04 25 00 00 00 mov %r8d,0x0…...

《嵌套调用与链式访问:C语言中的函数调用技巧》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、嵌套调用&#xff08;一&#xff09;定义&#xff08;二&#xff09;实现方式&#xff08;三&#xff09;优点&#xff08;四&#xff09;缺点 二、链式…...

txt、Csv、Excel、JSON、SQL文件读取(Python)

txt、Csv、Excel、JSON、SQL文件读取&#xff08;Python&#xff09; txt文件读写 创建一个txt文件 fopen(rtext.txt,r,encodingutf-8) sf.read() f.close() print(s)open( )是打开文件的方法 text.txt’文件名 在同一个文件夹下所以可以省略路径 如果不在同一个文件夹下 ‘…...

前端工程化之新晋打包工具

新晋打包工具 新晋打包工具前端模块工具的发展历程分类初版构建工具grunt使用场景 gulp采用管道机制任务化配置与api简洁 现代打包构建工具基石--webpack基于webpack改进的构建工具rollup 推荐举例说明package.jsonrollup.config.mjsmy-extract-css-rollup-plugin.mjssrc/index…...

Python语言介绍

Python 是一种高级、通用、解释型的编程语言&#xff0c;由 Guido van Rossum 于 1991 年首次发布。其设计哲学强调代码的可读性和简洁性。 Python通过简洁的语法和强大的生态系统&#xff0c;成为当今最受欢迎的编程语言之一。 一、核心特点 Python 是一种解释型、面向对象、…...

关于 Spring Boot 部署到 Docker 容器的详细说明,涵盖核心概念、配置步骤及关键命令,并附上表格总结

以下是关于 Spring Boot 部署到 Docker 容器的详细说明&#xff0c;涵盖核心概念、配置步骤及关键命令&#xff0c;并附上表格总结&#xff1a; 1. Docker 核心概念 概念描述关系镜像&#xff08;Image&#xff09;预定义的只读模板&#xff0c;包含运行环境和配置&#xff08…...

Tomcat 服务频繁崩溃的排查方法

# Tomcat 服务频繁崩溃排查方法 当Tomcat服务频繁崩溃时&#xff0c;可以按照以下步骤进行系统化排查&#xff1a; ## 1. 检查日志文件 **关键日志位置**&#xff1a; - catalina.out (标准输出和错误) - catalina.log (主日志) - localhost.log (应用相关日志) - host-mana…...

分布式系统-脑裂,redis的解决方案

感谢你的反馈&#xff01;很高兴能帮到你。关于你提到的“脑裂”&#xff08;split-brain&#xff09;&#xff0c;这是一个分布式系统中的常见术语&#xff0c;尤其在像 Redis Cluster 这样的高可用集群中会涉及。既然你问到了&#xff0c;我会从头解释“脑裂”的含义、Redis …...

MySQL InnoDB 索引与B+树面试题20道

1. B树和B+树的区别是什么? 数据存储位置: B树:所有节点(包括内部节点和叶子节点)均存储数据。 B+树:仅叶子节点存储数据,内部节点仅存储键值(索引)。 叶子节点结构: B+树:叶子节点通过双向链表连接,支持高效的范围查询。 查询稳定性: B+树:所有查询必须走到叶子…...

深入解析 Spring AI Alibaba 多模态对话模型:构建下一代智能应用的实践指南

一、多模态对话模型的技术演进 1.1 从单一文本到多模态交互 现代AI应用正经历从单一文本交互到多模态融合的革命性转变。根据Gartner预测&#xff0c;到2026年将有超过80%的企业应用集成多模态AI能力。Spring AI Alibaba 对话模型体系正是为这一趋势量身打造&#xff0c;其技…...

2025年ESWA SCI1区TOP:动态分类麻雀搜索算法DSSA,深度解析+性能实测

目录 1.摘要2.麻雀搜索算法SSA原理3.孤立微电网经济环境调度4.改进策略5.结果展示6.参考文献7.代码获取 1.摘要 污染物排放对环境造成负面影响&#xff0c;而可再生能源的不稳定性则威胁着微电网的安全运行。为了在保障电力供应可靠性的同时实现环境和经济目标的平衡&#xff…...

MySQL Error Log

MySQL Error Log Error Log 的开启Error Log 查看Error Log 滚动 MySQL Error Log MySQL主从复制&#xff1a;https://blog.csdn.net/a18792721831/article/details/146117935 MySQL Binlog&#xff1a;https://blog.csdn.net/a18792721831/article/details/146606305 MySQL Ge…...

让DeepSeek API支持联网搜索

引子 DeepSeek官网注册的API token是不支持联网搜索的&#xff0c;这导致它无法辅助分析一些最新的情况或是帮忙查一下互联网上的资料。本文从实战角度提供一种稳定可靠的方法使得DeepSeek R1支持联网搜索分析。 正文 首先登录火山方舟控制台&#xff0c;https://www.volcen…...