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

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

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

Id

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

id
   uid=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 directoryname
 setfacl -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出现错误,检查配置文件是否正确以及当前用户是否具有相应的权限。

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

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

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

相关文章

【Android 14源码分析】Activity启动流程-1

忽然有一天,我想要做一件事:去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

MySQL:存储引擎简介和库的基本操作

目录 一、存储引擎 1、什么是存储引擎? 2、存储引擎的分类 关系型数据库存储引擎: 非关系型数据库存储引擎: 分布式数据库存储引擎: 3、常用的存储引擎及优缺点 1、InnoDb存储引擎 2、MyISAM存储引擎 3、MEMORY存储引擎 …

android kotlin Extension扩展函数

1、新建一个kt文件&#xff1a; 2、代码&#xff1a; class User(var name:String)/**扩展函数**/ fun User.Print(){print("用户名 $name") }// 扩展函数 swap,调换不同位置的值 fun MutableList<Int>.swap(index1: Int, index2: Int) {val tmp this[index1…

组合逻辑元件与时序逻辑元件

组合逻辑元件和时序逻辑元件都是数字电路中的基本构建块&#xff0c;但它们在功能和结构上存在显著差异。 1. 组合逻辑元件: 内容: 组合逻辑元件的输出仅取决于当前的输入&#xff0c;而与之前的输入无关。 它们没有记忆功能。 常见的组合逻辑元件包括&#xff1a; 与门 (AND…

Java | Leetcode Java题解之第437题路径总和III

题目&#xff1a; 题解&#xff1a; class Solution {public int pathSum(TreeNode root, int targetSum) {Map<Long, Integer> prefix new HashMap<Long, Integer>();prefix.put(0L, 1);return dfs(root, prefix, 0, targetSum);}public int dfs(TreeNode root,…

红帽RHCE和RHCA有什么区别

在红帽认证体系当中&#xff0c;RHCE&#xff08;Red Hat Certified Engineer&#xff09;以及 RHCA&#xff08;Red Hat Certified Architect&#xff09;乃是两项极具声望的高级认证。众多人士对于它们彼此之间存在的区别&#xff0c;深感困惑不解。接下来&#xff0c;IT 小编…

UE4_Niagara基础实例—3、使用自定义模块二

效果&#xff1a; 粒子限制在球形范围内 操作步骤&#xff1a; 1、因为我们要对粒子的位置进行控制&#xff0c;所以需要开启本地空间&#xff0c;粒子与发射器位置有关。使用GPU计算模拟&#xff0c;需勾选固定边界。 2、简单调节其它参数&#xff1a; 3、现在我想把粒子锁定…

【Linux的内存管理】

为什么需要内存管理 分段和分页内存分段内存分页 分页情况下&#xff0c;虚拟内存如何映射到物理地址页表原理多级页表 TLB快表段页式内存管理需要为什么进程地址空间Linux的进程虚拟地址空间管理进程地址空间如何分配虚拟内存虚拟内存的管理程序编译后的二进制文件如何映射到虚…

《Zeotero的学习》

学习视频链接 Zeotera的安装 官网点击download&#xff0c;选择合适的版本进行下载&#xff0c;并安装插件。 下载完成之后&#xff0c;点击安装包&#xff0c;一路默认就可以。如果不想下载在C盘&#xff0c;可以在步骤中选择自定义路径。 Zeotero的注册 官网进行注册&am…

AIGC: 从两个维度快速选择大模型开发技术路线

在当今人工智能飞速发展的时代&#xff0c;大模型开发技术路线的选择至关重要。本文将从两个维度出发&#xff0c;为大家快速介绍不同的大模型开发技术路线&#xff0c;帮助你在开发过程中做出明智的决策。 一、两个维度解析 传入大模型的信息 低要求&#xff1a;传入的信息相…

【D3.js in Action 3 精译_025】3.4 让 D3 数据适应屏幕(中)—— 线性比例尺的用法

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

Activity的生命周期分析

目录 Activity的生命周期全面分析 典型情况下的生命周期分析 异常情况下的生命周期分析 情况1&#xff1a;资源相关的系统配置发生改变导致Activity被杀死并重新创建 Activity的生命周期全面分析 在Android开发中&#xff0c;Activity的生命周期是非常重要的概念。它描述了…

数仓建模:DataX同步Mysql数据到Hive如何批量生成建表语句?| 基于SQL实现

目录 一、需求 二、实现步骤 1.数据类型转换维表 2.sql批量生成建表语句 三、小结 如果觉得本文对你有帮助&#xff0c;那么不妨也可以选择去看看我的博客专栏 &#xff0c;部分内容如下&#xff1a; 数字化建设通关指南 专栏 原价99&#xff0c;现在活动价39.9&#x…

前端使用xlsx-js-style导出Excel,带样式,并处理合并单元格边框显示不全和动态插入表头解决

一、在学习之前&#xff0c;先给出一些学习/下载地址&#xff1a; xlsx-js-style下载地址 https://github.com/gitbrent/xlsx-js-style 或者 https://www.npmjs.com/package/xlsx-js-style SheetJS中文教程&#xff1a; https://xlsx.nodejs.cn/docs/csf/cell 二、先看样…

双指针---(部分地更新)

双指针 复写零 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改&#xff0c;不要从函数返回任何东西。 …

Tableau 瀑布图应用示例

通过探索 10 个示例&#xff0c;将瀑布图的应用拓展到更深层次的业务分析&#xff01; 作为一种直观展示数据变化的图表&#xff0c;瀑布图被广泛应用在业务分析中。同时&#xff0c;借助 Tableau 2024.2 中的 Viz Extensions&#xff0c;如今我们可以快速在 Tableau 中实现瀑布…

Vue3-TS-Lodash:理解Lodash / 常用方法积累

一、Lodash官网 Lodash 简介 | Lodash中文文档 | Lodash中文网 二、理解Lodash Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。它提供了大量的函数来帮助你处理数组、数值、对象、字符串等&#xff0c;使你的代码更加简洁、易读和高效。Lodash 的设计哲学是…

25基于python的文本冒险岛游戏(源码+游戏简介+python代码学习攻略)校园招聘面试

基于python的文本冒险岛游戏&#xff08;源代码游戏简介python代码学习&#xff09;资源-CSDN文库https://download.csdn.net/download/m0_72216164/89817518 开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费&#xff01;全文干货。 工作招聘无…

HarmoneyOS--Ability(能力)、窗口、通知

标题 文章目录 一、什么是Ability?二、使用步骤(单例和多例)三、窗口四、通知 一、什么是Ability? 开发模式提供的开发功能抽象的描述。 其中重要的是UiAbility,界面组件能力,负责所有界面的处理。 通过配置可以变更单例,多例,指定实例,在module.json5中进行配置 如: 单例:l…

FreeRTOS的中断管理

前言 FreeRTOS的任务有优先级&#xff0c;MCU的硬件中断有中断优先级&#xff0c;这是两个不同的概念&#xff0c;FreeRTOS的任务管理要用到硬件中断&#xff0c;使用FreeRTOS时候也可以使用硬件中断&#xff0c;但是硬件中断ISR的设计要注意一些设计原则&#xff0c;在本节中我…