shell脚本(6)—循环的学习

news2024/11/24 20:18:30

免责声明

学习视频来自B 站up主泷羽sec,如涉及侵权马上删除文章。

笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

B站地址:

for循环

在Shell脚本中,for循环用于遍历一组值(通常是一个序列或数组),并针对每个值执行一段代码。for循环的基本语法如下:

for variable in value_list
do
  # 执行的代码
done

其中:

  • variable 是一个变量,用于存储当前遍历到的值。

  • value_list 是一个值列表,可以包含数字、字符串、数组元素等。值列表中的每个值都会被依次赋给 variable,然后执行循环体中的代码。

  • dodone 是循环体的起始和结束标记,它们之间的代码是每次循环都会执行的。

以下是一个简单的示例,演示了如何使用for循环打印数字1到5:

for i in 1 2 3 4 5
do
  echo $i
done

在这个示例中,变量 i 依次被赋值为1、2、3、4、5,然后执行 echo $i 命令打印当前值。

此外,还可以使用 seq 命令生成数字序列,并在for循环中使用:

for i in $(seq 1 5)
do
  echo $i
done

这个示例与前面的示例效果相同,都是打印数字1到5。

总结

for循环在Shell脚本中主要用于遍历序列并对序列中的每个元素执行相同的操作。通过合理使用for循环,你可以编写出简洁且易于维护的脚本。

for循环与遍历数组的区别

在Shell脚本中,for循环和遍历数组都可以用于处理一系列的元素,但它们的使用方式和适用场景有所不同。

for循环

for循环主要用于遍历一个明确的序列,这个序列可以是数字、字符串、文件名等。for循环的基本语法如下:

for variable in value_list
do
  # 执行的代码
done

其中,value_list 是一个由空格分隔的值列表,variable 会在每次循环中被赋予列表中的下一个值。

例如,以下脚本使用for循环遍历一个数字序列并打印出来:

for i in {1..5}
do
  echo $i
done

遍历数组

遍历数组是Shell脚本中的一种特殊用法,用于处理数组中的每个元素。遍历数组的基本语法如下:

for element in "${array[@]}"
do
  # 执行的代码
done

其中,array 是一个数组变量,${array[@]} 表示数组中的所有元素。在每次循环中,element 会被赋予数组中的下一个元素值。

例如,以下脚本定义了一个数组并遍历打印出每个元素:

array=("apple" "banana" "cherry")
for fruit in "${array[@]}"
do
  echo $fruit
done

区别

  1. 数据类型:for循环主要用于遍历序列(如数字、字符串、文件名等),而遍历数组专门用于处理数组中的元素。

  2. 语法:for循环的语法相对简单,只需指定一个值列表即可;而遍历数组需要使用${array[@]}来表示数组中的所有元素。

  3. 灵活性:for循环更加灵活,可以处理各种类型的序列;而遍历数组只能用于处理数组。

总的来说,for循环和遍历数组都是Shell脚本中常用的循环结构,选择使用哪种方式取决于具体的需求和场景。

在Shell脚本中,for循环可以用于遍历数组并对数组中的每个元素执行相同的操作。以下是几种常见的数组遍历方法:

1. 使用for循环遍历数组元素

array=("apple" "banana" "cherry")

for element in "${array[@]}"; do
    echo "Processing element: $element"
done

在这个例子中,${array[@]}表示数组中的所有元素。for循环将依次处理数组中的每个元素。

2. 使用for循环和数组索引遍历数组元素

array=("apple" "banana" "cherry")

for (( i=0; i<${#array[@]}; i++ )); do
    echo "Processing element at index $i: ${array[$i]}"
done

在这个例子中,${#array[@]}表示数组的长度,i是数组索引。for循环将依次处理数组中的每个元素,同时输出元素的索引。

3. 使用for循环和数组切片遍历数组元素

array=("apple" "banana" "cherry")

for (( i=0; i<${#array[@]}; i++ )); do
    slice=("${array[@]:i:1}")
    echo "Processing element at index $i: ${slice[0]}"
done

在这个例子中,${array[@]:i:1}表示从索引i开始,长度为1的数组切片。for循环将依次处理数组中的每个元素,同时输出元素的索引。

总结

for循环在数组遍历中的应用可以帮助你轻松地处理数组中的每个元素。通过合理使用for循环,你可以编写出简洁且易于维护的脚本。

for循环的应用

在Shell脚本中,for循环是一种常用的循环结构,用于遍历一个序列(如一组数字、字符串或数组元素)并对序列中的每个元素执行相同的操作。以下是一些常见的应用场景:

1. 遍历数字序列

当你需要按顺序处理一组数字时,可以使用for循环与seq命令结合。

for i in $(seq 1 5); do
    echo "Processing number: $i"
done

2. 遍历文件列表

当你需要处理一组文件时,可以使用for循环遍历文件名。

for file in /path/to/files/*; do
    echo "Processing file: $file"
done

3. 遍历数组元素

当你需要处理数组中的每个元素时,可以使用for循环。

array=("apple" "banana" "cherry")
for fruit in "${array[@]}"; do
    echo "Processing fruit: $fruit"
done

4. 遍历命令输出

当你需要处理命令输出的每一行时,可以使用for循环与管道结合。

for line in $(command); do
    echo "Processing line: $line"
done

5. 遍历字符串

当你需要逐字符处理一个字符串时,可以使用for循环。

string="hello"
for (( i=0; i<${#string}; i++ )); do
    char="${string:$i:1}"
    echo "Processing character: $char"
done

6. 遍历特定分隔符分隔的值

当你需要处理由特定分隔符(如逗号)分隔的值时,可以使用for循环与IFS(内部字段分隔符)结合。

IFS=',' read -ra values <<< "apple,banana,cherry"
for value in "${values[@]}"; do
    echo "Processing value: $value"
done

7. 遍历目录结构

当你需要递归遍历目录结构并处理每个文件或子目录时,可以使用for循环与find命令结合。

for item in $(find /path/to/directory -type f); do
    echo "Processing file: $item"
done

总结

for循环在Shell脚本中主要用于遍历序列并对序列中的每个元素执行相同的操作。通过合理使用for循环,你可以编写出简洁且易于维护的脚本。

for循环在网络安全中的应用

在网络安全中,for循环被广泛应用于各种场景,以下是一些具体的应用案例:

1. 端口扫描

  • 案例描述:使用for循环遍历一个范围内的端口号,尝试连接每个端口以确定其是否开放。

  • 代码示例(Python):
    import socket
    
    target_host = "192.168.1.1"
    target_ports = range(1, 1024)
    
    for port in target_ports:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(1)
        result = sock.connect_ex((target_host, port))
        if result == 0:
            print(f"Port {port} is open")
        sock.close()
    

2. IP地址扫描

  • 案例描述:使用for循环遍历一个IP地址范围,检查每个IP地址的活动状态。

  • 代码示例(Python):
    import subprocess
    
    ip_range = ["192.168.1." + str(i) for i in range(1, 255)]
    
    for ip in ip_range:
        result = subprocess.run(['ping', '-c', '1', ip], stdout=subprocess.PIPE)
        if result.returncode == 0:
            print(f"IP {ip} is up")
    

3. 日志分析

  • 案例描述:使用for循环遍历日志文件中的每一行,查找特定的安全事件或异常行为。

  • 代码示例(Python):
    log_file = "security.log"
    keywords = ["ERROR", "WARNING", "CRITICAL"]
    
    with open(log_file, 'r') as file:
        for line in file:
            if any(keyword in line for keyword in keywords):
                print(line)
    

4. 文件完整性检查

  • 案例描述:使用for循环遍历一组文件,计算每个文件的哈希值并与已知的良好哈希值进行比较。

  • 代码示例(Python):
    import hashlib
    
    files = ["file1.txt", "file2.txt", "file3.txt"]
    known_hashes = {"file1.txt": "abc123", "file2.txt": "def456"}
    
    for file in files:
        hasher = hashlib.md5()
        with open(file, 'rb') as f:
            buf = f.read()
            hasher.update(buf)
        computed_hash = hasher.hexdigest()
        if file in known_hashes and computed_hash != known_hashes[file]:
            print(f"File {file} has been tampered with")
    

5. 网络流量分析

  • 案例描述:使用for循环遍历捕获的网络数据包,提取和分析特定的信息(如源IP、目标IP、端口号等)。

  • 代码示例(Python with Scapy):
    from scapy.all import *
    
    packets = rdpcap("capture.pcap")
    
    for packet in packets:
        if IP in packet:
            src_ip = packet[IP].src
            dst_ip = packet[IP].dst
            print(f"Source IP: {src_ip}, Destination IP: {dst_ip}")
    

6. 配置文件批量修改

  • 案例描述:使用for循环遍历一组配置文件,查找并替换特定的配置项。

  • 代码示例(Python):
    config_files = ["config1.txt", "config2.txt", "config3.txt"]
    old_string = "old_value"
    new_string = "new_value"
    
    for config_file in config_files:
        with open(config_file, 'r') as file:
            data = file.read()
        data = data.replace(old_string, new_string)
        with open(config_file, 'w') as file:
            file.write(data)
    

这些案例展示了for循环在网络安全中的多种应用场景,通过遍历和处理数据,能够有效地进行安全检测和管理。

while循环

在Shell脚本中,while循环是一种基本的循环控制结构,它允许你根据某个条件反复执行一段代码。while循环的基本语法如下:

while [ condition ]
do
    # 循环体代码
done

其中:

  • condition 是一个条件表达式,可以是任何返回真(0)或假(非0)的表达式。在每次循环开始前,都会评估这个条件。如果条件为真,则执行循环体代码;如果条件为假,则跳出循环。

  • dodone 是循环体的起始和结束标记,它们之间的代码是每次循环都会执行的。

以下是一个简单的示例,演示了如何使用while循环打印数字1到5:

counter=1
while [ $counter -le 5 ]
do
    echo $counter
    counter=$((counter+1))
done

在这个示例中,初始时将变量 counter 设置为1。然后进入while循环,每次循环开始前都会检查 counter 是否小于等于5。如果是,则打印 counter 的值,并将 counter 增加1。这个过程会一直重复,直到 counter 大于5为止。

while循环的应用

在Shell脚本中,while循环是一种基本的循环控制结构,它允许你根据某个条件反复执行一段代码。以下是一些常见的应用场景:

1. 等待某个条件成立

当你需要等待某个条件成立后再继续执行脚本时,可以使用while循环。例如,等待某个文件出现或某个进程启动完成。

while [ ! -f /path/to/file ]; do
    echo "Waiting for file to appear..."
    sleep 1
done
echo "File has appeared!"

2. 读取文件或命令输出

当你需要逐行读取文件或命令的输出时,可以使用while循环与输入重定向或管道结合。

while read line; do
    echo "Processing line: $line"
done < /path/to/file

或者使用管道:

command | while read line; do
    echo "Processing line: $line"
done

3. 无限循环

当你需要一个无限循环,直到某个条件手动中断(如用户输入或信号)时,可以使用while循环。

while true; do
    echo "This will run forever until interrupted..."
    sleep 1
done

4. 条件循环

当你需要根据某个条件反复执行代码,直到条件不再满足时,可以使用while循环。

counter=0
while [ $counter -lt 5 ]; do
    echo "Counter: $counter"
    counter=$((counter + 1))
done

5. 等待用户输入

当你需要等待用户输入某个特定值后再继续执行脚本时,可以使用while循环。

read -p "Enter 'yes' to continue: " answer
while [ "$answer" != "yes" ]; do
    read -p "Invalid input. Enter 'yes' to continue: " answer
done
echo "Continuing..."

6. 监控系统资源

当你需要监控系统资源(如CPU使用率、内存使用率等)并在达到某个阈值时采取行动时,可以使用while循环。

while true; do
    cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}')
    if [[ $cpu_usage > 90 ]]; then
        echo "CPU usage is too high: $cpu_usage"
        # 采取行动,如发送警报或重启服务
    fi
    sleep 60
done

总结

while循环在Shell脚本中非常灵活,适用于各种需要根据条件反复执行代码的场景。通过合理使用while循环,你可以编写出更加高效和健壮的脚本。

while循环在网络安全中的应用

在网络安全领域,while循环被广泛应用于各种场景,主要用于监控网络状态、检测异常行为、处理数据包等任务。以下是一些具体的应用案例:

1. 漏洞扫描

  • 案例描述:使用while循环控制扫描过程,等待扫描完成并处理扫描结果。

  • 代码示例(Python):

    import socket
    
    target_host = "example.com"
    target_ports = range(1, 1024)
    scanned_ports = []
    
    for port in target_ports:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(1)
        result = sock.connect_ex((target_host, port))
        if result == 0:
            scanned_ports.append(port)
        sock.close()
    
    print(f"Open ports on {target_host}: {scanned_ports}")
    

2. 入侵检测

  • 案例描述:使用while循环持续监控网络流量,检测异常行为。

  • 代码示例(Python):

    import scapy
    
    packets = rdpcap("capture.pcap")
    
    for packet in packets:
        if IP in packet:
            src_ip = packet[IP].src
            dst_ip = packet[IP].dst
            print(f"Source IP: {src_ip}, Destination IP: {dst_ip}")
    

3. 防火墙配置

  • 案例描述:使用while循环持续监控防火墙日志并响应安全事件。

这些案例展示了while循环在网络安全中的多种应用场景,通过持续监控和处理数据,能够有效地进行安全检测和管理。

以上内容仅供参考,实际应用中需要根据具体需求和环境进行调整和优化。同时,建议在实际操作前进行充分的安全评估和测试,以确保不会对网络系统造成不必要的影响或风险。

for循环与while循环的区别

while循环和for循环是Shell脚本中两种常用的循环结构,它们的主要区别在于如何控制循环的执行次数和条件。

1. 控制循环的方式

  • while循环:while循环根据指定的条件来控制循环的执行。只要条件为真(非零),循环就会继续执行。while循环至少会执行一次循环体,然后再检查条件。

  • for循环:for循环通过遍历一个序列(如数字、字符串、数组元素等)来控制循环的执行。for循环在每次迭代中都会从序列中取出一个值,并将其赋给指定的变量,然后执行循环体。

2. 语法结构

  • while循环

while [ condition ]
do
  # 循环体代码
done
  • for循环

for variable in value_list
do
  # 循环体代码
done

3. 使用场景

  • while循环:适用于需要根据某个条件反复执行代码的场景,例如等待某个文件出现、读取文件或命令输出、无限循环等。

  • for循环:适用于需要遍历一个序列并对序列中的每个元素执行相同操作的场景,例如遍历数字序列、遍历文件列表、遍历数组元素等。

4. 示例

  • while循环示例:等待某个文件出现。

while [ ! -f /path/to/file ]; do
  echo "Waiting for file to appear..."
  sleep 1
done
echo "File has appeared!"
  • for循环示例:遍历数组元素。

array=("apple" "banana" "cherry")
for fruit in "${array[@]}"; do
  echo "Processing fruit: $fruit"
done

总结

while循环和for循环在Shell脚本中都有广泛的应用,选择使用哪种循环结构取决于具体的需求和场景。while循环更适合根据条件反复执行代码,而for循环更适合遍历序列并对序列中的每个元素执行相同操作。

for循环与while循环的联合应用

在Shell脚本中,for循环和while循环可以联合应用以处理更复杂的逻辑。以下是一些常见的联合应用场景:

1. 使用for循环遍历数组,并在循环体内使用while循环处理每个元素

array=("apple" "banana" "cherry")

for fruit in "${array[@]}"; do
    echo "Processing fruit: $fruit"
    count=0
    while [ $count -lt 3 ]; do
        echo "Count: $count"
        count=$((count + 1))
    done
done

在这个例子中,for循环遍历数组中的每个元素,然后在循环体内使用while循环处理每个元素。

2. 使用while循环读取文件,并在循环体内使用for循环处理每一行

while read line; do
    echo "Processing line: $line"
    for word in $line; do
        echo "Processing word: $word"
    done
done < /path/to/file

在这个例子中,while循环逐行读取文件,然后在循环体内使用for循环处理每一行的每个单词。

3. 使用while循环等待某个条件成立,并在循环体内使用for循环处理满足条件的元素

found=false
while [ ! $found ]; do
    for file in /path/to/files/*; do
        if grep -q "search_string" "$file"; then
            echo "Found search string in file: $file"
            found=true
            break
        fi
    done
    if [ ! $found ]; then
        echo "Waiting for search string..."
        sleep 1
    fi
done

在这个例子中,while循环等待某个条件成立(在文件中找到搜索字符串),并在循环体内使用for循环处理满足条件的元素。

总结

for循环和while循环可以联合应用以处理更复杂的逻辑。通过合理使用这两种循环结构,你可以编写出功能强大且易于维护的Shell脚本。

在网络安全中的应用

在网络安全领域,while循环和for循环都有着广泛的应用,它们主要用于监控网络状态、检测异常行为、处理数据包等任务。这些循环结构帮助安全专家自动化地执行重复性的安全检测任务,从而提高网络安全防护的效率和准确性。

while循环在网络安全中的应用

  • 等待特定条件:while循环非常适合用于等待某个特定条件满足的场景,例如,在网络编程中等待一个响应,或者在用户界面编程中等待用户输入。

  • 处理不确定的迭代次数:当你不知道具体需要迭代多少次时,while循环是一个很好的选择。例如,从文件中读取数据,直到文件结束,或者处理用户的输入直到他们输入了“退出”。

  • 实现复杂的逻辑:某些复杂的逻辑用for循环很难表达,但用while循环就变得简单多了。

for循环在网络安全中的应用

  • 遍历序列:for循环常用于遍历一个序列(如数字、字符串、数组元素等),在网络安全中,这可以用于遍历IP地址、端口或扫描特定的网络范围。

  • 批量处理:for循环可以用于批量处理任务,例如,对一组安全日志文件进行分析和处理。

网络安全中的具体应用场景

  • 漏洞扫描:while循环可以用于控制扫描过程,等待扫描完成并处理扫描结果。

  • 入侵检测:for循环可以用于遍历网络流量,检测异常行为,而while循环可以用于持续监控网络状态。

  • 防火墙配置:for循环可以用于遍历网络接口和端口,配置防火墙规则,而while循环可以用于持续监控防火墙日志并响应安全事件。

通过合理使用while循环和for循环,网络安全专家可以编写出更加高效和灵活的安全检测脚本和程序,从而有效提高网络安全防护的能力。

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

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

相关文章

关于相机选型的一些参数说明

上一篇&#xff1a;关于相机的一些参数计算&#xff08;靶面、视野等&#xff09; 目录 1.卷帘快门和全局快门1.1 卷帘快门1.2 全局快门PS&#xff1a;视觉伺服与快门选择 2.黑白和彩色3.CCD和CMOS3.1 CCD3.2 CMOSCCD VS CMOS 4.面阵和线扫4.1 面阵4.2 线扫4.3 面阵 VS 线扫 5.…

C 语言复习总结记录二

C 语言复习总结记录二 一 控制语句 1、语句的分类 表达式语句函数调用语句复合语句控制语句空语句 控制语句 控制程序的执行流程&#xff0c;实现程序的各种结构方式 C 语言支持三种结构 &#xff1a;顺序结构、选择结构、循环结构&#xff0c;由特定的语句定义符组成C语言…

【mongodb】社区版8:改变配置bindip和授权

更改配置 sudo systemctl restart mongod (base) root@k8s-master-pfsrv:/home/zhangbin# sudo tail -n 20 /var/log/mongodb/mongod.log 日志感觉是成功了:{"t":{"$date":"2024-11-19T19:57:47.076+08:00"

28.UE5游戏框架,事件分发器,蓝图接口

3-3 虚幻游戏框架拆解&#xff0c;游戏规则基础_哔哩哔哩_bilibili 目录 1.游戏架构 2.事件分发器 2.1UI控件中的事件分发器 2.2Actor蓝图中的事件分发器 2.2.1动态决定Actor的分发事件 2.2.2父类中定义事件分发器&#xff0c;子类实现事件分发器 2.3组件蓝图中实现事件…

P1 练习卷(C++4道题)

1.纷繁世界 内存限制&#xff1a;256MB 时间限制&#xff1a;1s 问题描述 这是一个纷繁复杂的世界。 某一天清晨你起床很迟&#xff0c;没有吃上早饭。于是你骑着自行车去超市&#xff0c;但是你又发现商店的工作人员已经重新贴上了价格标签&#xff0c;零食价格都涨了50%。你…

挂壁式空气净化器哪个品牌的质量好?排名top3优秀产品测评分析

随着挂壁式空气净化器市场的不断扩大&#xff0c;各类品牌与型号琳琅满目。但遗憾的是&#xff0c;一些跨界网红品牌过于追求短期效益&#xff0c;导致产品在净化效果与去除异味方面表现平平&#xff0c;使用体验不佳&#xff0c;甚至可能带来二次污染风险&#xff0c;影响人体…

贴代码框架PasteForm特性介绍之image

简介 PasteForm是贴代码推出的 “新一代CRUD” &#xff0c;基于ABPvNext&#xff0c;目的是通过对Dto的特性的标注&#xff0c;从而实现管理端的统一UI&#xff0c;借助于配套的PasteBuilder代码生成器&#xff0c;你可以快速的为自己的项目构建后台管理端&#xff01;目前管…

C++异常: cv::Exception 解决

原因是C中文件路径错误&#xff0c;\ 号在字符串中表示转义字符&#xff0c;"C:\Users\14421\Desktop\123.png" "C:Usersd21DesktopS.png" &#xff0c;所以应该改为 C:\\Users\\14421\\Desktop\\123.png 或者 C:/Users/14421/Desktop/123.png 即可解决问…

libphone desktop编译

linphone-desktop 在ubuntu20.04 下编译 linphone 介绍 Linphone是一款遵循GPL的开源网络视频电话系统&#xff0c;支持多种平台如Windows、Linux、Android等。它基于SIP协议&#xff0c;提供语音、视频通话及即时文本消息功能。核心功能包括SIP用户代理、音频视频Codec支持、…

高精度计算题目合集

高精度计算题目合集 1168&#xff1a;大整数加法 1168&#xff1a;大整数加法 1168&#xff1a;大整数加法 高精度加法原理&#xff1a; a&#xff0c;b&#xff0c;c 都可以用数组表示。这些都是基于c语言的算术运算符形成的运算。 c 3 ( c 1 c 2 ) % 10 c_3(c_1c_2)\%1…

【Python】爬虫实战:高效爬取电影网站信息指南(涵盖了诸多学习内容)

本期目录 1 爬取思路 2 爬虫过程 2.1 网址 2.2 查看网页代码 3 爬取数据 3.1 导入包 3.2 爬取代码 01 爬取思路 \*- 第一步&#xff0c;获取页面内容\*- 第二步&#xff1a;解析并获取单个项目链接 \*- 第三步&#xff1a;获取子页面内容 \*- 第四步&#xff1a;解析…

【bug】使用transformers训练二分类任务时,训练损失异常大

使用transformers训练二分类任务时&#xff0c;训练损失异常大 问题分析 问题 training_loss异常大&#xff0c;在二分类损失中&#xff0c;收敛在1~2附近&#xff0c;而eval_loss却正常&#xff08;小于0.5&#xff09; 分析 参考&#xff1a; Bug in gradient accumulation…

uni-app 认识条件编译,了解多端部署

一. 前言 在使用 uni-app 进行跨平台开发的过程中&#xff0c;经常会遇到需要针对不同平台或不同环境进行条件编译的情况。条件编译是一种在编译过程中根据指定条件选择不同代码路径的技术&#xff0c;可以帮助我们在不同平台或环境下编写不同的代码&#xff0c;以适应不同的平…

HarmonyOS Next原创项目

学友市集 HarmonyOS毕设,项目完整,代码原创,可接毕设 项目展示 项目简介 学友集市是一款基于HarmonyOS Next开发的二手交易平台,适配HarmonyOS5.0&#xff0c;采用前后端分离架构&#xff0c;致力于为用户提供安全、便捷、高品质的二手商品交易服务。平台整合了华为云认证服…

现代密码学

概论 计算机安全的最核心三个关键目标&#xff08;指标&#xff09;/为&#xff1a;保密性 Confidentiality、完整性 Integrity、可用性 Availability &#xff0c;三者称为 CIA三元组 数据保密性&#xff1a;确保隐私或是秘密信息不向非授权者泄漏&#xff0c;也不被非授权者使…

深度学习实战人脸识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…

51c自动驾驶~合集31

我自己的原文哦~ https://blog.51cto.com/whaosoft/12121357 #大语言模型会成为自动驾驶的灵丹妙药吗 人工智能&#xff08;AI&#xff09;在自动驾驶&#xff08;AD&#xff09;研究中起着至关重要的作用&#xff0c;推动其向智能化和高效化发展。目前AD技术的发展主要遵循…

2023年3月GESPC++一级真题解析

一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 题目123456789101112131415答案BAACBDDAADBCDBC 1.以下不属于计算机输入设备的有&#xff08; &#xff09;。 A &#xff0e;键盘 B &#xff0e;音箱 C &#xff0e;鼠标 D &#xff0e;传感器 【答案】 …

深度学习实验十二 卷积神经网络(3)——基于残差网络实现手写体数字识别实验

目录 一、模型构建 1.1残差单元 1.2 残差网络的整体结构 二、统计模型的参数量和计算量 三、数据预处理 四、没有残差连接的ResNet18 五、带残差连接的ResNet18 附&#xff1a;完整的可运行代码 实验大体步骤&#xff1a; 先前说明&#xff1a; 上次LeNet实验用到的那…

第10章JavaScript的应用

10.1 JavaScript概述 10.1.1 JavaScript简介 10.1.1.1 简单性 10.1.1.2 动态性 10.1.1.3 跨平台性 10.1.1.4 安全性 10.1.1.5 基于对象的语言 10.1.2 JavaScript入门案例 10.1.3 JavaScript放置的位置 10.1.3.1 head标记中的脚本 代码 <!DOCTYPE html> <ht…