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

Linux之Shell(一)

Linux之Shell

  • Shell概述
    • Linux提供的Shell解析器
    • bash和sh的关系
    • Centos默认的解析器是bash
  • Shell脚本入门
    • 脚本格式
    • 第一个脚本
    • 脚本常用的执行方式
  • 变量
    • 系统预定义变量
    • 自定义变量
    • 特殊变量
      • $n
      • $#
      • \$*、\$@
      • $?
  • 运算符
  • 条件判断
  • 流程控制(▲)
    • if判断
    • case语句
    • for循环
    • while循环
  • read读取控制台输入

Shell概述

Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核

Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强

在这里插入图片描述

Linux提供的Shell解析器

[guozihan@hadoop100 ~]$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

bash和sh的关系

-rwxr-xr-x. 1 root root 964536 11月 25 2021 bash
lrwxrwxrwx. 1 root root 10 8月 25 20:20 bashbug -> bashbug-64
-rwxr-xr-x. 1 root root 6964 11月 25 2021 bashbug-64
lrwxrwxrwx. 1 root root 4 8月 25 20:20 sh -> bash

Centos默认的解析器是bash

[guozihan@hadoop100 bin]$ echo $SHELL
/bin/bash

Shell脚本入门

脚本格式

脚本以==#!/bin/bash== 开头(指定解析器)

第一个脚本

需求:创建一个 Shell 脚本,输出 helloworld

  • 实例实操

    首先我们先创建文件夹program,然后在文件夹里创建sh文件,vim编辑

    [guozihan@hadoop100 桌面]$ mkdir program

    [guozihan@hadoop100 桌面]$ cd program/

    [guozihan@hadoop100 program]$ touch helloword.sh

    [guozihan@hadoop100 program]$ vim helloword.sh

    #!/bin/bash
    echo "helloworld"
    

脚本常用的执行方式

  • 采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限

    sh+脚本的相对路径

    [guozihan@hadoop100 program]$ sh ./helloworld.sh
    helloworld

    sh+脚本的绝对路径

    [guozihan@hadoop100 program]$ sh /home/guozihan/桌面/program/helloworld.sh
    helloworld

    bash+脚本的相对路径

    [guozihan@hadoop100 program]$ bash ./helloworld.sh
    helloworld

    bash+脚本的相对路径

    [guozihan@hadoop100 program]$ bash /home/guozihan/桌面/program/helloworld.sh
    helloworld

  • 采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x

    ①首先要赋予 helloworld.sh 脚本的+x 权限

    [guozihan@hadoop100 program]$ chmod +x helloworld.sh

    ②执行脚本

    [guozihan@hadoop100 program]$ ./helloworld.sh
    helloworld

    [guozihan@hadoop100 program]$ /home/guozihan/桌面/program/helloworld.sh
    helloworld

注意:第一种执行方法,本质是 bash 解析器帮你执行脚本,所以脚本本身不需要执行 权限。第二种执行方法,本质是脚本需要自己

执行,所以需要执行权限。

  • 在脚本的路径前加上“.”或者 source

    ①现有文件test.sh,内容如下

    #!/bin/bash

    A=5

    echo $A

    ②分别使用 sh,bash,./ 和 . 的方式来执行,结果如下

    [guozihan@hadoop100 program]$ bash test.sh
    5

    [guozihan@hadoop100 program]$ sh test.sh
    5

    [guozihan@hadoop100 program]$ chmod +x test.sh

    [guozihan@hadoop100 program]$ ./test.sh
    5

    [guozihan@hadoop100 program]$ . test.sh
    5

原因:

前两种方式都是在当前 shell 中打开一个子 shell 来执行脚本内容,当脚本内容结束,则 子 shell 关闭,回到父 shell 中

第三种,也就是使用在脚本路径前加“.”或者 source 的方式,可以使脚本内容在当前 shell 里执行,而无需打开子 shell!这也是为什么我们每次要修改完/etc/profile 文件以后,需要 source 一下的原因。

开子 shell 与不开子 shell 的区别就在于,环境变量的继承关系,如在子 shell 中设置的当前变量,父 shell 是不可见

变量

系统预定义变量

  • 常用系统变量

    $HOME、$PWD、$SHELL、$USER 等

  • 案例实操

    查看系统变量的值

    [guozihan@hadoop100 ~]$ echo $HOME
    /home/guozihan

    显示当前 Shell 中所有变量:set

    [guozihan@hadoop100 ~]$ set

自定义变量

  • 基本语法

    (1)定义变量:变量名=变量值,注意,=号前后不能有空格

    (2)撤销变量:unset 变量名

    (3)声明静态变量:readonly 变量,注意:不能 unset

  • 变量定义规则

    (1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。

    (2)等号两侧不能有空格

    (3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算

    (4)变量的值如果有空格,需要使用双引号或单引号括起来

  • 案例实操

    定义变量 A

    [guozihan@hadoop100 ~]$ A=5

    [guozihan@hadoop100 ~]$ echo $A
    5

    给变量 A 重新赋值

    [guozihan@hadoop100 ~]$ A=8

    [guozihan@hadoop100 ~]$ echo $A
    8

    撤销变量 A

    [guozihan@hadoop100 ~]$ unset A

    [guozihan@hadoop100 ~]$ echo $A

    声明静态的变量 B=2,不能 unset

    [guozihan@hadoop100 ~]$ readonly B=2

    [guozihan@hadoop100 ~]$ echo $B
    2

    [guozihan@hadoop100 ~]$ B=9
    -bash: B: 只读变量

    在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算

    [guozihan@hadoop100 ~]$ C=1+2

    [guozihan@hadoop100 ~]$ echo $C
    1+2

    变量的值如果有空格,需要使用双引号或单引号括起来

    [guozihan@hadoop100 ~]$ D=I love sunchen
    bash: love: 未找到命令…

    [guozihan@hadoop100 ~]$ D=“I love sunchen”

    [guozihan@hadoop100 ~]$ echo $D
    I love sunchen

    可把变量提升为全局环境变量,可供其他 Shell 程序使用

    export 变量

    在 helloworld.sh 文件中增加 echo $B

    #!/bin/bash echo "helloworld" 
    echo $B
    

    [guozihan@hadoop100 program]$ ./helloworld.sh
    helloworld

    [guozihan@hadoop100 program]$ export B

    [guozihan@hadoop100 program]$ ./helloworld.sh
    helloworld
    2

特殊变量

$n

  • 基本语法

    $n 功能描述:n 为数字,$0 代表该脚本名称,$1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如${10})

  • 案例实操

    [guozihan@hadoop100 program]$ touch parameter.sh

    [guozihan@hadoop100 program]$ vim parameter.sh

    #!/bin/bash
    echo '=$n='
    echo $0
    echo $1
    echo $
    

    [guozihan@hadoop100 program]$ chmod 777 parameter.sh

    [guozihan@hadoop100 program]$ ./parameter.sh cls xz
    =$n=
    ./parameter.sh
    cls
    xz

$#

  • 基本语法

    $# 功能描述:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性

  • 实例实操

    [guozihan@hadoop100 program]$ vim parameter.sh

    #!/bin/bash
    echo '==========$n=========='
    echo $0
    echo $1
    echo $2
    echo '==========$#=========='
    echo $
    

    [guozihan@hadoop100 program]$ chmod 777 parameter.sh

    [guozihan@hadoop100 program]$ ./parameter.sh cls xz
    =$n=
    ./parameter.sh
    cls
    xz
    =$n=
    2

$*、$@

  • 基本语法

    $* 功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

    $@ 功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

  • 案例实操

    [guozihan@hadoop100 program]$ vim parameter.sh

    #!/bin/bash
    echo '==========$n=========='
    echo $0
    echo $1
    echo $2
    echo '==========$#=========='
    echo $#
    echo '==========$*=========='
    echo $*
    echo '==========$@=========='
    echo $@
    

    [guozihan@hadoop100 program]$ ./parameter.sh a b c d e f g
    =$n=
    ./parameter.sh
    a
    b
    =$n=
    7
    =$n=
    a b c d e f g
    =$n=
    a b c d e f g

$?

  • 基本语法

    $? 功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一 个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明 上一个命令执行不正确了

  • 案例实操

    判断 helloworld.sh 脚本是否正确执行

    [guozihan@hadoop100 program]$ ./helloworld.sh
    helloworld

    [guozihan@hadoop100 program]$ echo $?
    0

运算符

  • 基本语法

    “$((运算式))” 或 “$[运算式]”

  • 案例实操

    计算(2+3)* 4 的值

    [guozihan@hadoop100 program]$ S=$[(2+3)*4]

    [guozihan@hadoop100 program]$ echo $S
    20

条件判断

  • 基本语法

    (1)test condition

    (2)[ condition ](注意 condition 前后要有空格

    注意:条件非空即为 true,[ guozihan ]返回 true,[ ] 返回 false

  • 常用判断条件

    • 两个整数之间比较

      -eq 等于(equal)

      -ne 不等于(not equal)

      -lt 小于(less than)

      -le 小于等于(less equal)

      -gt 大于(greater than)

      -ge 大于等于(greater equal)

      注:如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等。

    • 按照文件权限进行判断

      -r 有读的权限(read)

      -w 有写的权限(write)

      -x 有执行的权限(execute)

    • 按照文件类型进行判断

      -e 文件存在(existence)

      -f 文件存在并且是一个常规的文件(file)

      -d 文件存在并且是一个目录(directory)

  • 案例实操

    23 是否大于等于 22

    [guozihan@hadoop100 program]$ [ 23 -ge 22 ]

    [guozihan@hadoop100 program]$ echo $?
    0

    helloworld.sh 是否具有写权限

    [guozihan@hadoop100 program]$ [ -w helloworld.sh ]

    [guozihan@hadoop100 program]$ echo $?

    0

    /home/atguigu/cls.txt 目录中的文件是否存在

    [guozihan@hadoop100 program]$ [ -e /home/guozihan/cls.txt ]

    [guozihan@hadoop100 program]$ echo $?
    1

    多条件判断&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一 条命令执行失败后,才执行下一条命令

    [guozihan@hadoop100 program]$ [ guozihan ] && echo OK || echo notOK
    OK

    [guozihan@hadoop100 program]$ [ ] && echo OK || echo notOK
    notOK

流程控制(▲)

if判断

  • 基本语法

    • 单分支

      if [ 条件判断式 ];then程序
      fi
      

      或者

      if [ 条件判断式 ]
      then
      程序
      fi
      
    • 多分支

      if [ 条件判断式 ]
      then程序
      elif [ 条件判断式 ]
      then程序
      else程序
      fi
      

    注意事项:

    ①[ 条件判断式 ],中括号和条件判断式之间必须有空格

    ②if 后要有空格

  • 案例实操

    输入一个数字,如果是 1,则输出 banzhang zhen shuai,如果是 2,则输出 cls zhen mei, 如果是其它,什么也不输出。

    [guozihan@hadoop100 program]$ touch if.sh
    [guozihan@hadoop100 program]$ vim if.sh
    
    #!/bin/bash
    if [ $1 -eq 1 ]
    then
    echo "banzhang zhen shuai"
    elif [ $1 -eq 2 ]
    then
    echo "cls zhen mei"
    fi
    
    [guozihan@hadoop100 program]$ chmod 777 if.sh
    [guozihan@hadoop100 program]$ ./if.sh 1
    banzhang zhen shuai
    [guozihan@hadoop100 program]$ ./if.sh 2
    cls zhen mei
    

case语句

  • 基本语法

    case $变量名 in

    “值 1”)

    ​ 如果变量的值等于值 1,则执行程序 1

    ;;

    “值 2”)

    ​ 如果变量的值等于值 2,则执行程序 2

    ;;

    ​ …省略其他分支…

    *)

    ​ 如果变量的值都不是以上的值,则执行此程序

    ;;

    esac

    注意事项:

    (1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。

    (2)双分号“;;”表示命令序列结束,相当于 java 中的 break。

    (3)最后的“*)”表示默认模式,相当于 java

  • 案例实操

    输入一个数字,如果是 1,则输出 banzhang,如果是 2,则输出 cls,如果是其它,输出 renyao。

    [guozihan@hadoop100 program]$ touch case.sh
    [guozihan@hadoop100 program]$ vim case.sh
    
    #!/bin/bash
    case $1 in
    "1")
    echo "banzhang"
    ;;
    "2")
    echo "cls"
    ;;
    *)
    echo "renyao"
    ;;
    esac
    
    [guozihan@hadoop100 program]$ chmod 777 case.sh 
    [guozihan@hadoop100 program]$ ./case.sh 
    renyao
    [guozihan@hadoop100 program]$ ./case.sh 1
    banzhang

for循环

  • 基本语法1

    for (( 初始值;循环控制条件;变量变化 ))
    do程序
    done
    
  • 案例实操1

    从 1 加到 100

    [guozihan@hadoop100 program]$ touch for1.sh
    [guozihan@hadoop100 program]$ vim for1.sh 
    
    #!/bin/bash
    sum=0
    for((i=0;i<=100;i++))
    do
    sum=$[$sum+$i]
    done
    echo $sum
    
    [guozihan@hadoop100 program]$ chmod 777 for1.sh 
    [guozihan@hadoop100 program]$ ./for1.sh 
    5050
    
  • 基本语法2

    for 变量 in123do
    程序
    done
    
  • 案例实操2

    打印所有输入参数

    [guozihan@hadoop100 program]$ touch for2.sh
    [guozihan@hadoop100 program]$ vim for2.sh 
    
    #!/bin/bash
    #打印数字
    for i in cls mly wls
    do
    echo "ban zhang love $i"
    done
    
    [guozihan@hadoop100 program]$ chmod 777 for2.sh 
    [guozihan@hadoop100 program]$ ./for2.sh 
    ban zhang love cls
    ban zhang love mly
    ban zhang love wls
    
  • $*和$@的区别

    $*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2 …$n 的形式输出所有参数。

    当它们被双引号“”包含时,$*会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输 出所有参数;$@会将各个参数分开,以“$1” “$2”…“$n”的形式输出所有参数

while循环

  • 基本语法

    while [ 条件判断式 ]
    do
    程序
    done
    
  • 案例实操

    从 1 加到 100

    [guozihan@hadoop100 program]$ touch while.sh
    [guozihan@hadoop100 program]$ vim while.sh 
    
    #!/bin/bash
    sum=0
    i=1
    while [ $i -le 100 ]
    do
    sum=$[$sum+$i]
    i=$[$i+1]
    done
    echo $sum
    
    [guozihan@hadoop100 program]$ chmod 777 while.sh 
    [guozihan@hadoop100 program]$ ./while.sh 
    5050
    

read读取控制台输入

  • 基本语法

    read (选项) (参数)

    ①选项:

    -p:指定读取值时的提示符;

    -t:指定读取值时等待的时间(秒)如果-t 不加表示一直等待

    ②参数

    变量:指定读取值的变量名

  • 案例实操

    提示 7 秒内,读取控制台输入的名称

    [guozihan@hadoop100 program]$ touch read.sh
    [guozihan@hadoop100 program]$ vim read.sh 
    
    #!/bin/bash
    read -t 7 -p "Enter your name in 7 seconds :" NN
    echo $NN
    
    [guozihan@hadoop100 program]$ chmod 777 read.sh 
    [guozihan@hadoop100 program]$ ./read.sh 
    Enter your name in 7 senconds:guozihan
    guozihan
    

相关文章:

Linux之Shell(一)

Linux之Shell Shell概述Linux提供的Shell解析器bash和sh的关系Centos默认的解析器是bash Shell脚本入门脚本格式第一个脚本脚本常用的执行方式 变量系统预定义变量自定义变量特殊变量$n$#\$*、\$$? 运算符条件判断流程控制(▲)if判断case语句for循环while循环 read读取控制台输…...

解决拦截器抛出异常处理类的500状态码Html默认格式响应 !

解决方式 <mvc:annotation-driven><mvc:message-converters><!-- 配置JSON消息转换器 --><bean class"org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name"supportedMediaTypes"&…...

搭建PyTorch神经网络进行气温预测

import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.optim as optim import warnings warnings.filterwarnings("ignore") %matplotlib inline features pd.read_csv(temps.csv)#看看数据长什么样子 features.he…...

Qt Creato配置PCL库

Qt Creator中使用PCL库_业务不精er的博客-CSDN博客 Qt6.1.0中配置pcl1.11.1_qt6导入pcl库_朽一的博客-CSDN博客 VS2017 中配置QTPCL显示点云或3D图形_pcl显示3d图tiff_桂林巡山的博客-CSDN博客 Windows10下QTVTKPCL环境配置&#xff08;一次成功&#xff09;_qt pcl_v俊逸的…...

从阿里到字节跳动,这3年外包做完,我这人生算是彻底废了......

​我为什么一直做外包呢&#xff0c;原因是薪资和技术方面。 在阿里做了一年外包&#xff0c;薪资5k&#xff0c;功能测试&#xff0c;接触Linux和网络&#xff0c;但是说实在的技术很难沉淀&#xff0c;就像雾里看花一样&#xff0c;过年之后&#xff0c;想走的人都走了&…...

在汽车行业中如何脱颖而出?使用聊天机器人是关键

汽车行业正在经历一场非凡的技术革命&#xff0c;尖端技术重塑了其本质。汽车中的聊天机器人能作为一种改变游戏规则的技术脱颖而出&#xff0c;推动企业与客户互动甚至吸引新客户的方式的进步。例如SaleSmartly&#xff08;SS客服&#xff09;就是一个很优秀的聊天机器人平台。…...

Go语言最全面试题,拿offer全靠它,附带免积分下载pdf

面试题文档下链接点击这里免积分下载 go语言入门到精通点击这里免积分下载 文章目录 Go 基础类GO 语言当中 NEW 和 MAKE 有什么区别吗&#xff1f;PRINTF(),SPRINTF(),FPRINTF() 都是格式化输出&#xff0c;有什么不同&#xff1f;GO 语言当中数组和切片的区别是什么&#xf…...

虚拟机Linux20.04磁盘扩展

扩展之前必须要确保&#xff01;没有快照&#xff01; ps:先把快照删掉&#xff0c;如果担心弄坏的话可以先克隆一个 如果不删的话就会跟下面一样无法点击扩展&#xff1a; 删除了快照之后就可以点击这个【扩展】&#xff0c;输入你要的磁盘大小即可。 &#xff08;我这里原…...

类欧几里得算法

求 ∑ i 0 n ⌊ a i b c ⌋ \sum\limits_{i0}^{n}\lfloor \frac{aib}{c} \rfloor i0∑n​⌊caib​⌋ 推式子步骤&#xff1a; 分类讨论 a 0 a0 a0 是个最简式子 b ≥ c b\ge c b≥c 或 a ≥ c a\ge c a≥c 由 f ( a m o d c , b m o d c , c , n ) f(a\bmod c,b\bmod…...

c++读取和存储文件,对文件操作

#include<bits/stdc.h> using namespace std; int aa[100];//全局变量数组&#xff0c;用来接收我们从文件中读取的数据。 void zhuanhua(string a){//这个函数的作用是转化我们读取的数字&#xff0c;由于我们读取文件时//是按行读取&#xff0c;就是一下读取一行&…...

InfluxDB API -- InfluxDB笔记四

1.调试工具的安装 ApiPost (类似Postman) 2.InfluxDB v2 API 地址 官方地址: InfluxDB v2 API | InfluxDB OSS 2.7 Documentation 本地文档地址&#xff1a;host1:8086/docs 3.token认证 在web UI 的Load Data -> API Tokens里面可以复制&#xff0c;这个页面也可以创…...

数据结构 - 单链表

文章目录 目录 文章目录 一、什么是链表? 线性表: 顺序表: 二、链表的分类和实现 分类: 实现: 1.创建节点类 2.创建单链表 1.addTail(尾增) 2.删除节点值为key的第一个节点 3.插入节点(在指定位置) 4.获取链表长度 总结 前言 大家好,这篇博客给大家讲一下什么是…...

化繁为简 面板式空调网关亮相上海智能家居展 智哪儿专访青岛中弘赵哲海

面对中央空调协议不开放和智能家居协议不统一的问题&#xff0c;青岛中弘选择中央空调控制器这一细分赛道入局智能家居市场&#xff0c;始终贯彻“所有空调&#xff0c;一个网关”的产品技术理念&#xff0c;逐渐探索出一条中弘的发展路径和商业模式。 在2023年的SSHT上海国际智…...

4G版本云音响设置教程阿里云平台版本

4G版本云音响设置教程介绍 第一章 介绍了在阿里云物联网平台生一个设备使用的三元素 第二章 转换阿里云三元素 为MQTT参数&#xff0c;并下载到设备中 第三章 阿里云物联网套件协议使用说明&#xff0c;如何发送数据至设备并播放 本文目录引导 目录 4G版本云音响设置教程介…...

STM32纯中断方式发送接收数据(串行通信;keil arm5;)

除了main文件其他文件均无修改&#xff0c;正常运行--在keil arm5内...

FPGA时序分析与约束(3)——时钟不确定性

一、前言 在之前的文章中&#xff0c;我们介绍了组合电路的时序和时序电路的时序问题&#xff0c;在阅读本文章之前&#xff0c;强烈推荐先阅读完本系列之前的文章&#xff0c;因为这是我们继续学习的理论的理论基础&#xff0c;前文链接&#xff1a; FPGA时序分析与约束&…...

【Java-HDFS】使用Java操作HDFS获取HDFS指定目录下的数据量大小

Maven依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>RELEASE</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId>…...

协议定制 + Json序列化反序列化

文章目录 协议定制 Json序列化反序列化1. 再谈 "协议"1.1 结构化数据1.2 序列化和反序列化 2. 网络版计算器2.1 服务端2.2 协议定制(1) 网络发送和读取的正确理解(2) 协议定制的问题 2.3 客户端2.4 代码 3. Json实现序列化反序列化3.1 简单介绍3.2 使用 协议定制 J…...

系统架构设计师(第二版)学习笔记----系统架构概述

【原文链接】系统架构设计师&#xff08;第二版&#xff09;学习笔记----系统架构概述 文章目录 一、系统架构的定义与发展历程1.1 架构的定义1.2 架构设计的作用1.3 架构设计产生的背景1.4 软件架构的发展历程1.5 模块化开发方法1.6 模块法方法分解模块遵循的原则1.7 软件工程…...

FPGA基本算术运算

FPGA基本算术运算 FPGA基本算术运算1 有符号数与无符号数2 浮点数及定点数I、定点数的加减法II、定点数的乘除法 3 仿真验证i、加减法验证ii、乘除法验证 FPGA基本算术运算 FPGA相对于MCU有并行计算、算法效率较高等优势&#xff0c;但同样由于没有成型的FPU等MCU内含的浮点数运…...

从图片到摄像头:用YOLOv8n.pt模型在Win10上实现实时目标检测(代码+命令详解)

从图片到摄像头&#xff1a;用YOLOv8n.pt模型在Win10上实现实时目标检测&#xff08;代码命令详解&#xff09; 当计算机视觉遇上边缘计算&#xff0c;目标检测技术正在重塑人机交互的边界。YOLOv8作为当前最先进的实时检测框架之一&#xff0c;其轻量级版本yolov8n.pt在普通消…...

火灾动力学模拟实战:如何用FDS构建精准的火灾预测系统

火灾动力学模拟实战&#xff1a;如何用FDS构建精准的火灾预测系统 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 你是否曾面临这样的困境&#xff1a;当设计一栋大型商业建筑时&#xff0c;如何科学评估火灾时的人员疏…...

用C++和RealSense D435i搞个3D手势识别?从像素坐标到相机坐标的保姆级避坑指南

3D手势识别实战&#xff1a;用RealSense D435i实现像素到相机坐标的高精度转换 当你的手指在空气中划出一道弧线&#xff0c;计算机能否精准捕捉这个三维动作&#xff1f;这正是3D手势识别技术试图解决的问题。作为人机交互领域的前沿方向&#xff0c;3D手势识别正在VR游戏、医…...

多智能体强化学习环境PettingZoo:从核心概念到工程实践

1. 项目概述&#xff1a;从零理解PettingZoo如果你正在寻找一个能让你快速上手、高效构建多智能体强化学习&#xff08;Multi-Agent Reinforcement Learning, MARL&#xff09;实验环境的工具&#xff0c;那么Farama Foundation旗下的PettingZoo项目&#xff0c;绝对是你绕不开…...

OpenAgents开源框架:模块化AI智能体开发实战指南

1. 项目概述&#xff1a;一个面向未来的智能体开发框架最近在AI智能体这个圈子里&#xff0c;OpenAgents这个项目讨论度挺高的。简单来说&#xff0c;它不是一个单一的AI应用&#xff0c;而是一个旨在降低智能体开发门槛、加速智能体应用落地的开源框架。你可以把它想象成一个“…...

从安迪·沃霍尔到AI画布:波普艺术三大视觉基因拆解,手把手复刻金罐头/玛丽莲肖像风格(含可复用prompt模板库)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;从安迪沃霍尔到AI画布&#xff1a;波普艺术的范式迁移 安迪沃霍尔用丝网印刷将可口可乐瓶与玛丽莲梦露转化为大众文化的图腾&#xff0c;其核心并非复制&#xff0c;而是对**重复、去个性化与媒介即内容…...

中鼎智能冲刺港股:年营收18.8亿 诺力股份是实控股东

雷递网 雷建平 5月16日中鼎智能&#xff08;无锡&#xff09;科技股份有限公司&#xff08;简称&#xff1a;“中鼎智能”&#xff09;日前更新招股书&#xff0c;准备在港交所上市。截至2026年3月31日止三个月&#xff0c;与上年同期相比&#xff0c;中鼎智能录得相对稳定的收…...

如何用FontForge从零设计专业字体?揭秘字体编辑器的核心玩法

如何用FontForge从零设计专业字体&#xff1f;揭秘字体编辑器的核心玩法 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 想象一下&#xff0c;你手写的签名、设计的l…...

AI驱动Figma设计自动化:Claude插件实现自然语言到UI生成

1. 项目概述&#xff1a;当设计工具遇上AI助手最近在和一些资深UI/UX设计师朋友交流时&#xff0c;大家不约而同地提到了一个痛点&#xff1a;在Figma这类设计工具里&#xff0c;从概念到高保真原型的转化过程&#xff0c;依然充满了大量重复、机械的劳动。比如&#xff0c;我需…...

Taotoken API Key精细化管理与审计日志的实际价值

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken API Key精细化管理与审计日志的实际价值 在团队协作中引入大模型能力&#xff0c;往往伴随着对资源使用安全性与可控性的…...