《Linux私房菜》——一、linux基础整理

本文均来自《鸟哥的Linux私房菜》的学习整理,仅供学习使用

·一、基础命令

1.1 date日期

[root@iZbp1fki8n8k5f1j3acuhzZ ~]# date
Tue Jul 20 21:46:55 CST 2021

格式化:

[root@iZbp1fki8n8k5f1j3acuhzZ ~]# date '+%Y-%m-%d %H:%m'
2021-07-20 21:07

1.2 man

查看命令帮助

输入man ls会出现关于ls命令的说明

LS(1)                                                            User Commands                                                           LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is
       specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .
...............

其中,第一行LS(1)中的1代表一般用户可以使用的命令。

其他数字说明如下,这里列举比较重要的几个

序号说明
1用户载shell环境中可以操作的命令或可执行文件
2系统内核可调用的函数与工具
3一些常用的函数与函数库
8系统管理有可用的管理命令

在man中,可通过以下命令查找关键词:

  • /string

    向【下】查找string

  • ?string

    向【上】查找string

  • n或N

    用 / 或 ? 查找时,n代表向下查找一个,N代表反向查找一个

man -f man -- 列举和man有关的命令
man -k man -- 只要包含man这个关键词的说明文件就列出来

1.3 info page

与man类似,但是内容以段落形式列出来,有目录,点击目录可以跳到指定段落

  • n

    到下个节点 翻页

  • p

    到上个节点

  • u

    向上移动一层,到上层的总览画面

  • s 或 /

    在当前page查找

1.4 关机相关

1.4.1 sync

将内存数据写入到磁盘。当前的关机命令如shutdown、reboot等都会执行sync命令。

普通用户执行sync命令时,只能刷新自己账户下的数据。

1.4.2 shutdown

相关参数:

  • -k

    只发送警告信息,非真关机

    shutdown -k now '我要关机啦,都注意保存数据'
    
  • -r

    将系统服务停掉后就重启

  • -h

    将系统服务停掉后就立即关机

  • -c

    取消shutdown内容

  • 时间

    指定多少分钟后进行关机,默认1分钟,now或0为立即关机

1.4.3 重启

reboot

halt

poweroff

三个命令都差不多,为重启操作

su - 切换到root

二、文件权限相关

2.1 权限基础

[root@iZbp1fki8n8k5f1j3acuhzZ softwares]# ls -al
total 0
drwxr-xr-x   5 root root  49 Jul  4 16:20 .
drwxr-xr-x. 19 root root 239 Jan  1  2021 ..
drwxr-xr-x   6 root root 107 Dec  8  2020 fastdfs
drwxr-xr-x   3 root root  23 Dec 25  2020 node
-rw-r--r--   1 root root   0 Jul 20 22:18 test1
drwxr-xr-x   8 root root 158 Jan  1  2021 zkServer

其中,第一列第一个字符代表文件类型

  • 【d】

    目录

  • 【-】

    文件

  • 【l】

    链接文件

  • 【b】

    设备文件,周边设备

  • 【c】

    设备文件里面的串行端口设备

后面紧跟着的数字每三个一组共三组代表文件权限。

  • 第一组

    文件拥有者权限

  • 第二组

    用户组的权限

  • 第三组

    其他人的权限

每组权限由**读(r)、写(w)和可执行(x)**三个权限组成,分别对应数字4(r)2(w)1(x)

第二列的数字表示有多少文件名链接到此节点(inode)

第三列表示该文件的拥有者账户

第四列表示该文件的所属用户组名

第五列:文件大小【bytes】

第六列:创建时间或修改时间

2.2 修改文件属性和权限

2.2.1 修改用户组chgrp

格式:chgrp -R groupName fileName/dirName

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZWdItPnZ-1629598798326)(/Users/xiaoyunshi/Library/Application Support/typora-user-images/image-20210721211013637.png)]

所有用户组都可在 /etc/group 查询

2.2.2 修改文件拥有者chown

格式:

chown [-R] username fileName/dirName ,将fileName的拥有者改为username,或通过-R将目录dirName联通子目录下的所有文件的拥有者更改为username

chown也可以直接修改用户组:chown [-R] username:groupName fileName/dirName

[root@localhost ~]# chown xiaoyunshi testtxt
[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root       root 1417 713 21:28 anaconda-ks.cfg
drwxr-xr-x. 2 root       test   17 721 21:09 testdir
-rw-r--r--. 1 xiaoyunshi root    0 721 21:08 testtxt	
2.2.3 修改文件权限chmod

基本语法:chmod [-R] num1num2num3 文件或目录

前面讲到,文件权限分为 r(4)、w(2)和x(1),其中numx就表示这几个数字之和。num1为文件拥有者权限,num2为所属用户组权限,num3为其他用户权限

如:给testtxt文件权限为文件拥有者:可读、可写、可执行,用户组:可读和可写,其他用户只能读

[root@localhost ~]# chmod 764 testtxt
[root@localhost ~]# ls -l
-rwxrw-r--. 1 xiaoyunshi root    0 721 21:08 testtxt

另外,权限的三个身份:user、group、others,可分别使用 u 、g、o代替,加上 a(所有者)共四个身份类型。就可借助ugoa代表四个身份进行权限修改。

上面的示例改为用户:读写,用户组:只读,其他人:只读,则可用如下方式修改:

[root@localhost ~]# chmod u=rw,go=r testtxt
[root@localhost ~]# ls -l
-rw-r--r--. 1 xiaoyunshi root    0 721 21:08 testtxt

如果只想给文件加上或去掉某个权限,则可以将 = 替换为 +-

# 给文件拥有者添加可执行权限
[root@localhost ~]# chmod u+x testtxt
[root@localhost ~]# ls -l
-rwxr--r--. 1 xiaoyunshi root    0 721 21:08 testtxt

#给用户组添加写权限
[root@localhost ~]# chmod g+w testtxt
[root@localhost ~]# ls -l
-rwxrw-r--. 1 xiaoyunshi root    0 721 21:08 testtxt
#给其他用户去掉读权限
[root@localhost ~]# chmod o-r testtxt
[root@localhost ~]# ls -l
-rwxrw----. 1 xiaoyunshi root    0 721 21:08 testtxt
# 给所有用户添加可执行权限             
[root@localhost ~]# chmod a+x testtxt
[root@localhost ~]# ls -l
-rwxrwx--x. 1 xiaoyunshi root    0 721 21:08 testtxt

2.3 权限的作用

2.3.1权限对于文件的作用

  • r

    可以读取文件实际内容

  • w

    可以对文件进行编辑(写入、修改等),但不能删除

  • x

    被系统执行的权限,与文件名无关,只与文件内容相关

2.3.2 权限对于目录的作用

目录主要是记录文件的列表

  • r

    可以读取目录文件列表。即,可以使用ls这样的命令查看目录中文件列表内容

  • w

    1. 建立新的文件与目录
    2. 删除已存在的文件与目录(无论文件的权限是什么)
    3. 重命名已存在的文件或目录
    4. 移动目录内文件与目录的位置
  • x

    决定能否将当前目录作为工作目录,即能否通过 cd 进入到该目录

即,对于一个目录来说,即使拥有w权限,但是没有x权限,依然无法对目录内文件和目录进行操作。

[xiaoyunshi@localhost local]$ ls -l
drwxr-xr--. 2 root root  6 721 22:03 test
[xiaoyunshi@localhost local]$ ls test/
[xiaoyunshi@localhost local]$ cd test/
-bash: cd: test/: 权限不够

如上,test目录对于其他用户来说只有读权限,因此可以对test进行 ls,但是无法cd进入到该目录

三、目录与路径

3.1 目录操作

3.1.1 pwd

pwd:显示当前所在的目录

[root@localhost test]# pwd
/usr/local/test
3.1.2 mkdir

mkdir:创建目录

格式:mkdir -[mp] [权限] dirName

  • -m

    创建目录,同时自定权限

    [root@localhost test]# mkdir -m 721 dir1
    [root@localhost test]# ls -l
    drwx-w---x. 2 root root 6 722 17:39 dir1
    

    创建一个权限为rwx-w---x的目录

  • -p

    递归创建,如:

    [root@localhost test]# mkdir -p dir2/dir21/dir22
    

    则在当前目录下创建了dir2目录,并且dir2包含了dir21目录,dir21包含了dir22目录

如果不指定权限,则采用默认权限,目录默认权限跟umask相关【后面介绍】

3.1.3 rmdir

删除目录

同mkdir语法一样,但只能删除非空目录。

[root@localhost test]# rmdir -p dir2/dir21/dir22/

想要删除目录和目录下所有内容的话,就直接rm -rf dir吧,强制删除。

3.1.4 ls

列举目录内容,默认按文件名排序

选项与参数:
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来
-A :全部的文件,连同隐藏文件,但不包括 . 与 … 这两个目录
-F :根据文件、目录等信息,给予附加数据结构,例如::代表可可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件;
-h :将
文件大小以友好的方式(例如 GB, KB 等等)列出来;
-i :列出 inode 号【后面讲】;
-l :包含
文件的属性与权限等等数据;(常用)
-n :列出 UID 与 GID 而非使用者与群组的名称
-r :文件反向排序
-R :递归列举出目录下所有文件;
-S :以
文件大小大小排序*
-t :依时间排序

3.2 复制删除和移动相关

3.2.1 cp

cp:复制文件用

  • -i

    目标文件存在,要覆盖时会先询问

  • -p

    连同文件的属性(权限、用户和时间)一同复制,而非使用默认属性

  • -r

    递归复制

  • -s

    复制成为符号链接文件

  • -u

    目标文件不存在才复制,目标文件存在但比源文件旧才更新(覆盖)【备份用】

  • -a

    相当于 -dr,–preserve=all

    --preserve=all:除了 -p 包含的权限外,还加入了SELinux属性,links和xattr等也复制

  • -l

    进行硬链接的【后面讲】链接文件建立

  • -d

    若源文件为链接文件属性,则复制链接文件属性而非文件本身

【例:-p】

默认情况下,即不加任何选项cp操作时,会修改目标文件的权限、时间等属性为当前操作者。

如下,有一个文件拥有者为xiaoyunshi的文件 testcp,使用root用户执行cp操作后,发现复制后的目标文件的拥有者变为了root。

[root@localhost test]# ls -l
总用量 0
-rw-rw-r--. 1 xiaoyunshi xiaoyunshi 0 722 21:11 testcp
[root@localhost test]# cp testcp /home/xiaoyunshi/
[root@localhost test]# cd /home/xiaoyunshi/
[root@localhost xiaoyunshi]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 722 21:12 testcp

如果想要连同权限等一同复制,就可以使用 -p-a选项:

[root@localhost test]# cp -p testcp  /home/xiaoyunshi/testcp2
[root@localhost test]# cd /home/xiaoyunshi/
[root@localhost xiaoyunshi]# ls -l
-rw-rw-r--. 1 xiaoyunshi xiaoyunshi 0 722 21:11 testcp2

这样就给考屁过来了

【链接例子:-s、-l、-d】

对testcp建立一个符号链接文件(可以理解为windows里的快捷方式,非文件本身,其通过 -> 指向文件本身)

[root@localhost test]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 722 21:21 testcp
[root@localhost test]# cp -s testcp testcplink
[root@localhost test]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 722 21:21 testcp
lrwxrwxrwx. 1 root root 6 722 21:29 testcplink -> testcp  # 建立好的指向testcp的链接文件

-d:若源文件为链接文件属性,则复制链接文件属性而非文件本身,否则复制文件本身

# 1:使用-d复制testcp为testcp2:因为testcp非链接文件,因此复制出来的testcp2也是非链接文件
[root@localhost test]# cp -d testcp testcp2
[root@localhost test]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 722 21:21 testcp
-rw-r--r--. 1 root root 0 722 21:32 testcp2
lrwxrwxrwx. 1 root root 6 722 21:29 testcplink -> testcp

#2:使用-d复制testcplink为testcplink2:因为testcplink为链接文件,因此复制出来的testcplink2也是链接文件,且指向原文件
[root@localhost test]# cp -d testcplink testcplink2
[root@localhost test]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 722 21:21 testcp
-rw-r--r--. 1 root root 0 722 21:32 testcp2
lrwxrwxrwx. 1 root root 6 722 21:29 testcplink -> testcp
lrwxrwxrwx. 1 root root 6 722 21:32 testcplink2 -> testcp # 指向testcp

#3:复制testcplink为testcp3:因为未使用-d,默认情况下cp只会复制文件本身,无论源文件是否为链接文件
[root@localhost test]# cp testcplink testcp3
[root@localhost test]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 722 21:21 testcp
-rw-r--r--. 1 root root 0 722 21:32 testcp2
-rw-r--r--. 1 root root 0 722 21:32 testcp3 # 复制链接文件的结果仍然是文件本身
lrwxrwxrwx. 1 root root 6 722 21:29 testcplink -> testcp
lrwxrwxrwx. 1 root root 6 722 21:32 testcplink2 -> testcp
3.2.2 rm

rm为删除操作。

参数:

  • -r

    递归删除

  • -f

    强制删除

  • -i

    会提示是否删除

3.2.3 mv

移动文件或修改文件名

参数:

  • -f

    强制,目标文件存在时强行覆盖

  • -i

    会问你以下

  • -u

    目标文件存在且较旧时才覆盖

获取文件名:basename 文件

获取文件所在目录名:dirname 文件

3.3 查看文件内容

3.3.1 cat、tac

cat比较有用的参数:

  • -b:列出行号
  • -n:列出行号,包括空白行
  • -T: Tab键以^T显示出来

tac就是反向查看

这两个命令都是一次查看完,因此在线上查看时,如果文件比较大就要谨慎些。

3.3.2 more

翻页查看

  • 空格:翻页
  • 回车:下一行
  • /string:当前显示的内容中查找string
  • q:退出
3.3.3 less

同more,但支持更多功能。

  • /string:向下查找string
  • ?string:向上查找string
  • pageUp/Down:翻页
  • n/N:n:正向重复/或?查找,N:反向查找
  • g:定位到数据第一行
  • G:定位到数据最后一行
3.3.4 head

格式:head [-n number] 文件

head默认从头展示文件的前10行

head -n number 则展示前number行

number为负数:不展示后面number行,即最后number行以前的都列出来,如一共50行, head -n -20 ,则只会列出第1到30行

3.3.5 tail

从尾部展示number行,不指定则默认10行

tail [-n number] 文件

-f:持续刷新最后的内容

3.4 文件的时间及修改mtime、ctime、atime

文件的时间分为三类:

  • 修改时间(mtime):文件内容被修改时更新
  • 状态时间(ctime):文件权限属性被修改时更新
  • 访问时间(atime):如读取文件时就会更新

ll默认展示的是修改时间,想要查看其他时间可以通过:ls -l --time=ctime指定.

可以通过touch创建空文件或修改文件时间

touch:

参数:

  • -a:修改atime
  • -c:仅修改文件时间,文件不存在则不建立新文件
  • -t:自定义时间 格式YYYYMMDDhhmm
  • -m:修改mtime
  • -d:同时修改atimemtime,格式可以为:'2021-07-22 11:11’这样 or **‘2 days ago’**这样

但无论如何,文件的ctime无法更改

3.5 文件与目录的默认权限和隐藏权限

3.5.1 默认权限umask

如果在创建文件或权限时未指定权限,如 mkdir -m ,则会采用默认权限,默认权限是啥呢?具体可以通过umask命令查看:

[root@localhost test]# umask
0022
[root@localhost test]# umask -S
u=rwx,g=rx,o=rx

其中,umask -S 会将默认权限格式化输出,展示的就是具体的默认权限,如上,默认权限 u为读写和可执行,用户组和其他用户都只有读和可执行,没有写权限。

umask单独的命令输出了4位,第一位为特殊权限暂不看,与权限相关的是后三位,即022,这个数字对应的是默认权限需要减去的权限

  • 0:文件拥有者权限一个都不去掉,为:r(4)、w(2)、x(1)
  • 2:用户组和其他用户的权限都去掉写权限,因为w->2,因此默认权限为:r(4)和可执行x(1)

那么默认权限是什么呢?文件和目录的默认权限是不一样的:

  • 文件

    因为文件大多数不需要可执行的权限,因此默认为 666 : -rw-rw-rw-

  • 目录

    而目录必须要有可执行权限才能进入,因此默认为777 : drwxrwxrwx

因此,文件和目录减去umask中要减去的权限后,实际的默认权限为:

  • 文件实际权限

    -rw-rw-rw 减去 -----w–w- 结果为: -rw-r–r--

  • 目录实际权限

    drwxrwxrwx 减去 -----w–w- 结果为: drwxr-xr-x

测试:

可以看到和我们计算的一致。

#创建目录
[root@localhost test]# mkdir defaulDir
[root@localhost test]# ls -l
总用量 0
drwxr-xr-x. 2 root root 6 723 14:28 defaulDir

# 创建文件
[root@localhost test]# touch defaultTxt
[root@localhost test]# ls -l
-rw-r--r--. 1 root root 0 723 14:30 defaultTxt
默认权限的修改

修改默认权限也很简单,直接在 umask后加上要要去掉的权限对应的数字即可,如:

[root@localhost test]# umask 0002
[root@localhost test]# rm -rf ./*
[root@localhost test]# touch test
[root@localhost test]# mkdir dir
[root@localhost test]# ls -l
总用量 0
drwxrwxr-x. 2 root root 6 723 14:42 dir
-rw-rw-r--. 1 root root 0 723 14:42 test

我们只把其他用户去掉写权限,其余都保留,如上,新建文件和目录权限也确实如此。

3.5.2 文件隐藏属性chattr

文件 的隐藏属性有哪些呢?可通过 chattr[+-=][AaSscditu] 文件or目录来修改。

具体参数如下:

  • [±=]

    这个和chmod修改权限的作用是类似的。+就是加上一个特殊参数,-就是减去一个特殊参数,=就是接固定参数

  • A

    该参数可保证读取文件或目录时==不修改访问时间(atime)==

  • a

    只能增加数据,不可修改或删除数据,只能root进行设置该参数

  • S

    同步写入磁盘 (一般都是非同步写入,在关机时会执行sync进行刷新磁盘,或手动执行sync进行刷新磁盘)

  • s

    删除时完全移除磁盘空间,不可挽回

  • u

    与s相反,被删除后仍保留在磁盘,可通过x挽回

  • c

    对文件自动进行压缩,读取时自动解压,存储时先压缩再存储

  • d

    dump时避免被dump

  • i

    让文件不可被删除、改名、建立链接、新增数据(仅root可操作)

【示例】-i

# 添加 i 属性
[root@localhost test]# chattr +i test
[root@localhost test]# lsattr test
----i----------- test
[root@localhost test]# rm -rf test
rm: 无法删除"test": 不允许的操作

# 移除该隐藏属性
[root@localhost test]# chattr -i test
[root@localhost test]# lsattr test
---------------- test
# 可正常删除
[root@localhost test]# rm test
rm:是否删除普通空文件 "test"?y

lsattr为查看隐藏属性

【示例】 -a:

[root@localhost test]# echo "haha" -> testtxt
[root@localhost test]# cat testtxt
haha -
# 添加 a 属性
[root@localhost test]# chattr +a testtxt
[root@localhost test]# rm testtxt
rm:是否删除普通文件 "testtxt"?y
rm: 无法删除"testtxt": 不允许的操作
[root@localhost test]# echo "hehei" -> testtxt
-bash: testtxt: 不允许的操作
[root@localhost test]# echo "hahahehei" -> testtxt
-bash: testtxt: 不允许的操作

添加后无法修改和删除

3.5.3 文件特殊权限

SUID、SGID、SBIT

3.6 命令和文件的查找

3.6.1 which

which用于查找脚本文件,是根据PATH环境变量规范的路径,查找执行文件的文件名。如查找ls命令的位置

格式:which [-a] command

-a : 把所有由PATH目录中可以找到的命令都列出

[root@localhost ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls

但是如果是内置命令,如 history 就不可以用which查找,这里可以使用type查找【后面讲】

[root@localhost ~]# which history
/usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

[root@localhost ~]# type history
history 是 shell 内嵌
3.6.2 文件查找

通常用whereis和locate命令。

whereis

格式:whereis [-bmsu] 文件或目录

whereis查找很快,因为其只查找几个特定目录

  • -l

    列出会去查询的几个主要目录

  • -b

    只找二进制文件

  • -m

    只找在说明文件manual路径下的文件

  • -s

    只找source源文件

  • -u

    查找不在上述三个项目当中的其他特殊文件

[root@localhost ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz
find

语法:find [PATH] [option] [action]

其中option有以下参数:

1.时间相关

-mtime、-atime和-ctime,以mtime为例:

  • -mtime n : n天前的那天(当天内)被修改过的文件
  • -mtime +n: n天以前(不包括第n天当天)的被修改过的文件
  • -mtime -n : n天内(包括第n天)的被修改过的文件

例:n=4:


-------(+4)----|--(4)--|----------(-4)----------
---7-----6-----5-------4-----3-----2-----1-----now

2.使用者或用户组相关

  • -uid n

    与账户名称对应的数字

  • -gid n

    与用户组ID对应的数字

  • -user name

    name为使用者账号

  • -group name

    name为用户组名

  • -nouser

    查找文件的拥有者不在/etc/passwd的

  • -nogroup

    查找文件所属用户组不在/etc/group的

查找/home目录下所有拥有者为xiaoyunshi的文件

[root@localhost ~]# find /home -user xiaoyunshi
/home/xiaoyunshi
/home/xiaoyunshi/.bash_logout
/home/xiaoyunshi/.bash_profile
/home/xiaoyunshi/.bashrc
/home/xiaoyunshi/.bash_history
/home/xiaoyunshi/testcp2

3.与文件权限和名称有关的

-         Name : 查找文件名为fileName的文件
-size [+-]SIZE  : 查SIZE(单位:c->Bytes,k->1024Bytes)(+)或小(-)的文件
-type TYPE     : 查找文件类型为TYPE【正规文件(f)、设备文件(b,c)、目录(d)、链接文件(l)、socket文件(s)、FIFO(p)等属性】
-perm mode :查找文件属性等于mode 的文件
-perm -mode : 查找文件属性全部包括mode的文件
-perm /mode : 查找文件属性包括mode的文件(不用全部都包括)

如果要查询关键词,则使用如下方式:

在关键词前后加上 :星号*

[root@localhost ~]# find /home -name "*test*"
/home/wangmaolin/testcp
/home/wangmaolin/testcp2
/home/wangmaolin/test
/home/wangmaolin/test/testtxt
/home/wangmaolin/test/.testtxt.swp
/home/wangmaolin/test/testtxt~
/home/wangmaolin/test/testtxz~

4.额外进行的操作

-exec command

可对查询结果做额外操作,如:

find /home -name "test" -exec ls -l {} \;

查找/home目录下名为test的文件,将查询结果放到 {} 内 执行ls -l 命令。

[root@localhost ~]# find /home -name testtxt  -exec ls -l {} \;
-rw-rw-r--. 1 root root 7 723 15:11 /home/wangmaolin/test/testtxt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值