linux常用命令及运维工具汇总

1.基础知识

1.1.常规命令

命令描述
pwd查看工作目录,例:pwd 输出 /root
cd切换目录,例:cd /home
lsls用于显示目录的文件,例:ls -la /root (加-l参数查看文件的详细信息,-a 参数查看所有文件包含隐藏文件)
cp文件复制,例 :cp -R /home/test1 /home/test2 (加 -R 表示递归复制目录和文件,把目录/home/test1下文件复制到/home/test2)
mv文件移动,例: mv -R /home/test1 /home/test2 (加 -R 表示递归移动目录和文件,把目录/home/test1下文件复制到/home/test2)
rm文件删除,例:rm -rf /home/test2 (加 -r 表示递归删除目录和文件,加 -f 表示强制删除文件)
mkdir创建目录,例: mkdir -p /home/test2/test3 (加 -p 表示如果父目录不存在,则会递归创建,不加要求/home/test2目录必须存在)
echo打印信息到控制台,例: echo hello word 输出hello word
cat查看文本内容,例: cat -n /usr/local/nginx/conf/nginx.conf (加-n参数显示行号)
more分页查看文本内容,例more /usr/local/nginx/conf/nginx.conf (可以使用空格或回车或者S下翻页)
tail查看实时日志文件,例: tail -f /usr/local/nginx/logs/access.log
reboot重启系统
poweroff关机
top查看服务器运行情况
ps -ef | grep java查看java进程信息
wc统计文本的行数,字数,字节数 例: wc -lwc /etc/passwd (-l 显示行数,-w 显示字数,-c 显示字节数)
grep在文件中找到内容在多少行例( -n 表示显示行号, http是查找的内容,nginx.conf是要查找的文件) : grep -n http /usr/local/nginx/conf/nginx.conf 输出 28:http {
find查看文件位置,例(在/目录下查找文件名nginx.conf所在位置): find / -name ‘nginx.conf’ 输出/usr/local/nginx/conf/nginx.conf
kill杀死进程 例:kill 1211(杀死进程id为1211的程序,等同 kill -15 1211) kill -9 1211 (强制杀死进程id为1211的程序)killall java (杀死某个服务的所有进程)

下载文件命令

#用下载资源文件
wget [参数] 下载地址
参数描述
-b后台下载模式
-p下载到指定目录
-t最大尝试次数
-c断点续传
-p下载页面所有资源
-r递归下载

日期命令

#显示默认格式的日期
date
2020年 05月 04日 星期一 23:40:34 CST
#按照指定格式显示
date "+%Y-%m-%d %H:%M:%S"
2020-05-04 23:39:48
#设置时间为2020年5月3号
date -s '20200503 8:20:00'
Sun May  3 08:20:00 CST 2020

tar文件压缩或解压

#压缩文件
tar -zcvf test1.tar.gz /home/test1
tar -cvf test2.tar /home/test1
#解压文件
tar -zxvf  test1.tar.gz
tar -xvf test2.tar 
参数描述
-c创建压缩文件
-x解压文件
-t查看压缩文件里面有哪些内容
-z用Gzip压缩或解压
-j用bzip2压缩或解压
-v显示压缩或解压的过程
-f目标文件名

1.2.重定向符号,管道符号,通配符号,&&符号

重定向符号

符号描述
命令 > 文件将标准输出重定向到一个文件(覆盖之前的)
命令 2> 文件将错误输出重定向到一个文件(覆盖之前的)
命令 >> 文件将标准输出重定向到一个文件(追加)
命令 2>> 文件将错误输出重定向到一个文件(追加)
命令 >> 文件 2>&1 或 &>>将标准和错误共同输出到文件(追加)
命令 >/dev/null/dev/null 称之为黑洞文件,往这个地方输出的等同删除数据

例如把硬盘使用情况保存到文件中

df -h > /root/df.txt
#查看这个文件
cat /root/df.txt

管道符号
| 可以把命令组合在一起,如 命令A | 命令B | 命令C | …

ps -ef | grep java

通配符号
* 表示匹配所有

ls -l /dev/sda*

&&符号
&& 表示前一条命令执行成功时,才执行后一条命令 ,如下先切换到home目录下再列出home目录下所有文件

cd /home && ls

1.3.vim文本编辑器

vim /usr/local/nginx/logs/error.log

vim编辑模式中常用的命令

命令作用
dd删除(剪切)光标所在整行
5dd删除(剪切)光标开始的5行
yy复制光标所在整行
5yy复制光标开始的5行
n显示搜索命令定位的以下个字符串
N显示搜索命令定位到的上个字符
u撤销上一布操作
p将之前删除或复制过的数据粘贴到光标后面
G跳到文件尾行
gg调到文件首行

末行模式中可用的命令
按Shift键退出编辑模式进入末行模式

命令命令作用
:w保存
:q退出
:q!强制退出
:wq!强制保存退出
:set nu显示行号
:整数跳转到改行
: s/one/two将当前光标所在行的第一个one替换成two (s前面没空格,因md不能转义导致加的)
: s/one/two/g将当前光标所在行的所有one替换成two (s前面没空格,因md不能转义导致加的)
:%s/one/two/g将全文中的所有one替换成two
?字符串在文本中从下往上搜索字符串
/字符串在文本中重上往下搜索字符串

1.4.定时任务

at命令
at 命令类似于一次性闹钟,到了指定时间执行完操作后任务则会自动删除。

#在20:25执行cp命令备份nginx的error.log文件
at 20:25
cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error.log_bat
#通过 ctrl+d退出编辑模式
#查看已有的定时任务
at -l
#删除任务Id为1的定时任务,通过 at-l能查看到
atrm 1

通过下面可以看到执行完任务后再用at -l查看不到任务了。
在这里插入图片描述

crond服务

#创建任务
crontab -e
#例如创建每天晚上备份nginx的error.log日志
35 20 * * * cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error.log_bat2
#查看任务
crontab -l

定时任务表达式 配置顺序为 分 时 日 月 星期 命令

字段作用
取值0~59
取值0~23
取值1~31
取值1~12
星期取值0~7的任意整数,其中0与7为星期日
命令要执行的命令或者脚本文件

1.5.防火墙firewall-cmd命令

OSI网络模型需要了解下: 点我跳转

命令功能描述
firewall-cmd --list-ports查看防火墙已开放的所有端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp开放指定端口,(把8080改成你需要开放的端口)
firewall-cmd --reload重启防火墙(让新配置的端口生效)
firewall-cmd --permanent --query-port=8080/tcp检测端口是否开放,(把8080改成你要查的端口)
firewall-cmd --zone=public --remove-port=8080/tcp --permanent移除指定端口,(把8080改成你要移除的端口)

新增和移除指定端口都需要重启防火墙服务,可以通过组合命令执行一条命令即可

#添加8080端口,并让防火墙生效
firewall-cmd --permanent --zone=public --add-port=8080/tcp && firewall-cmd --reload 
#移除8080端口,并让防火墙生效
firewall-cmd --zone=public --remove-port=8080/tcp  && firewall-cmd --reload

1.6.scp远程上传下载文件

Linux scp 命令用于 Linux 之间复制文件和目录,scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令,scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

命令使用: scp [可选参数] file_source file_target
本地上传文件到远程服务器
例如把本地的redis安装包上传到192.168.52.131服务器上面的home目录下

#可用通过-p指定远程服务器的sftp的端口,默认22,如果使用的非标准端口则需要指定
scp -p 22  /usr/local/redis-5.0.9.tar.gz   root@192.168.52.131:/home/

重远程服务器下载文件到本地
例如重192.168.52.131服务器上面下载redis安装包到本地的home目录下

scp  root@192.168.52.131:/home/redis-5.0.9.tar.gz  /home/

2.查询服务器硬件信息

命令描述
lscpu查看cpu详细信息
fdisk -l查看硬盘详细信息
uname -a查看版本当前操作系统内核信息(打印内容: 内核名称 主机名 内核发行版本 节点名 系统时间 硬件名称 硬件平台 处理器类型 操作系统名称)
cat /etc/redhat-release查看centos内核版本
ipconfig查看网卡信息

3.systemctl服务管理命令

例如关闭防火墙服务

systemctl stop firewalld.service
命令描述
systemctl start foo.service启动服务
systemctl restart foo.service重启服务
systemctl stop foo.service停止服务
systemctl reload foo.service重新加载服务的配置文件
systemctl status foo.service查看服务的状态
systemctl enable foo.service开机自动启动
systemctl disable foo.service开启不自动启动
systemctl is-enabled foo.service查看特定服务是否为开机自动启动
systemctl list-unit-files --type=service查看各个级别下服务的启动与禁用状态

4.资源监控命令

4.1.查看系统的负载信息

使用uptime命令查看负载信息

uptime
#17:10:43 up 158 days, 21:33,  2 users,  load average: 0.41, 0.29, 0.29
  • 系统启动的天数为158,共2个用户使用
  • load average为负载值,负载值越低约好,尽量不要长期超过5

4.2.查看内存硬盘使用情况

使用free -h查看内存使用情况

free -h
 #            total        used        free      shared  buff/cache   available
#Mem:            62G         47G        5.9G        1.5G        9.4G         13G
参数描述
total内存总量
used用户已使用
free还有多少物理内存可用
shared进程共享的内存量
buff/cache磁盘缓存的内存量
available还可以被应用程序使用的物理内存大小

使用 df -h查看硬盘使用情况

df -h
#Filesystem               Size  Used Avail Use% Mounted on
#/dev/mapper/centos-root  453G  180G  250G  42% /
参数描述
Filesystem文件系统名
Size硬盘大小总量
Used用户已使用
Avail硬盘剩余空间
Use%使用率
Mounted on挂载目录

4.3.查看显存使用情况

nvidia-smi

`

4.4.查看服务器上传和下载带宽

使用speedtest工具查看带宽

#使用git下载测试软件
yum -y install git
git clone https://github.com/sivel/speedtest-cli.git
cd speedtest
chmod 755 *
./speedtest.py

在这里插入图片描述

5.查看系统日志

查看系统日志

more /var/log/messages

查看用户登录日志

#查看最近一条登录记录
who
#查看所有登录记录
last

查看历史执行过命令
默认是查看最近1000条历史命令,觉得1000少可以修改/etc/profile文件中的HISTSIZE属性

history

执行完可以看到在服务器上面之前执行过的命令记录
在这里插入图片描述

清除当前用户在本机执行过的命令记录

history -c

6.shell脚本入门

6.1.编写脚本

编写脚本并接受args参数,脚本中通过$1接收第一个参数,$2第二个,…

vi test.sh
#!/bin/bash
echo "当前脚本的名称:$0"
echo "第一个参数是:$1"
echo "第二个参数是:$2"
#给脚本设置执行的权限
chmod u+x test.sh
#执行脚本 下面两种方式效果是一样的 
./test.sh start --port=8080
sh test.sh start --port=8080

在这里插入图片描述

设置shell脚本字符编码为unix
有时候shell脚本是在window上编写保存的,内容格式为doc则执行会报错,需要修改成unix编码

vi test.sh
set ff
set ff=unix
:wq

6.2.流程控制和for循环

if条件选择语句

#单if判断
if 条件
 then
fi
#多条件判断
if 条件1
 then
elif 条件2
 then
else
fi
  • 编写脚本test2.sh
  • 然后执行 sh test.sh 0 控制台会输出为 参数一是0
#!/bin/bash
#多条件判断
if [ $1 -eq 0 ]
then
 echo '参数一是0'
elif [ $1 -eq 1 ]
then
 echo '参数一是1'
else
 echo '参数一非0和1'
fi

case条件选择语句

  • 编写test3.sh脚本内容如下代码块
  • 执行 test3.sh 1 控制台会输出 参数一是 1
#!/bin/bash
case $1  in
1)
 echo '参数一是 1'
;;
2)
 echo  '参数一是 2'
;;
*)
 echo  '其它选项,参数一是非1和2的值'
esac

for条件循环语

servers=('manager.jar' 'monitor.jar' 'gateway.jar')
for server in ${servers[@]};
do
 echo $server
done

6.3.文件权限判断和运算符

文件权限判断语句

命令作用
-d目录是否存在
-e文件是否存在
-r是否有权限读取
-w是否有权限写入
-x是否有权限执行

整数比较运算符

命令作用等同于
-eq是否等于==
-ne是否不等于!=
-gt是否大于>
-lt是否小于<
-le是否等于或小于<=
-ge是否大于或等于>=

字符串比较运算符

命令作用
=字符是否相等
!=字符是否不相等
-z判断字符是否为空

创建test3.sh脚本并执行两次脚本出现下面两种情况

  • 1.目录不存在则创建并退出脚本
  • 2.目录存在则不创建,打印退出程序!信息
vi test3.sh 
#!/bin/bash
# 创建变量存放目录路径
DIR=/home/testDir
# 判断目录是否存在,如果不存在则创建目录 -d为存在,前面加!取相反条件
if [ ! -d $DIR ]
 then
 echo "创建目录 $DIR"
 mkdir -p $DIR
 #执行exit 1 退出脚本不执行后面echo "退出程序!"语句。
 exit 1
else
 echo "$DIR 已存在!"
fi

echo "退出程序!"
# :wq保存,设置权限

在这里插入图片描述

7.用户管理和文件权限

7.1.用户管理

添加用户组
groupadd 用户组名

#添加名称为testGroup的用户组
groupadd  testGroup

添加用户
useradd [选项] 用户名

参数说明
-d指定用户的家目录(默认 /home/username)
-e账号到期时间,格式为 YYYY-MM-DD
-u指定该用户的默认UID
-g指定一个初始的用户基本组(必须已存在)
-G指定一个或多个扩展的用户组
-N不创建与用户同名的基本用户组
-s指定改用户的默认Shell解释器
useradd  -u  8888  -g testGroup  test

修改用户
usermod [选项] 用户名

参数说明
-c添加用户账号的备注信息
-d -m-d -m连着用,重新指定用户的工作目录并自动把旧的数据迁移过去
-e用户到期时间
-g变更所属的用户组
-G变更扩展用户组
-L锁定用户禁止其登录
-U解锁用户让其允许登录系统
-s变更默认终端
-u修改用户的UID

修改用户密码
passwd命令用于修改密码,过期时间,认证信息等,
格式为: passwd [选项] 用户名

参数作用
-l锁定用户,禁止其登录
-u解除锁定,允许用户登录
-d使该用户可用空密码登录系统
-e强制用户在下次登录是修改密码
-S显示用户密码是否被锁定,以及密码加密的算法

删除用户

格式为 userdel [选项] 用户名

参数说明
-f强制删除用户
-r强制删除用户及用户工作目录

7.2.文件权限

给文件分用户组
格式为 chown [参数] 用户:用户组 文件名或目录

chown test:testGroup 文件名或目录名 
#递归给目录下所有文件和目录分组
chown -R test:testGroup 目录名 
chmod 777 test.sh 
  • chmod 777 test.sh 表示该文件对应的 [所有者,文件所属组,其他用户]都有读写执行权限。
  • chmod 755 test.sh 表示该文件所有者有读写执行权限,[文件所属组,其他用户]只有读和执行权限
  • 777中,第一位数值表示文件所有者权限,第二位表示文件所属组权限,第三位表示其他用户权限
    通过ls -l可以查看文件权限
  • 7包含读写和执行权限, 6包含读写权限,5包含读和执行权限,4代表只有读权限
    在这里插入图片描述

上图第一列字母对应为下表的 |读|写|执行 |读|写|执行 |读|写|执行 ,权限字母对应的数值参照下表格

权限分配文件所有者文件所属组其他用户
权限项执行执行执行
字符表示rwxrwxrwx
数字表示421421421

8.存储结构和磁盘划分

存储结构

目录名称目录描述
/boot开机需要的文件
/dev以文件形式存放任何设备与接口
/etc配置文件
/home用户家目录
/bin存放单用户模式下还可以操作的命令
/lib开机需要的函数库
/sbin开机过程中需要的命令
/media用于挂载设置文件的目录
/opt放置第三放的软件
/root系统管理员的家目录
/srv一些网络服务的数据文件目录
/tmp临时文件
/proc虚拟文件系统,例如 内核,进程等
/usr/local用户自行按照的软件
/usr/share帮助和说明文件
/var主要存放经常变化的文件,如日志
/lost+found当文件发生错误时,将一些丢失的文件片段放到这

物理设备的命名规则

#查看硬盘信息
df -h 
硬件设备Filesystem名称
IDE设备/dev/hd[a-p]
SCSI/SATA/U盘/dev/sd[a-p]
软驱/dev/fd[0-1]

IDE设备很少见,基本都是’/dev/sd’开头的设备

挂载硬件设备

mount用于把硬盘挂载到指定的目录

mount /dev/sdb3  /backup

卸载硬盘
umount用于取消硬盘的挂载

umount /dev/sdb3

9.其它工具命令

9.1.设置开机自动连接网络

#1.先查看网络配置情况命令
ifconfig -a
#2.前往网络配置目录
cd /etc/sysconfig/network-scripts/
#3.找到网卡配置,类似于 ifcfg-eth0 的文件。在此提醒大家注意,最后的 eth0 即是你的网络名称,如果你的网络名称不是 eth0,则此处可能有所不同。比如,我的网络名称为 ens33,这里便是  ifcfg-ens33。
vi  ifcfg-ens33
ONBOOT=yes # 把此处改成yes
:wq
#可以reboot重启系统测试

9.2.设置linux系统的笔记本盒盖不休眠

vi /etc/systemd/logind.conf
HandleLidSwitch=lock
:wq
#立即生效
systemctl restart systemd-logind

9.3.命令行设置静态ip

#查看当前ip对应的网卡号,如ifcfg-eth0
ip addr 
vim /etc/sysconfig/network-scripts/ifcfg-eth0

# 修改ip为静态的,把BOOTPROTO=dhcp 改成=static
BOOTPROTO="static"
#添加3行
#静态IP
IPADDR=192.168.0.134 
#子网掩码
NETMASK=255.255.255.0
#网关或者路由地址
GATEWAY=192.168.0.1
#按:wq保存
#重启网络配置
service network restart

9.4.修改xftp默认的22端口为其它非标准端口

第一步:修改/etc/ssh/sshd_config

vi /etc/ssh/sshd_config
#找到行下面Port 22行,然后再下面添加一行使用10022作为xftp端口
#Port 22 
#添加一行
Port 10022
#:wq保存退出

第二步: 修改SELinux配置:

systemctl restart sshd.service
semanage port -m -t ssh_port_t -p tcp 10022
#然后确认一下是否添加进去
semanage port -l | grep ssh
#如果添加错了可以通过下面的命令删除10022端口
#semanage port -d -t http_port_t -p tcp 10022

如果成功会输出 ssh_port_t tcp 10022, 22

第三步: 修改firewall配置
执行下面命令开放防火墙端口并重启防火墙服务。

firewall-cmd --zone=public --add-port=10022/tcp --permanent && firewall-cmd --reload

第四步: 重启ssh服务

systemctl restart sshd.service

第五步: 测试新端口的ssh连接

ssh xx.xx.xx.xx -p 10022

9.5.开启自启动服务

编辑文件

vi /etc/rc.d/rc.local
#添加nginx开机自动启动命令
/usr/local/nginx/sbin/nginx
# :wq保存修改

配置开启自启动权限

chmod +x /etc/rc.d/rc.local
#执行下面命令没有输出则需要执行第二行命令systemctl daemon-reload启动开机自启动服务
systemctl list-dependencies multi-user.target | grep rc-local
#systemctl daemon-reload
#再次执行命令可以看到 ├─rc-local.service信息表示启动成功
systemctl list-dependencies multi-user.target | grep rc-local

9.6 设置系统字符集为UTF8

查看系统使用的字符集

echo $LANG

如果不是UTF8可以设置下

vi /etc/sysconfig/il8n 
#添加下面两行
LANG="zh_CN.UTF-8"
LC_ALL="zh_CN.UTF-8"
#:wq保存退出,执行下面让配置文件生效
source  /etc/sysconfig/i18n
#编辑环境变量配置 
vi /root/.bash_profile
#添加下面两行
export LC_ALL="zh_CN.UTF-8"
export LANG="zh_CN.UTF-8"
#:wq保存退出,执行source让环境变量生效
source   /root/.bash_profile

9.7. 安装nfs挂载共享存储

安装nfs可以使多台服务器的文件资源共享

  • 准备2台及以上机器测试,例:192.168.0.100,192.168.0.101,…服务器
  • 在192.168.0.100服务器安装nfs服务
  • 在192.168.0.101服务器把目录挂载到nfs服务上面

9.7.1.nfs服务配置

第一步:安装服务

#安装nfs服务
yum -y install nfs-utils
#启动nfs服务
systemctl start nfs 
#设置开机自启动
systemctl enable nfs
#查看服务状态
systemctl status nfs

第二步:创建挂载目录并设置权限

mkdir /opt/data
chmod 777 /opt/data

第三步:编辑共享目录访问权限

vi /etc/exports
# *表示所有的客户机都可以挂接此目录,rw表示读写权限
/opt/data *(rw,)
#保存完需要重启nfs
systemctl restart nfs

9.7.2.客户端程序配置

#挂载到nfs服务端的路径 本地路径 
mount -t nfs 192.168.0.100:/opt/data /opt/data
#取消挂载
umount /opt/data

然后测试上传文件到192.168.0.100或者101任意一台机器上面的/opt/data目录下,另一台机器上面的路径的/opt/data也可以看到这个文件。

9.8.查看Buffer&Cache被哪些进程占用

9.8.1.Buffer和Cache概念

Buffer 是缓冲区,而 Cache 是缓存,两者都是数据在内存中的临时存储。
Buffer 是对磁盘数据的缓存,而 Cache 是文件数据的缓存,它们既会用在读请求中,也会用在写请求中。
磁盘是一个块设备,可以划分为不同的分区;在分区之上再创建文件系统,挂载到某个目录,之后才可以在这个目录中读写文件。
Linux 中“一切皆文件”,平时提到的“文件”是普通文件,磁盘是块设备文件。
在读写普通文件时,会经过文件系统,由文件系统负责与磁盘交互;而读写磁盘或者分区时,就会跳过文件系统,也就是所谓的“裸I/O“。这两种读写方式所使用的缓存是不同的,也就是文中所讲的 Cache 和 Buffer 区别。
Buffers 是内核缓冲区用到的内存,对应的是 /proc/meminfo 中的 Buffers 值。
Cache 是内核页缓存和 Slab 用到的内存,对应的是 /proc/meminfo 中的 Cached 与 SReclaimable 之和。
从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数据真正落盘前,就返回去做其他工作。
从读的角度来说,既可以加速读取那些需要频繁访问的数据,也降低了频繁 I/O 对磁盘的压力。

9.8.2.hcache工具下载使用**

#下载
wget https://silenceshell-1255345740.cos.ap-shanghai.myqcloud.com/hcache
chmod 755 hcache && mv hcache /usr/local/bin/

全局显示10个最大的被缓存文件

hcache --top 10

在这里插入图片描述

查看指定进程所使用的缓存使用情况

hcache -pid  进程pid

例如查看了nginx进程的缓存使用情况
在这里插入图片描述

9.8.3.手动回收Buffer&Cache

#清除pagecache
echo 1 > /proc/sys/vm/drop_caches
#清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache:
echo 2 > /proc/sys/vm/drop_caches
#清除pagecache和slab分配器中的缓存对象
echo 3 > /proc/sys/vm/drop_caches:
  • 4
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皓亮君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值