Linux入门学习笔记


 Linux是什么


与windows一样,是一个系统操作软件。在Unix的基础上发展而来的,与其他系统相比,其能流行起来的原因,无在乎于其巨大的生态系统、且开源免费。Linux 系统主要被应用于服务器端、嵌入式开发和 PC 桌面 。

[root@localhost ~]#/$

用户名 主机名 所在目录 #:表示当前为超级用户$:表示当前为普通用户

常见目录说明


/bin  :存放二进制可执行文件,一般常用的命令都在此目录下

/etc  :存放系统管理和系统配置文件

/home  :所有用户的根目录

/usr  :存放系统应用程序,用户用的到的应用程序及文件基本都在此目录下

/opt  :用户安装的应用程序一般都放在此目录下

/proc :虚拟文件系统目录,是系统内存的映射,可直接访问此目录来获取系统信息

/root  :超级用户,也就是系统管理员的主目录

/sbin  :存放二进制的可执行文件,只有root用户才有权访问

/dev  :存放设备文件

/mnt  :系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了

/selinux :该目录是RetHat和Centos特有的目录,用于存放selinux安全机制的文件的目录

/tmp :存放临时文件的目录

/lost+found :用于存放当系统非法关机时的文件

 常用命令


文件目录类

ls命令

ls        #查看当前目录的内容(缺点:隐藏的文件无法查看)
ll        #等价于ls -l 查看当前目录的详情(隐藏文件看不到)
ll /etc   #查看/etc目录的的详情
ls -a     #可查看隐藏文件
ls -h     #可以显示文件的大小

pwd命令

pwd #查看当前所在的路径

mkdir命令

mkdir dir1         #在当前路径下创建文件夹dir1(单级目录)
mkdir -p dir1/dir2 #在当前文件夹下一次创建多级文件夹dir1/dir2

rm命令

rm -f 文件        #强制删除文件
rm -rf 文件夹     #强制删除文件夹

cd命令

cd         #直接进入/root目录
cd dir     #进入dir文件夹
cd ..      #回到上一级目录
cd ../..   #回到上上级目录
cd -       #回到最后两次出现的目录之间切换

touch命令

touch a.txt         #在当前目录创建a.txt文件 (相对路径)
touch /root/a.txt   #在/root目录下创建a.txt文件(绝对路径)

mv命令

mv 文件 目录             #将文件移动到指定目录
mv 文件 文件             #将文件重命名
mv 目录1 目录2(已存在的) #将目录1移动到目录2下
mv 目录1 目录2(未存在的) #将目录1重命名为目录2  

cat命令

cat [选项] a.txt #查看a.txt文件
选项:
    -b: 列出行号,仅针对非空白行标出行号
    -n: 列出行号,空白行也会标出行号

tac命令

查看文件内容,从最后一行显示

more查看文件内容

翻页查看文件内容,一页一页的显示文件内容
    more 要查看的文件
使用:
 空格键(space):向下翻一页
 Enter:向下翻一行
 Ctrl+F:向下滚动一屏
 Ctrl+B:返回上一屏

less命令

与more用法相似,允许使用pageup、pagedown进行翻页

less 文件

tail命令

查看文件后5行内容
    tail -n 5 文件
实时追踪改文件的所有更新
    tail -f 文件

head命令

显示文件前10行内容
head 文件
显示文件前5行内容
head -n 5 文件

cp命令

cp a.txt dir     #将a.txt文件复制到dir目录
cp a.txt b.txt   #将a.txt文件的内容复制给b.txt

重定向

将列表的内容写入指定文件当中
    ll >文件
将列表的内容追加到指定文件当中
    ll >>文件

echo

将要显示的内容存储到指定文件当中
    echo 要显示的内容 >>文件
显示变量的值
    echo 变量名

连接

软连接(soft link)
    link -s file/dir LinkName
硬链接(hard link)
    link file LinkName

    连接能够保证文件的一致性

软连接与硬链接的区别:
    在删除时,是否删除源文件。硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。软链接,
以路径的形式存在。硬链接,以文件副本的形式存在,但不占用实际空间。软链接可以 跨文件系统 ,硬链接不可以软链接可以对一个不存在的文件名进行
链接,软链接可以对目录进行链接,硬链接不可以,硬链接只有在同一个文件系统中才能创建

-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程

history查看历史命令

history   #查看历史命令

解压缩文件

解压文件

.tar.gz模式
    tar -zvxf hadoop-3.1.4.tar.gz              #将文件解压到当前目录
    tar -vzfx hadoop-3.1.4.tar.gz -C /root/dir #将文件解压到/root/dir目录下
.zip模式
    unzip mysql-connector-java-8.0.13.zip      #将文件解压到当前目录
    unzip -r mysql-connector-java-8.0.13.zip /root/dir #将文件解压到/root/dir目录下

-z 进行解压缩

-x 创建解压文件

-f 指定解压文件

-v 显示详细信息(可不加)

压缩文件

.tar.gz模式
    tar -cvxf hadoop-3.1.4.tar.gz              #将文件压缩到当前目录
    tar -vcfx hadoop-3.1.4.tar.gz -C /root/dir #将文件压缩到/root/dir目录下
.zip模式
    zip mysql-connector-java-8.0.13.zip        #将文件压缩到当前目录
    zip -r mysql-connector-java-8.0.13.zip /root/dir #将文件压缩到/root/dir目录下

-c 创建压缩文件

-x 创建解压文件

-f 指定解压文件

-v 显示详细信息(可不加)

搜索查询类

find命令

find 目录 -name 需要查找的文件名(用单引号括着) #查找目录下的指定文件
find 目录 -name 'ins*' #查找目录下所有以ins开头的文件
find 目录 -name '*in*' #查找目录下包含of的文件
find 目录 -name -tpye f -size +100M #查找目录下文件大小大于100M的文件

grep命令

grep命令可以对文件进行文本查询(查找内容)
grep aa  a.txt       #在a.txt文件中查找aa
grep a a.txt --color #在文件中查找a,高亮显示

管道命令

管道是linux命令中重要的一个概念,作用是将一个命令的输出作为另个命令的输入(类似mysql的子查询)
ps -ef | grep java     #查询名称中包含java的进程
命令1  | 命令2 | 命令3

which命令

查看可执行文件的位置
which pwd #查看可执行文件pwd的位置

进程管理类

ps命令

ps命令用来列出系统中当前运行的进程
ps -ef     #查看父进程
-e         #查看全部进程
-f         #全格式


kill命令

kill命令用于终止执行中的进程
kill -9 pid号     #杀死进程

top命令

查看各个进程的运行状态
top [选项]

选项:
   -d 秒数:指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:

   -i:使top不显示任何闲置或者僵死进程。

   -p:通过指定监控进程ID来仅仅监控某个进程的状态。

   -s:使top命令在安全模式中运行

进入top的操作选项:

    P:以CPU使用率排序,为默认排序

    M:以内存的使用率排序
    
    N:以PID排序

    q:退出top
 

netstat命令

显示网络统计信息
netstat -anp

pstree查看进程树

pstree [选项]
-p : 显示进程的PID
-u : 显示进程的所属用户

日期时间类

date命令

date   #显示当前时间
date+%Y  #显示当前年份
date+%m  #显示当前月份
date+%d  #显示本月第几天
date+%Y/%m/%d  #显示以符号分割的日期
date+"+%Y-%m-%d %H:%M:%S"  #显示年月分秒
date -d '1 days ago'  #显示当前时间的前一天日期
date -d '-1 days ago' #显示当前时间的后一天日期
date -d 'next monday' #显示下周一的时间

设置系统时间

date -s '时间字符串'

查看日历

cal [选项] #显示当前月份日历
选项
 -1, --one        只显示当前月份(默认)
 -3, --three      显示上个月、当月和下个月
 -s, --sunday     周日作为一周第一天
 -m, --monday     周一用为一周第一天

帮助类

man

help

help 获得shell内置命令的帮助信息

help 命令 #获得shell内置命令的帮助信息

常用快捷键

Ctrl+c   #停止进程

Ctrl+l   #清屏

Ctrl+q  #退出

tab      #补全

↑和↓    #//查找执行过的命令

Ctrl+a #光标移至行首

Ctrl+e #将光标移至行末

Ctrl+b #将光标向左移动一个字符

Ctrl+f #将光标向右移动一个字符

Ctrl+d #退出当前shell命令行

Ctrl+r #搜索使用过的命令

Ctrl+g #退出搜索使用命令

Ctrl+insert #复制命令行内容

Shift+Insert #粘贴命令行内容

Ctrl+k #剪切光标处到行尾的所有字符

Ctrl+u #剪切光标处到行首的所有字符 

Ctrl+w #剪切光标前的一个字符

Ctrl+y #粘贴Ctrl+k、Ctrl+u、Ctrl+w剪切的字符

编辑器VI/VIM基本使用

vi/vim a.txt #直接打开文件

vi/vim a.txt +10 #直接打开文件,并定位到第10行

编辑模式(直接进入的默认模式):

    插入:

        命令行i,在光标处插入;命令行o,在光标下插入一空白行;命令行Shift+o(O),在光标上插入一空白行
    复制:
        命令行yy,2yy复制两行,5yy复制5行
    粘贴:
        命令行p,粘到光标的下一行
    撤销:
        命令行u
    删除:
        dd删除一行
        ndd删除n行
    回到文件顶部:
        gg
    回到文件末尾:
        G
    查找:
        /str 查找str

   字符删除:

        x,删除光标处的字符

底行模式

    :wq保存退出
    :wq! 强制保存退出
    :q 查看文件内容后退出
    :q! 修改内容后不想保存退出
    :w 只保存,不退出
    :w b.txt 将当前文件另存为b.txt
    :x 保存退出
    :shift+z+z 快速保存退出
    :   set nu 显示行号
    :123 将光标定位到123行
    :%s/旧文件/新文件/g(替换g表示全部替换)
    :上方向键 找到刚才的命令

系统管理


查看ip地址

#ifconfig

NAT模式能够自动获取IP地址,但是自动获取的IP地址,有时候会进行改变,需要设置固定的IP地址

修改IP地址

1.使用root登入Linux

2.输入cd /etc/sysconfig/network-scripts

 

3.输入vi ifconfig-ens33进入编辑模式

编辑IP地址:IPADDR

编辑网关:GATEWAY

编辑子网掩码:NETMASK

域名解析:NDS

MAC地址:HWADDR

防火墙管理

Centos7

查看防火墙状态

$ sudo systemctl status firewalld

关闭防火墙

$ sduo systemctl stop firewalld

启动防火墙

$ sudo sysctemctl start firewalld

重启防火墙

$ sudo systemctl restart firewalld

注:使用关闭防火墙命令当机器重启后,会再次开启,所以要想永久关闭使用: systemctl disable firewalld

Selinux禁用:

sudo vi /etc/sysconfig/selinux 使SELINUX=disable

要使其生效需要重启机器:reboot

系统关机为:halt

用户与组管理


用户管理

添加用户:useradd 用户名

设置密码:passwd 用户名

删除用户:userdel -r 用户名

修改用户:usermod -g 用户组 用户名

查看用户:

  1. w    #查看用户列表
  2. id 用户名   #查看指定用户信息
  3. who          #看当前有哪些用户登录在本机器上
  4. whoami     #查看当前用户名

切换用户:

  • 普通用户切换到root:su
  • root切换到普通用户 :su - 用户名

普通用户设置root权限

修改/etc/sudoers文件

在其下添加一行

用户名 ALL=(ALL) ALL

用户组管理

用户组是具有相同特征用户的逻辑集合,每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,

如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

用于与用户组之间的关系:

  • 一对一:一个用户存在一个组中,即这个用户是这个组的唯一成员
  • 一对多:一个用户可以存在多个用户组中,用户有多个用户组的权限
  • 多对一:多个用户可以存在一个用户组中,这些用户具有和组一样的权限

创建组:groupadd 组名

将用户添加进指定工作组usermod -a -G groupname username 不加-a会离开原来的所属组

groupmod修改组:groupmod -n 新组名 旧组名 

查看组:cat /etc/group

文件权限管理

用户和组
    Linux系统上,创建用户的时候,默认会创建一个用户组(与用户名相同)
文件
    在Linux系统下面,常见的文件类型
      文件: -
      目录(文件夹):d
      链接(快捷方式):l
        
    文件的归属:
         拥有者  ower   u
         用户组  group  g
         其他人  other  o
--------------------------------------------------------------------------------------------------------------------------------------
  文件类型      用户  用户组   文件大小     创建时间         文件名称                 
-rw-r--r--   .  1 root    root    576830621 10月 24 23:10 Anaconda3-2020.07-Linux-x86_64.sh
drwxr-xr-x . 18 501    501        4096      10月 26 17:05 Python-3.6.6
      
 第一部分(10个字符):
      -rw-r--r--
      又分为三部分:
            -     rw-  r--   r--      数字表示权限:644
注:红色表示文件类型,黄色表示文件拥有者权限,蓝色表示文件所属组权限,绿色表示其他用户的权限
           表示文件类型    表示文件的权限
                           * 可读r
                           * 可写w
                           * 可执行x
                           * -表示没有任何权限
权限的数字表示方法(以二进制数字之和的方式):
                R           W         x  
               2^2         2^1       2^0
                4           2         1
              rw ---->6
              rx ---->5 
如何设置文件对不同用户的权限:
       需要使用root用户 
change命令:change mode 
       eg:-rw-rw-rw. 1 fghtv fghtv  4096 Sep 16 1:21 a.txt
需求:
       对于同组用户来说,仅仅可读;对于其他用户来说,既不可读也不可写。
       #chmod g-rw a.txt
       $chmod o-r a.txt
       数字形式表示:
          #chmod 660 a.txt
          
改变文件的拥有者和所属组
   命令:chowner(change owner)
                    #chown fghtv /home/a.txt
             chgrp(change group)
                    #chgrp fghtv /home/a.txt            
             
如果针对一个目录赋权限,目录中有很多的文件,也需要同样的权限设置,就需要使用递归
-R,----recursive   递归
         change files and directories recursively
     #chmod -R 664 /opt/softwares
   
例子:将/home/a.txt拥有者和所属者设置为fghtv用户和fghtv组,可以使用一条命令完成
     # chown fghtv:fghtv /home/a.txt

在Linux下软件的安装方式

第一种方式:
     RPM命令:
       检查某个软件是否安装:
       rpm -qa | grep java   #查看是否安装java 
       载已安装的软件:
       rpm -e --nodeps xxxx  (多个用空格隔开)
       安装软件
       rpm -ivh xxx.rpm
      注:此方式安装时有许多依赖比较麻烦 
第二种方式:
     tar包(里边是源码去编译)安装
     zip软件:
         ### 解压
         $ unzip xxx.zip
         ### 压缩
         $ yy.zip filename
     tar软件:
         ###解压
         $tar -zxvf xxxx.tar.gz  ##解压到当前目录
         $tar -zvxf xxxx.tar.gz -C dir ##解压到指定目录
         ###压缩
         $tar -zcvf zzz.tar.gz dir/file ##对指定目录或者文件进行压缩
第三种方式:
      yum,解决了软件包之间的依赖,自动找,以及各个软件的安装顺序
      yum -y install vim #安装vim并确认安装  
      yum remove vim     #删除vim

磁盘管理


磁盘分区

 查看磁盘的使用情况: df -h 

查看磁盘分区情况:fdisk -l

进行分区 :fdisk /dev/磁盘名

fdisk命令详解

m:获取帮助

n:新建分区

p:显示分区表

d:删除分区

b:设置卷标

w:写入分区表

t:改变分区文件系统类型

v:检验分区

l:显示fdisk所支持的文件系统代码

q:退出

注:分区完一定要先写入再退出

一个磁盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个,编号从5开始。

磁盘容量与主分区、扩展分区、逻辑分区的关系

硬盘的容量=主分区的容量+扩展分区的容量

扩展分区的容量=各个逻辑分区的容量之和

格式化分区:

格式化命令:mkfs.ext3   /dev/sdb    #将指定分区格式化成 ext3格式

                    mkfs.ext4   /dev/sdb    #将制定分区格式化成 ext4格式

挂载分区:

挂载后就可以使用了

mount /dev/sdb /b1

mount /dev/sdb /b2

由于手动挂载重启需要重新挂载,设置自动挂载

vi /fstab

添加:/dev/sdb /b1 ext3  default 0 0

启动自动挂载:mount -a 

卸载分区:

unmount /dev/sdb

显示当前系统内核的版本 uname -r

显示服务器信息 cat /proc/cpuinfo

显示内存信息 cat /proc/meminfo

自动修复磁盘 fsck /dev/sda    #fsck:filesystem check

Linux Crontab定时任务


在linux当中,自带的调度功能Crontab,针对用户,每个用户都可以调度自己的任务

crontab -e编辑定时任务

[fghtv@node02 ~]$ crontab -e 进入编辑
功能:每分钟执行一次,将时间写入到指定文件中
      */1 * * * * /bin/date >> /home/fgthv/fg-log.txt

命令:

  • crontab -l列出所有定时任务
  •   crontab -r删除所有的定时任务 

crontab基本定义

语法:
      * * * * * command
    说明:
      字段之间用,使用逗号隔开
      第一个*:表示分钟,1-59
      第二个*:表示小时,0-23
      第三个*:表示日:1-31
      第四个*:表示月份,1-12
      第五个*:表示星期,0-6
例子:
 每天21:30执行
        30 21 * * * cmd01
 每月1,11,21的2:30执行
        30 2 1,11,21 * * cmd02
每天20:00 至23:00,每半小时执行一次
        0,30 20-23 * * * cmd04
每小时执行一次
        * */1 * * cmd05 

Shell基础编程

Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出屏幕返回给用户。通常我们会使用shell去别写一些对程序及服务器维护的脚本。

脚本通常由一段Linux命令、Shell命令、控制语句以及注释语句构成

Shell脚本的编写

Shell脚本是纯文本文件,可以使用任何文本编辑器编写

Shell脚本通常是以.sh为后缀

第一行:指定使用哪个程序来编译和执行脚本

  •  #!/bin/bash    
  •  #!/bin/sh

注释行:使用(#)符号 

变量

变量命名:

   变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线。
    任何其他字符都标志变量名的结束。
    变量名关于大小写敏感

变量类型:

    根据变量的作用域,变量可以分为本地变量和环境变量
    本地变量只在创建他们的shell程序中可用。而环境变量则在Shell中
    的所有用户进程中可用,通常也称为全局变量

##定义变量
#!/bin/bash
a=1         #定义变量a
b=2         #定义变量b
echo"a=$a"  #输出a

unset b     #撤销变量b
echo"unset b=$b" #输出变量b

readonly c="静态变量" #声明静态变量,不是撤销
export d=4   #设置全局变量,供其他程序使用

变量赋值:

等号两边不能有空格
    如果要给变量赋空值,可以在等号后面跟一个换行符 

  定义变量
         a=1         #定义变量a
         b=2         #定义变量b
    输出变量

        echo "a=$a" #结果 a=1

    变量的追加

        a="$a"23 或者 a=${a}23   

        echo a         #结果123

    清除变量

        unset b     #撤销变量b
        echo"unset b=$b" #结果为空

     readonly c="静态变量" #声明静态变量,不能撤销

环境变量

       按照惯例需要大写

      用户自定义的变量只能在当前的shell中生效,环境变量则可以在当前shell及这个shell的所有子程序中生效,可供其他程序使用。
      声明变量:export 变量名=值

      查询变量:env

      清除变量:unset

     声明后的环境变量,使用source命令对配置文件刷新,变量就立即生效了。

位置参量 

   位置参量是一组特殊的内置变量,通常被shell脚本用来从命令行接收参数
   或被函数用来保存传递给它的参数。
   执行Shell脚本时,用户可以通过命令向脚本传递信息,跟在脚本名后面的
   用空格隔开的每个字符串都称为位置参量。

   在脚本中使用这些参数时,需通过为止参量来引用。例如:$1表示第一个参
   数,$2表示第二个参数,以此类推。$9以后需要用花括号把数字括起来,如
   第10个位置参量以${10}的方式来访问。 

$0当前脚本的文件名
$1-$9第1个到第9个位置参量
${10}第10个位置参量,${n}...大于10都用{ }
$#位置参量的个数
$*以单字符串显示所有位置参量
$@这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$$脚本运行的当前进程号
$!最后一个后台运行的进程的进程号
$?显示前面最后一个命令的退出状态,0表示没有错误,其他表示有错误

预定义变量

已经定义好的变量,用户只能使用不能重新定义

  • $#:位置参数的数量
  • $*:所有位置参数的内容
  • $?:命令执行后返回的状态
  • $$:当前进程的进程号
  • $!:后台运行的最后一个进程号
  • $0:当前执行的进程名

运算符

基本语法:$((运算式)) 或 $[运算式]

表达式

expr 是一款表达式计算工具,使用它能完成表达式的求值操作,表达式需要用反引号(` `)括起来,且表达式与运算符之间要用空格隔开

expr m+n        #加

expr m-n         #减

expr m*n         #乘

expr m/n         #除

expr m%n       #取余

案例:

计算1×2+2×3的值
   1.A=$[1*2+2*3]
   2.A=((1*2+2*3))
   3.A=`expr 1 \* 2 + 2 \* 3`

 条件判断

两个整数的比较

符号说明
=字符串比较
-lt小于
-le小于等于
-eq

等于

-gt大于
-ge大于等于
-ne不等于

按照文件权限进行判断

符号说明
-r具有读的权限
-w

具有写到权限

-x具有执行的权限

按照文件类型进行判断

符号说明
-f

文件存在并且是一个常规的文件

-e

文件存在

-d文件存在并且是一个目录

案例:

判断a是否小于b
    #[ a -lt b ]
判断a.txt是否有写权限
    #[-w /root/a.txt]
判断文件a.txt是否存在
    #[-e /root/a.txt ]

逻辑运算符

  • 逻辑与 &&
  • 逻辑或 || 

if判断

单层次判断试

if [条件判断式];then
    当条件判断式成立时,可以进行的指令工作内容;
fi

注:fi表示if结束的意思

也可以这样写

if [条件判断式]
then
    当条件判断式成立时,可以进行的指令工作内容
fi

多重、复杂条件判断式

if [条件判断式1];then
    当条件判断式1成立时,可以进行的指令工作内容
elif [条件判断式2];then
    当条件判断式2不成立时,进行的指令工作内容
else
    条件判断式1,条件判断式2都不成立时,执行的内容
fi

注:中括号和条件判断式之间必须有空格

while循环

while [条件判断式]
do
        指定的工作内容
done
until [条件判断式]
do
    指定的工作内容
done

此方式特有while相反,当条件判断式成立时终止循环。

for循环

for 变量 in 值1 值2 ...
do
    指定的工作内容(程序)
done
for ((初始值;循环条件语句;条件控制语句))
do
    指定的工作内容
done

case语句
 

case $变量名 in
值1)
程序1
;;
"值2")
程序2
;;
...
"值n")
程序n
;;
*)
如果变量的值与以上所有值都不匹配,执行此内容
;;
esac

read读取控制台输入

read [选项] 参数
选项
    1.-p:指定读取值时的提示符
    2.-t:指定读取时等待的时间(秒)
参数:
    指定读取值的变量名

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值