linux下常用操作(持续更新)

【Linux操作】常用命令整理(持续更新中...) 解压缩 .tar.bz2 压缩 tar -cjf images.tar.bz2 ./images/ 解压缩 tar -xjf images.tar.bz2 阅读详情

用户和用户组:

 一,组操作

1,创建组 

groupadd test 

增加一个test组

添加用户组:

groupadd test

2,修改组

groupmod -n test2  test

将test组的名子改成test2

3,删除组

groupdel test2

删除 组test2

4,查看组

a),查看当前登录用户所在的组 groups,查看apacheuser所在组groups apacheuser

b),查看所有组 cat /etc/group

c),有的linux系统没有/etc/group文件的,这个时候看下面的这个方法

cat /etc/passwd |awk -F [:] ‘{print $4}’ |sort|uniq | getent group |awk -F [:] ‘{print $1}’

这里用到一个命令是getent,可以通过组ID来查找组信息,如果这个命令没有的话,那就很难查找,系统中所有的组了.

二、用户操作

1,


配置jdk环境和tomcat环境

 第一步:将jdk和tomcat解压到用户目录下

第二部:修改.bash_profile文件 

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。 
·用文本编辑器打开用户目录下的.bash_profile文件 
·在.bash_profile文件末尾加入: 


export PATH
export JAVA_HOME=/home/xiaoyuan/java/jdk1.7.0_75
export JRE_HOME=/home/xiaoyuan/java/jdk1.7.0_75/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


export CATALINA_HOME=/home/xiaoyuan/server/apache-tomcat-7.0.59
export CATALINA_BASE=/home/xiaoyuan/server/apache-tomcat-7.0.59

4、基于球面波展开的近场/远场变换技术解析 本文深入解析了基于球面波展开的近场/远场变换技术,涵盖坐标系统选择、截断测量处理、高级SWE方法及实际应用场景。重点介绍了广义SWE、全探头补偿、平移SNF测量(TSWE)等关键技术,结合吸收材料与导电地板系统的误差处理方案,系统总结了各类方法的优缺点与适用场景,并通过流程图和案例分析展示了技术应用路径。该技术在汽车、通信和航空航天领域的天线测量中具有重要价值,可显著提升测量效率与精度。 阅读详情

相关推荐

测试用例经典练习之微信发红包测试用例

微信发红包测试用例

ZCYaiCLX3344的博客 1万+

Linux 常用命令

防火墙 1、开启防火墙 systemctl start firewalld 2、开放指定端口 firewall-cmd --zone=public --add-port=1935/tcp --permanent 命令含义: --zone #作用域 --add-port=1935/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 3、重启防火墙 firewall-cmd --reload 4、查看端口号 netstat -ntlp//查看当前所有tcp端口

qq_43180307的博客 266

ArcGIS Pro中如何批量替换数据源

不知您是否遇到过下面情况:ArcGIS Pro的Map/Scene中所引用的数据源被移动或重命名了,导致Map/Scene中找不到之前的数据,出现红色叹号;已有一个Map模板文件,图层的样式符号都是设置好的,想批量设置成另外一个数据源,复用该模板文件中的样式符号。 如果您在ArcGIS Pro的使用过程中遇到了上面情况,那么可以参考本篇文章,本文以图层存储在同一GDB中为例介绍。 情况一:Map中已有图层的数据源被移动了 原始Map长这样: 当数据源位置改变之后,显示找不到数据源的红色叹号: 这时如果右

xinying180的博客 7949

Linux Firewall-cmd --permanent选项详解及示例

Linux Firewall-cmd --permanent选项详解及示例

Leon_Jinhai_Sun的博客 1023

波束管理 Beam Management

Beam Management in 5G NR   波束管理,是5G NR中基于信道质量来动态选择每个UE和gNB之间以什么方向和频率的波束beam来进行通信。   背景   5G NR(New Radio)支持非常高的数据速率和更低的延迟。5G NR支持FR1和FR2频段,FR1为亚6 GHz(450至6000 MHz);FR2为毫米波段(24.25 GHz至52.6 GHz)。   由于毫米波频带使用非常高的频率,因此会导致传播损耗和其他损耗。为了补偿损失,在这种频率下定向通信是必不可少的。

最忆是江南的博客 5826

STM32开发实战:从嵌入式系统到硬件控制 | 你必须得会

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1045

linux服务器防火墙配置

Linux服务器防火墙配置

yigan123的博客 1536

从USB相机标定到Aruco码精准定位:基于aruco-ros的机器人视觉实践

本文详细介绍了基于aruco-ros的机器人视觉实践,从USB相机标定到Aruco码精准定位的全流程。通过实战案例和优化技巧,展示了Aruco码在机器人导航中的高精度位姿识别能力,帮助开发者快速实现毫米级视觉定位系统。

weixin_27310417的博客 487

linux系统中防火墙(firewall)的操作(开启端口,查看端口)

linux系统中防火墙(firewall)的操作(开启端口,查看端口)

qq_19891197的博客 3175

光流法实战:如何用OpenCV的Farneback算法实现图像对齐(附调参技巧)

本文详细介绍了如何使用OpenCV的Farneback稠密光流算法实现图像对齐,包括核心原理、参数调优和工程实现。通过实战代码和参数优化策略,帮助开发者解决动态场景中的图像对齐问题,提升多帧融合和视频处理的效果。

weixin_29266007的博客 292

C# .NET6 TesseractOCR 图片文字识别

在你的项目中的tessdata-main文件夹找到这几个文件,并右键->属性设置为【如果较新则复制】有几个需要用到的模型,需要生成的时候复制到输出目录中,在项目中设置即可。TesseractOCR兼容 x86 与 x64。附 :ImageUtils.RegionCropping()源码。Visual Studio 2022 社区版。下载完成后解压在你的项目中,如图所示。从官方项目中获取模型数据, 网址为。

qq_44121554的博客 3854

运维基本功(九): Linux自有服务-防火墙&计划任务

本文是在黑马程序员网课课件基础上修改的学习笔记 课程原地址:https://www.bilibili.com/video/BV1nW411L7xm 如有侵删 运维基本功(一):Linux系统安装 运维基本功(二):Linux基本命令 运维基本功(三):Linux文件管理 运维基本功(四):Linux文件管理-Vim编辑器概述 运维基本功(五):Linux文件管理-用户管理 运维基本功(六):Linux用户管理-远程管理 运维基本功(七):Linux的权限管理操作 运维基本功(八):Linux自有服务与软件包

刚出社会的运维开发工程师 4591

【第一章】核心思维:那个在此刻“消失”的 CPU

摘要:RTOS本质是"有状态的抢占"而非"多任务",单核MCU通过时间片分时复用实现任务切换。裸机编程的线性思维在RTOS中不再适用,开发者需接受代码随时被打断的现实。RTOS通过保存/恢复CPU寄存器组(上下文)实现任务切换,每个任务拥有独立栈空间。非原子操作(如全局变量自增)会导致竞态条件,必须使用临界区或互斥锁保护。RTOS编程需要建立并发思维,关注代码原子性、可重入性和栈空间分配。

一路往蓝-Anbo 的博客 105

【持续更新】常用linux操作

删除文件 rm test.txt 删除空文件夹 rmdir test 删除非空文件夹及其目录下的所有文件夹及文件 rm -r test 删除 除某个文件或文件夹之外的所有文件以及文件夹 rm -r (文件名称或文件夹名称) 括号里可以放多个,用 | 分开,如rm -r (test | test.txt) 创建虚拟环境 conda create -n your_name python=3.x 进入虚拟环境 conda activate your_name 退出虚拟环境 conda deact

咋个办的博客 330

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

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

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

linux常用操作,持续更新。。。。

1.修改主机名 hostname xxx ---临时生效,修改后重启系统失效 hostnamectl set-hostname xxx ---永久生效,重启后依然有效 2.防火墙命令 systemctl status firewall.service ---查看防火墙状态 systemctl stop firewall.service ---关闭防火墙 systemctl disable fir...

Chloe_Yang的博客 303

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【持续更新】linux系统 常用操作命令

列出当前所有的session 回到某session 最小化某个session 关闭当前session Ctrl+A+K 清除无效session conda命令 创建虚拟环境 激活虚拟环境(选其一) 查看所有虚拟环境 退出当前虚拟环境 清理conda 添加更换镜像源 参照我之前的博文参考Pytorch官网 重命名文件 查看系统信息 具体参数释义参见博文 查看当前目录下一级子文件和子目录占用的磁盘容量 感谢及参考博文 部分内容参考以下链接,这里表示感谢 Thanks♪(・ω・)ノ 参考

qq_39407949的博客 2299

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

linux常用操作(持续更新)

目录命令 cd / 切换根目录 cd … 切换到上级目录 cd - 切换到上次访问目录

海贼王OP的博客 435

linux常用操作,持续更新

进入文件后关于行号 如果要显示所有行号,使用 :set nu 如果要显示当前行号,使用 :nu 如果要跳转到指定行,使用 :行号 例如,跳转到第10行,使用 :10

qq_41509057的博客 141

Linux 常用操作命令--持续更新

Linux 常用操作命令--持续更新Linux 常用操作命令linux下查找某个文件的位置Linux中“Argument list too long”解决方法Linux 打包压缩命令 Linux 常用操作命令 linux下查找某个文件的位置 1: whereis whereis <程序名称> 查找软件的安装路径 -b 只查找二进制文件 -m 只查找帮助文件 -s 只查找源代码 ...

weixin_43822600的博客 390

linux常用操作【持续更新】 —— 个人工作总结

因为在日常工作当中经常会有到线上环境查问题的场景,这个时候是需要知道很多有用的linux命令的(而我认为我们开发人员对于linux命令主要需要记忆的点在于需要知道linux可以让我们做些什么,而不是这些命令具体如何去使用,因为命令如何使用不管是-h还是谷歌百度,只需要知道你想要做什么就可以查到了,所以开个博客总结一下工作过程当中遇到的一些linux命令可以做的事情) 1.cd 切换当前路径 2.cp 复制文件 3.top 显示该实例的负载、进程cpu使用情况、内存占用情况 4.iostat 查看该实例的io

Lchen_kk的博客 2086

使用Linux时一些常用操作记录(持续更新中)

目录 1.查看Ubuntu服务器的版本信息 2.有关在Linux环境下创建虚拟环境的命令 3.查看服务器的ip地址的命令: 4.检查conda、python、pip版本号: 5.查看显卡运行情况 6.安装TensorFlow时,cuda、cudnn的对应版本: 7.使用脚本文件上网 8.更新conda版本 9.添加清华源 10.删除清华源 11.安装指定版本的包 12.安装gym=0.9.4 13.更新pip的版本 14.检查cudnn,cuda的版本号 1.查看Ub...

weixin_44412076的博客 656

【Linux常用命令】Linux骚操作持续更新

本文适合有一定基础的人员观看,且本文持续更新,都是我平时遇到的一些很秀很方便的操作 直接添加内容到文档中 echo "alias cdir='source cdir.sh'" >> ~/.bashrc 然后可以使用sourcer来重新加载刚刚的文件,可以做到不用注销就能是修改生效: source ~/.bashrc ls命令输出abc开头的文件 标题那么说只是为了顺嘴,其实是可以直接输入正则,而不用使用grep过滤: ls abc* 类似的,如果想输出以abc结尾的,或者包含abc的都.

白帽子续命指南 372

linux下vscode一些常用的快捷键操作(持续更新)

ctrl + g + 行数 跳转到指定的行数 ctrl + f 搜索当前文件的关键字 ctrl + shift + f 搜索当前工程下的关键字 ctrl + p 搜索当前工程下的某个文件 ctrl + shift + p 设置页面 ctrl + z 撤销上一次操作 ctrl + shift + z 撤销上一次撤销操作 ...

engineer0的博客 1381

Linux常用操作命令(持续更新)

缓存区溢出—Buffer Overflow 简述  缓冲区溢出攻击是利用缓冲区溢出漏洞所进行的攻击行动。缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统关机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。缓冲区溢出攻击有多种英文名称:buffer overfl

愿世界和平的IT劝退师 561

Linux常用命令及操作汇总,持续更新!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Linux常用命令解压缩命令文件操作命令 经常会忘记一些Linux常用命令,所以记录一下 解压缩命令 解压zip文件 unzip all.zip 文件操作命令 1.查看当前文件夹下文件个数,不包括子目录 ls -l | grep “^-” | wc -l 2.查看当前文件夹下文件个数,包括子目录 ls -lR| grep “^-” | wc -l 3.查看当前目录下文件夹的个数,包括子目录 ls -lR | grep “^d

qq_42686324的博客 141

Linux常用操作命令记录(持续更新)

rm -rf zxc   强制删除zxc文件夹以及下面所有文件 unzip zxc.zip  解压 zxc.zip 压缩包 cd zxc  切换到 zxc 目录下 tail -f nohup.out  查看 nohup.out 实时的输出 ll  或者 ls-l  列出当前目录下所有可见文件及文件夹

zxc_user的博客 496
上一篇: Redis集群部署详细
下一篇: Linux下JDK、Tomcat的安装及配置
permanent_2008
博客等级 码龄18年 9粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值