Linux工具|运维工具rename常用命令详解

news2024/9/22 5:40:35

在这里插入图片描述

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员
🔥 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~

文章目录

  • 1 背景
  • 2 日志文件命名分析
  • 3 处理文件思路分析
  • 4 命令工具RENAME
    • 4.1 RENAME开发语言
    • 4.2 RENAME开发语言的判定
      • 4.2.1 GNU/Linux
      • 4.2.2 MacOS
      • 4.2.3 Windows
      • 4.2.4 其他操作系统
    • 4.3 确认使用哪一种语言
    • 4.4 匹配规则说明
  • 5 常用C语言版本命令详解
    • 5.1 批量修改文件名前缀
    • 5.2 批量修改文件后缀
    • 5.3 结合通配符批量新增/替换文件名中的字符/字符串
  • 6 常用Perl语言版本命令详解
    • 6.1 批量处理前缀
      • 6.1.1 批量增加前缀
      • 6.1.2 批量修改前缀
      • 6.1.3 批量删除前缀
    • 6.2 批量增加/修改/删除文件中间部分
    • 6.3 批量增加/修改/删除后缀
  • 7 其他处理方式
  • 总结

1 背景

近期,上游领导发布一个要求,在日志安全存储方面,针对内网已上线一段时间的工程日志需要打包给甲方抽查,由于某个在建设中的项目有一段时间的日志命名不规则,需要手工调整为一致,方便通过抽查,以免引起不必要的麻烦。安全红线不能碰,规则必须遵守。
在这里插入图片描述

2 日志文件命名分析

在项目开发前的文件命名规则为XXGJ-YWMK.log,后来由于业务检查(日志文件需要保留至少6个月)而增加上日期,此时日志文件格式为XXGJ-YWMK-YYYYMMDD.log,而近期的日志命名规则则被修改为了[YWXT]-[XXGJ]-[YWMK]-[version]-YYYYMMDD.log,目前最终的日志文件命名规则则为:

业务系统-信息工具-业务模块-业务版本-日志类型-日期/时间-日志块

后增加日志文件格式为结尾的日志文件,至于日志文件格式,则无特别要求,可以是 .log结尾,也可以是 .html 结尾,或者其他。

在以往的日志文件中,文件名包含了应用程序名、环境、版本号、日期、时间、日志级别和序列号,以提供丰富的信息来帮助我们快速定位和管理日志文件。当然了,并不是所有的元素都适用于每个场景,我们应该根据实际需要来选择和定制日志文件的命名格式。

3 处理文件思路分析

由于文件在内网,无法拿出来,所以不能在自己熟悉的window环境中操作,电脑虽然没有自带的文件重命名功能,但是可以借助一些组合键来实现多个文件批量重命名的效果,适用于所有文件格式,唯一不好的就是命名规则比较简单。当然,在windows中有很多可以批量命名的小工具,可以自行查找,此处不在赘述。

按照上面的需求,第一时间想到的就是使用 rename 命令来批量修改已生成的日志文件,在Linux中,能这样子操作的姑且这个方式算是一个,先完成领导派发的任务为优先,再做后续的整理博客。所以此时想梳理下这个Linux命令的用法以及我处理的思路。在平时,我们也有使用 mv 命令来对一个文件移动位置或者重新命令。在实际的使用中,我常常使用 mv 命令针对单个文件进行重命名操作,很少针对多个文件使用这个命令;而在批量迁移文件时这个命令就使用多了。
在这里插入图片描述

4 命令工具RENAME

4.1 RENAME开发语言

Linux操作系统中的 rename 命令有两个语言版本,一个是C语言版本的,一个是Perl语言版本的。在早期,Linux发行版基本上使用的是C语言版本的,后期在Perl语言盛行时,将此命令改为了Perl语言版本,Perl版本的支持正则处理,所以功能更加强大。

4.2 RENAME开发语言的判定

4.2.1 GNU/Linux

在开源的Linux版本中,一般都是C语言版本,可以从自带命令查询到,一般机器都会自带这个命令,所以可以使用 man rename 命令查看。从命令中可以查询到rename的版本为 util-linux June 2011 RENAME(1) 。如果返回是带有 util-linux 则为C语言版本的(标准C库语言开发,其他命令也可以按照此方式来检查),反之则Perl语言版本。而在如下所示:

[root@localhost ~]$ man rename >> rename.txt
[root@localhost ~]$ cat rename.txt | tail -n 1
util-linux         June 2011      RENAME(1)
[root@localhost ~]$ 

当然,也可以使用最简单,也是最原始的方式,查询组件版本,此种方式最为直接、简单、明了。例如:

[root@localhost ~]$ rename --version
rename,来自 util-linux 2.23.2
[root@localhost ~]$ 

注意⚠️:在CentOS 7.x的版本中,rename默认为C语言版本。目前最新版本为6.9.1。在一些其他GUN的Linux版本中,也多数都是C语言版本。

4.2.2 MacOS

一般情况下,我们使用 HomeBrew 管理工具在MacOS中安装工具。

# 查找需要安装的软件包
Aion@Macbook ~ $ brew search rename
==> Formulae
pipe-rename     rename ✔        renameutils     remake          runme

==> Casks
a-better-finder-rename     r-name                     tvrenamer
exifrenamer                reamp
metarename                 renamer

### 执行安装操作
Aion@Macbook ~ $ brew install rename
==> Auto-updating Homebrew...
### …… 此处省略安装步骤
To reinstall 1.601, run:
  brew reinstall rename

### 检查安装情况,再次检查即可/或者执行一些命令来检查,例如 rename -v
Aion@Macbook ~ $ brew search rename
==> Formulae
pipe-rename     rename ✔        renameutils     remake          runme

4.2.3 Windows

在windows中可以使用 rename 或者 ren 来操作。

4.2.4 其他操作系统

RENAME命令存在于z/OS、z/VM、OpenVMS、DOS、OS/2、React OS等操作系统中,等同于Unix的 mv 命令。

4.3 确认使用哪一种语言

如何确定是用哪一种语言,按照下面的流程则可以确认使用哪一种语言或者确认操作系统即可使用哪些命令来操作。在使用rename命令时,要谨慎操作,避免误操作导致文件丢失或损坏。在执行rename命令之前,最好先测试一下命令的效果,确保能够正确完成重命名操作。
在这里插入图片描述

4.4 匹配规则说明

【常用正则表达式符号说明】
● ^ 匹配输入的开始位置
● $ 匹配输入的结尾
● . 匹配除换行符外的任意字符
● “+” 匹配前一个字符一次或多次 例如,“zo+“可以匹配"zoo”,但不匹配"z”
● [a-z] 表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
● [^m-z] 否定的字符区间。与不在指定区间内的字符匹配。

5 常用C语言版本命令详解

想要了解RENAME命令的操作,可以先把手册文档打印到控制台或保存到磁盘用来查阅。我一般习惯于保存下,方便查阅。测试文件就不创建了,直接使用目录下面的文件就可以了,下面是拷贝 ./2023/ 文件夹下面所有的日志文件,为 2024-07月份 的日志文件。

[root@localhost ~]# rename --help

用法:
 rename [选项] 表达式 替换文件...

选项:
 -v, --verbose    解释正在进行的操作
 -s, --symlink    在符号链接上执行

 -h, --help     显示此帮助并退出
 -V, --version  输出版本信息并退出

更多信息请参阅 rename(1)[root@localhost ~]# 

rename特定的语法如下:

– Linux
rename [options] expression replacement file…

● options:选项,针对输入、输出定义,可以参考rename --help
● expression:表达式,一个正则表达式,用于匹配文件名中的部分内容。
● replacement:替换的内容。即expression匹配到的部分将被替换为replacement。
● file…:文件列表。要进行重命名操作的文件列表,可以使用通配符(如*)来匹配多个文件。

运行图例如下:
在这里插入图片描述

创建测试文件,创建 YWXT-1……10.log 的文件,一共10个,如下:

[root@localhost dirtest]# 
[root@localhost dirtest]# touch YWXT-{1..10}.log
[root@localhost dirtest]# 
[root@localhost dirtest]# ll
总用量 0
-rw-r--r--. 1 root root 0 87 08:44 YWXT-10.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-1.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-2.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-3.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-4.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-5.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-6.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-7.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-8.log
-rw-r--r--. 1 root root 0 87 08:44 YWXT-9.log
[root@localhost dirtest]# 

5.1 批量修改文件名前缀

在C语言中,与Perl语言中的使用方式还不是一样。例如将文件中 YWXT 批量修改为 YWXT-error,如下面的命令,其中使用 -v 命令打印到控制台:

[root@localhost dirtest]# rename -v YWXT YWXT-error YWXT-*.log
`YWXT-10.log' -> `YWXT-error-10.log'
`YWXT-1.log' -> `YWXT-error-1.log'
`YWXT-2.log' -> `YWXT-error-2.log'
`YWXT-3.log' -> `YWXT-error-3.log'
`YWXT-4.log' -> `YWXT-error-4.log'
`YWXT-5.log' -> `YWXT-error-5.log'
`YWXT-6.log' -> `YWXT-error-6.log'
`YWXT-7.log' -> `YWXT-error-7.log'
`YWXT-8.log' -> `YWXT-error-8.log'
`YWXT-9.log' -> `YWXT-error-9.log'
[root@localhost dirtest]# 
[root@localhost dirtest]# 
[root@localhost dirtest]# ls
YWXT-error-10.log  YWXT-error-1.log  YWXT-error-2.log  
YWXT-error-3.log  YWXT-error-4.log  YWXT-error-5.log  
YWXT-error-6.log  YWXT-error-7.log  YWXT-error-8.log  
YWXT-error-9.log
[root@localhost dirtest]#

5.2 批量修改文件后缀

可以理解为修改文件的扩展名,这个也是比较常用的。例如将 .log 扩展名修改为 .txt 的扩展名。

[root@localhost dirtest]# rename -v .log .txt YWXT-*.log
`YWXT-error-10.log' -> `YWXT-error-10.txt'
`YWXT-error-1.log' -> `YWXT-error-1.txt'
`YWXT-error-2.log' -> `YWXT-error-2.txt'
`YWXT-error-3.log' -> `YWXT-error-3.txt'
`YWXT-error-4.log' -> `YWXT-error-4.txt'
`YWXT-error-5.log' -> `YWXT-error-5.txt'
`YWXT-error-6.log' -> `YWXT-error-6.txt'
`YWXT-error-7.log' -> `YWXT-error-7.txt'
`YWXT-error-8.log' -> `YWXT-error-8.txt'
`YWXT-error-9.log' -> `YWXT-error-9.txt'
[root@localhost dirtest]# 
[root@localhost dirtest]# 
[root@localhost dirtest]# ls
YWXT-error-10.txt  YWXT-error-1.txt  YWXT-error-2.txt  
YWXT-error-3.txt  YWXT-error-4.txt  YWXT-error-5.txt  
YWXT-error-6.txt  YWXT-error-7.txt  YWXT-error-8.txt  
YWXT-error-9.txt
[root@localhost dirtest]# 

5.3 结合通配符批量新增/替换文件名中的字符/字符串

下面就是一个将在 error- 后面,或者 文件序列前面增加一个数字 2,使得所有文件名称变更为xxx-[固定数字2]xx.txt,此处使用了通配符 *,其中?代表单个字符,而 * 代码后续所有字符。上面的方法也可以实现,有兴趣的可以试试。

[root@localhost dirtest]# rename -v YWXT-error- YWMK-error-2 YWXT-error-?*
`YWXT-error-10.txt' -> `YWMK-error-210.txt'
`YWXT-error-1.txt' -> `YWMK-error-21.txt'
`YWXT-error-2.txt' -> `YWMK-error-22.txt'
`YWXT-error-3.txt' -> `YWMK-error-23.txt'
`YWXT-error-4.txt' -> `YWMK-error-24.txt'
`YWXT-error-5.txt' -> `YWMK-error-25.txt'
`YWXT-error-6.txt' -> `YWMK-error-26.txt'
`YWXT-error-7.txt' -> `YWMK-error-27.txt'
`YWXT-error-8.txt' -> `YWMK-error-28.txt'
`YWXT-error-9.txt' -> `YWMK-error-29.txt'
[root@localhost dirtest]# 

再举一个例子,可能更好的理解这个命令。这里使用[]占位符来过滤一些字符,例如下面,YWMK-error-2[1]* 实际效果与 YWMK-error-21*一致,避免将 YWMK-error-22、YWMK-error-24等被选中处理。

[root@localhost dirtest]# rename -v YWMK-error-2 YWMK-error-3 YWMK-error-2[1]*
`YWMK-error-210.txt' -> `YWMK-error-310.txt'
`YWMK-error-21.txt' -> `YWMK-error-31.txt'
[root@localhost dirtest]# 

6 常用Perl语言版本命令详解

想要了解RENAME命令的操作,可以先把手册文档打印到控制台或保存到磁盘用来查阅。我一般习惯于保存下,方便查阅。测试文件就不创建了,直接使用目录下面的文件就可以了,下面是拷贝 ./2023/ 文件夹下面所有的日志文件,为 2024-07月份 的日志文件。
rename特定的语法

– MacOS
rename [switches|transforms] [files]

● switches | transforms:选项,可以参考rename --help。
● file…:文件列表。要进行重命名操作的文件列表,可以使用通配符(如*)来匹配多个文件。
针对switches | transforms 都有说明。

Usage:
    rename [switches|transforms] [files]

    Switches:

    ### 查看全部手册
    --man (read the full manual)
    ### 允许从标准输入中读取文件名。
    -0/--null (when reading from STDIN)
    ### 改名后的文件存在时,会覆盖已存在的文件。/ 修改文件名时,需要逐一确认。
    -f/--force or -i/--interactive (proceed or prompt when overwriting)
    -g/--glob (expand "*" etc. in filenames, useful in Windows™ CMD.EXE)
    ### 逆序处理。应用场景是:按正序会有文件名冲突,而逆序没有。
    ### 比如name1-name8,序号加1变为name2-name9。
    -k/--backwards/--reverse-order
    ### 为文件增加软链,文件本身不变。/ 件增加硬链,文件本身不变。理解为复制文件。
    -l/--symlink or -L/--hardlink
    -M/--use=Module
    ### 只打印,不会真正执行。
    -n/--just-print/--dry-run
    -N/--counter-format
    -p/--mkpath/--make-dirs
    --stdin/--no-stdin
    -t/--sort-time
    -T/--transcode=encoding
    ## 打印一切操作。
    -v/--verbose

    Transforms, applied sequentially:

    -a/--append=str
    -A/--prepend=str
    -c/--lower-case
    -C/--upper-case
    -d/--delete=str
    -D/--delete-all=str
    -e/--expr=code
    -P/--pipe=cmd
    -s/--subst from to
    -S/--subst-all from to
    -x/--remove-extension
    -X/--keep-extension
    -z/--sanitize
    --camelcase --urlesc --nows --rews --noctrl --nometa --trim (see manual)

测试数据如下:

Aion@Macbook 2023 $ ls
YWMK-v1.0.0-2024-07-1.txt  YWMK-v1.0.0-2024-07-24.txt
YWMK-v1.0.0-2024-07-10.txt YWMK-v1.0.0-2024-07-25.txt
YWMK-v1.0.0-2024-07-11.txt YWMK-v1.0.0-2024-07-26.txt
YWMK-v1.0.0-2024-07-12.txt YWMK-v1.0.0-2024-07-27.txt
YWMK-v1.0.0-2024-07-13.txt YWMK-v1.0.0-2024-07-28.txt
YWMK-v1.0.0-2024-07-14.txt YWMK-v1.0.0-2024-07-29.txt
YWMK-v1.0.0-2024-07-15.txt YWMK-v1.0.0-2024-07-3.txt
YWMK-v1.0.0-2024-07-16.txt YWMK-v1.0.0-2024-07-30.txt
YWMK-v1.0.0-2024-07-17.txt YWMK-v1.0.0-2024-07-31.txt
YWMK-v1.0.0-2024-07-18.txt YWMK-v1.0.0-2024-07-4.txt
YWMK-v1.0.0-2024-07-19.txt YWMK-v1.0.0-2024-07-5.txt
YWMK-v1.0.0-2024-07-2.txt  YWMK-v1.0.0-2024-07-6.txt
YWMK-v1.0.0-2024-07-20.txt YWMK-v1.0.0-2024-07-7.txt
YWMK-v1.0.0-2024-07-21.txt YWMK-v1.0.0-2024-07-8.txt
YWMK-v1.0.0-2024-07-22.txt YWMK-v1.0.0-2024-07-9.txt
YWMK-v1.0.0-2024-07-23.txt

6.1 批量处理前缀

6.1.1 批量增加前缀

将所有的文件增加LOG前缀标识,变为 LOG-XXXXXX 。也可以使用 -v 命令打印到控制台。

Aion@Macbook 2023 $ rename 's/^/LOG-/' *

Aion@Macbook 2023 $
Aion@Macbook 2023 $ ls
LOG-YWMK-v1.0.0-2024-07-1.txt  LOG-YWMK-v1.0.0-2024-07-24.txt
LOG-YWMK-v1.0.0-2024-07-10.txt LOG-YWMK-v1.0.0-2024-07-25.txt
LOG-YWMK-v1.0.0-2024-07-11.txt LOG-YWMK-v1.0.0-2024-07-26.txt
LOG-YWMK-v1.0.0-2024-07-12.txt LOG-YWMK-v1.0.0-2024-07-27.txt
LOG-YWMK-v1.0.0-2024-07-13.txt LOG-YWMK-v1.0.0-2024-07-28.txt
LOG-YWMK-v1.0.0-2024-07-14.txt LOG-YWMK-v1.0.0-2024-07-29.txt
LOG-YWMK-v1.0.0-2024-07-15.txt LOG-YWMK-v1.0.0-2024-07-3.txt
LOG-YWMK-v1.0.0-2024-07-16.txt LOG-YWMK-v1.0.0-2024-07-30.txt
LOG-YWMK-v1.0.0-2024-07-17.txt LOG-YWMK-v1.0.0-2024-07-31.txt
LOG-YWMK-v1.0.0-2024-07-18.txt LOG-YWMK-v1.0.0-2024-07-4.txt
LOG-YWMK-v1.0.0-2024-07-19.txt LOG-YWMK-v1.0.0-2024-07-5.txt
LOG-YWMK-v1.0.0-2024-07-2.txt  LOG-YWMK-v1.0.0-2024-07-6.txt
LOG-YWMK-v1.0.0-2024-07-20.txt LOG-YWMK-v1.0.0-2024-07-7.txt
LOG-YWMK-v1.0.0-2024-07-21.txt LOG-YWMK-v1.0.0-2024-07-8.txt
LOG-YWMK-v1.0.0-2024-07-22.txt LOG-YWMK-v1.0.0-2024-07-9.txt
LOG-YWMK-v1.0.0-2024-07-23.txt
Aion@Macbook 2023 $

注意⚠️:此处的批量处理,可以理解一下,并不是指定哪些一定是前缀,哪些一定是后缀,而是根据业务需求,确定前缀、后缀等,此处需要特别注意和理解。例如日期前都可以说是前缀,修改日期前的名称;后缀也可以单指文件后缀名,修改文件类型格式等。

6.1.2 批量修改前缀

修改前缀,本意是替换,或者是更改前缀。将现在已有文件的前缀 LOG- 修改为 YWXT-,增加 -v 参数,则打印执行重命名的过程。

Aion@Macbook 2023 $ rename -v 's/LOG-/YWXT-/' *

在这里插入图片描述

6.1.3 批量删除前缀

将所有的文件在前缀 YWXT-删除,此处可以理解为 将前缀设置为 即可,理解这个思想就好处理。命令如下:

Aion@Macbook 2023 $ rename -v 's/YWXT-//' *

处理后的文件如下所示:
在这里插入图片描述

6.2 批量增加/修改/删除文件中间部分

在日期前增加文件业务的类型,如info、error、access、console等关键字。rename是修改固定的字符串。例如 将 v1.0.0 替换为 v1.0.0-error

Aion@Macbook 2023 $ rename 's/v1.0.0/v1.0.0-error/' *

在这里插入图片描述

此时也可以使用更改前缀的方式,例如将 YWMK-v1.0.0- 作为前缀(看做一个整体来处理),更改为 YWMK-v1.0.0-error- 等。

6.3 批量增加/修改/删除后缀

将文件名由原来的 .txt 修改为 .log 文件格式。

Aion@Macbook 2023 $ rename 's/.txt/.log/' *
Aion@Macbook 2023 $
Aion@Macbook 2023 $ ls
YWMK-v1.0.0-error-2024-07-1.log  YWMK-v1.0.0-error-2024-07-2.log  YWMK-v1.0.0-error-2024-07-3.log
YWMK-v1.0.0-error-2024-07-10.log YWMK-v1.0.0-error-2024-07-20.log YWMK-v1.0.0-error-2024-07-30.log
YWMK-v1.0.0-error-2024-07-11.log YWMK-v1.0.0-error-2024-07-21.log YWMK-v1.0.0-error-2024-07-31.log
YWMK-v1.0.0-error-2024-07-12.log YWMK-v1.0.0-error-2024-07-22.log YWMK-v1.0.0-error-2024-07-4.log
YWMK-v1.0.0-error-2024-07-13.log YWMK-v1.0.0-error-2024-07-23.log YWMK-v1.0.0-error-2024-07-5.log
YWMK-v1.0.0-error-2024-07-14.log YWMK-v1.0.0-error-2024-07-24.log YWMK-v1.0.0-error-2024-07-6.log
YWMK-v1.0.0-error-2024-07-15.log YWMK-v1.0.0-error-2024-07-25.log YWMK-v1.0.0-error-2024-07-7.log
YWMK-v1.0.0-error-2024-07-16.log YWMK-v1.0.0-error-2024-07-26.log YWMK-v1.0.0-error-2024-07-8.log
YWMK-v1.0.0-error-2024-07-17.log YWMK-v1.0.0-error-2024-07-27.log YWMK-v1.0.0-error-2024-07-9.log
YWMK-v1.0.0-error-2024-07-18.log YWMK-v1.0.0-error-2024-07-28.log rename.log
YWMK-v1.0.0-error-2024-07-19.log YWMK-v1.0.0-error-2024-07-29.log
Aion@Macbook 2023 $

7 其他处理方式

也可以使用shell脚本结合mv命令来手动转换文件名。
方式一

for file in *; do  
    mv "$file" "$(echo $file | tr '[:upper:]' '[:lower:]')"  
done

方式二

for file in *.txt; do 
  mv "$file" "${file//old/new}"; 
done

总结

本篇主要从Linux和MacOS操作系统中实践了rename命令常用的方式,如何修改文件,如何批量给文件重新命名。rename命令是Linux系统中用于批量重命名文件或目录的强大工具,通过灵活使用正则表达式和替换规则,可以方便地实现各种复杂的重命名操作。然而,在使用时需要注意避免误操作,并确保对命令的行为有充分的理解。


[引用]

  1. rename使用:https://man7.org/linux/man-pages/man2/rename.2.html

欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【vulnhub】Wakanda :1靶机

靶机安装 下载地址:https://download.vulnhub.com/wakanda/wakanda-1.ova 运行环境:Virtual Box 信息收集 靶机IP扫描 netdiscover -i eth0 -r 192.168.7.0/24 端口扫描 nmap -A 192.168.7.243 -p- 80端口开启了http服务,在3333端口开启…

案例研究丨盛泰光电携手DataEase实现数据驱动智能制造

盛泰光电科技股份有限公司(以下简称为“盛泰光电”)是中国第一批摄像头模组制造企业。自成立至今,一直专注于手机摄像头模组的研发、制造、销售与服务,并向非手机包括笔记本、车载、医疗、AIoT等领域延伸,形成以手机摄…

PHP + Laravel + RabbitMQ + Redis 实现消息队列 (二) 消费队列在RabbitMQ和redis中的简单使用

最简单的队列功能 RabbitMQ和消息传递通常会使用一些术语: 生产者(Producer)意味着发送消息。一个发送消息的程序称为生产者。队列(Queue)尽管消息通过RabbitMQ和您的应用程序流动,但它们只能存储在队列中…

数据结构(01):数据结构概述(基本术语、逻辑结构和物理结构)

1、数据结构概述 (1)基本术语 A.数据元素 具有一定意义的基本单位。如人类的数据元素是人(张三、李四等)。 B.数据项 可以看作是数据元素的属性。如人的属性(姓名、年龄、身高等) C.数据对象 性质相同的数据元素的集合。如某一栋…

群聊的创建 表情包发送 图片发送

目录 群聊: ​编辑 表情包发送: 图片发送: 群聊: 1.群资料的表groupinformation 字段:GroupId 群id,GroupName 群名,CreatTime 创群时间,CreatUserId 创群的人,…

萤石云 ezuikit-js创建的播放器实例esc取消全屏后变黑屏

原因:上层页面重新设置了容器的宽高,导致uikit退出全屏时宽高计算异常 解决方法:实例初始化的时候会传入宽高width、height,播放器的画面尺寸是根据这两个参数设置的,然后退出全屏会回到这两个值

计算机的错误计算(五十五)

摘要 展示大数的余弦函数值的错误计算。 根据国际IEEE 754 标准[1],包括余弦在内的三角函数的定义域是整个实数范围: 但是,实际情况怎样呢? 例1. 计算 . 在 Python下计算: x30**65 print(x) import math print(ma…

只强的Java学习之路8-7

一. 安装配置nodejs npm create vitelatest npm install vue-router npm install axios npm install element-plus --save npm run dev https://element-plus.org/zh-CN/#/zh-CN 新建项目&#xff1a; easy.vue <script setup></script><!--绑定数据-->…

在vue中页面使用了动态组件组件导致首次页面加载时子组件样式不显示,刷新后才正常

问题&#xff1a; 在vue中页面使用了动态组件组件导致首次页面加载时子组件样式不显示&#xff0c;刷新后才正常。 原因&#xff1a; 因为动态组件的延迟加载&#xff0c;如果使用了Vue的动态组件&#xff08;如<component :is"...">&#xff09;&#xff0c;…

【代码随想录】有序数组的平方

本博文为《代码随想录》的学习笔记&#xff0c;原文链接&#xff1a;代码随想录 题目 977. 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 示例 1&#xff1a; 输入&…

6种常用的AR跟踪方法

增强现实 (AR) 是一项令人着迷的技术&#xff0c;可将虚拟内容与现实世界无缝集成。实现这种无缝集成的关键组件之一是跟踪。各种类型的跟踪用于确定 AR 内容在环境中的准确位置和方向。本文介绍 AR 最常见的6种跟踪方法。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - Y…

ctfshow-web入门-sql注入(web191-web195)

目录 1、web191 2、web192 3、web193 4、web194 5、web195 1、web191 过滤了 ascii 使用 ord 代替&#xff1a; import requests import string url "http://a585c278-320a-40e7-841f-109b1e394caa.challenge.ctf.show/api/index.php" out for j in range(1…

哈佛大学单细胞课程|笔记汇总 (五)

哈佛大学单细胞课程|笔记汇总 &#xff08;四&#xff09; &#xff08;五&#xff09;Count Normalization and Principal Component Analysis 获得高质量的单细胞后&#xff0c;单细胞RNA-seq&#xff08;scRNA-seq&#xff09;分析工作流程的下一步就是执行聚类。聚类的目…

代理IP如何助力社交媒体数据挖掘

目录 引言 一、 社交媒体数据挖掘的挑战 1、访问限制 2、反爬虫技术 3、数据隐私和合规性 4、数据的多样性和复杂性 5、技术门槛 二、解决方案:代理IP 1、绕过IP封锁 2、管理访问频率 3、保护用户隐私 4、提高数据获取的成功率 三、代理IP平台:站大爷 1、高效性…

商标担保注册出现的常见问题!

最近有个网友联系到普推知产商标老杨&#xff0c;问一个商标名称注册担保事项&#xff0c;检索信息给详细分析下&#xff0c;这个商标名称他以前申请注册过&#xff0c;也做过驳回复审&#xff0c;还是不予注册。 如果相同的名称现在去申请注册&#xff0c;当然会直接驳回&…

模型太大加载不畅?不兼容?3D模型轻量化帮您瘦身减负

在当今的数字时代&#xff0c;3D模型已成为游戏开发、建筑设计、虚拟现实及增强现实等多个行业不可或缺的基石。它们不仅为这些领域带来了前所未有的视觉盛宴和沉浸式体验&#xff0c;还极大地推动了行业的创新与发展。然而&#xff0c;随着模型设计日益复杂&#xff0c;其文件…

Mysql执行计划(下)

1、执行计划概念 执行计划是什么&#xff1a;使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。 作用&#xff1a;分析你的查询语句或是表结构的性能瓶颈 语法&#xff1a;Explain SQL语句 执行计划输出内容介绍&#xf…

华为毕昇打印机:智能生态引领打印机市场新变革

在全球打印机市场中&#xff0c;华为作为通信和消费电子领域的领军企业&#xff0c;其新品打印机的发布无疑为行业带来了新的活力。华为毕昇打印机的推出&#xff0c;预示着华为将以其独特的智能生态理念&#xff0c;重塑打印机行业的格局。 首先&#xff0c;华为毕昇打印机的…

【书生大模型实战营第三期 | 基础岛第3关-浦语提示词工程实践】

学习心得&#xff1a;浦语提示词工程实践 摘要 本文是对《浦语提示词工程实践》课程的学习心得&#xff0c;旨在总结课程的核心内容&#xff0c;包括环境配置、模型部署、提示工程的基本原则和LangGPT结构化提示词的使用方法。通过学习&#xff0c;我深刻理解了在人工智能领域…

Linux系统之ncdu命令的基本使用

Linux系统之ncdu命令的基本使用 一、ncdu命令命令介绍1.1 ncdu简介1.2 ncdu特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统镜像源3.4 更新软件列表 四、安装ncdu工具4.1 安装ncdu软件4.2 n…