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

# 使用自定义Shell脚本hello快速配置Linux用户账户

使用自定义Shell脚本快速配置Linux用户账户

在学校实验室管理Linux服务器,或者公司小团队管理服务器时,大家需要一个能隔离自己服务,但是自己又需要对服务器的完整权限的情形。创建和配置用户账户是一项常见但繁琐的任务。特别是当你需要频繁为新团队成员设置账户,或在多台服务器上保持一致的用户配置时,linux本身用户指令已经很完善,手动添加也方便,但是我偶尔碰到这种添加用户的需求,还是感觉繁琐和麻烦,所以还是想写个脚本快速创建用户,分配root,docker权限。

今天,我要分享一个名为hello的自定义脚本,希望它能帮助你一键完成用户创建、权限设置、Docker组管理等操作,简化你系统管理的工作。

脚本功能概述

hello脚本提供以下功能:

  • 创建新用户并设置密码
  • 配置sudo权限(无需密码)
  • 自动添加用户到Docker组(如果存在)
  • 创建友好的.bashrc配置和系统信息显示
  • 生成包含账户信息的README文件
  • 检测Docker服务状态并提供相关提示

安装和使用方法

步骤1:创建脚本文件

首先,使用你喜欢的文本编辑器创建脚本文件:

sudo vim /usr/local/bin/hello

步骤2:粘贴以下代码

将下面的代码复制到编辑器中:

#!/bin/bash# 获取脚本的基本名称,而不是完整路径
SCRIPT_NAME=$(basename "$0")if [ $# -ne 1 ]; thenecho "用法: $SCRIPT_NAME 用户名"  # 使用基本名称而不是完整路径echo "例如: $SCRIPT_NAME ck"     # 使用基本名称而不是完整路径exit 1
fiUSERNAME=$1# 检查是否以root权限运行
if [ "$(id -u)" -ne 0 ]; thenecho "错误: 请使用root权限运行此脚本"exit 2
fi# 检查docker服务是否安装和运行
if ! command -v docker &> /dev/null; thenecho "警告: Docker未安装"docker_installed=false
elif ! systemctl is-active --quiet docker 2>/dev/null; thenecho "警告: Docker服务未运行"docker_installed=truedocker_running=false
elseecho "确认: Docker服务正在运行"docker_installed=truedocker_running=true
fi# 检查用户是否已存在
if id "$USERNAME" &>/dev/null; thenecho "用户 $USERNAME 已存在,将更新配置..."user_existed=true
elseecho "创建新用户 $USERNAME..."useradd -m -s /bin/bash $USERNAME# 设置密码为单个空格echo -e " \n " | passwd $USERNAME 2>/dev/null || \{ echo " " | passwd --stdin $USERNAME 2>/dev/null; } || \{ echo "$USERNAME: " | chpasswd 2>/dev/null; } || \{ echo "警告: 无法设置空格密码,使用用户名作为临时密码"; echo "$USERNAME:$USERNAME" | chpasswd; }user_existed=false
fiUSER_HOME=$(eval echo ~$USERNAME)# 创建.bashrc或添加自定义配置(保留有用的shell配置)
if [ "$user_existed" = false ] || [ ! -f "$USER_HOME/.bashrc" ]; then# 如果是新用户或没有.bashrc,创建一个新的cp /etc/skel/.bashrc "$USER_HOME/.bashrc"
fi# 添加一些有用的别名和环境变量到.bashrc
if ! grep -q "# User custom aliases and functions" "$USER_HOME/.bashrc"; thencat >> "$USER_HOME/.bashrc" << 'EOF'# User custom aliases and functions
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'# 显示系统信息
if [ "$TERM" != "dumb" ]; thenecho "欢迎, $(whoami)@$(hostname)"dateecho ""echo "系统负载: $(cat /proc/loadavg)"echo "内存使用: $(free -h | grep Mem | awk '{print $3 " / " $2}')"echo "磁盘使用: $(df -h / | grep / | awk '{print $3 " / " $2 " (" $5 ")"}')"echo ""
fi
EOF
fi# 创建简单的README文件
cat > "$USER_HOME/README.txt" << EOF
欢迎使用服务器账户:$USERNAME账户特权:
- 具有sudo权限(无需密码)
$(if getent group docker > /dev/null && groups "$USERNAME" | grep -q "\bdocker\b"; thenecho "- 可直接使用docker命令(已加入docker组)"
fi)使用提示:
- 请根据个人习惯创建和组织目录结构
- 请定期清理不必要的文件以节省磁盘空间如有任何问题请联系系统管理员。
EOF# 确保所有文件属于用户
chown -R $USERNAME:$USERNAME "$USER_HOME"# 检查docker组是否存在并处理
if getent group docker > /dev/null; then# 检查用户是否已在docker组中if groups "$USERNAME" | grep -q "\bdocker\b"; thenecho "用户 $USERNAME 已在docker组中"elseecho "将 $USERNAME 添加到docker组..."usermod -aG docker $USERNAMEfi
elseecho "警告: docker组不存在,无法将用户添加到docker组"if [ "$docker_installed" = true ]; thenecho "Docker已安装但docker组不存在,这可能是配置问题"fi
fi# 确保用户有sudo权限(无需密码)
if [ -f "/etc/sudoers.d/$USERNAME" ]; thenecho "用户 $USERNAME 的sudo配置已存在,确保权限正确..."
elseecho "设置 $USERNAME 的sudo权限..."
fi
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME
chmod 0440 /etc/sudoers.d/$USERNAME# 输出操作总结
echo "----------------------------------------"
echo "操作完成!"
if [ "$user_existed" = true ]; thenecho "- 已更新用户 $USERNAME 的配置"
elseecho "- 已创建用户 $USERNAME (密码为空格)"
fi
echo "- 已设置自定义.bashrc配置"
echo "- 已确保sudo权限(无需密码)"# docker相关状态
if getent group docker > /dev/null; thenif groups "$USERNAME" | grep -q "\bdocker\b"; thenecho "- 已确保用户在docker组中"fi
elseecho "- 未添加到docker组(组不存在)"
fi# 输出docker状态总结
echo "----------------------------------------"
echo "Docker状态:"
if [ "$docker_installed" = false ]; thenecho "- Docker未安装,如需使用,请先安装Docker:"echo "  sudo apt update && sudo apt install docker.io -y"echo "  或参考Docker官方安装指南"
elif [ "$docker_running" = false ]; thenecho "- Docker已安装但未运行,可使用以下命令启动:"echo "  sudo systemctl start docker"echo "  sudo systemctl enable docker  # 设置开机自启"
elseecho "- Docker服务正常运行中"
fi# 如果用户已创建但docker组不存在,提供重新运行的提示
if [ "$user_existed" = true ] && ! getent group docker > /dev/null && [ "$docker_installed" = true ]; thenecho "----------------------------------------"echo "提示: 安装Docker后,请重新运行此脚本将用户 $USERNAME 添加到docker组"
fiecho "----------------------------------------"
echo "用户 $USERNAME 的主目录: $USER_HOME"
echo "可通过以下命令登录用户: su - $USERNAME"

步骤3:设置执行权限

保存文件后,为脚本添加执行权限:

sudo chmod 775 /usr/local/bin/hello  # 让同组用户也可直接执行,编辑

### 使用方法现在,你可以通过简单的命令创建或更新用户:```bash
sudo hello username

例如,创建名为"baijs"的用户:

sudo hello baijs

在这里插入图片描述

脚本代码部分注释

1. 用户创建和密码设置

脚本首先检查用户是否已存在,如果不存在,则创建用户并设置密码。为了便于新用户第一次登录,脚本尝试设置一个简单的密码(空格字符):

# 设置密码为单个空格
echo -e " \n " | passwd $USERNAME 2>/dev/null || \
{ echo " " | passwd --stdin $USERNAME 2>/dev/null; } || \
{ echo "$USERNAME: " | chpasswd 2>/dev/null; } || \
{ echo "警告: 无法设置空格密码,使用用户名作为临时密码"; echo "$USERNAME:$USERNAME" | chpasswd; }

这段代码尝试多种方法设置空格密码,确保在不同的Linux发行版上都能正常工作。如果所有方法都失败,将回退到使用用户名作为密码。

2. 自定义Shell环境

脚本为新用户配置了一个友好的Shell环境:

  • 实用的别名(ll, la, .., 等)
  • 登录时显示系统状态信息
  • 定制的.bashrc配置

当用户登录时,他们会看到类似这样的信息:

欢迎, username@hostname
Wed Mar 26 15:30:45 CST 2025系统负载: 0.15 0.05 0.01 1/292 3021
内存使用: 1.2G / 8.0G
磁盘使用: 12G / 50G (25%)

3. 权限和组管理

脚本自动处理以下权限相关配置:

  • 配置sudo权限(无需密码)
  • 检测并添加用户到Docker组(如果存在)
  • 确保所有主目录文件的所有权正确

4. 便捷的用户文档

脚本在用户主目录创建README.txt文件,包含使用指南和账户特权信息,这里可以修改成你实验室的一些须知信息或者其他:

欢迎使用服务器账户:username账户特权:
- 具有sudo权限(无需密码)
- 可直接使用docker命令(已加入docker组)使用提示:
- 请根据个人习惯创建和组织目录结构
- 请定期清理不必要的文件以节省磁盘空间如有任何问题请联系系统管理员。

自定义脚本

你可以根据自己的需求修改脚本。以下是一些常见的自定义点:

调整安全设置

如果你需要更严格的安全策略,可以修改sudo权限部分:

# 限制sudo权限到特定命令
echo "$USERNAME ALL=(ALL) NOPASSWD: /usr/bin/docker, /usr/bin/apt" > /etc/sudoers.d/$USERNAME

常见问题排查

如果脚本执行遇到问题,请检查以下几点:

脚本找不到或无法执行

遇到"command not found"或"Permission denied"错误时:

# 检查脚本权限
ls -la /usr/local/bin/hello# 修复权限
sudo chmod +x /usr/local/bin/hello# 确保脚本在PATH中
sudo ln -sf /usr/local/bin/hello /usr/bin/hello

相关文章:

# 使用自定义Shell脚本hello快速配置Linux用户账户

使用自定义Shell脚本快速配置Linux用户账户 在学校实验室管理Linux服务器&#xff0c;或者公司小团队管理服务器时&#xff0c;大家需要一个能隔离自己服务&#xff0c;但是自己又需要对服务器的完整权限的情形。创建和配置用户账户是一项常见但繁琐的任务。特别是当你需要频繁…...

PyTorch中的Tensor

PyTorch中的Tensor‌ 是核心数据结构&#xff0c;类似于 NumPy 的多维数组&#xff0c;但具备 GPU 加速和自动求导等深度学习特性。 一、基本概念 ‌核心数据结构‌ Tensor 是存储和操作数据的基础单元&#xff0c;支持标量&#xff08;0D&#xff09;、向量&#xff08;1D&am…...

16-CSS3新增选择器

知识目标 掌握属性选择器的使用掌握关系选择器的使用掌握结构化伪类选择器的使用掌握伪元素选择器的使用 如何减少文档内class属性和id属性的定义&#xff0c;使文档变得更加简洁&#xff1f; 可以通过属性选择器、关系选择器、结构化伪类选择器、伪元素选择器。 1. 属性选择…...

关于笔记本电脑突然没有wifi图标解决方案

笔记本电脑突然没有wifi图标解决方案&#xff0c;设置里也看不见wifi&#xff0c;电脑突然就连不网络了 解决方案&#xff1a; 我的电脑——>管理——>服务和应用程序——>服务——>找到WLAN AutoConfig——>点击启动就好了...

Pytorch学习笔记(七)Learn the Basics - Optimizing Model Parameters

这篇博客瞄准的是 pytorch 官方教程中 Learn the Basics 章节的 Optimizing Model Parameters 部分。 官网链接&#xff1a;https://pytorch.org/tutorials/beginner/basics/optimization_tutorial.html 完整网盘链接: https://pan.baidu.com/s/1L9PVZ-KRDGVER-AJnXOvlQ?pwd…...

数据可视化TensorboardX和tensorBoard安装及使用

tensorBoard 和TensorboardX 安装及使用指南 tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具&#xff0c;而 TensorBoardX 是其社区驱动的替代品&#xff0c;支持 PyTorch 等其他框架。以下是它…...

工业4G路由器赋能智慧停车场高效管理

工业4G路由器作为智慧停车场管理系统通信核心&#xff0c;将停车场内的各个子系统连接起来&#xff0c;包括车牌识别系统、道闸控制系统、车位检测系统、收费系统以及监控系统等。通过4G网络&#xff0c;将这些系统采集到的数据传输到云端服务器或管理中心&#xff0c;实现信息…...

深度学习1—Python基础

深度学习1—python基础 你的第一个程序 print(hello world and hello deep learning!)基本数据结构 空值 (None)&#xff1a;在 Python 中&#xff0c;None 是一个特殊的对象&#xff0c;用于表示空值或缺失的值。它不同于数字 0&#xff0c;因为 0 是一个有意义的数字&#…...

数据结构十三、set map

一、set 1、size / empty size&#xff1a;返回set中实际元素的个数 empty&#xff1a;判断set是否为空 2、begin / end 这是两个迭代器&#xff0c;因此可以使用范围for来遍历整个红黑树。其中&#xff0c;遍历是按照中序遍历的顺序&#xff0c;因此是一个有序序列。 3、in…...

【大模型基础_毛玉仁】3.5 Prompt相关应用

目录 3.5 相关应用3.5.1 基于大语言模型的Agent3.5.2 数据合成3.5.3 Text-to-SQL3.5.4 GPTs 3.5 相关应用 Prompt工程应用广泛&#xff0c;能提升大语言模型处理基础及复杂任务的能力&#xff0c;在构建Agent、数据合成、Text-to-SQL转换和设计个性化GPTs等方面不可或缺。 . …...

自动驾驶VLA模型技术解析与模型设计

1.前言 2025年被称为“VLA上车元年”&#xff0c;以视觉语言动作模型&#xff08;Vision-Language-Action Model, VLA&#xff09;为核心的技术范式正在重塑智能驾驶行业。VLA不仅融合了视觉语言模型&#xff08;VLM&#xff09;的感知能力和端到端模型的决策能力&#xff0c;…...

【AI】Orin NX+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功

【AI】郭老二博文之:AI学习目录汇总 1、烧写系统 新到的开发板,已经烧写好Ubuntu系统,版本为22.04。 如果没有升级到Ubuntu22.04,可以在电脑Ubuntu系统中使用SDKManager来烧写Ubuntu系统,网络情况好的话,也可以直接将CUDA、cuDNN、TensorRT、Deepstream等也安装上。 2…...

vscode 通过Remote-ssh远程连接服务器报错 could not establish connection to ubuntu

vscode 通过Remote-ssh插件远程连接服务器报错 could not establish connection to ubuntu&#xff0c;并且出现下面的错误打印&#xff1a; [21:00:57.307] Log Level: 2 [21:00:57.350] SSH Resolver called for "ssh-remoteubuntu", attempt 1 [21:00:57.359] r…...

ESP32S3 WIFI 实现TCP服务器和静态IP

一、 TCP服务器代码 代码由station_example_main的官方例程修改 /* WiFi station ExampleThis example code is in the Public Domain (or CC0 licensed, at your option.)Unless required by applicable law or agreed to in writing, thissoftware is distributed on an &q…...

第三课:Stable Diffusion图生图入门及应用

文章目录 Part01 图生图原理Part02 图生图基本流程Part03 随机种子作用解析Part04 图生图的拓展应用 Part01 图生图原理 当提示词不能足够表达用户需求的时候&#xff0c;加入图片能让AI更好的理解你的想法图片上的像素信息会在加噪和去噪的过程中&#xff0c;作为一种特征反映…...

蓝桥与力扣刷题(蓝桥 蓝桥骑士)

题目&#xff1a;小明是蓝桥王国的骑士&#xff0c;他喜欢不断突破自我。 这天蓝桥国王给他安排了 N 个对手&#xff0c;他们的战力值分别为 a1,a2,...,an&#xff0c;且按顺序阻挡在小明的前方。对于这些对手小明可以选择挑战&#xff0c;也可以选择避战。 身为高傲的骑士&a…...

Photoshop怎样保存为ico格式

1. 打开图像 开启 Photoshop 软件&#xff0c;选择 “文件” 菜单&#xff0c;点击 “打开” 选项&#xff0c;然后找到你想要保存为 ICO 格式的图像文件并打开。 2. 调整图像大小&#xff08;可选&#xff09; ICO 图标通常有特定尺寸要求&#xff0c;你可以根据需求调整图像…...

Ubuntu xinference部署本地模型bge-large-zh-v1.5、bge-reranker-v2-m3

bge-large-zh-v1.5 下载模型到指定路径&#xff1a; modelscope download --model BAAI/bge-large-zh-v1.5 --local_dir ./bge-large-zh-v1.5自定义 embedding 模型&#xff0c;custom-bge-large-zh-v1.5.json&#xff1a; {"model_name": "custom-bge-large…...

python笔记之判断月份有多少天

1、通过随机数作为目标月份 import random month random.randint(1,12)2、判断对应的年份是闰年还是平年 因为2月这个特殊月份&#xff0c;闰年有29天&#xff0c;而平年是28天&#xff0c;所以需要判断对应的年份属于闰年还是平年&#xff0c;代码如下 # 判断年份是闰年还…...

Kotlin泛型: 协变|逆变|不变

引言 无论java 通配符上限还是下限&#xff0c;都多少存在缺陷&#xff0c;要么存不安全&#xff0c;要么取不安全。而kotlin就解决这个问题。让out 纯输出&#xff0c; 让in纯输入。 java这块知识&#xff1a; java泛型的协变、逆变和不变-CSDN博客 协变 生产者out T 协变…...

高斯数据库的空分区的查看和清理

在 高斯数据库&#xff08;GaussDB&#xff09; 中&#xff0c;分区表是一种常见的表设计方式&#xff0c;用于优化大数据的查询性能。 一、空分区的影响&#xff1a; 存储空间占用 元数据开销&#xff1a;即使分区中没有数据&#xff0c;数据库仍然需要维护分区的元数据&…...

word使用自带的公式

文章目录 Word公式中word公式快捷键&#xff1a;word2016公式框输入多行word 公式加入空格&#xff1a;word公式如何输入矩阵:公式图片转为Latex语法word 能直接输入 latex 公式么word公式中有的是斜体有的不是 word文本中将文字转为上标的快捷键 Tips几个好用的网站&#xff1…...

Linux系统-ls命令

一、ls命令的定义 Linux ls命令&#xff08;英文全拼&#xff1a;list directory contents&#xff09;用于显示指定工作目录下之内容&#xff08;列出目前工作目录所含的文件及子目录)。 二、ls命令的语法 ls [选项] [目录或文件名] ls [-alrtAFR] [name...] 三、参数[选项…...

数据结构:利用递推式计算next表

next 表是 KMP 算法的核心内容&#xff0c;下面介绍一种计算 next 表的方法&#xff1a;利用递推式计算 如图 6.3.1 所示&#xff0c;在某一趟匹配中&#xff0c;当对比到最后一个字符的时候&#xff0c;发现匹配失败&#xff08;s[i] ≠ t[j]&#xff09;。根据 BF 算法&…...

Git操作

1 git init 项目初始化&#xff08;init&#xff09;成仓库 2、git add 管理文件 3、git commit -m <message> 告诉Git&#xff0c;把文件提交到仓库 4、git status 查看当前管理文件的状态&#xff0c;命令 5、git log 查看提交&#xff08;commit&#xff09;的…...

什么是快重传

原理&#xff1a; 在TCP连接中&#xff0c;接受方会对收到的数据包发送确认&#xff08;ACK&#xff09;。如果接受方收到一个乱序的数据包&#xff08;即期望的下一个数据包尚未到达&#xff09;&#xff0c;它会重复发送对上一个已成功接受的数据包的确认。 当发送方连续收…...

计算机网络——物理层设备

目录 ​编辑 中继器 集线器&#xff08;Hub&#xff09; 集线器&#xff0c;中继器的一些特性 集线器和中继器不能“无限串联” 集线器连接的网络&#xff0c;物理上是星型拓扑&#xff0c;逻辑上是总线型拓扑 集线器连接的各网段会“共享带宽” 中继器 如果我们想要网络…...

CSS 预处理器

在面试中回答关于 CSS 预处理器的问题时&#xff0c;你可以从以下几个方面进行回答&#xff0c;展示你的知识深度和实践经验&#xff1a; 1. 什么是 CSS 预处理器&#xff1f; 你可以从定义和目的入手&#xff1a; “CSS 预处理器是一种扩展 CSS 功能的工具&#xff0c;它允许…...

解锁智能制造新体验:兰亭妙微 UE/UI 设计赋能行业变革

在智能制造时代的滚滚浪潮中&#xff0c;企业的数字化转型不仅是技术的革新&#xff0c;更是用户体验与交互界面的全面升级。然而&#xff0c;许多制造企业在这一转型过程中&#xff0c;面临着一系列 UI/UE 设计难题&#xff0c;严重阻碍了企业的数字化发展进程。兰亭妙微凭借专…...

计算机网络高频(三)UDP基础

计算机网络高频(三)UDP基础 1.UDP的头部格式是什么样的?⭐ UDP 头部具有以下字段: 源端口(Source Port):16 位字段,表示发送方的端口号。目标端口(Destination Port):16 位字段,表示接收方的端口号。长度(Length):16 位字段,表示 UDP 数据报(包括头部和数据部…...

Oracle数据库服务器地址变更与监听配置修改完整指南

一、前言 在企业IT运维中&#xff0c;Oracle数据库服务器地址变更是常见的运维操作。本文将详细介绍如何安全、高效地完成Oracle数据库服务器地址变更及相关的监听配置修改工作&#xff0c;确保数据库服务在迁移后能够正常运行。 二、准备工作 1. 环境检查 确认新旧服务器I…...

获取1688.item_password接口:解析淘口令真实URL

一、接口介绍 1688的item_password接口主要用于将1688平台的淘口令短链接转换为实际商品链接。它基于1688平台的后台数据和规则&#xff0c;对用户传入的淘口令进行解析和验证&#xff0c;通过相应的算法和数据匹配&#xff0c;找到对应的商品信息&#xff0c;并生成可直接访问…...

计算机网络的分类及其性能指标

一. 计算机网络的分类 1. 按分布范围分类 广域网&#xff08;WAN&#xff09; 也称远程网。广域网提供长距离通信&#xff0c;通常是几十千米到几千千米的区域&#xff0c;比如跨国通信。连接广域网的各结点交换机的链路一般是高速链路&#xff0c;具有较大的通信容量城域网&…...

Redis原理:watch命令

在前面的文章中有提到&#xff0c;在multi 前可以通过watch 来观察哪些key&#xff0c;被观察的这些key&#xff0c;会被redis服务器监控&#xff0c;涉及该key被修改时&#xff0c;则在exec 命令执行过程中会被识别出来&#xff0c;exec 就不会再执行命令。 源码分析 // 监控…...

微服务中的服务发现与注册中心

在微服务架构中&#xff0c;服务实例的数量可能随着流量负载自动扩展或缩减&#xff0c;因此服务之间如何高效地进行通信成为一个重要问题。本篇博客将介绍服务发现的概念&#xff0c;并结合 Consul 和 自定义注册中心 进行实践&#xff0c;帮助开发者在微服务架构下高效管理服…...

Flutter网络请求封装:高效、灵活、易用的Dio工具类

在Flutter开发中&#xff0c;网络请求是必不可少的功能。为了简化代码、提高开发效率&#xff0c;我们通常会封装一个网络请求工具类。本文基于Dio库&#xff0c;详细介绍如何封装一个高效、灵活、易用的网络请求工具类&#xff0c;支持以下功能&#xff1a; 单例模式&#xf…...

Axure项目实战:智慧城市APP(三)教育查询(显示与隐藏交互)

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;教育查询 主要内容&#xff1a;教育公告信息&#xff0c;小升初、初升高、高考成绩查询&#xff1b;教育公告信息为传统的信息页面&#xff0c;小升…...

案例实践 | 招商局集团以长安链构建“基于DID的航运贸易数据资产目录链”

概览 案例名称 基于DID的航运贸易数据资产目录链 业主单位 招商局集团 上线时间 2024年10月 用户群体 供数用数企业和个人 用户规模 集团内20企业 案例背景 招商局集团深入落实“促进数据高效流通使用、赋能实体经济”精神&#xff0c;深化集团数字化水平&#xff0c…...

计算机网络入门:物理层与数据链路层详解

&#x1f310; &#xff08;专业解析 中学生也能懂&#xff01;&#xff09; &#x1f4d6; 前言 计算机网络就像数字世界的“高速公路系统”&#xff0c;而物理层和数据链路层是这条公路的基石。本文用 专业视角 和 生活化比喻 &#xff0c;带你轻松理解这两层的核心原理&a…...

使用 Docker 部署 RabbitMQ 的详细指南

使用 Docker 部署 RabbitMQ 的详细指南 在现代应用程序开发中&#xff0c;消息队列系统是不可或缺的一部分。RabbitMQ 是一个流行的开源消息代理软件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;。本文将详细介绍如何使用 Docker 部署 RabbitMQ&#xf…...

数据结构之基本队列-顺序结构实现-初始化-判断队列是否为空(front=rear)-出队-入队-队尾满了,调整队列-获取队头元素

数据结构之基本队列-顺序结构实现-初始化-判断队列是否为空(frontrear)-出队-入队-队尾满了&#xff0c;调整队列-获取队头元素——完整可运行代码 #include <stdio.h>#define MAXSIZE 100 typedef int ElemType;typedef struct {ElemType data[MAXSIZE];int front;int…...

如何用 Postman 发送 POST 请求?

POST 请求是 HTTP 协议中用于提交数据的一种方法&#xff0c;Postman 提供了丰富的功能来支持用户发送包含各种信息的 POST 请求&#xff0c;如文本数据、JSON 或 XML 数据结构、文件等。 Postman 发送 post 请求教程...

基于Spring Boot的网上商城系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

mysql中的聚簇索引,什么是聚簇索引和非聚簇索引

文章目录 1. 什么是聚簇索引2. 非聚簇索引3. 聚簇索引的优缺点4. 聚簇索引的使用场景5. 聚簇索引和主键索引的异同前言: 在继续讲解专栏内容之前,先学习几个概念,以便更好了解: 什么是聚簇索引什么是回表这篇文章详细分析 聚簇索引。回表的理解可以进入这篇文章:什么是回表…...

涨薪技术|使用Dockerfile创建镜像

上次的推文内容中介绍了如何使用docker commit的方法来构建镜像&#xff0c;相反推荐使用被称为Dockerfile的定义文件和docker build命令来构建镜像。Dockerfile使用基本的基于DSL语法的指令来构建一个Docker镜像&#xff0c;之后使用docker build命令基于该Dockerfile中的指令…...

OpenFeign在微服务中的远程服务调用工作流程

OpenFeign作为声明式的HTTP客户端,在微服务架构中的远程调用工作流程可分为以下标准步骤: 一、初始化阶段 1. 接口定义(声明式API) @FeignClient(name = "user-service", path = "/api/users") public interface UserServiceClient {@GetMapping(&q…...

力扣14. 最长公共前缀:Java四种解法详解

力扣14. 最长公共前缀&#xff1a;Java四种解法详解 题目描述 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例&#xff1a; 输入&#xff1a;strs ["flower","flow","flight&quo…...

关于deepin上WPS读取windows上的docx文件

最近在尝试着用deepin替代windows&#xff0c;在deepin上安装了wps读取在windows上编辑的docx和xlsx文件&#xff0c;遇到类似如下的错误&#xff1a; 系统缺失字体&#xff1a;Symbol、Wingdings、Wingdings2、Wingdings3、Webdings、MT Extra WPS无法正确的显示某些符号&…...

利用python调接口获取物流标签,并转成PDF保存在指定的文件夹。

需求 调用get label 接口将接口返回的base64文件转换成pdf文件命名用接口返回值的单号命名保存再指定的文件夹重 实现代码 # -*- coding: utf-8 -*- import requests import base64 import os import json # 新增json模块导入url "http://releasud.com/api/label/Lab…...

31天Python入门——第15天:日志记录

你好&#xff0c;我是安然无虞。 文章目录 日志记录python的日志记录模块创建日志处理程序并配置输出格式将日志内容输出到控制台将日志写入到文件 logging更简单的一种使用方式 日志记录 日志记录是一种重要的应用程序开发和维护技术, 它用于记录应用程序运行时的关键信息和…...