Linux-常用命令

Ambari集群部署全流程 Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应、管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。 服务器资源目录 ip地址 节点 组件 192.168.186.164 master 192.168.186.167 slave 阅读详情

基本命令

查看文件
ls #列出当前目录文件和文件夹名称
	-F #输出可以区分文件和文件夹
	-a #输出包括隐藏文件
	-R #递归输出当前文件夹里所有的文件和文件夹
	-l #输出包括文件详细信息
		*_script #使用*或?进行文件模糊匹配过滤输出
cat test_file #查看文本文件里的内容
	-n #给显示结果加上行号
创建文件
touch test_file #在当前目录创建空文件,如果文件已存在,则仅更新修改时间
mkdir new_dir #创建文件夹
	-p new_dir/sub_dir/last_dir #链式创建文件夹
复制文件
cp src_file new_file #以源文件复制出新文件,如果同名文件已存在会覆盖
cp src_file /home/document/ #将文件复制到目标目录中,勿忘最后的斜杠
cp -R scripts/ new_dir #递归复制源目录下所有文件到新目录
链接文件
ln -s src_file short_cut_file #软链接,即创建源文件的快捷方式
ln src_file short_cut_file #硬链接
移动文件
mv old_name new_name #文件或文件夹重命名
mv src_file /home/document/ #将文件或文件夹剪切到目标目录中
删除文件
rm -i file #删除文件,加-i可以带提示防止误删
	-r dir #递归删除目录下所有文件和文件夹
	-f #强制删除
	-rf #慎用,无提示
rmdir dir #删除空文件夹

bash shell命令

进程
ps -ef #显示系统运行的所有进程
top #实时监测进程,类似任务管理器
kill -9 pid #终止指定pid进程
磁盘
df -h #显示已挂载设备的磁盘空间使用情况
排序
sort file #对文本文件内容排序,默认按字符排序
	-n file #内容按数字大小排序
	-M file #内容按月份排序
搜索
grep [options] pattern [file] #从文本文件匹配查找出符合条件的行
	hello my_code #检索出my_code文件中有hello的行
压缩
gzip my_dir #压缩文件夹为.gz文件
gunzip my_dir #解压.gz文件
tar -zcvf my_dir.tar.gz sub_dir1/ sub_dir2/ #压缩为.tar.gz文件
tar -zxvf my_dir.tar.gz #解压.tar.gz文件

环境变量

加载顺序
  • 系统启动会首先加载/etc/profile文件,它遍历执行了/etc/profile.d目录下所有文件

  • 之后会按以下顺序,运行第一个被找到的文件,余下的被忽略

    /etc/profile

    => $HOME/.bash_profile

    => ($HOME/.bashrc)

    => $HOME/.bash_login

    => $HOME/.profile

    其中,.bash_profile文件内会检查是否存在$HOME/.bashrc文件,存在则执行

查看
env #打印全局环境变量(系统变量名都是大写字母)
echo $HOME #打印指定的环境变量值,注意变量名前加$
自定义变量
#局部变量 仅在当前bash进程内有效
my_variable=Hello #自定义一个局部变量(用户自定义变量名用小写字母)

#全局变量 子bash会继承父bash的变量,但子bash修改删除该变量都不会影响父bash
export my_variable #先定义一个局部变量,再用export导出为全局变量

#持久化 bash内自定义的变量是临时的,关机或重启后就会消失
正确方式:在/etc/profile.d目录中创建.sh文件,在其中编辑自定义变量
删除
unset my_variable #移除自定义变量
给PATH中添加值
PATH=$PATH:/home/codfish/bin #引用旧的PATH变量,添加一条新路径
export PATH #导出,使子bash也能用新命令

权限

查看
#查看用户
#内容依次表示:用户名:密码:用户ID:组ID:备注:HOME目录:默认shell
cat /etc/passwd
codfish:x:1000:1000:,,,:/home/codfish:/bin/bash

#查看组
#内容依次表示:组名:密码:组ID:用户列表
cat /etc/group
codfish:x:1000:
添加
#添加用户
useradd
	-m codfish2 #创建codfish2用户,并创建HOME目录/home/codfish2
	-D #查看创建新用户时系统设定的用户参数默认值
	
#添加组
groupadd
删除
#删除用户
userdel 
	-r codfish2 #删除codfish2用户在/etc/passwd中的值,并删除HOME目录
修改
#修改用户
usermod
#修改组
groupmod
修改文件权限
chmod
	760 my_file #修改文件权限,用户7,所属组6,其他用户0
chown
	codfish:codfish my_file #修改文件所属用户和所属组

image-20211026101307907

分配普通用户权限
- sudo 免密
sed -i 'codfish ALL=(ALL) NOPASSWD: ALL' /etc/sudoers
- 资源目录操作权限
chown -R codfish:codfish /opt/codfish-softwares
SSH免密登录

A服务器免密登录到B服务器

ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "一些备注信息"   #在A服务器创建公钥&私钥对
cat ~/.ssh/id_rsa.pub  #查看公钥内容
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@192.168.2.100 #拷贝公钥到B服务器
ssh root@192.168.2.100 #成功登录

安装软件

Debian系列(Ubuntu)
sudo apt-get install package_name 
Red Hat系列(CentOS)
sudo yum install package_name 

更多操作使用命令手册查看

Linux 常用命令大全 Linux 系统作为服务器和开发环境中的主流操作系统,拥有丰富的命令行工具。掌握常用的 Linux 命令不仅能够提升工作效率,还能让你在系统管理、文件处理、网络配置等方面游刃有余。本文将详细介绍 Linux 中最常用的命令,涵盖文件操作、系统管理、网络命令等多个领域。 阅读详情

相关推荐

使用ShaderGraph制作URP各向异性

URP上用shaderGraph实现各向异性效果,解决只能用shader的问题

dreamform的专栏 1098

详解“%sudo ALL=(ALL:ALL) NOPASSWD:ALL”

Ubuntu系统的/etc/sudoers里面会默认有“%sudo ALL=(ALL:ALL)”这个字段,意思为sudo组下的所有用户都能使用sudo权限,前提需要执行用户本身的密码,那如果不想输入执行者的密码也获取sudo权限怎么办呢?那就是配置免密sudo。 第一种 sed -i '/%sudo/c %sudo ALL=(ALL:ALL) NOPASSWD:ALL' /etc/sudoers visudo -c #检查语法是否正确,一定要执行,否则出现问题很麻烦 各字段解释:...

weixin_39833509的博客 3254

【科研】Michaelis–Menten 曲线(米氏曲线)中反应速率的计算

Michaelis–Menten 曲线 米氏曲线 纵坐标 反应速率求值 朗伯比尔定律

weixin_42809675的博客 2万+

免密sudo,详解“%sudo ALL=(ALL:ALL) NOPASSWD:ALL”

Ubuntu系统的/etc/sudoers里面会默认有“%sudo ALL=(ALL:ALL)”这个字段,意思为sudo组下的所有用户都能使用sudo权限,前提需要执行用户本身的密码,那如果不想输入执行者的密码也获取sudo权限怎么办呢?那就是配置免密sudo。常用的两种方法: 第一种 sed -i '/%sudo/c %sudo ALL=(ALL:ALL) NOPASSWD:ALL' /e.........

运维@小兵的博客 4万+

手把手教你使用transciver-ip核的配置

手把手教你使用transciver-ip核的配置

u012938458的博客 5412

企业微信消息推送(一)接收消息服务器URL

企业微信限制过多,公司域名所有权检验不通过。采用接收消息服务器URL的方式。使用vscode,将UTF-8 BOM文本编码改为UTF-8。配置接收消息服务器URL。

Xiaoweidumpb 1万+

Linux用户和权限

此篇主要对linux的用户权限进行了大体认知,并学习了修改用户权限 文件权限的一些命令

qq_67548292的博客 1449

【中软软件测试笔试题】中国软件与技术服务股份有限公司笔试一卷

请分别写出ISO7层架构,并分别说明TCP、UDP协议分别在处于哪一层,以及TCP、 UPD协议有什么区别。 答:7 应用层 6 表示层 5 会话层 4 传输层 3网络层 2 数据链路层 1 物理层 第四层;UDP是面向无连接、不可靠数据传输协议; TCP是面向连接、可靠数据传输协议......

Yanan990830的博客 1815

/etc/sudoers 文件格式解读

/etc/sudoers 文件格式解读

AntHub的博客 907

PyTorch复现EEG-TCNet踩坑记:从BCI IV2a数据到TCN块缺失的完整解决方案

本文详细解析了使用PyTorch复现EEG-TCNet模型的全过程,重点解决了BCI IV2a数据集预处理和TCN模块缺失的技术难题。通过标准化数据流程、跨受试者验证策略以及三种因果卷积实现方案,为运动想象分类任务提供完整解决方案,帮助研究者高效实现模型复现与优化。

weixin_30699955的博客 319

[Dify实战] OA 公文排版助手:自动格式化、编号、生成摘要-带配套资源

摘要: Dify 公文排版助手通过自动化解决公文处理中的格式混乱、编号错漏等问题。支持标题层级自动编号、摘要生成、要素补全等功能,输出标准化Markdown格式。核心流程包括输入原文、智能识别、自动排版与要素输出,适用于通知、纪要等场景。实施需统一模板规则,规范输入格式,并通过试跑优化纠错率与处理效率。关键价值在于减少人工返工,提升排版一致性,未来可对接OA系统实现全流程自动化。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 472

Linux常用命令

Linux常用命令 1.查看目录结构命令 ls(list)功能:列出目录内容 格式:ls[参数][文件或目录] -a或--all 所有文件和目录。注意隐藏文件、特殊目录、以“.”开头的和以“..”开头的 -l 使用详细格式列表 -t 用文件和目录的更改时间排序 -r 反向排序 --help 在线帮助 常用: ls -l 列出...

云飞扬°的博客 6万+

从零开始跑通3DGS教程:(五)3DGS训练

本文介绍了在Docker环境中训练3DGS(3D Gaussian Splatting)的方法,属于《从零开始跑通3DGS教程》系列文章的第五部分。主要内容包括:Docker环境准备(基于pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime镜像)、容器内conda环境配置(安装必要依赖和3DGS相关组件)、以及训练命令执行步骤。文章提供了详细的命令行操作流程,帮助读者快速搭建3DGS训练环境。适合在Linux系统、Nvidia GPU环境下使用,完整教程可参考系列文章

诺有缸的高飞鸟的博客 1754

Linux系统及常用命令

在Linux操作系统中,每当我们使用用户名登录操作系统时,Linux都会对 该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是 UID。​ 用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。​ 在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限, 能执行任何命令和操作,而其他用户都是普通用户。​ Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。

渣渣盟的博客 1815

深度学习工具包 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")

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux常用命令大全

目录 常用命令 目录操作 查看文件内容 创建文件或目录 删除文件或目录 移动文件或目录 复制文件或目录 修改文件或目录权限 更换软件源 常用命令 mkdir dir1 创建一个叫做 'dir1' 的目录' touch test.out 创建test.out文件 rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 mv dir1 new_dir 重命名/移动 一个目录 cp file1 dir 复制一..

lduzhenlin的专栏 3286

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Linux的常用命令

Linux的常用命令

weixin_56449709的博客 1096

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《Linux程序设计》实验1 Linux常用命令

(1)帮助命令:--help、info。(2)文件系统常用命令:ls、mkdir、rmdir、mv、rm、cp、find、head、tail、wc、grep、gzip、gunzip、tar、mount、umount。(3)系统管理常用命令:useradd、passwd、kill、date。(4)网络操作常用命令:ifconfig、ifup、ifdown、ping。(5)网络安全常用命令(6)字符串显示命令echo。(1)切换到/home目录。

J1481852914的博客 984

Linux笔记(常用命令)

Linux常用命令讲解

LLM | Agent | RAG | Java 2369

linux常用命令学习

stat cuda #查看cuda连接到的软连接 touch a.txt#新建文件a.txt mkdir build#新建文件夹build/ rm -rf a.txt#删除文件 mv a.txt b.txt#文件重命名 du -sh#查看当前目录总占用量,不单独列出各项占用量 du -lh --max-depth=1#查看当前目录下一级子文件和子目录磁盘占用情况 ls -lht #查...

冬后晚晴的博客 385

linux常用命令_linux常用命令汇总

把前几天更新的linux的常用命令汇总在了一起,方便大家查看。linux常用命令如下:cd首先我们先介绍最简单,也是我最常用的命令之一,cd命令。##进入用户家目录cdcd~##查看目录的路径pwd如果想要进入某特定路径#进入某特定目录cdDesktop/test##查看当前路径pwd想要进入上层目录#进入上层目录cd../##查看当前目录pwd想要进入跟目录下一层的某目录##进入...

weixin_39566773的博客 211

Linux中常用命令

作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本语法: vi fileName说明:1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。2). 要使用vim命令,需要我们自己完成安装。

2301_78554215的博客 2008

Linux常用命令思维导图

Linux常用命令思维导图

fengxiandada的博客 1581

linux常用命令_Linux 最常用命令

Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。一、Linux的目录结构/的下级目录bin (binaries)存放二进制可执行文件sbin (s...

weixin_39609770的博客 353
上一篇: 高并发核心知识——ZooKeeper
codfishXY
博客等级 码龄9年 25粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值