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

《Linux从小白到高手》理论篇(四):Linux用户和组相关的命令

  1. List item
    本篇介绍Linux用户和组相关的命令,看完本文,有关Linux用户和组相关的常用命令你就掌握了99%了。Linux用户和组相关的命令可以分为以下六类:

一.用户和用户组相关查询操作命令:

Id

id命令用于显示用户的身份标识。常见用法:
1、基本用法
显示当前用户的信息:

iduid=1000(user1) gid=1000(group1) groups=1000(group1),4(adm),24(cdrom),27(sudo),46(plugdev),116(lpadmin),126(sambashare)

//显示了当前用户的用户 ID(uid)、所属主组 ID(gid)以及所属的其他(groups)。
显示特定用户的信息:

 id username

例如:id user2,将显示用户 “user2” 的身份标识信息。
2、选项用法
-u:只显示用户 ID。

id -u username

例如:id -u user3,仅显示用户 “user3” 的用户 ID。
-g:只显示用户所属主组的组 ID。

id -g username

-G:显示用户所属的所有组的组 ID。

id -G username

-n:结合上述选项使用,以名称而不是数字显示用户 ID、组 ID 等信息。

id -un username

这将以名称形式显示用户的用户名,而不是用户 ID。

 id -gn username

显示用户所属主组的组名。

id -Gn username

显示用户所属的所有组的组名。假设系统中有用户 “testuser”,其属于 “testgroup” 组以及 “othergroup” 组,则:
id testuser:输出完整的用户身份标识信息,包括用户 ID、主组 ID 和所属的所有组。
id -u testuser:只显示用户 ID。
id -g testuser:显示主组 ID。
id -G testuser:显示所有组 ID。
id -un testuser:以名称形式显示用户名。
id -gn testuser:以名称形式显示主组名。
id -Gn testuser:以名称形式显示所有组名。

finger

finger命令用于显示系统中用户的信息。常见用法:
1、基本用法
显示特定用户的信息:

 finger username

例如,finger user1将显示用户 “user1” 的详细信息,包括用户名、主目录、登录 shell、登录时间等。
2、选项用法
-s:以简短格式显示用户信息,只包括用户名、登录名、真实姓名、终端类型、空闲时间、登录时间、办公地点和办公电话等信息。

finger -s username

-l:以长格式显示用户信息,提供更详细的信息,包括用户名、主目录、登录 shell、邮箱、计划文件、项目文件等。

finger -l username

-p:禁止显示用户的计划文件和项目文件信息。

finger -p username

例如:
finger -s user2:以简短格式显示用户 “user2” 的信息。
finger -l user3:以长格式显示用户 “user3” 的信息。
finger -p user4:显示用户 “user4” 的信息,但不包括计划文件和项目文件信息。
注:在一些 Linux 发行版中,可能需要安装额外的软件包才能使用finger命令;出于安全考虑,一些系统可能会禁用finger服务或限制其使用。

pwck

pwck命令用于验证用户账号信息的完整性。常见用法:
1、基本用法
直接运行pwck命令,它会检查/etc/passwd和/etc/shadow文件中用户账号信息的一致性和正确性,如果/etc/passwd中的数据字段错误会提示。
它会检查以下内容:
–用户账号是否在两个文件中都存在且信息一致。
–用户主目录是否存在。
–用户的登录 shell 是否合法等。
2、选项用法
-r:以只读模式运行,只报告错误而不进行任何修改。

pwck -r

-s:以安静模式运行,只显示严重错误信息。

pwck -s

注意事项:
在运行pwck命令之前,最好备份/etc/passwd和/etc/shadow文件,以防意外情况发生。如果发现错误,根据错误提示谨慎进行修复,避免因错误操作导致系统用户管理出现问题。

grpck

和pwck功能相近,这是检查用户组的。grpck命令用于检查 /etc/group 和 /etc/gshadow 文件中组账号信息的完整性。常见用法:
1、基本用法
直接运行 grpck 命令,它会检查组账号信息的一致性和正确性。它主要检查以下内容:
–组账号是否在两个文件中都存在且信息一致。
–组中成员列表是否正确等。
2、选项用法
-r:以只读模式运行,只报告错误而不进行任何修改。

 grpck -r

-s:以安静模式运行,只显示严重错误信息。

grpck -s

注意事项:
在运行 grpck 命令之前,最好备份 /etc/group 和 /etc/gshadow 文件,以防意外情况发生。如果发现错误,应根据错误提示谨慎进行修复,避免因错误操作导致系统组管理出现问题。

二.用户和用户组增删修改相关命令:

groups

groups命令用于显示指定用户所属的组。常见用法:
1、基本用法
显示当前用户所属的组:

groups

显示指定用户所属的组:

 groups username

例如,groups user1将显示用户 “user1” 所属的组。

user1 : group1 group2 group3

表示用户 “user1” 属于 “group1”、“group2” 和 “group3” 这三个组。

newgrp

newgrp命令用于切换用户的有效组。常见用法:
1、基本用法
切换到指定的组:

newgrp groupname

例如,newgrp users将用户的有效组切换为 “users” 组。执行这个命令后,用户在新的 shell 环境中,有效组将变为指定的组。新启动的进程将继承这个新的有效组。
2、注意事项
权限要求:
用户必须是指定组的成员才能成功切换到该组。
如果用户不是指定组的成员,执行newgrp命令会失败,并显示错误信息。
临时切换:
newgrp命令只在当前 shell 环境及其子进程中有效。一旦退出当前 shell,用户的有效组将恢复为原来的默认组。
密码验证(如果组设置了密码):
某些组可能设置了密码以限制成员加入。在这种情况下,执行newgrp命令时,系统可能会提示用户输入组密码。例如,假设用户 “user1” 同时属于 “group1” 和 “group2”,如果 “group2” 设置了密码,执行以下命令:

newgrp group2

系统可能会提示用户输入 “group2” 的密码。只有输入正确的密码,用户才能成功切换到 “group2” 组。
newgrp命令提供了一种方便的方式来临时切换用户的有效组,但在使用时需要注意权限和密码验证等问题。

useradd

useradd命令用于创建新用户。常见用法:
1、基本用法
创建一个新用户:

 useradd username

例如,useradd user1将创建一个名为 “user1” 的用户。
2、常用选项
-u UID:指定用户的用户 ID。

 useradd -u 1001 user2

创建用户 “user2” 并指定用户 ID 为 1001。
-g GROUP:指定用户所属的主组。

 useradd -g group1 user3

创建用户 “user3” 并将其加入到 “group1” 组作为主组。
-G GROUPS:指定用户所属的附加组,可以指定多个组,用逗号分隔。

useradd -G group2,group3 user4

创建用户 “user4” 并将其加入到 “group2” 和 “group3” 作为附加组。
-d HOME_DIR:指定用户的主目录。

  useradd -d /home/newuser user5

创建用户 “user5” 并指定主目录为 “/home/newuser”。
-s SHELL:指定用户的登录 shell。

useradd -s /bin/bash user6

创建用户 “user6” 并指定登录 shell 为/bin/bash。
-m:如果指定的主目录不存在,自动创建主目录。

 useradd -m user7

创建用户 “user7” 并自动创建主目录。
-c COMMENT:添加用户的注释信息。

useradd -c "This is a test user" user8

创建用户 “user8” 并添加注释信息。

usermod

usermod命令用于修改用户账号的属性。常见用法:
1、基本用法
修改用户的登录名:

 usermod -l new_username old_username

例如,usermod -l newuser olduser将用户 “olduser” 的登录名修改为 “newuser”。
修改用户的主目录:

usermod -d new_home_dir username

例如,usermod -d /home/newdir user1将用户 “user1” 的主目录修改为 “/home/newdir”。
修改用户的登录 shell:

usermod -s new_shell username

例如,usermod -s /bin/zsh user2将用户 “user2” 的登录 shell 修改为/bin/zsh。
修改用户的用户 ID:

usermod -u new_uid username

例如,usermod -u 1002 user3将用户 “user3” 的用户 ID 修改为 1002。
修改用户所属的主组:

usermod -g new_group username

例如,usermod -g group2 user4将用户 “user4” 的主组修改为 “group2”。
修改用户所属的附加组:

usermod -G new_groups username

例如,usermod -G group3,group4 user5将用户 “user5” 的附加组修改为 “group3” 和 “group4”。
2、常用选项组合
同时修改多个属性:

 usermod -l new_username -d new_home_dir -s new_shell username

例如,usermod -l newuser -d /home/newdir -s /bin/bash olduser将用户 “olduser” 的登录名、主目录和登录 shell 同时进行修改。
锁定用户账号:

usermod -L username

例如,usermod -L user6将用户 “user6” 的账号锁定,使其无法登录。
解锁用户账号:

usermod -U username

例如,usermod -U user7将用户 “user7” 的账号解锁。
三、注意事项
修改用户属性时要谨慎,确保不会影响系统的正常运行和用户的数据安全。
修改用户的主目录时,确保新的主目录存在且用户具有适当的权限。
修改用户的登录 shell 时,确保新的 shell 是系统中可用的且符合用户的需求。
修改用户的用户 ID 时,确保新的用户 ID 没有被其他用户占用。
修改用户所属的组时,确保用户在新的组中有适当的权限。
usermod不仅能改用户的SHELL类型,所归属的用户组,也能改用户密码的有效期,还能改登录名。
usermod还可用于户帐号大转移;比如把用户A改为新用户B;

userdel

userdel命令用于删除用户账号。常用用法:
1、基本用法
删除用户账号:

 userdel username

例如,userdel user1将删除用户 “user1”。
此命令会删除用户的主目录和邮件池(如果存在),但不会删除用户的文件(如果用户在系统的其他位置有文件)。
2、常用选项
-r:删除用户的主目录和邮件池,并同时删除用户在系统中的所有文件。

 userdel -r username

例如,userdel -r user2将删除用户 “user2” 及其主目录和邮件池,并删除用户在系统中的所有文件。
-f:强制删除用户,即使用户当前已登录。

 userdel -f username

这个选项应该谨慎使用,因为强制删除正在登录的用户可能会导致数据丢失或系统不稳定。
3、注意事项
在删除用户之前,确保你了解该用户在系统中的作用和影响,以免误删重要用户导致系统出现问题。如果用户拥有重要的数据或文件,在删除用户之前最好备份这些数据。
删除用户后,可能需要检查系统中的权限设置和文件所有权,以确保没有残留的权限问题。

groupadd

groupadd命令用于创建新的用户组。常用用法:
1、基本用法
创建一个新的用户组:

groupadd groupname

例如,groupadd mygroup将创建一个名为 “mygroup” 的用户组。
2、常用选项
-g GID:指定用户组的组 ID。

groupadd -g 1001 newgroup

创建一个名为 “newgroup” 的用户组,并指定组 ID 为 1001。
-r:创建一个系统用户组。系统用户组的组 ID 通常小于 1000,并且通常用于系统服务和进程。

groupadd -r sysgroup

创建一个名为 “sysgroup” 的系统用户组。
3、注意事项
如果不指定组 ID,系统会自动分配一个唯一的组 ID。创建用户组后,可以使用usermod命令将用户添加到该组中。在创建用户组时,要确保组名的唯一性,避免与系统中已有的组名冲突。

groupmod

groupmod命令用于修改用户组的属性。常用用法:
1、基本用法
修改组名:

groupmod -n new_group_name old_group_name

例如,groupmod -n newgroup oldgroup将用户组 “oldgroup” 的名称修改为 “newgroup”。
修改组 ID:

groupmod -g new_gid group_name

例如,groupmod -g 1002 mygroup将用户组 “mygroup” 的组 ID 修改为 1002。
2、注意事项
修改组名时,确保新的组名没有被其他组使用,并且不会与系统中的其他资源产生冲突。修改组 ID 时,确保新的组 ID 没有被其他组占用,并且不会影响系统中已有的用户和文件的权限设置。在修改用户组属性之前,最好备份重要的数据和配置文件,以防出现意外情况。修改组 ID 可能会影响到系统中已有的文件和目录的所有权和权限,因此需要谨慎操作。

groupdel

groupdel命令用于删除用户组。常用用法:
1、基本用法
删除一个用户组:

groupdel groupname

例如,groupdel testgroup将删除名为 “testgroup” 的用户组。
2、注意事项
–只有当用户组中没有任何成员用户时,才能成功删除该用户组。如果用户组中有成员用户,需要先将这些用户从该组中移除,或者使用-f选项强制删除,但这可能会导致一些不可预测的后果,因此不建议使用强制删除选项。
–在删除用户组之前,确保该用户组不是系统关键组或者没有被其他重要的系统组件所依赖。否则,删除该用户组可能会导致系统出现问题。
–删除用户组后,该组的所有相关权限和配置也会被删除,所以在执行此操作之前,最好确认是否真的需要删除该用户组。

三.密码相关的命令:

passwd

passwd命令用于设置或更改用户密码。常用用法:
1、基本用法
为当前用户设置密码:

passwd

执行该命令后,系统会提示你输入当前用户的旧密码(如果有),然后输入新密码两次以确认。
为其他用户设置密码:

passwd username

例如,passwd user1将为用户 “user1” 设置密码。只有具有管理员权限的用户才能为其他用户设置密码。
2、常用选项
-l:锁定用户密码。这将使用户无法登录,直到密码被解锁。

passwd -l username

例如,passwd -l user2将锁定用户 “user2” 的密码。
-u:解锁用户密码。

passwd -u username

例如,passwd -u user3将解锁用户 “user3” 的密码。
-d:删除用户密码。这将使用户无需密码即可登录,但这通常是不安全的,并且只应在特定情况下使用。

passwd -d username

例如,passwd -d user4将删除用户 “user4” 的密码。
-e:立即过期用户密码,迫使用户在下次登录时更改密码。

 passwd -e username

例如,passwd -e user5将使用户 “user5” 的密码立即过期。
3、注意事项
–锁定或解锁用户密码时,应该谨慎操作,确保不会影响系统的正常运行和用户的工作。
–删除用户密码可能会导致安全风险,因此应该仅在特殊情况下使用,并尽快为用户设置新密码。

chage

chage命令用于修改用户密码的过期信息等。常用用法:
1、基本用法
查看用户密码过期信息:

chage -l username

例如,chage -l user1将显示用户 “user1” 的密码过期信息,包括上次密码更改时间、密码过期时间、密码失效时间等。
设置密码过期时间:

chage -M days username

其中 “days” 是密码有效的最大天数。例如,chage -M 180 user2将设置用户 “user2” 的密码在180 天后过期。
2、其他常用选项
-d:设置上次密码更改时间。

chage -d date username

“date” 可以是具体的日期格式,如 “YYYY-MM-DD”,也可以是相对时间,如 “0” 表示从 1970 年 1 月 1 日到现在的天数。例如,chage -d 0 user3将设置用户 “user3” 的上次密码更改时间为当前时间。
-E:设置密码失效时间。

chage -E date username

例如,chage -E “2028-01-01” user4将设置用户 “user4” 的密码在 2028 年 1 月 1 日失效。
-I:设置密码过期后的宽限天数。

chage -I days username

例如,chage -I 7 user5将设置用户 “user5” 的密码过期后有 7 天的宽限时间,在此期间用户可以登录并更改密码。
-W:设置密码过期前的警告天数。

 chage -W days username

例如,chage -W 3 user6将设置用户 “user6” 的密码在过期前 3 天开始发出警告。
3、注意事项
–使用chage命令需要谨慎,尤其是在设置密码过期时间和失效时间时,确保不会影响用户的正常工作。
–如果设置了密码过期时间,用户在密码过期后需要及时更改密码,否则可能无法登录系统。

四、查询登录主机的用户及其log信息的工具命令:

w

w命令用于显示当前已登录系统的用户信息及他们正在执行的进程等情况。常用用法:
1、基本用法
直接在终端输入w命令:
在这里插入图片描述
输出内容说明:
第一行显示系统当前时间、运行时间、登录用户数和系统平均负载。
后续行显示每个已登录用户的信息,包括用户名(USER)、终端类型(TTY)、登录来源(FROM)、登录时间(LOGIN@)、空闲时间(IDLE)、已连接时间(JCPU)、进程占用的 CPU 时间(PCPU)以及正在执行的命令(WHAT)。
2、选项用法
-h:不显示标题信息。

w -h

-u:显示详细的用户信息,包括登录时间、空闲时间等,并以更易读的格式显示。

 w -u

-s:使用短格式显示信息,只显示用户名、终端类型、登录时间和正在执行的命令。

w -s

例如:
w -h将不显示第一行的标题信息,直接显示用户信息。
w -u会以更详细的格式显示用户信息,如空闲时间会显示为 “X 分 X 秒” 而不是类似 “1:42m” 这样的格式。
w -s以简洁的短格式显示用户信息,方便快速查看。

who

who命令用于显示当前已登录系统的用户信息。

users

users命令用于显示当前登录系统的所有用户名称。

Last

last命令用于显示系统中用户的最近登录记录及显示每个用户最后的登录时间。

Lastlog

lastlog命令用于显示系统中所有用户的最近一次登录时间。
1、基本用法
直接在终端输入lastlog命令:
在这里插入图片描述
输出内容说明:
每一行显示一个用户的信息,包括用户名(Username)、登录端口(Port)、登录来源(From)和最近一次登录时间(Latest)。
2、选项用法
-u username:显示指定用户的最近一次登录时间。

 lastlog -u user2

这将只显示用户 “user2” 的最近一次登录时间。
-t days:显示在指定天数内有登录记录的用户信息。

lastlog -t 7

显示最近 7 天内有登录记录的用户信息。
-b days:显示在指定天数之前的登录记录。

 lastlog -b 30

显示 30 天之前的登录记录。

五.ACL权限相关命令

ACL是Access Control List 的缩写,主要用于在提供传统的owner、group、others的read、write、execute权限之外进行细部权限设置。访问控制列表(ACL)提供了比传统的文件权限更精细的访问控制:
1、查看文件或目录的 ACL
使用getfacl命令:

 getfacl filename

例如,getfacl file.txt将显示文件 “file.txt” 的 ACL 信息。一般输出如下内容:
file: file.txt
owner: user1
group: group1
user::rw-
group::r–
other::r–
2、设置文件或目录的 ACL
使用setfacl命令:
为特定用户设置权限:

setfacl -m u:username:permissions filename

例如,setfacl -m u:user2:rw file.txt为用户 “user2” 设置对文件 “file.txt” 的读写权限。
为特定组设置权限:

  setfacl -m g:groupname:permissions filename

例如,setfacl -m g:group2:r file.txt为组 “group2” 设置对文件 “file.txt” 的读权限。
设置默认 ACL(对新创建的文件和目录生效):

setfacl -m d:u:username:permissions directorynamesetfacl -m d:g:groupname:permissions directoryname

例如,setfacl -m d:u:user3:rw /home/directory设置在目录 “/home/directory” 下新创建的文件和目录对用户 “user3” 具有读写权限。
3、删除文件或目录的 ACL
删除特定用户的 ACL:

 setfacl -x u:username filename

例如,setfacl -x u:user2 file.txt删除用户 “user2” 对文件 “file.txt” 的 ACL。
删除特定组的 ACL:

setfacl -x g:groupname filename

例如,setfacl -x g:group2 file.txt删除组 “group2” 对文件 “file.txt” 的 ACL。
删除所有 ACL:

 setfacl -b filename

例如,setfacl -b file.txt删除文件 “file.txt” 的所有 ACL,恢复到传统的文件权限模式。
4、注意事项
–不是所有的文件系统都支持 ACL。常见的支持 ACL 的文件系统有 ext2、ext3、ext4、XFS 等。
–在设置 ACL 时,要确保权限的设置是合理的,以避免安全风险。
–如果系统中有大量的文件和目录需要设置 ACL,可能需要使用脚本或自动化工具来提高效率。

六.用户身份切换相关命令

su/su -

1、基本用法
切换到其他用户:

 su - username

例如,su - user2将切换到用户 “user2”。加上 “-” 选项会同时切换用户的环境变量,使其环境与目标用户登录时一致。如果不加 “-”,则部分环境变量可能会保留当前用户的设置。
2、常用选项
-c command:在切换用户后执行一条命令,然后恢复到原来的用户。

su - username -c "command"

例如,su - user2 -c "ls /home/user2"以用户 “user2” 的身份执行 “ls /home/user2” 命令,然后恢复到原来的用户。
-l(等同于 “-”):完全切换到目标用户的环境,包括环境变量、工作目录等。
3、注意事项
–切换到其他用户时,需要输入目标用户的密码(如果目标用户有密码设置且当前用户没有足够的权限直接切换)。
–以 root 用户身份切换到其他用户通常不需要密码,但从普通用户切换到 root 用户一般需要输入 root 用户的密码。
–使用su命令切换用户时要谨慎,确保你有足够的权限进行操作,并且在切换到高权限用户(如 root)后,避免进行不必要的操作以降低安全风险。

sudo

sudo命令允许授权用户以其他用户的身份(通常是超级用户 root)执行命令。
1、基本用法
以 root 身份执行单个命令:

 sudo command

例如,sudo apt update以 root 权限执行软件包更新命令。
2、常用选项
-u user:以指定的用户身份执行命令。

sudo -u username command

例如,sudo -u user2 ls /home/user2以用户 “user2” 的身份执行列出 “/home/user2” 目录内容的命令。
-k:清除缓存的密码(下次使用 sudo 时需要重新输入密码)。

 sudo -k

-v:验证当前用户的 sudo 权限,并延长密码的有效时间。

sudo -v

3、注意事项
–使用sudo时,系统会提示输入当前用户的密码(除非当前用户在短时间内已经输入过密码且密码缓存仍然有效)。
–谨慎授予用户sudo权限,确保只有必要的用户可以以高权限执行命令,以降低系统的安全风险。
–如果sudo出现错误,检查配置文件是否正确以及当前用户是否具有相应的权限。

码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者。

相关文章:

《Linux从小白到高手》理论篇(四):Linux用户和组相关的命令

List item 本篇介绍Linux用户和组相关的命令,看完本文,有关Linux用户和组相关的常用命令你就掌握了99%了。Linux用户和组相关的命令可以分为以下六类: 一.用户和用户组相关查询操作命令: Id id命令用于显示用户的身份标识。常见…...

OpenGL ES 之EGL(6)

OpenGL ES 之EGL(6) 简述 EGL是OpenGL ES的封装,目的是跨设备跨平台,隔离不同平台对窗口不同的实现。上一节我们基本没有使用到EGL,因为GLSurfaceView帮助我们处理了相关的逻辑,我们这一节来看一下EGL的一些概念以及接口的使用。…...

kotlin 委托

一、类委托 interface DB{fun insert() } class SqliteDB : DB {override fun insert() {println(" SqliteDB insert")} }class MySql : DB{override fun insert() {println(" MySql insert")} }class OracleDB : DB{override fun insert() {println(&quo…...

Stream流的中间方法

一.Stream流的中间方法 注意1:中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程 注意2:修改Stream流中的数据,不会影响原来集合或者数组中的数据 二.filter filter的主要用法是…...

【车载开发系列】ParaSoft单元测试环境配置(四)

【车载开发系列】ParaSoft单元测试环境配置(四) 【车载开发系列】ParaSoft单元测试环境配置(四) 【车载开发系列】ParaSoft单元测试环境配置(四)一. 如何设置过滤二. 如何设置静态扫描的规则三. 如何设置单…...

IDEA 设置自动定位文件

一、场景分析 IDEA 在使用的过程中,发现有时候,打开一个类,它并不能自动帮我们在左侧 Project 树中定位出文件,需要自己手动点击 瞄准 图标。很不方便。 二、解决方法 1、点击 瞄准 图标旁边的 竖三点 2、将 Alwasy Select Opene…...

Nature Machine Intelligence 基于强化学习的扑翼无人机机翼应变飞行控制

尽管无人机技术发展迅速,但复制生物飞行的动态控制和风力感应能力,仍然遥不可及。生物学研究表明,昆虫翅膀上有机械感受器,即钟形感受器campaniform sensilla,探测飞行敏捷性至关重要的复杂气动载荷。 近日&#xff0…...

[Web安全 网络安全]-XXE 外部实体注入攻击XML

文章目录: 一:前言 1.定义 1.1 XXE 1.2 XML可扩展标记语言 2.DDT文档类型定义 2.1 分类 2.2 元素element DTD元素 DTD属性 2.3 实体entity DTD实体类别 DTD实体声明引用 声明:内部 外部 参数实体 公共实体 引用:…...

8--苍穹外卖-SpringBoot项目中套餐管理 详解(二)

目录 删除套餐 需求分析和设计 代码开发 根据id查询套餐 mapper层 Service层 ServiceImpl层 Mapper层 批量删除套餐 mapper层 Service层 ServiceImpl层 Mapper层 SetmealMapper.xml 修改套餐 需求分析和设计 代码开发 起售停售套餐 需求分析和设计 代码开发…...

测试面试题:pytest断言时,数据是符点类型,如何断言?

在使用 Pytest 进行断言时,如果数据是浮点类型,可以使用以下方法进行断言: 一、使用pytest.approx pytest.approx可以用来比较两个浮点数是否近似相等。例如: import pytestdef test_float_assertion():result 3.14159expecte…...

Python与MongoDB交互

一、基本概念 MongoDB: 一个面向文档的数据库系统,使用BSON(Binary JSON)作为存储格式。集合(Collection): 类似于关系型数据库中的表,是文档的集合。文档(Document): MongoDB中的基…...

安卓AI虚拟女友项目开发的Android开发环境搭建

第五章:Android开发环境搭建与基础入门 5-1 项目讲解思路说明 本文是安卓AI数字虚拟人项目实战的第五章,开发安卓AI安卓版数字虚拟人的Android基础部分。 在本章中,我们将详细介绍如何搭建Android开发环境,包括Android Studio的…...

基于SpringBoot+Vue+MySQL的智能垃圾分类系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着城市化进程的加速,垃圾问题日益凸显,不仅对环境造成污染,也给城市管理带来了巨大挑战。传统的垃圾分类方式不仅费时费力,而且手工操作容易出现错误,导致垃圾分类效…...

你的个人文件管理助手:AI驱动的本地文件整理工具

🌐 引言 在数字化时代,我们经常面临文件管理的挑战。电脑中的文件杂乱无章,寻找特定文件变得既费时又费力。幸运的是,现在有了一款名为本地文件整理器的神器,它利用AI技术帮助你快速、智能地整理文件,同时…...

【PyTorch】环境配置

框架介绍 Pytorch简介 2017年1月,FAIR(Facebook AI Research)发布了PyTorch。PyTorch是在Torch基础上用python语言重新打造的一款深度学习框架。Torch是采用Lua语言作为接口的机器学习框架,但因为Lua语言较为小众,导…...

枫叶MTS格式转换器- 强大、操作简单的MTS、M2TS视频转换工具供大家学习研究参考

一款功能强大、操作简单的MTS、M2TS视频转换工具,欢迎下载使用。 使用本MTS格式转换器可以帮助您将索尼和松下等摄像机录制的MTS、M2TS格式高清视频转换为其他流行的视频格式,如MP4、3GP、AVI、MPEG、WMV、ASF、MOV、RM、VCD、SVCD、DVD、MKV、FLV、SWF、MPG、MP3、WAV、WMA…...

Vscode把全部‘def‘都收起来的快捷键

在 VSCode 中,你可以使用以下快捷键来收起所有函数定义 (def): Windows/Linux: Ctrl K, Ctrl 0macOS: Cmd K, Cmd 0 这个快捷键组合会折叠当前文件中所有的代码块(包括所有函数和类定义)。你可以通过相同的快捷键再次展开这…...

Web和UE5像素流送、通信教程

一、web端配置 首先打开Github地址:https://github.com/EpicGamesExt/PixelStreamingInfrastructure 找到自己虚幻引擎对应版本的项目并下载下来,我这里用的是5.3。 打开项目找到PixelStreamingInfrastructure-master > Frontend > implementat…...

【YOLO目标检测电梯间电动车与人数据集】共4321张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式:YOLO格式 图片数量:4321 标注数量(txt文件个数):4321 标注类别数:2 标注类别名称:person、electricBicycle 数据集下载:电梯间电动车与人数据集 图片示例 数据…...

【网络安全】公钥基础设施

1. PKI 定义 1.1 公钥基础设施的概念 公钥基础设施(Public Key Infrastructure,简称PKI)是一种基于公钥密码学的系统,它提供了一套完整的解决方案,用于管理和保护通过互联网传输的信息。PKI的核心功能包括密钥管理、…...

云原生(四十一)| 阿里云ECS服务器介绍

文章目录 阿里云ECS服务器介绍 一、云计算概述 二、什么是公有云 三、公有云优缺点 1、优点 2、缺点 四、公有云品牌 五、市场占有率 六、阿里云ECS概述 七、阿里云ECS特点 阿里云ECS服务器介绍 一、云计算概述 云计算是一种按使用量付费的模式,这种模式…...

计算机网络:计算机网络体系结构 —— OSI 模型 与 TCP/IP 模型

文章目录 计算机网络体系结构OSI 参考模型TCP/IP 参考模型分层的必要性物理层的主要问题数据链路层的主要问题网络层的主要问题运输层的主要问题应用层的主要问题 分层思想的处理方法发送请求路由器转发接受请求发送响应接收响应 计算机网络体系结构 计算机网络体系结构是指将…...

【openwrt-21.02】T750 openwrt switch划分VLAN之后网口插拔状态异常问题分析及解决方案

Openwrt版本 NAME="OpenWrt" VERSION="21.02-SNAPSHOT" ID="openwrt" ID_LIKE="lede openwrt" PRETTY_NAME="OpenWrt 21.02-SNAPSHOT" VERSION_ID="21.02-snapshot" HOME_URL="https://openwrt.org/" …...

C++随心记

C随心记 C中的 CONST C中的const是表示不可修改 int main() {/* 对于变量而言 */// 不可修改的常量const int A 10;// 不可修改的指针指向const int* pointer_0 nullptr;int const* poniter_1 nullptr;// 不可修改指针指向的内容int* const poniter_2 nullptr; }const也…...

【微服务即时通讯系统】——brpc远程过程调用、百度开源的RPC框架、brpc的介绍、brpc的安装、brpc使用和功能测试

文章目录 brpc1. brpc的介绍1.1 rpc的介绍1.2 rpc的原理1.3 grpc和brpc 2. brpc的安装3. brpc使用3.1 brpc接口介绍 4. brpc使用测试4.1 brpc同步和异步调用 brpc 1. brpc的介绍 1.1 rpc的介绍 RPC(Remote Procedure Call)远程过程调用,是一…...

鸿蒙开发(NEXT/API 12)【状态查询与订阅】手机侧应用开发

注意 该接口的调用需要在开发者联盟申请设备基础信息权限与穿戴用户状态权限,穿戴用户状态权限还需获得用户授权。 实时查询穿戴设备可用空间、电量状态。订阅穿戴设备连接状态、低电量告警、用户心率告警。查询和订阅穿戴设备充电状态、佩戴状态、设备模式。 使…...

vite中sass警告JS API过期

1.问题 在Vite创建项目中引入Sass弹出The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0 - vite中sass警告JS API过期 The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0警告提示表明你当前正在使用的 Dart Sass 版本中&#…...

睢宁自闭症寄宿学校:培养特殊孩子的未来

在自闭症儿童的教育与康复领域,每一所学校的努力都是对孩子们未来无限可能的一次深刻诠释。从江苏睢宁到广东广州,自闭症寄宿学校正以不同的方式,为这些特殊的孩子铺设一条通往未来的希望之路。其中,广州的星贝育园自闭症儿童寄宿…...

【Canvas与徽章】金圈蓝底国庆75周年徽章

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>金边黑盾75周年</title><style type"text/css"&g…...

Java Servlet 详解

Java Servlet 是 Java 企业级应用 中的一个核心组件&#xff0c;特别是在 Web 应用开发中&#xff0c;它为服务器端处理请求提供了基础。每次用户发出请求时&#xff0c;Servlet 都会动态生成响应&#xff0c;这在构建复杂、交互式的 Web 应用时尤为重要。 什么是 Servlet&am…...

wordpress首页非常慢/互联网推广软件

本文从产品和架构演进、性能及稳定性挑战与优化实践、超级APP运维体系、架构上的容灾规划四个方面分享了支付宝APP亿级用户的性能稳定性优化及运维实践。性能方面&#xff0c;主要介绍了性能、电量、流量、内存、存储五个方面的优化。稳定性方面&#xff0c;主要介绍了Crash优化…...

手机网站建设推广/怎么做网址

1环境概述 2查看两边平台编码 3检查是否满足自包含 4导出表空间的元数据 5传输元数据及数据文件到目标机器 6导入目标机器 7把表空间置为可写状态 转载于:https://www.cnblogs.com/myrunning/p/3983354.html...

服装网站建设目标/科学新概念seo外链

软考中涉及扩展与包括关系的辨认,先不说考试的事,扩展与包括关系是UML中非经常见、非常基础的一种关系&#xff0c;然而我发现非常多同学都特别easy混淆&#xff0c;甚至软考真题中都存在题目和答案有待商榷的地方。此篇博客实属楼主匆忙而著&#xff0c;文章简明、短小&#x…...

wordpress backup to dropbox/中小企业管理培训课程

目录 一、前后端使用架构导致 二、开发人员经验问题/思维严谨性导致 三、业务特点导致 四、测试人员的经验缺乏导致 五、迭代周期不合理导致 六、上下游业务严重耦合导致 前言 产生bug的具体原因或许多种多样&#xff0c;但在bug原因分析过程中&#xff0c;希望能抽丝剥茧…...

wordpress louie/重庆网站seo诊断

python 编写server的步骤&#xff1a; 1. 第一步是创建socket对象。调用socket构造函数。如&#xff1a; socket socket.socket( family, type ) family参数代表地址家族&#xff0c;可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址&#xff0c;AF_UNIX家…...

扬州市做网站/怎么创建自己的免费网址

1. 图片素材导入 将 Texture Type 改为 Sprite(2D and UI)。 图集&#xff08;一幅图里含多张图片&#xff09;要将 Sprite Mode 设为 Multiple。 2. 制作动画 最简单的方法是直接将所有图片拖到 Hierarchy 窗口&#xff0c;可以直接创建动画。 3. 更换 Sprite 的显示 修改 Spr…...