Day23-磁盘管理与软件包管理

Day23-磁盘管理与软件包管理

  • 1. 什么是文件系统?
  • 2. 为什么磁盘分区后需要格式化?
  • 3. 常见文件系统类型
  • 4. 文件系统体系结构(图)
  • 5. 生产文件系统选型
    • 5.1 SAS/SATA磁盘对应文件系统的选择:
    • 5.2 常规的服务应用建议,系统默认是什么就选择什么就好,简单方便,例如:
  • 6. 磁盘性能指标
    • 6.1 磁盘常见性能指标
    • 6.2 磁盘性能指标查看说明
    • 6.3 使用iostat 监测磁盘I/O性能指标
  • 7. rpm软件包命令使用
    • 7.1 命令格式
    • 7.2 安装rpm包
    • 7.3 升级
    • 7.4 查询rpm包
    • 7.5 卸载常用选项
    • 7.6 rpm包练习
    • 7.7 rpm软件包安装软件痛点
    • 7.8 yum智能软件包管理
      • 7.8.1 什么是yum?
      • 7.8.2 什么是yum源
      • 7.8.3 常见互联网yum源
      • 7.8.4 Linux系统本地yum源配置
    • 7.9 yum命令使用实践
      • 7.9.1 使用yum查询软件包的方式
      • 7.9.2 使用yum安装软件包的方式
      • 7.9.3 使用yum重新安装软件包的方式(了解,工作中不用)
      • 7.9.4 使用yum更新软件包(慎用)
      • 7.9.5 使用yum删除软件包
      • 7.9.6 与yum仓库相关指令(扩展了解)

1. 什么是文件系统?

【文件系统】是一种【存储和组织计算机中数据文件的机制或方法】,
它使得对计算机内的数据的存储、访问和查找变得更容易、简单。
文件系统落到计算机里其实就是一个【应用软件】。
如ext2、ext3(CentOS5.x)、ext4(CentOS6.x)、xfs(CentOS7.x)、zfs和Reiserfs或FAT、NTFS等都是常见文件系统。
讲东西:1.举例。2.故事。3.用笔 画图讲。

2. 为什么磁盘分区后需要格式化?

磁盘分区在没有格式化前,操作系统是无法识别系统上磁盘分区格式的,也就无法存取文件目录属性和权限等内容,把分区格式化成操作系统支持的某个文件系统后,再存放数据,系统就会根据这个文件系统的格式进行存取文件了。

创建一个文件:inode,block(格式化生成文件系统时候产生的)。

3. 常见文件系统类型

文件系统类型名称用途
Second Extended filesystemext2最常用的Linux文件系统
Three Extended filesystemext3ext2的升级版,带日志功能,ext4是ext3升级版
VFAT filesystemvfatWindows95/98采用的文件系统
NT filesystemntfsWindows NT采用的文件系统
ISO 9660 filesystemiso9660大部份光盘所用的文件系统
UFS filesystemufsSun OS所用的文件系统
XFS filesystemxfs由SGI开发的先进的日志文件系统,支持超大容量文件
JFS filesystemjfsIBM的AIX使用的日志文件系统
ReiserFS filesystemreiserfs基于平衡树结构的文件系统suse。

[ext4,xfs]
不同的系统采用的文件系统:
SUSE Linux的默认文件系统ReiserFS文件系统。
IBM的AIX使用的jfs日志文件系统。
Sun OS所用的文件系统ufs。
CentOS7采用XFS文件系统。
CentOS6采用ext4文件系统。
CentOS5采用ext3文件系统。

4. 文件系统体系结构(图)

在这里插入图片描述

5. 生产文件系统选型

5.1 SAS/SATA磁盘对应文件系统的选择:

a.业务应用是[大量小文件]可选reiserfs(100K以内)。
大量小文件访问,衡量指标是IOPS,文件系统性能瓶颈在于文件元数据操作、目录操作、数据寻址。reiserfs对小文件作了优化,并使用B+ tree组织数据,加速了数据寻址,大大降低了open/create/delete/close等系统调用开销。mount时指定noatime, nodiratime, notail,减少不必要的inode操作,notail关闭tail package功能,以空间换取更高性能。因此,对于随机的小I/O读写,reiserfs是很好的选择。ext4文件系统也是适合的,IO调度算法选择deadline,block size = 4096, ext4关闭日志功能。

reiserfs mount参数:-o defaults, async, noatime, nodiratime, notail, data=writeback
ext4 mount参数:-o defaults, async, noatime, nodiratime, data=writeback, barrier=0
关闭ext4日志:tune2fs -O^has_journal /dev/sdb1

CDN公司,ext2

b.高并发的数据库业务可选xfs,例如:有门户网站MySQL业务选择xfs。
c.视频下载、流媒体、数据库选择ext4、xfs、小文件业务ext4也是OK的,通用文件系统。

d.有些CDN公司的cache业务服务器,曾经还选择了ext2文件系统,因为它没有日志功能,速度快,CDN是做网站加速服务的,对数据完整性要求不高,对速度要求高。

5.2 常规的服务应用建议,系统默认是什么就选择什么就好,简单方便,例如:

对于CentOS5.x系列,常规应用就选默认的ext3文件系统即可。
对于CentOS6.x系列,常规应用就选默认的ext4文件系统即可。
对于CentOS7.x系列,常规应用就选默认的xfs文件系统即可。
注意:如果服务器数量少,怎么选择都可以,如果海量的服务器,考虑维护成本和性能,需要折中选择。

taobao 主板接口 一个USB接口,去掉。
磁盘相关的命令;

gdisk       #gpt分区工具,常用于大于2T。*****
fdisk       #mbr分区工具,小于2T。*****
parted      #gpt分区工具,常用于大于2T,更复杂。
partprobe   #通知内核生效。
mkfs        #格式化(-t)***
mount       #挂载(-a,-t,-o)*****
umount      #卸载*****
mkswap      #格式化为swap***
swapon      #加载swap
swapoff     #关闭swap
dd          #生成一个模拟设备的文件。*****
free        #查内存 -m*****
lsblk       #查看分区及挂载信息
blkid       #查看块设备信息。
sync        #将数据从缓冲区同步到磁盘
xfs_repair  #xfs修复工具
fsck,e2fsck #ext修复工具。
tune2fs     #调整或查看ext2/ext3/ext4文件系统的参数(关闭ext4日志功能)
            # 关闭ext4日志:tune2fs -O^has_journal /dev/sdb1
dumpe2fs    #用于导出ext2/ext3/ext4文件系统信息,例:文件系统组成含超级快、块组、inode、block等信息。
resize2fs: #调整ext2/ext3/ext4文件系统大小
df          #查看磁盘挂载和使用量等信息 -h,-i *****
du          #查看目录以及之目录及文件大小 du -sh /etc/*  *****
iostat      #查看磁盘性能指标。
iotop       #实时查看磁盘性能情况。

在这里插入图片描述

6. 磁盘性能指标

6.1 磁盘常见性能指标

  • 使用率:指磁盘处理I/O的时间百分比。过高使用率(比如超过80%),通常意味着磁盘 I/O存在性能瓶颈。
  • IOPS(InputOutput Per Second):指每秒的 I/O 请求数(数据库服务,随机读写)。
  • 吞吐量:是指每秒的 I/O请求大小(视频大个文件)
  • 响应时间:指 I/O 请求从发出到收到响应的间隔时间

6.2 磁盘性能指标查看说明

工作时,要结合读写比例、I/O类型(随机还是连续)以及I/O的大小,综合来分析这些指标。在数据库服务、大量小文件等这类随机读写比较多的场景中,IOPS更能反映系统的整体性能;

在视频服务等顺序读写较多的场景中,吞吐量更能反映系统的整体性能。

6.3 使用iostat 监测磁盘I/O性能指标

iostat是最常用的磁盘 I/O性能监测工具,是 I/O statistics(输入/输出统计)缩写,iostat 工具将对系统的磁盘操作活动进行监视。特点是汇报磁盘活动统计情况,例如:每个磁盘的使用率、IOPS吞吐量等指标,同时也会汇报出CPU使用情况,监测数据来自/proc/diskstats。

[root@oldboy ~]# iostat -d -x 1 #展示所有的磁盘 |/0 指标,每1秒输出一组数据

在这里插入图片描述

性能指标表格如下

r/s 和 w/srkB/s 和 wkB/sr_await 和w_await%util
读写 IOPS读写吞吐量读写响应时间I/O 使用率

7. rpm软件包命令使用

7.1 命令格式

rpm [选项] [软件包名称]

7.2 安装rpm包

(1)安装常用选项

选项描述
-i安装rpm
-v显示安装详细信息
-h显示安装rpm进度

rpm -ivh 包名
可以是:

  1. 网址http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm
  2. 全路径带包名
  3. 包名
[root@oldboy ~]# cd /usr/src/
[root@oldboy src]# wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm
[root@oldboy src]# rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm 
warning: nginx-1.18.0-2.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...

1:nginx-1:1.18.0-2.el7.ngx         ################################# [100%]

7.3 升级

选项描述
-U如果老版本不存在则安装新版本,存在则升级新版本

rpm -Uvh 包名

wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm

[root@oldboy src]# rpm -Uvh nginx-1.20.0-1.el7.ngx.x86_64.rpm 
warning: nginx-1.20.0-1.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:nginx-1:1.20.0-1.el7.ngx         ################################# [ 50%]
Cleaning up / removing...
   2:nginx-1:1.18.0-2.el7.ngx         ################################# [100%]

注意事项:
1.升级前做好备份。
2.测试环境测试好。

7.4 查询rpm包

(1)查询常用选项

选项描述
rpm -q查看指定软件包是否安装
rpm -qa查看系统中已安装的所有RPM软件包列表*****
rpm -qi查看指定软件的详细信息
rpm -ql查询指定软件包所安装的目录、文件列表***
rpm -qc查询指定软件包的【配置文件】
rpm -qf查询文件或目录属于哪个RPM软件*****
rpm -qip查询未安装的rpm包详细信息
rpm -qlp查询未安装的软件包会产生哪些文件

rpm -qa 查看系统中已安装的所有RPM软件包列表

[root@oldboy src]# rpm -qa nginx
nginx-1.20.0-1.el7.ngx.x86_64

不要选;

[root@oldboy src]# rpm -qa|grep nginx
nginx-1.20.0-1.el7.ngx.x86_64

1)效率低。

2)含有nginxoldboy都出来。

rpm -qi 查看指定软件的详细信息

[root@oldboy src]# rpm -qi nginx 
Name        : nginx
Epoch       : 1
Version     : 1.20.0
Release     : 1.el7.ngx
Architecture: x86_64

rpm -ql 查询指定软件包所安装的目录、文件列表

[root@oldboy src]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_par

rpm -qc 查询指定软件包的【配置文件】

[root@oldboy src]# rpm -qc nginx
/etc/logrotate.d/nginx
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/mime.types
/etc/nginx/nginx.conf
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params

rpm -qf 查询文件(命令)或目录属于哪个RPM软件*

[root@oldboy src]# rpm -qf /etc/hosts
setup-2.8.71-11.el7.noarch
[root@oldboy src]# which cp
alias cp='cp -i'
	/usr/bin/cp
[root@oldboy src]# rpm -qf /usr/bin/cp   #必须指定全路径
coreutils-8.22-24.el7.x86_64
[root@oldboy src]# rpm -qf `which ifconfig`
net-tools-2.0-0.25.20131004git.el7.x86_64

缺点:
1.要查的文件或命令(全路径)不存在则查不着。
2.替代方案yum provides ifconfig联网查询

rpm -qip 查询未安装的rpm包详细信息

[root@oldboy src]# rpm -qip nginx-1.18.0-2.el7.ngx.x86_64.rpm 
warning: nginx-1.18.0-2.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Name        : nginx
Epoch       : 1
Version     : 1.18.0
Release     : 2.el7.ngx
Architecture: x86_64
Install Date: (not installed)
Group       : System Environment/Daemons
Size        : 2830200
License     : 2-clause BSD-like license
Signature   : RSA/SHA1, Thu Oct 29 23:35:52 2020, Key ID abf5bd827bd9bf62
Source RPM  : nginx-1.18.0-2.el7.ngx.src.rpm
Build Date  : Thu Oct 29 23:25:20 2020
Build Host  : ip-10-1-17-226.eu-central-1.compute.internal
Relocations : (not relocatable)
Vendor      : Nginx, Inc.
URL         : http://nginx.org/
Summary     : High performance web server
Description :
nginx [engine x] is an HTTP and reverse proxy server, as well as
a mail proxy server.

rpm -qlp 查询未安装的软件包会产生哪些文件

[root@oldboy src]# rpm -qlp nginx-1.18.0-2.el7.ngx.x86_64.rpm 
warning: nginx-1.18.0-2.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf

7.5 卸载常用选项

(1)卸载常用选项

选项描述
-e卸载软件
–force强制
–nodeps忽略依赖关系
[root@oldboy src]# rpm -qa nginx
nginx-1.20.0-1.el7.ngx.x86_64
[root@oldboy src]# rpm -e nginx

强制卸载,忽略依赖关系:

rpm -e --force --nodeps 包名

删除有关,都要谨慎

rm,mv           #find+xargs    
rpm -e --nodeps #永远不用。安装了不用理他,不启动就可以了。
yum remove      #卸载依赖,永远不用。安装了不用理他,不启动就可以了。

RPM 包校验(扩展了解)
软件相关的数据库存放于/var/lib/rpm 目录

参数描述
S文件的容量大小是否被改变
M文件的类型或者文件的属性是否被修改
5MD5 这一种指纹加密的内容已经不同
L路径已经被改变
U文件的所属主已被修改
G文件的所属组已被修改
T文件的创建时间已被改变

7.6 rpm包练习

1)查询arp命令是由哪个RPM软件包安装的?

[root@oldboy src]# rpm -qf $(which arp)
net-tools-2.0-0.25.20131004git.el7.x86_64

#系统里没有的方法

yum provides arp 

2)查询/etc/ssh/sshd_config属于哪个软件包。

[root@oldboy src]# rpm -qf /etc/ssh/sshd_config
openssh-server-7.4p1-21.el7.x86_64

#全路径
yum provides /etc/ssh/sshd_config

3)查询tree软件包都有哪些文件。

[root@oldboy src]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
[root@oldboy src]# mount -t iso9660 /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboy src]# 
[root@oldboy src]# ls /mnt/Packages/
yum install cowsay -y
[root@oldboy Packages]# cowsay "我是最棒的"

< 我是最棒的 >
    \   ^__^
     \  (oo)\_______
        (__)\       )\/\
            ||----w |
            ||     ||

yum install 安装报错:

You could try using --skip-broken to work around the problem
解决方法:
1./etc/yum.repos.d 清除此目录下所有无关repo结尾文件,只保留默认的。
2.yum clean all

yum –skip-broken update

7.7 rpm软件包安装软件痛点

1)软件包依赖问题。

测试:挂载光盘

ls /mnt/Packages/
rpm -ivh /mnt/Packages/bind-9.11.4-16.P2.el7.x86_64.rpm 

错误:依赖检测失败:

2)需要肉眼去寻找。
rpm工具常用用途是查询,尽量不用其安装。
yum软件自动帮管理员解决依赖,并安装。

7.8 yum智能软件包管理

7.8.1 什么是yum?

Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载.rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。

(PS: yum是生产常用安装工具)

7.8.2 什么是yum源

要想使用yum工具安装、更新软件,就需要有一个包含各种rpm软件包的软件仓库,这样的软件仓库就称为 yum 源。
yum源分为:
1)互联网yum源(阿里云、网易、清华源)。
2)局域网yum源(自己做一个yum源,http/ftp)(1.速度快。2.制作的rpm放到yum源)。
3)服务器本地yum源(上不了网,把iso作为yum源)。

7.8.3 常见互联网yum源

官方yum源:很多软件集合的在线仓库,也称为base基础源
epel源:也称为拓展源,拥有很多base源没有的软件
第三方源:比如nginx,zabbix,Docker等软件开发方开源软件的官方仓库
PS.yum源默认都放在/etc/yum.repos.d/目录下,以*.repo结尾
常见互联网yum源地址:
http://mirrors.aliyun.com/repo/

https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
https://mirrors.tuna.tsinghua.edu.cn/help/epel/

7.8.4 Linux系统本地yum源配置

1)互联网阿里云yum源配置
#默认系统是国外源,需要替换为国内的源
方法1:

[root@oldboy ~]# wget -q -O /etc/yum.repos.d/CentOS-Base.repo \
http://mirrors.aliyun.com/repo/Centos-7.repo

方法2:

curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2)互联网epel源配置
#扩展源,有很多软件在基本源中没有
方法1:

[root@oldboy ~]# wget -q -O /etc/yum.repos.d/epel.repo \
http://mirrors.aliyun.com/repo/epel-7.repo

方法2:

curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

方法3:

yum install epel-release

3)互联网特定软件官方源配置
Nginx web软件官方源,有最新的nginx版本,查找方法:
1)进入nginx.org,进入download页面。
2)页面结尾进入“Linux packages for stable and mainline versions.”即可。
3)配置如下

[root@oldboy ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo 
baseurl=http://nginx.org/packages/centos/7/$basearch/ 
gpgcheck=0
enabled=1
PS. http://nginx.org/en/linux_packages.html

7.9 yum命令使用实践

7.9.1 使用yum查询软件包的方式

[root@oldboy ~]# yum list
[root@oldboy ~]# yum list tree  #不需要yum list|grep tree.
[root@oldboy ~]# yum info ftp   #看软件包详细信息。

7.9.2 使用yum安装软件包的方式

[root@oldboy ~]# yum install tree      #需要确认
[root@oldboy ~]# yum install tree -y   #非交互

#安装本地的rpm包, 如果有依赖关系, 会自动从互联网软件仓库中下载所需依赖
[root@oldboy ~]# yum localinstall /mnt/Packages/bind-9.11.4-16.P2.el7.x86_64.rpm

#直接安装网络上的rpm包
[root@oldboy ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

7.9.3 使用yum重新安装软件包的方式(了解,工作中不用)

[root@oldboy ~]# yum install vsftpd

#1.如果不小心删除vsftpd配置文件
[root@oldboy ~]# rm -f /etc/vsftpd/vsftpd.conf

#2.可以对软件进行重新安装
[root@oldboy ~]# yum reinstall vsftpd

#3.检查软件的配置文件
[root@oldboy ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

7.9.4 使用yum更新软件包(慎用)

#对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@oldboy ~]# yum check-update

#更新acl软件
[root@oldboy ~]# yum update acl -y

#如下的执行很危险,这代表更新整个系统所有的软件,包括内核
[root@oldboy ~]# yum update -y

#注意事项:
1)生产线慎用,最好不用。
2)安装系统之后,上线前。
3)测试环境,模拟正式环境。然后上正式。

7.9.5 使用yum删除软件包

[root@oldboy ~]# yum install vsftpd -y
[root@oldboy ~]# yum remove samba -y
#注意:慎用,尽量不用。

7.9.6 与yum仓库相关指令(扩展了解)

#列出yum源可用的软件仓库
[root@oldboy ~]# yum repolist

#列出全部yum源可用和禁用的仓库
[root@oldboy ~]# yum repolist all

#查找某个命令或文件属于那个软件包(生产常用)
[root@oldboy ~]# yum provides /etc/my.cnf
[root@oldboy ~]# yum provides cd

打包压缩命令:

	tar *****
	gzip *** 用数据库备份  -d解包
	gzip  /etc/yum.repos.d/* #打包
	gzip -d * #解包,删除源文件。
	zip
	unzip *** 用于解包(zip包)
	zcat

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(C语言)回调函数

回调函数是什么&#xff1f; 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被⽤来调⽤其所指向的函数 时&#xff0c;被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅…

基于Java SSM框架实现众筹平台网站系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现众筹平台网站系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写&#xff0c;受到很多的追捧&#xff0c;“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架&#xff0c;通常更简单的数据源。Spring…

对缓冲区的初步认识——制作进度条小程序

对缓冲区的初步认识--进度条小程序 前言预备知识回车和换行的区别输出缓冲区/n 有清空输出缓冲区的作用stdout是什么&#xff1f;验证一切皆文件为什么是\n行刷新&#xff1f; 倒计时程序原理 代码实现为什么这里要强制刷新&#xff1f;没有会怎样&#xff1f;为什么是输出的是…

英福康INFICON XTC/3/2薄膜镀层控制仪软件和使用说明

英福康INFICON XTC/3/2薄膜镀层控制仪软件和使用说明

【嵌入式实践】【芝麻】【设计篇-3】从0到1给电动车添加指纹锁:项目整体规划

0. 前言 该项目是基于stm32F103和指纹模块做了一个通过指纹锁控制电动车的小工具。支持添加指纹、删除指纹&#xff0c;电动车进入P档等待时计时&#xff0c;计时超过5min则自动锁车&#xff0c;计时过程中按刹车可中断P档状态&#xff0c;同时中断锁车计时。改项目我称之为“芝…

[Python] 获取当前函数名的三种方法

使用__name__获取当前函数名 函数内和函数外都可以用__name__特殊属性。 def get_fun_name_1():fun_name get_fun_name_1.__name__print(fun_name)get_fun_name_1.__name__输出&#xff1a;get_fun_name_1 使用sys模块获取当前运行的函数名 sys._getframe()可以用来获取当…

编码器原理图

操作 旋转编码器提供两种交互方式&#xff1a; 每次用户旋转旋钮时&#xff0c;都会在 DT 和 CLK 引脚上产生低电平信号&#xff1a; 顺时针旋转会先使CLK引脚变为低电平&#xff0c;然后DT引脚也变为低电平。 逆时针旋转会使 DT 引脚首先变为低电平&#xff0c;然后 CLK 引脚…

linux环境安装cuda toolkit

1 全新安装 如果环境中没安装过cuda版本&#xff0c; 这种情况下比较简单。 直接在https://developer.nvidia.com/cuda-toolkit-archive选择对应版本下载安装即可。 如下为安装cuda toolkit 11.8. 2 环境中已经存在其他版本 这种情况下比较复杂一些。 首先要确认最高支持的…

NLP - 共现矩阵、Glove、评估词向量、词义

Word2vec算法优化 J(θ): 损失函数 问题&#xff1a;进行每个梯度更新时&#xff0c;都必须遍历整个语料库&#xff0c;需要等待很长的时间&#xff0c;优化将非常缓慢。 解决&#xff1a;不用梯度下降法&#xff0c;用随机梯度下降法 &#xff08;SGD&#xff09;。 减少噪音&…

Javaweb之SpringBootWeb案例之自动配置的原理分析的详细解析

3.2.3 原理分析 3.2.3.1 源码跟踪 前面我们讲解了在项目当中引入第三方依赖之后&#xff0c;如何加载第三方依赖中定义好的bean对象以及配置类&#xff0c;从而完成自动配置操作。那下面我们通过源码跟踪的形式来剖析下SpringBoot底层到底是如何完成自动配置的。 源码跟踪技巧…

python-分享篇-控制摄像头

文章目录 准备代码效果 准备 安装cv2 pip install opencv-python &#xff08;如果只用主模块&#xff0c;使用这个命令安装&#xff09; pip install opencv-contrib-python &#xff08;如果需要用主模块和contrib模块&#xff0c;使用这个命令安装&#xff09; 我的代码l里…

C语言:预处理

C语言&#xff1a;预处理 预定义符号#define定义常量定义宏宏与函数对比 #操作符##操作符条件编译头文件包含库文件包含本地文件包含嵌套文件包含 预定义符号 C语⾔设置了⼀些预定义符号&#xff0c;可以直接使⽤&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //…

ctf_show笔记篇(web入门---php特性)

目录 php特性 89&#xff1a;直接数组绕过preg_match当遇到数组时会直接报错输出0 90&#xff1a;这里利用了intval的特性 91&#xff1a;这里需要细节一点 92-93&#xff1a;这两题的方法很多可以发散思维 94&#xff1a;还是利用小数绕过例如4476.0 95&#xff1a;这里…

mysql根据指定顺序返回数据--order by field

在查询数据的时候&#xff0c;在in查询的时候&#xff0c;想返回的数据根据 in里的数据顺序返回&#xff0c;可以直接在orderby中通过 FIELD(字段名称逗号分隔的值的顺序) 进行指定&#xff1b;示例没有加 order by field添加 order by field效果

宝塔面板安装各种组件以及部署应用服务

在linux服务器安装宝塔面板 一、从宝塔官网下载exe安装包&#xff0c;安装命令从宝塔官网&#xff08;https://www.bt.cn/&#xff09;获取 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh二、安…

C++复习笔记——多态

1 多态 基本概念&#xff1a; 静态多态&#xff1a;编译时多态&#xff0c;运算符重载和函数重载动态多态&#xff1a;运行时多态&#xff0c;派生类重写基类的虚函数实现 静态多态和动态多态的区别就是函数地址是早绑定(静态联编&#xff0c;静态绑定)还是晚绑定(动态联编&a…

使用pyannote-audio实现声纹分割聚类

使用pyannote-audio实现声纹分割聚类 # GitHub地址 https://github.com/MasonYyp/audio1 简单介绍 pyannote.audio是用Python编写的用于声纹分割聚类的开源工具包。在PyTorch机器学习基础上&#xff0c;不仅可以借助性能优越的预训练模型和管道实现声纹分割聚类&#xff0c;还…

一文了解docker与k8s

随着 k8s 作为容器编排解决方案变得越来越流行&#xff0c;有些人开始拿 Docker 和 k8s 进行对比&#xff0c;不禁问道&#xff1a;Docker 不香吗&#xff1f; k8s 是 kubernetes 的缩写&#xff0c;8 代表中间的八个字符。 其实 Docker 和 k8s 并非直接的竞争对手两者相互依存…

蜻蜓FM语音下载(mediadown)

一、介绍 蜻蜓FM语音下载&#xff08;mediadown&#xff09;&#xff0c;能够帮助你下载蜻蜓FM音频节目。如果你是蜻蜓FM会员&#xff0c;它还能帮你下载会员节目。 二、下载地址 本站下载&#xff1a;蜻蜓FM语音下载&#xff08;mediadown&#xff09; 百度网盘下载&#…

【JS】解构赋值注意点,解构赋值报错

报错代码 const 小明 { email: 6, pwd: 66 } const 小刚 { email: 9, pwd: 99 }const { email } 小明 const { email } 小刚 报错图 原因 2个常量重复&#xff0c;重复在同一个作用域内是不能重复的&#xff0c;例如大括号内{const a 1; const a 2} 小伙伴A提问 问&…