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

Linux用户及用户组操作命令笔记

1.用户概念及作用

用户:指的是Linux操作系统中用于管理系统或者服务的人

Linux下一切皆文件,所以用户管理的是相应的文件

基本上分为两种:

  • 基本管理:文件的创建、删除、复制、查找、打包压缩等;文件的权限增加、减少等;
  • 高级管理:程序文件的安装、卸载、配置等。终极目的是对外提供稳定的服务。

2.用户的分类

2.1 超级用户

超级用户,也叫管理员,root。该用户(root)具有所有权限,UID=0并且绝对只能是0

2.2 系统用户

  • 系统用户,也叫程序用户。一般都是由程序创建,用于程序或者服务运行时候的身份。
  • 默认不允许登录系统。1<=UID<=499
  • 比如后面要学的web服务的管理用户apache,文件共享ftp服务的管理用户ftp等

注意:Centos7/RHEL8中,系统用户UID范围:1<=UID<=999

2.3 普通用户

  • 普通用户,一般都是由管理员创建,用于对系统进行有限的管理维护操作。
  • 默认可以登录系统。500<=UID<=60000

注意:Centos7/RHEL8中,普通用户UID范围:1000<=UID<=60000

说明:

  • 用户指的是操作系统上管理系统或服务的人,是人,就有相关的属性信息
  • 用户的属性信息包括但不限于,如:家目录、唯一身份标识(UID)、所属组(GID)等
  • 今天我们讨论的用户指的是普通用户,即由管理员创建的用户

3.用户的基本管理

3.1 创建用户

基本语法和选项

useradd [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell查看系统支持的shell(命令解释器)
[root@ljy ~]# cat /etc/shells
/bin/sh 软连接文件
/bin/bash 系统默认的解释器
/usr/bin/sh 软连接文件
/usr/bin/bash 系统默认的解释器
其他shell:
/sbin/nologin 不能登录操作系统,也叫非交互式shell
/bin/dash
/bin/tcsh
/bin/csh 

示例操作

id 用户名 查询用户信息命令

创建一个用户stu1
[root@ljy ~]# useradd stu1
查看用户信息
[root@ljy ~]# id stu1
uid=501(stu1) gid=501(stu1) groups=501(stu1)注意:当创建一个默认用户时,系统会给该用户以下东西,以stu1为例说明
1)用户的UID(唯一标识) 501(系统自动分配)
2)用户的默认组(主组) stu1组,默认跟该用户的用户名一致;组ID(501),默认和用户UID一致
3)用户的家目录 /home/stu1
4)默认拷贝相应的文件到用户的家里,是隐藏文件
[root@ljy ~]# su - stu1
[stu1@localhost ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla 

根据需求创建用户

/sbin/nologin 表示不能登录系

1. 创建用户stu2,但是不能登录操作系统
注意:-s 指定用户的默认shell,/sbin/nologin表示不能登录系统,也叫非交互
[root@ljy ~]# useradd -s /sbin/nologin stu2
验证:
[root@ljy ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
切换用户失败,说明该用户不能登录系统
[root@ljy ~]# su - stu2
This account is currently not available.2. 创建用户stu2,同时指定该用户的家目录为/rhome/stu2
注意:-d 指定用户的家目录,前提该用户家目录的上一级目录/rhome必须存在
[root@ljy ~]# mkdir /rhome
[root@ljy ~]# useradd -d /rhome/stu2 stu2
[root@ljy ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
说明:指定stu2家目录/rhome/stu2时,只需要/rhome存在即可,系统会默认在/rhome下创建stu2目录

注意:

当创建用户指定的家目录不存在,是不能切换用户的,会报错家目录不存在,这时需要root角色下为用户创建家目录,并拷贝相关隐藏文件到文件目录下

3.2 设置用户密码

passwd 用户名 表示给指定用户修改密码
passwd 直接回车 表示给当前用户修改密码[root@ljy ~]# passwd stu1
Changing password for user stu1.
New password: 密码不显示
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password: 密码不显示
passwd: all authentication tokens updated successfully.说明:
1.管理员root可以给任何用户修改密码
2.普通用户可以自己给自己修改密码,但是密码复杂度要符合规范[root@ljy ~]# echo 123|passwd --stdin stu2
更改用户 stu2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
说明:使用这种方法不用交互可以直接设置成功,一般用于脚本中。

3.3 修改用户信息

基本语法选项

usermod [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell
-m 移动用户家目录,和-d一起使用
1. 修改stu3用户的UID为1100
[root@ljy ~]# usermod -u 1100 stu3
[root@ljy ~]# tail -5 /etc/passwd
yunwei:x:1001:1001::/home/yunwei:/sbin/nologin
stu1:x:1002:1002::/home/stu1:/bin/bash
stu2:x:1003:1003::/rhome/stu2:/bin/bash
stu3:x:1100:1004::/rhome/stu3:/bin/bash
stu4:x:1005:1005::/home/stu4:/sbin/nologin2.修改stu4用户的默认shell为可登录系统
[root@ljy ~]# su - stu4
This account is currently not available.
[root@ljy ~]# usermod -s /bin/sh stu4
[root@ljy ~]# tail -5 /etc/passwd
yunwei:x:1001:1001::/home/yunwei:/sbin/nologin
stu1:x:1002:1002::/home/stu1:/bin/bash
stu2:x:1003:1003::/rhome/stu2:/bin/bash
stu3:x:1100:1004::/rhome/stu3:/bin/bash
stu4:x:1005:1005::/home/stu4:/bin/sh3.修改stu5用户的家目录
[root@ljy ~]# useradd -d /rhome/stu5 stu5
[root@ljy ~]# usermod -md /home/stu5 stu5 

3.4 删除用户

 基本语法选项

userdel [选项] 用户名
常用选项:
-r 删除用户并且移除其家目录和邮箱
-f 强制删除正在登录的用户 
说明:
创建完用户后,家目录默认在/home/用户名下;用户的邮箱在/var/spool/mail/用户名1. 删除stu4用户以及家目录
[root@ljy ~]# userdel -r stu4
[root@ljy ~]# id stu4
id: stu4: No such user2.强制删除一个正在登录的用户
[root@ljy ~]# userdel -r stu5
userdel: user stu5 is currently used by process 7998
[root@ljy ~]# id stu5
uid=1101(stu5) gid=1101(stu5) 组=1101(stu5)
[root@ljy ~]# userdel -rf stu5
userdel: user stu5 is currently used by process 7998
[root@ljy ~]# id stu5
id: “stu5”:无此用户3. 只删除用户user02,不删除其家目录
[root@ljy ~]# userdel stu1

4.用户密码信息的文件

4.1 用户文件解析

1. 用户信息保存文件/etc/passwd
了解相关配置文件内容,可以通过求man文档解决,即 man 5 passwd
以冒号:分割为7列,如下:
account --> stu1 用户名称
password --> x 密码,将密码单独存放在另外一个文件中
UID --> 501 用户ID
GID --> 501 组ID
GECOS --> 用户自定义,描述说明
directory --> /home/stu1 用户的家目录
shell --> /bin/bash用户的默认shell,其中/sbin/nologin表示非交互,不能登录系统2. 用户密码信息保存文件/etc/shadow
了解相关配置文件内容,可以通过求man文档解决,即 man 5 shadow
以冒号:分隔为9列,如下:
login name
登录的用户名encrypted password
加密后的密码;!!表示没有设置密码date of last password change
最后一次更改密码的天数(距离1970年的1月1日到现在的天数)minimum password age
密码的最小生存周期;0表示可以立刻修改密码;如果是3,则表示3天后才能更改密码maximum password age
密码的最大生存周期;如果30表示每隔30天需要更新一次密码password warning period 密码过期前几天发出警告;7表示过期前7天开始警告password inactivity period
密码的宽限期;如果3表示允许密码过期3天,3天内还能登录系统,但是要求修改密码。3天后(密码过期3天后账户被封锁,需要联系管理员)account expiration date
账户过期的时间,账户过期的用户不能登录;密码过期用户不能用原来的密码登录。以1970年1月1日算起。reserved field
保留

4.2 用户的账号信息

chage --help
-d 修改用户最后一次更改密码的时间
-m 修改密码的最小存活期(几天后才能修改密码)
-M 修改密码的最大存活期(每隔多少天更新一次密码)
-W 修改密码过期前警告(过期前几天发出警告)
-I 修改允许密码过期几天
-E 修改账户过期时间
-l 列出账户的信息举例说明:
查看用户账号的相关信息命令:chage -l stu1
[root@ljy ~]# chage -l stu1
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7修改用户账号的过期时间:2019-03-10过期
[root@ljy ~]# chage -E '2019-03-10' stu1
[root@ljy ~]# chage -l stu1
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : Mar 10, 2019
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7修改用户账号的过期时间为10天以后:
[root@ljy ~]# chage -E $(date +%F -d '+10days') stu1

5.Linux下组管理及组和用户的关系

在Linux系统中,用户(User)和用户组(Group)是通过一种多对多的关系来组织的。这种关系允许灵活地管理权限和资源共享。以下是用户和用户组之间的关系概述:

  • 用户(User):

       每个用户在Linux系统中都有一个唯一的用户ID(UID),通常普通用户的UID从1000开始(这可能因发行版而异),而系统用户(如root)的UID通常是0。

   - 用户可以拥有一个或多个用户组。

  • 用户组(Group):

        用户组是具有相同权限集合的用户的集合。

        每个用户组都有一个唯一的组ID(GID)。

        用户组用于简化权限管理,因为可以给组分配权限,而组内的所有用户都会继承这些权限。

  • 用户和用户组的关系:

        主组(Primary Group):每个用户都有一个主组,这是用户创建文件时默认赋予的组。用户的主组通常与用户的用户名相同。

        附加组(Secondary Groups):用户可以属于多个附加组。这意味着用户可以继承多个组的权限。

       组文件(/etc/group):这个文件存储了系统中所有用户组的信息,包括组名和组内用户的列表。

       密码文件(/etc/passwd):这个文件存储了系统中所有用户的信息,包括用户的主组信息。

  • 权限管理:

      文件和目录的权限可以设置为用户(User)、组(Group)和其他(Other)。

      当用户尝试访问文件或目录时,系统会检查用户的UID和GID,以及文件或目录的所有者和组,以确定是否允许访问。

  • 用户和组的权限:

       用户对文件的访问权限由该文件的所有者权限决定。

      用户组的权限适用于组内的所有用户。

      其他用户(不属于文件所有者或组的用户)的权限是独立设置的。

  • sudo和su:

       `sudo` 命令允许授权的用户以另一个用户(通常是root)的身份执行命令,而不必知道该用户的密码。

       `su` 命令用于切换到另一个用户的身份,通常需要输入目标用户的密码。

通过这种结构,Linux系统管理员可以有效地控制用户对系统资源的访问,同时保持系统的安全性和灵活性。

6.组的管理

6.1 创建组

基本语法

groupadd [选项] 组名
常用选项:
-g 指定组的GID(编号),默认唯一
1.创建一个组admin
[root@ljy ~]# groupadd admin2.查看组信息
[root@ljy ~]# tail -1 /etc/group
admin:x:1005:
说明:关于/etc/group配置文件说明,可以man 5 group找帮助3.创建一个组sysadmin,指定组的GID为1111
[root@ljy ~]# groupadd -g 1001 sysadmin
[root@ljy ~]# tail -1 /etc/group
admin:x:1005:
sysadmin:x:1111 

6.2 删除组

基本语法

groupdel 组名  
[root@ljy ~]# groupdel admin
[root@ljy ~]# groupdel stu2
groupdel: cannot remove the primary group of user 'stu2'
注意:以上信息说明不能删除属于其他用户的主组 

6.3 组的成员管理

基本语法

gpasswd [选项] 组名
常见选项:
-a 添加用户到组
-d 从组中删除成员
-A 指定管理员
-M 指定组成员,可以批量添加用户到组中
-r 删除密码
gpasswd 组名 给组设置密码
# 添加用户到组里
1. 创建3个用户user01~user03
2. 将user01添加到sysadmin组里方法:1:指定user01用户的附加组为sysadmin(站在用户角度)
# usermod -G sysadmin user01方法2:使用gpasswd命令添加用户到组里
# gpasswd -a user01 sysadmin
-a选项:表示往组里追加用户
# gpasswd -M user02,user03 sysadmin 设置sysadmin组成员为user02,user03
-M选项:表示覆盖设置组成员(会覆盖原来的成员列表) # 删除组成员
将user03用户从组sysadmin里移除
# gpasswd -d user03 sysadmin

7.总结

7.1 创建用户(useradd)

1)useradd 用户名——>家目录/home/用户名、邮箱、UID、默认组(GID)[用户主组]

2)useradd [选项] 用户名字——>常用选项:-d/-s/-u/-g/-G

7.2设置用户密码(passwd)

1)passwd 用户名——>给指定的用户(管理员可以给任何人设置任何密码)

2)echo 密码|passwd --stdin 用户名——>非交互式(用于脚本中)

3)用户基本信息和用户密码信息保存文件——>/etc/passwd和/etc/shadow

4)扩展chage命令——>用来修改用户密码信息(账号过期时间、密码最小生存周期等)

7.3修改用户信息(usermod)

1) usermod [选项] 用户名——>usermod -md 新家 用户名

4、删除用户(userdel)

1)userdel 用户名——>只删除用户,不删除用户家目录、邮箱等信息

2)userdel -r 用户名——>删除用户以及用户其他信息

3)userdel -f 用户名——>强制删除用户(删除正在登录的用户)

7.4 创建组(groupadd)

组的信息保存文件——>/etc/group和/etc/gshadow

7.5 删除组(groupdel)

什么样的组不能删除?——>不能删除属于其他用户的主组

7.6 管理组成员(gpasswd)

1)添加用户到组里——>gpasswd -a user1 组名 或 gpasswd -M user1,user2,... 组名

2)从组里移除用户——>gpasswd -d user1 组名

相关文章:

Linux用户及用户组操作命令笔记

1.用户概念及作用 用户&#xff1a;指的是Linux操作系统中用于管理系统或者服务的人 Linux下一切皆文件&#xff0c;所以用户管理的是相应的文件 基本上分为两种&#xff1a; 基本管理&#xff1a;文件的创建、删除、复制、查找、打包压缩等&#xff1b;文件的权限增加、减…...

threejs加载高度图渲染点云,不支持tiff

问题点 使用的point来渲染高度图点云&#xff0c;大数据图片无效渲染点多&#xff08;可以通过八叉树过滤掉无效点增加效率&#xff0c;这个太复杂&#xff09;&#xff0c;但是胜在简单能用 效果图 code 代码可运行&#xff0c;无需npm <!DOCTYPE html> <html la…...

MySQL面试题——第二篇

1. MySQL的优化手段有哪些&#xff1f; MySQL的常见的优化手段有以下五种 1. 查询优化 避免select * ,只查询需要的字段。小表驱动大表&#xff0c;即小的数据集驱动大的数据集&#xff0c;比如当B表的数据集小于A表时&#xff0c;用in优化exist。两表执行顺序是先查B表&#x…...

Unity Transform 组件

在 Unity 中&#xff0c;Transform 是一个非常重要的组件&#xff0c;它定义了物体的位置、旋转和缩放&#xff0c;几乎每个 GameObject 都包含一个 Transform 组件。Transform 组件的主要属性如下&#xff1a; 1. position 表示物体在世界空间中的位置。可以通过 transf…...

LeeCode 3. 无重复字符的最长子串

经典方法滑动窗口:(两个指针) 针对这个题我们首先假定两个指针 left 和 right 分别指在数组最左端. 然后两个变量记录长度length和maxlength. 并且因为不能有重复的字符,我们使用HashSet结构来当收集结果的表. 随着右指针不断往右移,左指针和右指针之间的就为截取的字符,而这…...

使用canal.deployer-1.1.7和canal.adapter-1.1.7实现mysql数据同步

1、下载地址 --查看是否开启bin_log日志&#xff0c;value on表示开启 SHOW VARIABLES LIKE log_bin; -- 查看bin_log日志文件 SHOW BINARY LOGS; --查看bin_log写入状态 SHOW MASTER STATUS; --查看bin_log存储格式 row SHOW VARIABLES LIKE binlog_format; --查看数据库服…...

VMware Workstation Pro 17下载及安装教程

下载 好消息&#xff01;从VMware Workstation Pro 17开始&#xff0c;个人可以免费使用了&#xff0c;再也不需要找破解激活码啥的了。 但是坏处却不小&#xff1a;其下载变得异常复杂。首先需要注册账号&#xff0c;外网非常慢很可能注册不上&#xff1b;其次根本找不到下载…...

集采良药:从“天价神药”到低价良药,伊马替尼的真实世界研究!

在医疗科技日新月异的今天&#xff0c;有一种药物以其卓越的疗效和深远的影响力&#xff0c;成为了众多患者心中的“精准武器”——伊马替尼。这款药物不仅在慢性髓细胞白血病&#xff08;CML&#xff09;的治疗上屡创佳绩&#xff0c;更是胃肠道间质瘤&#xff08;GIST&#x…...

00898 互联网软件应用与开发自考复习题

资料来自互联网软件应用与开发大纲 南京航空航天大学 高纲4295和JSP 应用与开发技术(第 3 版) 马建红、李学相 清华大学出版社2019年 第一章 一、选择题 通过Internet发送请求消息和响应消息使用&#xff08;&#xff09;网络协议。 FTP B. TCP/IP C. HTTP D. DNS Web应…...

linux 进程间通信之pthread(条件变量共享和互斥锁共享)

0,互斥锁共享 初始化和销毁mutex互斥锁 int pthread_mutexattr_init(pthread_mutexattr_t *attr); int pthread_mutexattr_destroy(pthread_mutexattr_t *attr); 进程共享属性有两种值: 1、PTHREAD_PROCESS_PRIVATE,这个是默认值(1),同一个进程中的多个线程访问同一个…...

数据结构-2.7.单链表的查找与长度计算

注&#xff1a;本文只探讨"带头结点"的情况(查找思路类似循环找到第i-1 个结点的代码) 一.按位查找&#xff1a; 1.代码演示&#xff1a; 版本一&#xff1a; #include<stdio.h> #include<stdlib.h> ​ ​ //定义单链表结点类型 typedef struct LNo…...

iotop 命令:磁盘IO监控和诊断

一、命令简介 ​iotop​命令用于监视磁盘I/O&#xff0c;实时显示每个进程或线程的读写速率等信息。非常适合用于诊断系统中的I/O瓶颈。 ‍ ​​ ‍ 安装 iotop 在大多数Linux发行版中&#xff0c;iotop​可能不是预装的。可以使用包管理器来安装它。 例如&#xff0c;在…...

解锁编程新境界:GitHub Copilot 让效率翻倍

Number.1&#xff1a;工具介绍 功能特点&#xff1a; 智能代码生成与补全&#xff1a;通过学习大量代码库和开发者的编码风格&#xff0c;能根据上下文自动推断可能的代码补全选项&#xff0c;甚至可以自动完成函数定义、循环结构等复杂代码片段。例如&#xff0c;当编写一个算…...

爱普生相机SD卡格式化后数据恢复指南

我借了朋友的‌爱普生相机&#xff0c;想查看一下内存&#xff0c;哎呀&#xff0c;一不小心按错了&#xff0c;竟然执行了格式化操作&#xff0c;这可真是太让人郁闷了&#xff0c;这还有机会挽救数据吗&#xff1f;心塞&#xff0c;求帮助&#xff01; 随着数码摄影的普及&am…...

【数据结构】排序算法---基数排序

文章目录 1. 定义2. 算法步骤2.1 MSD基数排序2.2 LSD基数排序 3. LSD 基数排序动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaCGo 结语 ⚠本节要介绍的不是计数排序 1. 定义 基数排序&#xff08;英语&#xff1a;Radix sort&#xff09;是一种非比较型的排序算法&…...

二叉树(下)

目录 判断树是否相同 判断树是不是另一棵树的子树 二叉树翻转 判断平衡二叉树 二叉树层序遍历 这篇主要提供一些关于二叉树例题的讲解&#xff0c;如果对二叉树及其基本操作有疑问的可以转至&#xff1a; 二叉树&#xff08;上&#xff09;-CSDN博客二叉树&#xff08;中&…...

计算机网络33——文件系统

1、chmod 2、chown 需要有root权限 3、link 链接 4、unlink 创建临时文件&#xff0c;用于非正常退出 5、vi vi可以打开文件夹 ../是向外一个文件夹 6、ls ls 可以加很多路径&#xff0c;路径可以是文件夹&#xff0c;也可以是文件 ---------------------------------…...

算法:76.最小覆盖子串

题目 链接&#xff1a;leetcode链接 思路分析&#xff08;滑动窗口&#xff09; 还是老样子&#xff0c;连续问题&#xff0c;滑动窗口哈希表 令t用的hash表为hash1&#xff0c;s用的hash表为hash2 利用hash表统计窗口内的个字符出现的个数&#xff0c;与hash1进行比较 选…...

DNS服务

一.DNS介绍 DNS应用层协议 Domain Name System 域名系统 作用&#xff1a;实现域名解析&#xff0c;解析主机名所对应的IP地址&#xff0c; 在网络环境中设备与设备之间要想相互通信只能依赖IP地址&#xff0c;DNS服务器的作用是实现域名解析。 如上图所示&#xff0c;DNS存…...

STM32 HAL freertos零基础(九)任务通知

1、任务通知 任务通知用于任务之间同步和通信。任务通知允许一个任务向另一个任务发送一个32位的值,并可以选择是否唤醒正在等待通知的任务。这使得任务之间的同步更加简单和灵活。 任务通知功能: 发送通知:一个任务可以向另一个任务发送一个32位的值。 接收通知:接收任…...

Qt+FFmpeg开发视频播放器笔记(三):音视频流解析封装

音频解析 音频解码是指将压缩的音频数据转换为可以再生的PCM(脉冲编码调制)数据的过程。 FFmpeg音频解码的基本步骤如下: 初始化FFmpeg解码器(4.0版本后可省略): 调用av_register_all()初始化编解码器。 调用avcodec_register_all()注册所有编解码器。 打开输入的音频流:…...

从黎巴嫩电子通信设备爆炸看如何防范网络电子袭击

引言&#xff1a; 在当今数字化时代&#xff0c;电子通信设备已成为我们日常生活中不可或缺的一部分。然而&#xff0c;近期黎巴嫩发生的电子设备爆炸事件提醒我们&#xff0c;这些设备也可能成为危险的武器。本文将深入探讨电子袭击的原理、防范措施&#xff0c;以及网络智能…...

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL16

使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器 描述 ②请使用2片该优先编码器Ⅰ及必要的逻辑电路实现16线-4线优先编码器。优先编码器Ⅰ的真值表和代码已给出。 可将优先编码器Ⅰ的代码添加到本题答案中&#xff0c;并例化。 优先编码器Ⅰ的代码如下&#xff1a; module…...

12 - TCPServer实验

在上一章节中&#xff0c;我们学习了TCPClient通信测试的相关知识。接下来&#xff0c;本章节将以此为基础&#xff0c;构建一个基础性的TCPServer连接机制&#xff0c;该机制将利用之前所建立的WIFI网络连接。为方便演示&#xff0c;我们将借助网络调试助手工具进行数据的发送…...

Explain执行计划

Explain执行计划 explain可以帮助开发人员分析SQL问题&#xff0c;explain用于显示MySQL如何使用SQL执行计划&#xff0c;可以帮助开发人员写出更优化的查询语句。使用方法就是在查询语句前加上explain关键字。 执行添加上explain关键字的语句可以看到一个列表&#xff1a; 其…...

ARM/Linux嵌入式面经(三六):中科曙光

文章目录 1.AD转换,怎么在项目中运用2.项目中的通信网络介绍一下通信网络介绍1. 通信网络类型2. 通信网络特点3. 应用场景4. 关键技术5. 项目中的具体应用和实现方式模拟面试官追问3.socketSocket介绍深度拓展与追问深度拓展可能的追问4.进程间通信方式进程间通信方式介绍总结…...

Python和C++气候模型算法模型气候学模拟和统计学数据可视化及指标评估

&#x1f3af;要点 贝叶斯推理气候模型辐射对流及干湿能量平衡模型时间空间气象变化预测模型评估统计指标气象预测数据变换天气和气象变化长短期影响预估降低气候信息尺度评估算法气象行为模拟&#xff1a;碳循环、辐射强迫和温度响应温室气体排放碳循环温室诱导气候变化评估气…...

鸿蒙开发城市联动选择弹框

鸿蒙开发城市联动选择弹框 城市联动选择弹框不容易&#xff0c;在Android那边也是不容易。选择某个省份时&#xff0c;城市要对得上&#xff0c;切换得及时 一、思路&#xff1a; 关键用Provide和Consume互相监听对方的变化 二、效果图&#xff1a; 三、视频效果&#xff1…...

css 控制虚线刻度尺寸

文章目录 css效果 css <div style"width: 100%; height: 1px;background-image: linear-gradient(to right, #545454 0%, #545454 80%, transparent 5%);background-size: 15px 10px;background-repeat: repeat-x; margin: 0 auto;"></div>效果...

NLP三天入门大模型,我领先你好几个版本了

大模型时代下&#xff0c;nlp初学者需要怎么入门? 入门姿势简单粗暴:打一些必要的基础就跑步进入Transformera 大模型时代&#xff0c;传统的算法&#xff0c;像分词、词性标注&#xff0c;被替代得非常厉害&#xff0c;在入门阶段没必要花费太多精力在传统算法上面。 数学和…...