ubuntu下修改用户名、用户组、登录名、主目录名

ubuntu修改主机名和用户名 参考文章: https://blog.youkuaiyun.com/fkmmmm/article/details/127333212。 阅读详情
AI摘要

本文详细介绍如何在Ubuntu系统中更改用户名,包括登录名和系统内的所有相关设置。文章提供了两种安全有效的修改方法,并附带具体步骤。

今天觉得现在的用户名不够响亮,想改:

  1. usermod -l old_username new_username

这样仅改了登录名,本人强迫症重度患者,想要把老用户名从系统里清理掉,统统换成新的,查了网上资料,磕磕绊绊的,终于搞定了,总结如下。
需要修改的文件:

  • /etc/passwd
  • /etc/group
  • /etc/shadow
  • /etc/hosts
  • /etc/hostname

1. 方法

1.1 错误方式

千万不要采用网上某些人说的在当前用户下使用sudo来直接修改password等几个文件,一旦修改了passwd,用户名发生了变化,其他的用户组、密码等却没有对应的配置,就再进不了该用户了。
如果你已经这么作了(我就这么干了),不要紧,采用以下的recovery mode方式还是能搞定的。

1.2 正确的两种方式

  • 重启ubuntu,启动时按住shift不放,进入recovery mode,选择root模式进入,修改配置。
  • 如果设置了root密码的话,使用root进入系统,修改配置。

在root下修改系统文件才是正确、稳当的做法。

2. 在recovery mode环境下的修改过程

我就是采取这样的方式。

2.1 进入recovery mode,将/目录重新挂载为读/写

如果/etc是另外一个单独分区,这里就应该是重新挂载/etc分区,我的/etc是在/目录下,所以是对/目录重新挂载

  1. mount -o remount, rw /

否则修改文件时会提示:ubuntu recovery mode root readonly filesystem

2.2 修改文件

recovery mode中无法使用vi、sudo、usermod等命令,采用以下的直接修改系统文件的方式,使用nano将以下文件中的old_username全部修改为new_username,不能有遗漏:

  1. nano /etc/passwd # 更改用户名、所属组名、主目录名
  2. nano /etc/group # 更改组名,将new_username加入sudo,等
  3. nano /etc/shadow # 更改terminal中显示的用户名
  4. nano /etc/hosts # 更改terminal中显示的机器名
  5. nano /etc/hostname # 更改登录界面显示的名字

2.3 修改主目录文件夹名字

如果home没有单独分区,则直接修改:

  1. mv /home/old_username/ /home/new_username/

如果home目录有分区,在作修改前,先将home挂载起来:

  1. mount /home

修改完毕后,卸载home:

  1. umount /home

2.4 修改结束

将根目录重新挂载为只读:

  1. mount -o remount, ro /

重启电脑:

  1. reboot

3. 使用root用户的方式

3.1 修改系统配置文件

要用root登录哈!!!
参考条目2,这下就能用vi了。

3.2 命令方式(摘自网络^_^)

ctrl + alt + F1(F1到F6都可以)

  1. sudo -s 输入当前帐号密码进入root
  2. passwd 创建你的root密码
  3. passwd 原名字 # 此步应该是修改密码,会提示输入新密码
  4. chfn -f 新名字 原名字 # 修改用户名
  5. usermod -l 新名字 -d /home/新名字 -m 原名字 # 修改登录名
  6. # 如果提示有进程在使用这个目录,找到进程,kill即可
  7. groupmod -n 新名字 原名字 # 修改用户组

打完收工~~~~~


Ubuntu系统 - 修改主机名、用户名和密码 一般新手初次接触Ubuntu系统的虚拟机,在安装时可能没有想好给主机、用户取一个合适的名字,或者没有设置一个实用的密码,渡过Ubuntu系统的认识阶段后普遍会觉得不合适,这个时候就想修改主机名、用户名和密码。本文将详细介绍Ubuntu系统中修改主机名、用户名以及密码的方法,为各位友友排忧解难。 阅读详情

相关推荐

Ubuntu上创建用户、创建用户组和设置权限

①以及查看当前登录 ②查看所有用户 ③查看所有用户组 ④新建一个名为workgroup的用户组 ⑤新建用户jinxian,并归入workgroup用户组 ⑥为jinxian用户设置密码 ⑦在/home下创建一个work的目录 ⑧ 现在,任何人都可以访问这个新建的目录,而只有root用户才拥有该目录的写权限。 现在希望让workgroup组的成员拥有这个目录的读写权限,并禁止其他无关的用户查看这个目录。 ⑨将用户aietest归属到workgrop用户组 ⑩接下来需要将这个目录交给一个组长aietest,将

幽冥之花的博客 1351

Ubuntu系统修改用户名

Ubuntu系统修改用户名

weixin_44675684的博客 2万+

【ubuntu】修改用户名、主机名、主文件夹名、登录名、密码

(3)/home/sunpeng 主文件名(一般来说,用户名和主文件夹名一致)用户名: 密码 : uid : gid :用户描述:主目录:登陆shell。如果里面有 用户名,那就改;1)passwd 自己要设置的密码。这个里面 很多用户名 需要全部修改掉。(2)ubuntu16 主机名。(1)sunpeng 用户名。2)user 自己的用户名。将第二行的名称 改为新名称。将里面的名称改为新名称。

qq_39200110的博客 4114

Ubuntu系统更改用户名

临时起意想给把我的用户名更改一下,上网查了一些资料,在此记录一下。

qq_32639369的博客 9241

脑机接口最新发展动态报告 (2024-2025)

脑机接口动态

高山 4105

使用ChIPSeeker进行ChIP-seq, ATAC-seq,cut&tag等富集峰的基因组注释

常规的下一代高通量测序(next generation sequencing, NGS)实验通常产生大量短片段(reads),通常我们需要将这些reads比对到参考基因组/转录组上,即将它们置于生物学上有意义的基因背景下,才能获得有意义的结果。一般我们认为会产生两种类型的数据(当然两者并无严格意义上的区分)

微生信 3318

Ubuntu系统修改主机名、用户名及密码

重新打开终端,命令提示符中的主机名会更新,或输入hostname查看。

weixin_54185074的博客 4363

基于深度学习 YOLOv11 的快递包裹检测系统(Python + PySide6 界面 + 训练代码)

成为亟需优化的重要环节。随着电子商务的快速发展,物流行业面临着越来越大的压力,为了解决这些问题,我们提出了一种。目标检测算法,实现快递包裹的。的界面,供用户进行实时监控。本项目的主要目标是利用。

斌擎科技 762

(转)ubuntu下修改用户名、用户组、登录名、主目录名

之前直接在 /etc/hostname /etc/hosts 中更改了计算机名字。结果,在登录界面输入了正确密码之后又重新跳回登录界面。按网上的说法,修改.Xauthority之类,但没有成功。 最后按照这个做法弄好了http://it.010lm.com/os/LINUX/159980.html。 转载于:https://www.cnblogs.com/linttt/p/45...

341

Amazon Skills:51个AI技能赋能亚马逊运营,从选品到广告全链路分析

在电商运营领域,数据分析和自动化工具正成为提升效率的关键。其核心原理在于将专业经验转化为结构化指令,使AI能够执行标准化流程。这种技术价值体现在降低专业门槛、提升决策效率,尤其适用于亚马逊这类数据驱动的电商平台。通过将选品、关键词研究、FBA费用计算、PPC广告优化等运营框架编码为可执行指令,AI助手能够模拟专家思维进行市场分析。Amazon Skills项目正是这一理念的实践,它提供51个覆盖运营全链路的技能模块,让卖家在自然对话环境中获得专业分析支持,实现从市场研究到利润核算的自动化工作流。

weixin_27134143的博客 1296

二十一.基于国民MCU 的增加M4F DSP库调用的验证

Cortex-M4F内核不仅内置硬件FPU单元,还支持多种DSP指令集,比如支持单周期乘加指令(MAC)等。因此Cortex-M4执行所有的DSP指令集都可以在单周期内完成,而Cortex-M3和M0需要多个指令和多个周期才能完成同样的功能。比如开方运算,M3和M0只能通过迭代法(标准数学函数库)计算,而M4F直接调用VSQRT指令完成。参考:\Nationstech.N32G45x_Library.1.1.1\Nationstech.N32G45x_Library.1.1.1\projects\n32g4

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 934

Ubuntu下修改主机名、root用户sudo密码、普通用户名及密码

Ubuntu下修改主机名、root用户sudo密码、普通用户名及密码 ubuntu首先登录的是普通用户,此时打开终端。 首先更改主机名字————改为bbb,很简单,不会导致ubuntu出现错误: (1) 修改hostname文件 sudo vim /etc/hostname ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200728215740643.pn 这个文件中的内容是用来显示主机名字的,修改这个文件后,如果立刻重启,我们会看到终端中@后面的主机名将

weixin_38640195的博客 6130

AMBA-CHI协议详解(七)

本节描述该协议包含的支持系统保序需求的机制。

Crazzy_M的博客 1158

修改ubuntu用户名,选了创建新用户的方式

本文介绍了三种修改Linux系统用户名的方法:1)通过登录界面使用其他管理员账户操作;2)在系统内使用usermod命令修改用户名、家目录和用户组(推荐);3)处理用户进程占用情况。操作步骤包括切换到root用户、执行修改命令和验证修改。注意事项强调备份数据、重新登录、检查服务和图形界面问题,若修改失败可创建新用户迁移数据。修改完成后需重启系统使用新用户名登录。

qq_53092426的博客 753

【车载以太网】【架构】整体架构与协议标准

车载以太网架构图 应用层:DHCP /SOMEIP/DoIP/XCP/UDPNM 传输层:TCP/IP 网络层:IPv4/IPv6/ARP/ICMP 链路层:IEEE Ethernet MAC+VLAN 物理层:Ethernet PHY: 100BASE-T1/1000BASE-T1/100BASE-Tx

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 8354

Unreal5.6从入门到精通之 如何实现MetaHuman数字人

本文介绍了使用HYPER3D-ChatAvatar网站生成3D头部模型,并导入Unreal Engine制作数字人的完整流程。首先上传照片生成头部模型(约2分钟),设置参数后下载模型文件。然后在UE5.6中创建项目,激活MetaHuman插件,导入头部模型并调整肤色、面部特征和身体模板。通过MetaHuman Creator组装数字人蓝图,支持添加音频/视频动画功能。关键步骤包括:取消Rigging选项节省时间、切换英文模式避免材质问题、使用Live Link Face应用实现面部捕捉等。整个流程约需5-1

TxNet 1345

HoRain云--Ubuntu用户名密码修改全攻略

本文提供了Ubuntu系统修改用户名和密码的详细指南。主要内容包括:1)修改密码的三种方式(当前用户、其他用户和root用户);2)两种修改用户名的方法(推荐使用usermod命令或手动修改配置文件);3)重要注意事项(操作顺序、数据备份、用户状态等);4)常见问题解决方案(无法登录时的处理方法)。文章特别强调修改用户名的风险,建议先创建临时管理员账户,并在测试环境中尝试操作。适合需要修改Ubuntu系统账户信息的用户参考,操作需谨慎并做好备份。

sinat_57153473的博客 604

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Gold菜鸟】Linux知识回忆(3)——用户组和权限

这一部分让我们来了解,Linux中的用户组和权限吧~

geekgold的博客 1361

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Linux修改用户名,与正在运行的Apache有关

&gt;&gt;&gt; 使用root帐号进行操作sudo -i&gt;&gt;&gt; 记录目前的帐号的信息id oldusername&gt;&gt;&gt; 给客户提示 维护中nano /var/www/mysite/index.php die('Site is Under Maintenance, Please Visit Later');&gt;&gt;&gt; 停止apacheapac...

Rudon滨海渔村的博客 1168

linux usermod改用户组无效,ubuntu不小心改变了用户的组,无法使用sudo的解决方案...

Java代码idusernameusermod 用户修改工具(极其强大)usermod 不仅能改用户的SHELL类型,所归属的用户组,也能改用户密码的有效期,还能改登录名。usermod 如此看来就是能做到用户帐号大转移;比如我把用户A改为新用户B;usermod [-u uid [-o]] [-g group] [-G group,...][-d 主目录 [-m]] [-s shell] [...

weixin_39555715的博客 2355

红帽linux系统更改主机名称,怎么在 redhat 中修改计算机名

在这里我就不细说原理了,直接给出具体的操作方法如下:1、建议使用single模式(如ubuntu中的RecoveryMode以root用户登录系统。当然这个也不是必须的,如果你有两个或者两个以上的用户,并且其中不需要的更改的那个具有获得root权限的资格即可。是不是说的有点乱了?呵呵因为我当时的情况是要修改两个用户名,两者都可获得root权限,可交替操作。但怎么说,也不如直接以root身份等来的方...

weixin_39746282的博客 2254

Ubuntu用户全名设置与GECOS字段详解:从概念到实践

在Linux系统管理中,用户账户管理是基础且关键的环节,其中用户标识信息分为用于系统认证的用户名和用于友好显示的用户全名。用户全名存储在/etc/passwd文件的GECOS字段中,作为一个元数据字段,它支持包含空格和中文的自由格式,主要用于图形界面登录显示、文档作者标识等场景,而不会影响系统权限和登录流程。理解这一原理对于实现规范化的用户管理、编写自动化脚本以及维护系统可维护性具有重要价值。本文聚焦Ubuntu 22.04环境,深入解析用户全名与用户名的本质区别,并详细演示了通过图形界面、usermod命

weixin_33725270的博客 469

Ubuntu常用命令

在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。创建用户user1的时候指定其所属工作组users,例:useradd –g users user1一、创建用户:1、使用命令 useradd例:useradd user1——创建用户user1    useradd –e 12/30/2009 user2——创建user2,指定有效期200...

MyArrow的专栏 4754

Linux的简单操作

1.了解Linux系统的组成。2.熟练操作Linux系统的基本命令。

2501_93518095的博客 392

第七次作业(理解Linux文件权限)

每个进入系统的用户都有唯一账户,系统通过UID(用户ID)来跟踪权限,而登录时使用的是登录名(最长8字符,可含字母数字,关联密码)。**后9个字符**:分为三组,每组3位,分别代表**属主(u)**、**属组(g)**、**其他用户(o)** 的权限。-特殊权限:`X`(对目录或已有执行权限的文件赋予执行权限)、`s`(设置UID/GID)、`t`(粘滞位)等。默认只删除 `/etc/passwd` 和 `/etc/shadow` 中的信息,**不删除**用户文件。`-g` 则修改默认组。

sysrrr的博客 223

Linux最全Linux常用指令(超详细整理)(1),2024年最新写给程序员的Flutter详细教程

etc/group 文件:组(group)的配置文件,记录Linux包含的组的信息。

2301_76190672的博客 997
上一篇: 我用ubuntu——linux路上搞qq,及,其他
下一篇: ubuntu中desktop文件执行报错
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值