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

linux实验之shell编程基础

这世间,青山灼灼,星光杳杳,秋风渐渐,晚风慢慢

shell编程基础

    • 熟悉shell编程的有关机制,如标准流。
    • 学习Linux环境变量设置文件及其内容
      • /etc/profile
      • /etc/bashrc
      • /etc/environment
      • ~/.profile
      • ~/.bashrc
    • 熟悉编程有关基础命令技巧和规则
      • awk
          • ( 1 ) 按行输出文本
          • ( 2 )按字段输出文本
      • sed
          • ( 1 ) 输出符合条件的文本
          • ( 2 ) 删除符合条件的文本
          • ( 3 ) 替换符合条件的文本
          • ( 4 ) 迁移符合条件的文本
      • bc
    • 掌握shell 程序执行的三种基本方式,注意调试shell程序的命令书写方式有什么不同?
    • 使用for循环语句编写一段B-shell程序,完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序文件及其目标文件的列表。
    • 编写一段shell程序完成:根据从键盘输入的学生成绩,显示相应的成绩标准(分出不及格、及格60、中70、良80和优秀90等)。
    • 为便于系统管理员对磁盘分配的管理,请编写一段B-shell程序,当文件系统/home占用空间改变时给出相应的信息提示。要求/home占用量在系统磁盘中为:
    • 假设score.txt文件中保存了三个班级的学生的某门课程考试成绩,请编写一段shell程序计算每个班级的学生人数与平均分。

熟悉shell编程的有关机制,如标准流。

如果当前目录下有文件f1,但是没有f2,解释命令ls f1 f2 2>ef1 1>&2的运行结果。

1 . ls f1 f2 2>ef1 1>&2

(1)

0 表示 stdin , 标准输入 ; 1 表示 stdout , 标准输出 ; 2 表示 strerr , 标准错误输出

1>&2 表示 将标准输出重定向至标准错误输出; 2>&1 表示 将标准错误输出

(2) 所以这里是把ls f1 f2命令的报错信息写入ef1, 又把命令的输出的正常信息当成报错信息写入ef1
在这里插入图片描述
如果没有把结果重定向, 就是直接输出
在这里插入图片描述

学习Linux环境变量设置文件及其内容

根据实验系统查看/etc/profile,/etc/bashrc,/.bash_profile,/.bashrc等有关文件。

/etc/profile

在系统启动后第一个用户登录时运行,并从/etc/profile.d目录的配置文件中搜集shell的设置,使用该文件配置的环境变量将应用于登录到系统的每一个用户。

/etc/bashrc

(Ubuntu和Debian中是/etc/bash.bashrc)

在 bash shell 打开时运行,修改该文件配置的环境变量将会影响所有用户使用的bash shell。

/etc/environment

在系统启动时运行,用于配置与系统运行相关但与用户无关的环境变量,修改该文件配置的环境变量将影响全局。

~/.profile

当用户登录时执行,每个用户都可以使用该文件来配置专属于自己使用的shell信息。

~/.bashrc

当用户登录时以及每次打开新的shell时该文件都将被读取,不推荐在这里配置用户专用的环境变量,因为每开一个shell,该文件都会被读取一次,效率肯定受影响。

熟悉编程有关基础命令技巧和规则

如变量的命名,引用,位置变量及使用,输出语句及输出格式控制,输入语句和变量存储,从命令输出中提取字段值等。

##熟悉常见外部工具,如awk,sed,bc等的基本用法。

awk

逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,用于在无交互的情况下实现相当复杂的文本操作。

用法:

1 . 过滤并输出文件中符合条件的内容

awk 选项 ‘模式或条件 {编辑指令}’ 文件 1 文件 2 …

( 1 ) 按行输出文本
awk '{print}' demo.txt	//输出所有内容,等同于 cat demo.txt
awk '{print $0}' demo.txt	//输出所有内容,等同于 cat demo.txt
awk 'NR==1||NR==3{print}' demo.txt	//输出第 1 行、第 3 行内容
awk '(NR>=1)&&(NR<=3){print}' demo.txt	//输出第 1~3 行内容
awk '(NR%2)==1{print}' demo.txt	//输出所有奇数行的内容
awk '(NR%2)==0{print}' demo.txt	//输出所有偶数行的内容
awk '/^root/{print}' /etc/passwd	//输出以root 开头的行awk 
awk '/nologin$/{print}' /etc/passwd	//输出以 nologin 结尾的行
( 2 )按字段输出文本
awk '{print $3}' test.txt	//输出每行中(以空格或制表位分隔)的第 3 个字段
awk '{print $1,$3}' test.txt	//输出每行中的第 1、3 个字段
awk -F ":" '$2==""{print}' /etc/shadow //输出密码为空的用户的shadow 记录
awk 'BEGIN {FS=":"}; $2==""{print}' /etc/shadow  //输出密码为空的用户的shadow 记录
awk -F ":" '$7~"/bash"{print $1}' /etc/passwd  //输出以冒号分隔且第 7 个字段中包含/bash 的行的第 1 个字段
awk '($1~"nfs")&&(NF==8){print $1,$2}' /etc/services   //输出包含 8 个字段且第 1 个字段中包含 nfs 的行的第 1、2 个字段
awk -F ":" '($7!="/bin/bash")&&($7!="/sbin/nologin"){print}' /etc/passwd  //输出第 7 个字段既不为/bin/bash 也不为/sbin/nologin 的所有行     

2 . 从脚本中调用编辑指令,过滤并输出内容

awk -f 脚本文件 文件 1 文件 2 …

awk -F: '/bash$/{print | "wc -l"}' /etc/passwd  //调用wc -l 命令统计使用 bash 的用户个数,等同于 grep -c "bash$" /etc/passwdawk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}'  //调用w 命令,并用来统计在线用户数awk 'BEGIN { "hostname" | getline ; print $0}'  //调用hostname,并输出当前的主机名

sed

( 1 ) 输出符合条件的文本
sed -n 'p' demo.txt //输出所有内容
sed -n 'p;n' demo.txt //输出所有奇数行,n表示读入下一行
sed -n 'n;p' demo.txt	//输出所有偶数行,n 表示读入下一行
sed -n '10,${n;p}' demo.txt	//输出第 10 行至文件尾之间的偶数行

sed 命令结合正则表达式时,格式略有不同,正则表达式以“/”包围。

sed -n '/the/p' demo.txt	//输出包含the 的行
sed -n '4,/the/p' demo.txt	//输出从第 4 行至第一个包含 the 的行
sed -n '/^PI/p' demo.txt	//输出以PI 开头的行
sed -n '/[0-9]$/p' demo.txt	//输出以数字结尾的行
sed -n '/\<wood\>/p' demo.txt   //输出包含单词wood 的行,\<、\>代表单词边界
( 2 ) 删除符合条件的文本
sed '1,3d' 1.txt        #删除第1-3行
sed '/acb/d' 1.txt      #删除所有包含acb的行
sed '/aaa/!d' 1.txt     #删除不包含aaa的行
sed '/^abc/d' 1.txt     #删除以abc开头的行
sed '/\.$/d' demo.txt	//删除以"."结尾的行
sed '/^$/d' demo.txt	//删除所有空行
( 3 ) 替换符合条件的文本
sed 's/the/THE/' demo.txt	   //将每行中的第一个the 替换为 THE
sed 's/l/L/2' demo.txt	       //将每行中的第 2 个 l 替换为 L
sed 's/the/THE/g' demo.txt	     //将文件中的所有the 替换为 THE
sed 's/^/#/' demo.txt	        //在每行行首插入#号
sed '/the/s/^/#/' demo.txt	   //在包含the 的每行行首插入#号
sed '/the/s/o/O/g' demo.txt	//将包含the 的所有行中的 o 都替换为 O
sed '3,5s/the/THE/g' demo.txt   //将第3~5行中所有the替换为 THE
sed 's/$/NO/' demo.txt	       //在每行行尾插入字符串NO
( 4 ) 迁移符合条件的文本

在使用 sed 命令迁移符合条件的文本时,常用到以下参数.

  • H:复制到剪贴板。
  • g、G:将剪贴板中的数据覆盖/追加至指定行。
  • w:保存为文件。
  • r:读取指定文件。
  • a:追加指定内容。
sed '/the/{H;d};$G' test.txt	//将包含the 的行迁移至文件末尾,{;}用于多个操作sed '1,5{H;d};17G' test.txt	//将第 1~5 行内容转移至第 17 行后
sed '/the/w out.file' test.txt	//将包含the 的行另存为文件 out.filesed '/the/r /etc/hostname' test.txt	//将文件/etc/hostname 的内容添加到包含 the 的每行以后sed '3aNew' test.txt	//在第 3 行后插入一个新行,内容为New
sed '/the/aNew' test.txt	//在包含the 的每行后插入一个新行,内容为 Newsed '3aNew1\nNew2' test.txt	//在第 3 行后插入多行内容,中间的\n 表示换行sed '1,5{H;d};17G' test.txt	//将第 1~5 行内容转移至第 17 行后

bc

  • +:加
  • -:减
  • *:乘
  • /:除
  • ^:指数
  • %:求余数
  • sqrt:开方
  • ibase:输入进制
  • obase:输出进制
  • ;要计算多个结果用分号分隔
  • scale:小数部分位数

比如:

  • 3除以2保留3位小数:echo ‘scale=3; 3/2’ | bc

  • 10进制的3转换为2进制:echo “obase=2;3” |bc

  • 10进制的11转换为16进制:echo “obase=16;11” |bc

  • 2进制转16进制:echo “obase=16;ibase=2;11” |bc

  • 2进制转10进制:echo “obase=10;ibase=2;11” |bc

  • 100开方: echo “sqrt(100)” |bc

  • 10的3次方,10的2次方,3的5次方: echo “103;102;3^5” |bc

掌握shell 程序执行的三种基本方式,注意调试shell程序的命令书写方式有什么不同?

(1)输入重定向的执行方式

Shell从文件test中读取命令行并执行它们,
Shell执行到文件末尾就会终止执行

sh < test.sh

(2)脚本名文件执行
可以将参数值传递给文件中的命令,使shell程序可以处理更多的情况

sh test.sh [参数.]

(3)添加执行权限,直接进行执行

chmod u+x test.sh
./test.sh

(4)调试shell程序的命令
在这里插入图片描述
在脚本头部添加

set -euxo pipefail

在这里插入图片描述
或执行时传⼊参数

bash -euxo pipefail xxx.sh

在这里插入图片描述

使用for循环语句编写一段B-shell程序,完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序文件及其目标文件的列表。

考虑如何验证实验结果。

用户注册目录: $HOME查看
在这里插入图片描述

#!/bin/bash
d="$HOME/a_sub $HOME/b_sub"     #找到这两个目录
for i in $d
docd $i                       #然后进入目录ls -l *.c                   #分别输出
done

在这里插入图片描述

编写一段shell程序完成:根据从键盘输入的学生成绩,显示相应的成绩标准(分出不及格、及格60、中70、良80和优秀90等)。

如果输入的数据不是合法的怎么处理?

11.sh

#!/bin/bash
while :
do  read -p "输入成绩:" scase "$s" inq|Q)exit;;*)if ! [[ "$s" =~ ^[0-9]+$ ]] ; then echo "请输入数字"continuefiif [ $s -ge 90 -a $s -le 99 ] ; thenecho "优秀"fiif [ $s -ge 80 -a $s -le 89 ] ; thenecho "良"fiif [ $s -ge 70 -a $s -le 79 ] ; thenecho "中"fiif [ $s -ge 60 -a $s -le 69 ] ; thenecho "及格"fiif [ $s -ge 0 -a $s -le 59 ] ; thenecho "不及格"fi;;esac
done 

在这里插入图片描述

为便于系统管理员对磁盘分配的管理,请编写一段B-shell程序,当文件系统/home占用空间改变时给出相应的信息提示。要求/home占用量在系统磁盘中为:

①小于50%时,提示“用户文件系统磁盘使用负荷量小”。

②大于50%,小于90%时,提示“用户文件系统磁盘使用负荷量正常”。

③大于等于90%时,提示“用户文件系统磁盘使用负荷量偏大。

思路:怎么获取磁盘的空间情况?注意题目是需要知道一个目录的空间占用情况,和磁盘的占用不是一个问题。

df -h /home > homespace1.txt

单独运行df和du命令,查看用户注册目录的空间使用情况,然后再根据此二命令的输出,决定编程的方法。
在这里插入图片描述

#!/bin/bash
df -h /home > homespace1.txt
#将/home目录占用磁盘空间的情况输出重定向到一个txt文件中去s=`sed -n '2p' homespace1.txt`
#把homespace.txt文件里的第二行赋值给temp变量
#sed命令是利用脚本来处理文件
#-n:仅显示script处理后的结果
l=${s%'%'*}
#从右往左,把第一次出现%的右边截掉,保留左边,因为%符号有特殊含义,所以加上单引号'%',把截取后的字符串片段先赋值给m变量
r=${l##*G}#从左往右,把字符串最后一个出现字符G的左边截掉,保留右边。这样就把占用空间百分比的数字给截取出来了,把它赋值给r变量
for i in $r
doif [ $i -le 50 ] ; thenecho "用户文件系统磁盘使用负荷量小"fi    if [ $i -ge 50 -a $i -le 90 ] ; thenecho "用户文件系统磁盘使用负荷量正常"fi    if [ $i -ge 90 ] ; thenecho "用户文件系统磁盘使用负荷量偏大"fi
done

在这里插入图片描述

假设score.txt文件中保存了三个班级的学生的某门课程考试成绩,请编写一段shell程序计算每个班级的学生人数与平均分。

学习读取文件的方法。

在这里插入图片描述

#!/bin/bashclass="class1 class2 class3"
for i in $class
dototal=`grep -F $i score.txt|wc -l`average=`grep -F $i score.txt|awk -F: '{sum+=$3}END{print ":",sum/NR}'`#在之前检索出来的一个班级的内容中截取第三列所在的内容,并进行累加得到sum,sum再除以内置变量NR(行数)就得到平均值了。echo "$i班:$total人,平均分$average。"
done

如果数据文件的内容是3个班级5门不同课程的内容,程序应该怎么调整?

#!/bin/bashclass="class1 class2 class3"
for i in $class
dototal=`grep -F $i score1.txt|wc -l`echo "$i班:$total人"for j in 2 3 4 5 6 7dox=`sed -n '1p' score1.txt|awk -F" " '{print $'$j'}'`#获取第一行的内容,读取科目,便于简化操作。average=`grep -F $i score1.txt|awk -F" " '{sum+=$'$j'}END{print sum/NR}'`echo "$i$x平均分:$average"done
done

相关文章:

linux实验之shell编程基础

这世间&#xff0c;青山灼灼&#xff0c;星光杳杳&#xff0c;秋风渐渐&#xff0c;晚风慢慢 shell编程基础熟悉shell编程的有关机制&#xff0c;如标准流。学习Linux环境变量设置文件及其内容/etc/profile/etc/bashrc/etc/environment~/.profile~/.bashrc熟悉编程有关基础命令…...

C语言小程序:通讯录(静态版)

哈喽各位老铁们&#xff0c;今天给大家带来一期通讯录的静态版本的实现&#xff0c;何为静态版本后面会做解释&#xff0c;话不多说&#xff0c;直接开始&#xff01;关于通讯录&#xff0c;其实也就是类似于我们手机上的通讯录一样&#xff0c;有着各种各样的功能&#xff0c;…...

写CSDN博客两年半的收获--总结篇

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;练习时长两年半的java博主 &#x1f39f;️个人主页&#xff1a;君临๑ ps&#xff1a;点赞是免费的&#xff0c;却可以让写博客的作者开心好几天&#x1f60e; 不知不觉间&#xff0c;在csdn写博客也有两年半的时间了&#x…...

中科亿海微FPGA应用(一、点灯)

1.软件&#xff1a; https://download.csdn.net/download/weixin_41784968/87564071 需要申请license才能使用&#xff1a;软件试用申请_软件试用申请_中科亿海微电子科技&#xff08;苏州&#xff09;有限公司 2.开发板&#xff1a; 芯片EQ6HL45&#xff0c;42.5k LUT。 3…...

ElasticSearch - SpringBoot整合ES:实现搜索结果排序 sort

文章目录00. 数据准备01. Elasticsearch 默认的排序方式是什么&#xff1f;02. Elasticsearch 支持哪些排序方式&#xff1f;03. ElasticSearch 如何指定排序方式&#xff1f;04. ElasticSearch 如何按照相关性排序&#xff1f;05. ElasticSearch 查询结果如何不按照相关性排序…...

IDEA的全新UI可以在配置里启用了,快来试试吧!

刚看到IDEA官方昨天发了这样一条推&#xff1a;IDEA的新UI可以在2022.3版本上直接使用了&#xff01;开启方法如下&#xff1a;打开IDEA的Setting界面&#xff0c;在Appearance & Behavior下有个被标注为Beta标签的New UI菜单&#xff0c;具体如下图&#xff1a;勾选Enable…...

第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移

文章目录第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移备份处于活动状态时自动进行故障转移备份不活动时的自动故障转移对各种中断场景的镜像响应响应主要中断场景的自动故障转移第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移 备份处于活动状态…...

Barra模型因子的构建及应用系列七之Liquidity因子

一、摘要 在前期的Barra模型系列文章中&#xff0c;我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子、NonLinear Size因子和Book-to-Price因子&#xff0c;并分别创建了对应的单因子策略&#xff0c;其中Size因子和NonLinear Siz因子具有很强的收益能力…...

走进二叉树的世界 ———性质讲解

二叉树的性质和证明前言1.二叉树的概念和结构特殊的二叉树&#xff1a;二叉树的性质前言 本篇博客主要讲述的是有关二叉树的一些概念&#xff0c;性质以及部分性质的相关证明&#xff0c;如果大伙发现了啥错误&#xff0c;可以在评论区指出&#x1f618;&#x1f618; 1.二叉树…...

【SSM】Spring + SpringMVC +MyBatis 框架整合

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ SSM框架整合一、导入相关依赖二、配置web.xml文…...

【算法基础】一篇文章彻底弄懂Dijkstra算法|多图解+代码详解

博主简介&#xff1a;努力学习的大一在校计算机专业学生&#xff0c;热爱学习和创作。目前在学习和分享&#xff1a;算法、数据结构、Java等相关知识。博主主页&#xff1a; 是瑶瑶子啦所属专栏: 算法 &#xff1b;该专栏专注于蓝桥杯和ACM等算法竞赛&#x1f525;近期目标&…...

第二十三天01MySQL多表查询与事务

目录 1. 多表查询 1.1 概述 1.1.1 数据准备 1.1.2 介绍 1.1.3 分类 1.2 内连接 1.2.1 语法 1.2.2 案例演示 1.3 外连接 1.3.1 语法 1.3.2 案例演示 1.4 子查询 1.4.1 介绍 1.4.2 标量子查询 1.4.3 列子查询 1.4.4 行子查询 1.4.5 表子查询 1.5 案例 1.5.1 介…...

TCP协议详解

1.TCP的准备条件在古代的时候&#xff0c;古人们经常写书信进行交流&#xff0c;写书信的前提是你要知道这份信是要寄给谁在网络中&#xff0c;我们通过ip端口号找对目标对象&#xff0c;但是现在网站一般会对ip端口注册一个域名&#xff0c;所以我们一般就是对域名进行查找&am…...

Activiti7与Spring、Spring Boot整合开发

Activiti整合Spring 一、Activiti与Spring整合开发 1.1 Activiti与Spring整合的配置 1)、在pom.xml文件引入坐标 如下 <properties><slf4j.version>1.6.6</slf4j.version><log4j.version>1.2.12</log4j.version> </properties> <d…...

基于SpringBoot实现冬奥会运动会科普平台【源码+论文】

基于SpringBoot实现冬奥会科普平台演示开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#…...

一文吃透SpringBoot整合mybatis-plus(保姆式教程)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

C++ primer plus(第六版)编程练习答案 第4章 复合类型

一、程序清单 arrayone.cpp // arrayone.cpp -- small arrays of integers #include <iostream> int main() {using namespace std;int yams[3]; // creates array with three elementsyams[0] = 7; // assign value to first elementyams[1] = 8;yams[2] = 6;i…...

Kafka源码分析之Producer(一)

总览 根据kafka的3.1.0的源码example模块进行分析&#xff0c;如下图所示&#xff0c;一般实例代码就是我们分析源码的入口。 可以将produce的发送主要流程概述如下&#xff1a; 拦截器对发送的消息拦截处理&#xff1b; 获取元数据信息&#xff1b; 序列化处理&#xff1b;…...

springboot校友社交系统

050-springboot校友社交系统演示录像开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;e…...

python flask项目部署

flask上传服务器pyhon安装下载Anacondasudo wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh可根据需要安装对应的版本https://repo.anaconda.com/archive/解压anaconda压缩包bash Anaconda3-5.3.1-Linux-x86_64.sh解压过程中会…...

常见排序算法(C语言实现)

文章目录排序介绍插入排序直接插入排序希尔排序选择排序选择排序堆排序交换排序冒泡排序快速排序递归实现Hoare版本挖坑法前后指针版本非递归实现Hoare版本挖坑法前后指针版本快排的优化三值取中小区间优化归并排序递归实现非递归实现计数排序排序算法复杂度及稳定性分析不同算…...

基于jsp+ssm+springboot的小区物业管理系统【设计+论文+源码】

摘 要随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于小区物业管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了小区物业管理系统&#xff0c;它彻底改变了过去…...

Elasticsearch 学习+SpringBoot实战教程(三)

需要学习基础的可参照这两文章 Elasticsearch 学习SpringBoot实战教程&#xff08;一&#xff09; Elasticsearch 学习SpringBoot实战教程&#xff08;一&#xff09;_桂亭亭的博客-CSDN博客 Elasticsearch 学习SpringBoot实战教程&#xff08;二&#xff09; Elasticsearch …...

try-with-resource

try-with-resource是Java 7中引入的新特性&#xff0c;它可以方便地管理资源&#xff0c;自动关闭资源&#xff0c;从而避免了资源泄漏的问题。 作用 使用try-with-resource语句可以简化代码&#xff0c;避免了手动关闭资源的繁琐操作&#xff0c;同时还可以保证资源的正确关闭…...

leetcode148_排序链表的3种解法

1. 题目2. 解答 2.1. 解法12.2. 解法22.3. 解法3 1. 题目 给你链表的头结点head&#xff0c;请将其按升序排列并返回排序后的链表。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullp…...

使用stm32实现电机的PID控制

使用stm32实现电机的PID控制 PID控制应该算是非常古老而且应用非常广泛的控制算法了&#xff0c;小到热水壶温度控制&#xff0c;大到控制无人机的飞行姿态和飞行速度等等。在电机控制中&#xff0c;PID算法用的尤为常见。 文章目录使用stm32实现电机的PID控制一、位置式PID1.计…...

数学原理—嵌入矩阵

目录 1.嵌入矩阵的基本作用 2.嵌入矩阵的数学解释 3.嵌入矩阵在联合分布适应中的数学推导主要包括以下几个步骤 4.在JDA中&#xff0c;怎么得到嵌入矩阵 5.联合分布自适应中如何得到嵌入矩阵 &#xff08;另一种解释&#xff09; 1.嵌入矩阵的基本作用 在机器学习中&a…...

English Learning - L2 语音作业打卡 辅音翘舌音 [ʃ] [ʒ] 空气摩擦音 [h] Day31 2023.3.23 周四

English Learning - L2 语音作业打卡 辅音翘舌音 [ʃ] [ʒ] 空气摩擦音 [h] Day31 2023.3.23 周四&#x1f48c;发音小贴士&#xff1a;&#x1f48c;当日目标音发音规则/技巧:翘舌音 [ʃ] [ʒ]空气摩擦音 [h]&#x1f36d; Part 1【热身练习】&#x1f36d; Part2【练习内容】…...

记录springboot+vue+fastdfs实现简易的文件(上传、下载、删除、预览)操作

前言说明&#xff1a;springboot vue FastDFS实现文件上传&#xff08;支持预览&#xff09;升级版 FASTDFS部分 FASTDFS安装过程&#xff1a;基于centos 7安装FastDFS文件服务器 SpringBoot部分 springboot源码实现 package com.core.doc.controller;import com.baomid…...

Java中循环使用Stream应用场景

在JAVA中&#xff0c;涉及到对数组、Collection等集合类中的元素进行操作的时候&#xff0c;通常会通过循环的方式进行逐个处理&#xff0c;或者使用Stream的方式进行处理。例如&#xff0c;现在有这么一个需求&#xff1a;从给定句子中返回单词长度大于5的单词列表&#xff0c…...

网站备案作用/百度极速版下载

这题目的问题是 最后要加加 ,supplier.SName 虽然sid应该已经能分出行了 应该已经是不同的了 但是以前我写join的时候 都是要把所有的 除了count的列都group 这题是要写 distinct...

学历网站怎么做/女教师遭网课入侵直播录屏曝光se

本文主要介绍软件层面的性能调优。故&#xff0c;在此之前&#xff0c;请检查硬件状况。硬盘推荐SSD&#xff0c;一般SATA即可。网络千兆以上。可以安装Ganglia等工具&#xff0c;检查各节点的各硬件的运作状态&#xff1a;CPU,Memo,网络等等。调整参数入门级的调优可以从调整参…...

企业内部网站打不开/网络营销的职能是什么

文件夹 Directory类 静态类&#xff0c;无需实例化&#xff0c;引用 System.IO 命名空间即可使用 常用方法 //创建文件夹 Directory.CreateDirectory("D:\DownLoad");//判断文件夹是否存在 Directory.Exists("D:\DownLoad");//删除文件夹 空文件夹 Dir…...

桂林北站疫情防控最新消息/seo排名优化表格工具

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2022高压电工复审题库为高压电工模拟考试题库考前必练习题目&#xff01;2022高压电工理论题库及在线模拟考试根据高压电工新版教材大纲编写。高压电工模拟考试试题随时根据安全生产模拟考试一点通上查找答案。 1、【…...

外贸推广网站建设/谷歌seo价格

启动原理:调用mysqld_safe根据配置文件配置,然后mysqld_safe又去调用mysqld进程root 408 1 0 11:40 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file/data/3307/my.cnf mysql 1117 408 0 11:40 pts/0 00:00:00 /usr/local/m…...

改变网站字体/百度空间登录

Lucene的概述&#xff1a; Lucene(发音为 [lusen] )是一个非常优秀的开源的全文搜索引擎,我们可以在它的上面开发出各种全文搜索的应用来。Lucene在国外有很高的知名度&#xff0c;现在已经是Apache的顶级项目&#xff0c;在国内&#xff0c;Lucene的应用也越来越多。 Lucene的…...