Linux篇(权限管理命令)
目录
一、权限概述
1. 什么是权限
2. 为什么要设置权限
3. Linux中的权限类别
4. Linux中文件所有者
4.1. 所有者分类
4.2. 所有者的表示方法
属主权限
属组权限
其他权限
root用户(超级管理员)
二、普通权限管理
1. ls查看文件权限
2. 文件权限详解
3. 设置文件/文件夹权限
字母形式
数字形式
练习题
4. 特别说明
三、属主(zhu)与属组(zu)设置
1. 什么是属主与属组?
2. 为什么要修改属主与属组?
3. chown修改文件的属主
4. chgrp修改文件的属组
5. chown同时修改属主与属组
四、特殊权限
1. 设置位S(SetUid)
2. 沾滞位T (sticky bit)
五、ACL访问控制
1. 基本命令
2. getfacl命令
3. setfacl命令
六、umask
1. 什么是umask
2. umask值
3. 修改umask值
一、权限概述
1. 什么是权限
在多用户计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权利
在Linux 中分别有读、写、执行权限:
权限针对文件 | 权限针对目录 | |
读r | 表示可以查看文件内容;cat | 表示可以(ls)查看目录中存在的文件名称 |
写w | 表示可以更改文件的内容;vim 修改,保存退出 | 表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir) |
执行x | 表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh) | 表示是否可以进入目录中(cd) |
一般给予目录读权限时,也将会给其执行权限,属于“套餐”组合
2. 为什么要设置权限
- 服务器中的数据价值
- 员工的工作职责和分工不同
- 应对自外部的攻击
- 内部管理的需要
3. Linux中的权限类别
Linux 系统一般将文件权限分为3 类:
read(读)
write(写)
execute(执行)
4. Linux中文件所有者
4.1. 所有者分类
对于文件的所有者,又分为3类:
user(属主)
group(属组)
other(其他用户)
user(属主):文件的创建者或拥有者,换句话说,某个账户对这个文件有的权限
A 一个人
B 多个人
group(属组):文件所属的用户组,换句话或,某个用户组对这个文件有的权限。
A 一个人
B 多个人
other(其他用户):除了上面提到的属主和属组之外的所有用户,对这个文件有的权限
A 一个人
B 多个人
举例:
爱情公寓拆迁,拆迁款按照政策,分配如下:一半给张伟,另一半由爱情公寓3601和3602室的其余的伙伴平分
如果把拆迁款看做一个文件,那么这个文件的权限是:
属主:张伟
属组:3601和3602的其他伙伴,他们是一个组
其他用户:没有
4.2. 所有者的表示方法
属主权限
u(the user who owns it)(属主权限)
用 u 表示,文件所有者,默认为文档的创建者
属组权限
g(other users in the file's group)(属组权限)
用 g 表示,在文件所属组(默认是创建文件的用户的主组)里的用户
其他权限
o(other user not in the file's group)(其他权限)
用 o 表示,既不是文件的创建者,也不在文件属组里的用户,称为其他人!
linux ugo权限,所谓ugo,就是User, Group,Other三个单词的首字母
就指属主,主组,其他三种权限。
ugo 等于 u + g + o
a (all) 等于u + g + o
root用户(超级管理员)
在Linux 中,root 用户,在所有用户中 root 用户 拥有最大的权限 ,可以管理着普通用户,设置文档的权
限时不必考虑 root 用户
二、普通权限管理
1. ls查看文件权限
要设置权限,就需要知道文件的一些基本属性和权限的分配规则
在Linux 中,ls 命令常用来查看文档的属性,用于显示文件的文件名和相关属性
ls命令本人之前概述过,用于查看文件信息,简写用法:ll
用法一:ll
示例代码:
# ll
含义:查看当前文件夹下的所有目录和文件的详细信息

2. 文件权限详解
Linux 中存在三类身份:
属主(owner拥有者)
属组(group用户组)
其他用户(others)
各自有不同的权限,对于一个文档来说,其权限具体分配如下:
linux一共有7种文件类型,分别如下:
-:普通文件
d:目录文件
l: 软链接(类似Windows的快捷方式)
下面四种是特殊文件:
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如猫等串口设备)
s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)
文件权限对应关系:对应数字
权限 | 对应数字 | 意义 |
r | 4 | 可读 |
w | 2 | 可写 |
x | 1 | 可执行 |
前10位字符表示含义:第1位:表示文件类型第2-4位:表示文件所有者的权限情况,第2位r表示读权限,第3位w表示写权限,第4位x表示执行权限第5-7位:表示与文件所有者同组的用户的权限情况,第5位r表示读权限,第6位-表示不可写,第7位x表示执行权限第8-10位:表示除了组外的其他用户权限情况,第8位r表示读权限,第9位-表示不可写,第10位x表示执行权限简述:第1位:表示文件类型第2-4位:表示文件 属主(所有者)的权限情况第5-7位:表示与文件 属组(用户组)的用户的权限情况第8-10位:表示 其他(除了属主和属组之外的其他用户)权限情况
3. 设置文件/文件夹权限
命令:chmod
语法:# chmod [选项] 权限模式 文档
作用:增加或者减少当前文件所有者的权限(不能改变所有者,只能改变现有所有者的权限)
常用选项:-R:递归设置权限 (当文档类型为文件夹的时候)
权限模式:就是该文档需要设置的权限信息
文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。
注意点:如果想要给文档设置权限,操作者要么是root 用户,要么就是文档的所有者
字母形式
字母形式(对应前面提到的u g o,r w x的表示方法)
使用root用户登录
用法一:chmod -R 要增加的权限 文件名
示例代码:
#chmod -R u+x quanxian.txt
含义:对于quanxian.txt文件,给 属主 增加 执行 权限
用法二:chmod -R 多个要增加的权限 文件名
示例代码:
#chmod -R g+x,o+x quanxian.txt
含义:对于quanxian.txt文件,给 属组 增加 执行 权限,给 其他 增加 执行权限
注意:同时改变多个对象的权限,中间使用“逗号“分割。
用法三:chmod -R 要减少的权限 文件名
示例代码:
#chmod -R o-x quanxian.txt
含义:对于quanxian.txt文件,给 其他用户 减少 执行权限
<img src="assets/chmod03.jpg" style="width:960px" />
用法四:chmod -R 要赋予的权限 文件名
示例代码:
#chmod -R u=rwx,g=rwx,o=rwx quanxian.txt
含义:对于quanxian.txt文件,给属主,属组,其他,都 赋予 读,写,执行权限
用法五:chmod -R 要赋予的权限 文件夹
示例代码:
#chmod -R a=rwx quanxianfolder
含义:对于quanxianfolder文件夹,给所有用户(属主,属组,其他),都 赋予 读,写,执行权限
相关参数总结:
字母 | 选项 | 作用 |
u(谁) | user | 属主 |
g(谁) | group | 属组 |
o(谁) | other | 其他用户 |
a(谁) | all | 所有人(包含ugo) |
+(作用) | 加 | 增加作用 |
-(作用) | 减 | 移除作用 |
=(作用) | 等于 | 赋值作用 |
r(权限) | read | 可读权限 |
w(权限) | write | 可写权限 |
x(权限) | execute | 可执行权限 |
-(权限) | - | 没有任何权限 |
1、如果同时设置多个身份的权限时候,每个身份之间需要通过英文逗号分开:
例如:
#chmod -R u=rwx,g=rwx,o=rwx quanxian.txt
2、在权限设置中,如果有两部分权限一样则可以合在一起写
例如:
# chmod u=rwx,g=rwx
等价于:
# chmod ug=rwx
数字形式
经常会在技术网站上看到类似于# chmod 777 a.txt 这样的命令,这种形式称之为 数字形式权限
文件权限与数字的对应关系,我们会发现没有7这个数字
权限 | 对应数字 | 意义 |
r | 4 | 可读 |
w | 2 | 可写 |
x | 1 | 可执行 |
权限与数字对应详解
数字 | 权限 | 作用 |
0 | - | 不能读,不能写,不能执行 |
1 | execute | 不能读,不能写,可执行 |
2 | write | 不能读,可写,不能执行 |
3 | 2+1 | 不能读,可写,可执行 |
4 | read | 可读,不能写,不能执行 |
5 | 4+1 | 可读,不能写,可执行 |
6 | 4+2 | 可读,可写,不能执行 |
7 | 4+2+1 | 可读,可写,可执行 |
技巧:不要背上面的表格,只要记住R,W,X对应4,2,1,之后做10以内加法
用法六:chmod -R 要赋予的权限(数字形式) 文件名
示例代码:
#chmod -R 765 quanxian.txt
含义:对于quanxian.txt文件,给属主所有权限,属组读写权限,其他读和执行权限
注意:
全部权限:7 = r+w+x = 4 + 2 + 1
读写权限:6 = r+w = 4 + 2
读和执行:5 = r+x = 4 + 1
综上所述,u=7,g=6,o=5
问题:用超级管理员设置文档的权限命令是# chmod -R 731 shop,请问这个命令有没有什么不合理的地方?
分析:
所有者权限:7 = 4 + 2 + 1 = 读 + 写 + 执行
同组用户权限:3 = 2 + 1 = 写 + 执行
其他用户权限:1 = 执行问题在权限731中的3权限,3表示写+执行权限,但是写又必须需要能打开之后才可以写,因此必须需要具备可读权限,因此此权限设置不合理。注:实际工作中,各位小伙伴在设置权限时一定不要设置这种"奇葩权限",一般情况下,单独出现2、3的权限数字一般都是有问题的权限。
一般linux系统中,不允许出现 777 的权限
练习题
1、使用root 用户设置文件夹/root/shop 的权限为:属主全部权限,属组拥有读和执行权限,其他用户没有权
限,请使用数字权限的形式设置
rwx=7,rx=4+1=5,0
# chmod -R 750 /root/shop
2、请置文件/root/readme.txt 的权限,权限要求为:
属主拥有全部权限,属组要求可以读写,其他用户只读,要求使用数字形式;
rwx=7,rw=4+2=6,r=4
# chmod 764 /root/readme.txt
3、请设置/root/email.doc权限,权限要求只有属主可以读写,除此之外任何人没有权限;
rw=6,0,0
# chmod 600 /root/email.doc
4. 特别说明
在Linux 中,如果要删除一个文件,不是看文件有没有对应的权限,
而是看文件所在的目录是否有写权限,如果有才可以删除(同时必须具备执行权限)
权限针对文件 | 权限针对目录 | |
读r | 表示可以查看文件内容 | 表示可以(ls)查看目录中存在的文件名称 |
写w | 表示可以更改文件的内容 | 表示是否可以删除目录中的子文件或者新建子目录(rm/touch/mkdir) |
执行x | 表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh) | 表示是否可以进入目录中(cd) |
三、属主(zhu)与属组(zu)设置
1. 什么是属主与属组?
属主:所属的用户,文档所有者,这是一个账户,这是一个人
属组:所属的用户组,这是一个组
基本语法:# ls -l查看文档属主与属组
2. 为什么要修改属主与属组?
举例:
一个财务表格,以前由胡一菲进行更新,她有读写权限,现在胡一菲去阿拉善沙漠找曾老师了,改权限没用,
需要把属主改成诸葛大力,由诸葛大力更新
3. chown修改文件的属主
基本语法:# chown [-R] 新文档拥有者名称 文档路径
作用:更改文档的所属用户(change owner)
选项:-R 代表递归修改文件的属主
示例代码1:将readme.txt文档属主更改为 zhengge
#touch readme.txt
#ll readme.txt#chown zhengge readme.txt
将readme.txt文件的属主设置为zhengge#ll readme.txt
示例代码2:将shop文件夹的拥有者更改为zhengge
#mkdir shop
#ll
#chown zhengge shop
将shop文件夹的属主设置为zhengge#ll
4. chgrp修改文件的属组
基本语法:# chgrp [-R] 新文档组名称 文档的路径
作用:更改文档的所属用户组(change group)
示例代码1:将readme.txt文档所属组修改为 zhengge
错误信息:invalid user: ‘zhengge’
不可用的账户"zhengge"
原因:检查是否有这个账户,如果没有,需要新建
示例代码2:将shop文档所属组修改为 zhengge
5. chown同时修改属主与属组
基本语法:语法:# chown [-R] username:groupname 文档路径
示例代码:将readme.txt文件的拥有者与所属组都更改为root
#ll readme.txt
#chown root:root readme.txt
将readme.txt文件的属主和属组同时设置为root#ll readme.txt
注意:
一般来说,chown 指令只有是由系统管理者(root)所使用,
普通用户没有权限可以改变别人的档案拥有者,也没有权限可以将自己的档案拥有者改设为别人
只有系统管理者(root)才有这样的权限
四、特殊权限
1. 设置位S(SetUid)
作用:为了让一般使用者临时具有该文件所属主/组的执行权限
例如:
/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,
这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?
可以临时让他们具有root的权限,而这个 s 权限就是用来完成这个特殊任务的
s 权限只能应用在二进制的可执行文件上
示例代码:不想让普通用户修改自己的密码
which命令可以用于查看二进制可执行文件所在位置
去除s权限,基本语法:
#which passwd
#ll /usr/bin/passwd #chmod u-s /usr/bin/passwd
或者
#chmod 0755 /usr/bin/passwd
去除passwd程序的s权限#ll /usr/bin/passwd
测试普通用户:
# 查看当前用户
whoami
# 修改密码
passwd
注意:
0755最前面的0表示不使用任何特殊权限,如果想使用数字设置特殊权限,可以使用4表示设置S位
2. 沾滞位T (sticky bit)
命令:chmod
语法:# chmod [选项] 文件夹
作用:只允许文件的创建者和root用户删除文件
常用选项:
o+t 添加粘滞位
o-t 去掉粘滞位
用法:chmod o+t 目录名
示例代码:
#chmod o+t
含义:给目录增加粘滞位权限。
举例:
公司多个部门公用一个文件夹work,为了让所有人都能访问,work文件夹赋予了777权限,
用户root新建了一个文件root.txt,发现被别人删除了,我们希望root建立的文件,只有root自己可以删。
步骤1:root用户下操作
root用户新建文件夹/work,并且新建两个文件root.txt和root1.txt,赋予/work文件夹和下面的文件777权限
#mkdir /work
#cd /work
#touch root.txt
#touch root1.txt
#chmod -R 777 /work
#ll -d /work
<img src="assets/teshu02.jpg" style="width:960px" />
步骤2: wangwu用户下操作
在没有设置粘滞位的时候,wangwu可以删除root创建的文件
cd /work
ll -d /work
ll
rm -rf root.txt
ll
<img src="assets/teshu03.jpg" style="width:960px" />
步骤3:root用户下操作:
给/work文件夹添加粘滞位
#ll -d /work/
#chmod o+t /work
#ll -d /work/
<img src="assets/teshu04.jpg" style="width:960px" />
步骤4:wangwu用户下操作
发现添加粘滞位后,无法删除root2.txt文件
#ll -d /work/
#chmod o+t /work
#ll -d /work/
<img src="assets/teshu05.jpg" style="width:960px" />
步骤5:root用户下操作
去掉/work文件夹的取消粘滞位
#ll -d /work/
#chmod o-t /work
#ll -d /work/
<img src="assets/teshu06.jpg" style="width:960px" />
步骤6:wangwu用户下操作
wangwu用户下,发现又可以删除了
<img src="assets/teshu07.jpg" style="width:960px" />
五、ACL访问控制
问题:我们学过的所有者身份包含哪些?
答案:ugo,属主,属组,其他。
问题:我们学过的文件权限包含哪些?
答案:rwx,读写执行,特殊s,t
ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件
的权限
1. 基本命令
getfacl命令:查看文件的ACL策略及权限
setfacl命令: 给文件针对某个用户或者某个组来增加(设置)ACL策略
2. getfacl命令
3. setfacl命令
-m : 修改acl策略
-x :去掉某个用户或者某个组的权限
-b :删除所有的acl策略
-R :递归,通常用在文件夹
mask:mask定义除other和所有人(拥有者)外的最大权限
setfacl -m u:用户名:rwx /usr/local/shichangbu 给单个用户单独加权限setfacl -m g:用户组名:rwx /usr/local/shichangbu 给单个组单独加权限setfacl -x u:用户 /usr/local/shichangbu 去掉某个用户的权限
setfacl -x g:组名 /usr/local/shichangbu 去掉某个组的acl策略setfacl -b -R /usr/local/shichangbu 删除所有的acl策略,递归子文件例如:
setfacl -m u:user01:rw file1 针对于单个用户给可读可写权限
setfacl -m g:sysadmin:rw file1 针对于单个组给可读可写权限
示例代码1:给newuser01用户单独在市场部文件夹上增加rx权限
#mkidr /shichangbu
#cd /shichangbu
#touch file{1..5}.txt
#chown -R root:itheima shichangbu/
递归设置shichangbu文件夹的属主是root,属组是itheima
#getfacl shichangbu/#useradd newuser01
#passwd newuser01 #setfacl -m u:newuser01:rx -R /usr/local/shichangbu/
单独设置newuser01对于shichangbu文件夹的rx权限,并且递归包含所有子文件#getfacl /usr/local/shichangbu
查看/usr/local/shichangbu文件夹的ACL权限
六、umask
1. 什么是umask
umask表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限)
例如:
root用户下,touch a ,文件a的默认权限是644
普通用户下,touch b ,文件b的默认权限是664
644和664我们并没有设置,其中的关键因素就是umask
最大默认权限:
文件666
文件夹777
2. umask值
可以使用命令umask来查看umask的值:
基本语法:# umask
注:0022中第一位0代表特殊权限位,可以不设置。
umask的默认值,在root和普通用户下是不一样的,分别是022和002
分析:
结合上述的举例得知:
默认权限=最高权限-umask( 644=666-022 // 664=666-002 )
但是:
当umask为011,创建文件的默认权限应该是655,但是实际运行的时候默认权限是 666
666 -> rw-rw-rw-
011 -> -----x--x
相减得:,
666 -> -rw-rw-rw-
注意:
这个特殊情况仅出现在文件,因为文件[二进制文件除外]没有x执行权限),
所以,查看文件的umask时我们要特别注意是否有奇数位(x表示1)
3. 修改umask值
umask + 数值修改当前用户的umask 如:# umask 044
不过这样设置的umask会在用户重新登录的时候恢复原来的值,我们可以把修改的umask保存在~/.bashrc
操作步骤:
#vim ~/.bashrc
① 在文件末尾添加umask 044
② 保存退出
③ 重新登录用户则保存成功
示例代码:
相关文章:

Linux篇(权限管理命令)
目录 一、权限概述 1. 什么是权限 2. 为什么要设置权限 3. Linux中的权限类别 4. Linux中文件所有者 4.1. 所有者分类 4.2. 所有者的表示方法 属主权限 属组权限 其他权限 root用户(超级管理员) 二、普通权限管理 1. ls查看文件权限 2. 文件…...

深入理解 Spark 中的 Shuffle
Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…...

leetcode-8-字符串转整数
题解: 代码:...

SQL注入注入方式(大纲)
SQL注入注入方式(大纲) 常规注入 通常没有任何过滤,直接把参数存放到SQL语句中。 宽字节注入 GBK 编码 两个字节表示一个字符ASCII 编码 一个字节表示一个字符MYSQL默认字节集是GBK等宽字节字符集 原理: 设置MySQL时错误配置…...

OpenCV基础(1)
1.图像读写与窗口显示 1.1.imread读取图像文件 Mat cv::imread(const string &filename,int flags IMREAD_COLOR); filename:要读取的图像文件名flags:读取模式,可以从枚举cv::ImreadModes中取值,默认取值是IMREAD_COLOR&am…...

【freertos】FreeRTOS信号量的介绍及使用
FreeRTOS信号量 一、概述二、PV原语三、函数接口1.创建一个计数信号量2.删除一个信号量3.信号量释放4.在中断释放信号量5.获取一个信号量,可以是二值信号量、计数信号量、互斥量。6.在中断获取一个信号量,可以是二值信号量、计数信号量7.创建一个二值信号…...

React Native 全栈开发实战班 - 图片加载与优化
在移动应用中,图片加载与优化 是提升用户体验和减少资源消耗的重要环节。图片加载不当可能导致应用卡顿、内存泄漏甚至崩溃。本章节将介绍 React Native 中常用的图片加载方法,包括 Image 组件的使用、第三方图片加载库(如 react-native-fast…...

Golang云原生项目:—实现ping操作
熟悉报文结构 ICMP校验和算法: 报文内容,相邻两个字节拼接到一起组成一个16bit数,将这些数累加求和若长度为奇数,则将剩余一个字节,也累加求和得出总和之后,将和值的高16位与低16位不断求和,直…...

mysql如何查看当前事务的事务id
-- 开启一个事务,但不执行写操作 START TRANSACTION; -- 查询 InnoDB 事务信息 SELECT * FROM information_schema.innodb_trx;在 MySQL 的 MVCC (多版本并发控制) 中,事务 ID (Transaction ID) 是由 InnoDB 存储引擎分配的,它的分配机制与事…...

在linux里如何利用vim对比两个文档不同的行数
在Linux中,可以使用vimdiff命令来对比两个文档中不同的行。首先确保你的系统中安装了vim编辑器。 打开终端,使用以下命令来启动vimdiff: vimdiff file1 file2 这里file1和file2是你想要对比的两个文件的路径。 vimdiff会以并排方式打开两…...

深入解析Python中的逻辑回归:从入门到精通
引言 在数据科学领域,逻辑回归(Logistic Regression)是一个非常重要的算法,它不仅用于二分类问题,还可以通过一些技巧扩展到多分类问题。逻辑回归因其简单、高效且易于解释的特点,在金融、医疗、广告等多个…...

【数据库】mysql数据库迁移前应如何备份数据?
MySQL 数据库的备份是确保数据安全的重要措施之一。在进行数据库迁移之前,备份现有数据可以防止数据丢失或损坏。以下是一套详细的 MySQL 数据库备份步骤,适用于大多数情况。请注意,具体的命令和工具可能因 MySQL 版本的不同而有所差异。整个…...

C语言——鸡兔同笼问题
没注释的源代码 #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int tou 10; i…...

数据结构王道P234第二题
#include<iostream> using namespace std; int visit[MAxsize]; int color[MaxSize];//1表示红,2表示白; bool dfs(Graph G, int i){visit[i]1;ArcNode *p;bool flag1;for(pG.vertices[i].firsrarc; p ; pp->next){int jp->adjvex;if(!visi…...

层归一化和批归一化
层归一化是针对某一样本的所有特征,批归一化是针对所有样本的某一特征。 计算公式:(当前值 - 均值)/ 标准差。 作用:缓解梯度消失和梯度爆炸的问题,并提高网络的泛化性能。 为什么Transform和BERT中使用层归…...

Spring Cloud Gateway 网关
微服务网关 Spring Cloud Gateway https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories Spring Cloud 在版本 2020.0.0 开始,去除了 Zuul 网关的使用,改用 Spring Cloud Gateway 作为网关…...

LabVIEW中的UDP与TCP比较
在LabVIEW中,UDP和TCP可以用于不同的网络通信场景,开发者可以根据需求选择合适的协议。以下是结合LabVIEW开发时的一些比较和应用场景: 1.TCP在LabVIEW中的应用: 可靠性高的场景:当开发一个对数据传输的准确性和完整…...

半导体器件与物理篇3 P-N结
热平衡时的PN结 pn结的定义:由p型半导体和n型半导体接触形成的结 pn结的特性和关键变量包括:整流性(即电流单向导通的特性)、平衡费米能级(费米能级 E F E_F EF为常数, d E F d x 0 )、内建电势 \frac…...

深入剖析String类的底层实现原理
嘿嘿,家人们,今天咱们来模拟实现string,好啦,废话不多讲,开干! 1:string.h 1.1:构造函数与拷贝构造函数 1.1.1:写法一 1.1.2:写法二(给缺省值) 1.2:赋值运算符重载与operatror[]获取元素 1.3:容量与迭代器 1.4:reserve与resize 1.5:清空与判断是否为空 1.6:push_back与…...

#其它:面试题
第一面试官提问如下: 1、自我介绍 2、根据项目提问:混合开发调取api的通讯方式 3、技术提问:如何隐藏div,但是div需要存在 使用 visibility 隐藏: 1.visibility: hidden2.display: none 3.opcity: 04、css塌陷问题…...

计算机视觉中的双边滤波:经典案例与Python代码解析
🌟 计算机视觉中的双边滤波:经典案例与Python代码解析 🚀 Hey小伙伴们!今天我们要聊的是计算机视觉中的一个重要技术——双边滤波。双边滤波是一种非线性滤波方法,主要用于图像去噪和平滑,同时保留图像的边…...

【AI日记】24.11.17 看 GraphRAG 论文,了解月之暗面
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 核心工作 内容:看 GraphRAG 论文时间:4 小时评估:不错,继续 非核心工作 内容:了解国内大模型方向,重点了解了创业独角兽-月之暗面&…...

Front Panel Window Bounds 与 Front Panel Window Bounds 的区别与应用
在LabVIEW中,Front Panel Window Bounds 和 Front Panel WindowBounds 是两个不同的属性节点,用于描述前面板窗口的位置和大小。它们的区别主要体现在它们表示的是窗口的不同部分,具体如下: 1 Window Bounds:调整整个…...

比较TCP/IP和OSI/RM的区别
一、结构不同 1、OSI:OSI划分为7层结构:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 2、TCP/IP:TCP/IP划分为4层结构:应用层、传输层、互联网络层和主机-网络层。 二、性质不同 1、OSI:OSI是制定…...

【Java项目】基于SpringBoot的【招聘信息管理系统】
技术简介:系统软件架构选择B/S模式、SpringBoot框架、java技术和MySQL数据库等,总体功能模块运用自顶向下的分层思想。 系统简介:招聘信息管理系统的功能分为管理员,用户和企业三个部分,系统的主要功能包括首页、个人中…...

【论文笔记】LLaMA-VID: An Image is Worth 2 Tokens in Large Language Models
🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: LLaMA-VID: An Image is W…...

使用Web Storage API实现客户端数据持久化
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Web Storage API实现客户端数据持久化 使用Web Storage API实现客户端数据持久化 使用Web Storage API实现客户端数据持久化…...

基于STM32F103的秒表设计-液晶显示
基于STM32F103的秒表设计-液晶显示 仿真软件: Proteus 8.17 编程软件: Keil 5 仿真实现: 在液晶1602上进行秒表显示,每100ms改变一次数值,一共三个按键,分为启动按键、暂停按键、复位按键。 电路介绍: 前面章节里已经和大家介绍了使用数码管设计的秒表,本次仿真将数…...

ReentrantLock的具体实现细节是什么
在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchronized 不适用的情况下,提供一种可以选择的高级功能。 在 Java 中每个对象都隐式包含一个 monitor(监…...

【JavaScript】this 指向
1、this 指向谁 多数情况下,this 指向调用它所在方法的那个对象。即谁调的函数,this 就归谁。 当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。&#x…...