LINUX

本文详细介绍了Linux系统中的用户管理(useradd, passwd, userdel等)、组管理(groupadd, groupmod, groupdel)以及关键命令如chmod, chown, chgrp的使用。此外,还涵盖了文件和目录权限、快捷键、网络管理、进程与线程、cron定时任务等内容。
摘要由CSDN通过智能技术生成

1、用户
新增: user add xiaoming
带家庭的:useradd xiaoming2 xiaoming
带组的:useradd -g wudang zwj
删除: userdel xiaoming
2、组:
新增:groupadd wudang
修改:groupmod wudang
删除:groupdel wudang
3、家


a在光标后附加文本
A(shift + a)在本行行末附加文本 行尾
i在光标前插入文本
I(shift+i)在本行开始插入文本 行首
o在光标下插入新行
O(shift+o)在光标上插入新行

定位命令

:set nu设置行号
:set nonu取消行号
gg G到第一行 到最后一行
nG到第n行
:n到第n行

保存和退出命令

:w new_filename另存为指定文件,如果文件不存在,会直接创建一个新的文件
:w >> a.txt内容追加到a.txt文件中 文件需存在
shift+zz(ZZ)快捷键,保存修改并退出

删除命令

x删除光标所在处字符 nx 删除光标所在处后n个字符
:n1,n2d删除指定范围的行(eg :1,3d 删除了123这三行)
dG删除光标所在行到末尾的内容
D删除从光标所在处到行尾

复制和剪切命令

yy、Y复制当前行
nyy、nY复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p、P粘贴在当前光标所在行下 或行上

替换和取消命令

r取代光标所在处字符
R(shift + r)从光标所在处开始替换字符,按Esc结束
uundo,取消上一步操作
ctrl+rredo,返回到undo之前

搜索和替换命令

/string向后搜索指定字符串
?string向前搜索指定字符串
n搜索字符串的下一个出现位置,与搜索顺序相同
N(Shift + n)搜索字符串的上一个出现位置,与搜索顺序相反
:%s/old/new/g全文替换指定字符串
:n1,n2s/old/new/g在一定范围内替换指定字符串
% 指全文,
s 指开始,
g 指全局替换 起始行,终止行s/要替换的字符串/替换的新的字符串/g 将/g换成/c 询问确认
eg: : %s/ftp/yang/g 全局替换,把ftp替换为yang 
eg: : 41,44/yang/lee/c 从41行到44行,把yang替换为lee,询问是否替换 
eg: : 41,44/yang/lee/g 同上,不询问,直接替换 
eg: : %s/\/root/\/ROOT/g 把/root替换为/ROOT,遇到特殊字符需要进行转义处理
eg: : %s#/bin/bash#/bin/ksh/g 把/bin/bash全部替换为/bin/ksh

使用替换命令添删注释

:% s/^/#/g 来在全部内容的行首添加 # 号注释 ^代表行首
:1,10 s/^/#/g 在1~10 行首添加 # 号注释 
vi里面查命令 
:!which cp 
vi里面导入命令的结果
:r !which cp 
I或者O进入插入模式。

ln

  1. 英文: link 命令路径:/bin/ln 执行权限:所有用户 2) 作用:产生链接文件 3) 语法:
ln -s \[源文件][目标文件] 创建软链接 相当于建立快捷方式 注意:源文件 使用 绝对路径
ln \[源文件][目标文件] 创建硬链接 相当于深拷贝 
eg: ln -s /etc/service ./service.soft
创建文件/etc/service的软链接service.soft
eg: ln /etc/service /service.hard 
创建文件/etc/service的硬链接/service.hard
  1. 软连接类似于windows下的快捷方式

软连接文件格式: lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services

  1. 格式解析(特征)
1.1代表硬链接数量,如果该文件没有硬链接,就只有本身一个硬链接。
2.13代表 链接文件的长度 
3.软连接的文件类型是 l(软连接),软连接文件的权限 都是 lrwxrwxrwx 
4.-> 箭头指向到源文件 
真正的权限取决于对源文件的权限 
时间值为创建软连接的时间 
软连接可以跨文件系统生成
  1. 硬链接特征
1.相当于 cp -p +同步更新 
2.通过i节点识别,与源文件有相同的inode节点 
3.硬链接不能跨分区,ln /home/test/issuels /boot/test (错误) 
4.不能针对目录使用 ln /tmp/ aa.hard (无法将目录/tmp 生成硬链接)
  1. 删除软连接,源文件还在

rm -rf symbolic_name

  1. inode说明

Linux文件系统中的inode主要用于存放档案和目录的基本信息,当系统创建文件系统的同时会创建大量的

inode

2.4 查看命令

cat

语法:
cat \[-n][文件名] 
-A 显示所有内容,包括隐藏的字符
-n 显示行号 eg:cat /etc/services

more

语法:
more [文件名] 空格或
f 显示下一页 
enter键 显示下一行 
q或Q 退出 
相关指令:less

head

作用:查看文件前几行(默认10行) 
语法:head [文件名] 
-n 指定行数 
eg:head -20 /etc/services head –n 3 /etc/services

tail

作用:查看文件的后几行
语法:tail [文件名] 
-n 指定行数 获取一个大文件的部分文件,可使用head或tail命令
eg: head -n 100 /etc/services >config.log 会直接用 /etc/services里面前100行的 数据导入conflg.log文件中,并覆盖其中的内容 
head -n 100 /etc/services >>config.log 会直接用 /etc/services里面前100行的数据 导入conflg.log文件中,并进行内容的追加

find

说明: 精准查找 eg: find /etc -name “init” 在目录/etc中查找文件init
作用:查找文件或目录 
语法:find \[搜索路径][匹配条件]
如果没有指定搜索路径,默认从当前目录查找 
find命令选项
1) -name按名称查找
说明: 精准查找 eg: find /etc -name “init” 在目录/etc中查找文件init
2) -iname按名称查找
说明: 不区分大小写 
find查找字符匹配:
*: 匹配所有 
?: 匹配单个字符 
eg: find /etc -name “init???” 在目录/etc中查找以init开头的,且后面有三位的文件 模糊匹配的条件,建议使用单引号或双引号括起来。 
如果*被转义,可使用 单双引号括住查询条件,或者使用\\\*。
eg: find –name "*g"
3) -size按文件大小查找
以block为单位,一个block是512B, 1K=2block +大于 -小于 不写是等于 
eg: find /etc -size -204800 在etc目录下找出小于100MB的文件 100MB=102400KB=204800block
4) -type按文件类型查找
f 二进制文件 l 软连接文件d 目录 c 字符文件 
eg: find /dev -type c find查找的基本原则: 占用最少的系统资源,即查询范围最小,查询条件最精准
注意: 如果明确知道查找的文件在哪一个目录,就直接对指定目录查找,不查找根目录/

grep

作用:在文件中搜寻字符串匹配的行并输出 
语法:grep [-cinv] '搜寻字符串' filename 
选项与参数: 
-c :输出匹配行的次数(是以行为单位,不是以出现次数为单位)
-i :忽略大小写,所以大小写视为相同 
-n :显示匹配行及行号
-v :反向选择,显示不包含匹配文本的所有行。 
eg:grep ftp /etc/services 
eg: grep -v ^# /etc/inittab 去掉文件行首的#号
eg: grep -n “init”/etc/inittab 显示在inittab文件中,init匹配行及行号
eg: grep -c“init”/etc/inittab 显示在inittab文件中,init匹配了多少次管道的功能(过滤) 
find /root | grep a.txt

which

作用:显示系统命令所在目录(绝对路径及别名)
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就 是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
eg: which ls 出现下面的信息,是ls指令的详情,说明ls指令是存在的 alias ls='ls --color=auto' /bin/ls eg: which zs 出现下面的信息,说明zs指令是不存在的 /usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)

whereis

作用:搜索命令所在目录 配置文件所在目录 及帮助文档路径
eg: which passwd 和 whereis passwd 
eg: 查看/etc/passwd配置文件的帮助,就用 man 5 passwd

df****命令

语法:df \[-hkam][挂载点] 
-h(human-readable)根据磁盘空间和使用情况 以易读的方式显示 KB,MB,GB等 
-k 以KB 为单位显示各分区的信息,默认
-m 以MB为单位显示信息 
-a 显示所有分区包括大小为0 的分区

du****命令

语法:du \[-ahs][文件名目录] 
-a 显示子文件的大小 
-h 以易读的方式显示 KB,MB,GB等 
-s summarize 统计总占有量 
eg: du -a(all) /home 显示/home 目录下每个子文件的大小,默认单位为kb
eg: du -h /home 以K,M,G为单位显示/home 文件夹下各个子目录的大小 
eg: du -sh /home 以常用单位(K,M,G)为单位显示/home 目录的总大小 
-s summarize 
df命令和du命令的区别:
df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。 
du命令面向文件,只计算文件或目录占用的空间。 
eg: 执行下面的命令查看区别 df –h / du –sh /

free

语法: free [-kmg] 选项: 
-k: 以KB为单位显示,默认就是以KB为单位显示 
-m: 以MB为单位显示 
-g: 以GB为单位显示 清理缓存命令: 
echo 1 > /proc/sys/vm/drop_caches

gzip

作用:压缩(解压)文件,压缩文件后缀为.gz 
gzip只能压缩文件,不能压缩目录;不保留原文件 
语法:gzip 文件 
-d将压缩文件解压(decompress) 
解压使用gzip –d或者 gunzip

bzip2

作用:压缩(解压)文件,压缩文件后缀为.bz2
语法:bzip2 \[-k][文件] 
-k: 产生压缩文件后保留原文件(压缩比高) 
-d: 解压缩的参数(decompress) 
解压使用bzip2 –d或者 bunzip2

zip

作用: 压缩(解压)文件,压缩文件后缀为.zip,保留源文件 
语法: zip 选项 [压缩后文件名称] [文件或目录] 
-r 压缩目录 
eg:zip services.zip /etc/services 压缩文件 
zip -r test.zip /test 压缩目录 
如果不加-r选项,压缩后的文件没有数据。 
解压使用unzip ,注意如果解压时,已经存在与压缩文件同名的目录名,默认不会进行覆盖,如果选择Y,会进行 覆盖

tar

作用:文件、目录打(解)包 
语法:tar [-zcf] 压缩后文件名 文件或目录 
-c 建立一个压缩文件的参数指令(create),后缀是.tar 
-x 解开一个压缩文件的参数指令(extract) 
-z 以gzip命令压缩/解压缩 
-j 以bzip2命令压缩/解压缩 -v 压缩的过程中显示文件(verbose) 
-f file 指定文件名,必选项

示例

tar –cf tar –xf 单独的打包 ,解包 
gzip bzip2 打包之后,进行压缩 
tar –zcvf tar -zxvf 一步到位 
tar -z 以gzip打包目录并压缩 文件格式.tar.gz(.tgz) 
tar -j 以bzip2打包目录并压缩 文件格式.tar.bz2
eg: tar -zcvf dir1.tar.gz dir1 使用gzip将目录dir1压缩成一个打包并压缩文件 dir1.tar.gz 
eg: tar -zxvf dir1.tar.gz -C(大写的) /root 解压到指定的/root目录 
eg: tar -cvf bak.tar . 将当前目录的文件打包为bak.tar 
eg: tar -xvPf bak.tar 解压到当前目录,默认是相对路径,P意思是支持绝对路径 
eg: tar -cvPf bak.tar /a/b 将/a/b路径压缩成bak.tar 
eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar 使用gzip将打包文件bak.tar压 缩为bak.tar.gz eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2将打包文件bak.tar压 缩为bak.tar.bz2 
eg: tar -rvf bak.tar /etc/password 将/etc/password追加文件到bak.tar中 
eg: tar -cjvf test.tar.bz2 test 生成test.tar.bz2的压缩文件 eg: tar -xjf test.tar.bz2 解压

tar + gzip

tar –zcvf 压缩

tar –zxvf 解压

补充:源文件是保留的,不会被删除

date

1) date命令是显示或设置系统时间与日期。 

2) 查看系统时间直接使用 date 

3) 以自定义的方式显示系统时间: date +'%Y-%m-%d %H:%M:%S' 

注意:+与字符串之间不能有空格,与date之间要有空格 

4) 设置时间 

eg: date -s "2015-5-8 19:48:00" 

5) 同步到bios,重启之后才能继续生效 

eg: hwclock -w

执行等级

linux有七种执行等级:

init 0:停机

init 1:单用户形式,只root进行维护

init 2:多用户,不能使用net file system

init 3:完全多用户

init 5:图形化

init 4:安全模式

init 6:重启

其他命令

uname -r 查看系统版本信息

basename a/b/c/test.txt 显示:test.txt 查看命令中的名字

dirname a/b/c/test.txt 显示: a/b/c/ 查看命令中的路径

Linux****的快捷键命令

善于查看man help等帮助文档 

利用好Tab键 自动补全 

掌握好一些快捷键 

ctrl + c(停止当前进程) 

ctrl + z 挂起当前进程,放后台 

ctrl + r(查看命令历史) history 

ctrl + l(清屏,与clear命令作用相同) 

对当前命令行的操作: 

方向箭头 上 下 可以查看执行过的命令并再次使用 

ctrl + a 行首 ctrl + e 行尾 ctrl+d 清除当前的字符 

ctrl + k 清除光标后面的内容 ctrl+ w 清除光标前面的单词 

NetworkManager

systemctl status NetworkManager

systemctl start NetworkManager

systemctl stop NetworkManager

systemctl disable NetworkManager

systemctl enable NetworkManage

网络通信命令

ping

语法:ping 选项 IP地址

-c 指定发送次数

ping 命令使用的是icmp协议,不占用端口

eg: ping -c 3 127.0.0.1

ip addr

作用:查看和设置网卡网络配置

语法:ifconfig [-a][网卡设备标识]

-a:显示所有网卡信息

ifconfig 网卡名字 查看单个的网卡信息

netstat

作用:主要用于检测主机的网络配置和状况 

-a (all)显示所有连接和监听端口 

-t (tcp)仅显示tcp相关选项 

-u (udp)仅显示udp相关选项 

-n 使用数字方式显示地址和端口号 

-p 显示socket的PID和进程的名字 

-l (listening)显示监控中的服务器的socket 

eg: netstat -tlnu 查看本机监听的端口 

eg: tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 

协议 待收数据包 待发送数据包 本地ip地址:端口 远程IP地址:端口 

netstat –antpl 

eg: netstat -ntlp | grep httpd 查看某一个程序的端口信息 

eg: netstat -atnp | grep httpd 

eg: netstat -atnp | grep 80 查看端口

父进程与子进程

1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程。

2.在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的

进程环境。

3.父进程终止子进程自然终止。

进程和线程的区别

进程: 就是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系

统资源。

线程: 轻量级的进程;进程有独立的地址空间,线程没有;线程不能独立存在,它由进程创建;相对讲,线程

耗费的cpu和内存要小于进程。

进程管理的作用:判断服务器的健康状态;查看系统所有的进程;杀死进程.

前台进程和后台进程

前台进程:

在Shell提示处打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示

符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行另一个命令。

后台进程:

在Shell提示处打入命令,若后随一个&,Shell创建的子进程运行此命令,但不等待命令退出,而直接返回

到对

用户给出提示。这条命令与Shell同步运行,即在后台运行。后台进程必须是非交互式的

ps****命令.

作用:查看系统中的进程信息 

语法:ps [-auxle] 

常用选项 

a:显示所有用户的进程 

u:显示用户名和启动时间 

x:显示没有控制终端的进程 

e:显示所有进程,包括没有控制终端的进程 

l:长格式显示 

查看系统中所有进程

ps aux #查看系统中所有进程,使用BSD操作系统格式,unix

ps -le #查看系统中所有进程,使用Linux标准命令格式

eg: ps -u or ps -l 查看隶属于自己进程详细信息

eg: ps aux | grep sam 查看用户sam执行的进程

eg: ps -ef | grep init 查看指定进程信息

pstree

作用:查看当前进程树

语法:pstree [选项]

-p 显示进程PID

-u 显示进程的所属用户

nohup

作用: 使进程在用户退出登陆后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认储存到文件

nohup.out中

语法: nohup program & &在后台运行的意思

eg: nohup ping www.baidu.com &

使用 ps -ef | grep ping 查看当前的ping进程

uptime

作用: 查看负载 

例如: 使用uptime确定是服务器还是网络出了问题。如果网络应用程序运行,运行uptime来了解系统负载是 

否很高。如果负载不高,这个问题很有可能是由于网络引起的而非服务器。 

语法: uptime 

eg: 执行: uptime 

显示: 06:32:04 up 19:57, 4 users, load average: 0.00, 0.01, 0.00 

解释: 系统时间 用户数量 服务器在过去的1分钟、5分钟、15分钟的系统平均负载值 

useradd

passwd

userdel -r 删除账号时同时删除宿主目录(remove)

groupadd -g 指定gid

groupmod

-n 更改组名(new group)

groupmod -n new_gname old_gname

groupdel

如果要删除的组归属于某一个用户的所属组,则不能删除该组

useradd -g hadoop hdfs

groupdel hadoop

所有者 所属组 其他人 

第1位:文件类型(d 目录,- 普通文件,l 链接文件) 

第2-4位:所属用户(所有者)权限,用u(user)表示 

第5-7位:所属组权限,用g(group)表示 

第8-10位:其他用户(其他人)权限,用o(other)表示 

第2-10位:表示所有的权限,用a(all)表示 

eg: -rw-r--r--. 1 root root 3664 Nov 30 17:42 CentOS-Vault.repo.bak 

第十一位的1代表硬链接数

对于文件,我们有执行权限的命令: 
r-cat,more,head,tail,less 
w-echo,vi 
x-命令,脚本 对于目录,我们有执行权限的命令: 
r-ls 
w-touch,mkdir,rm,rmdir
x-cd 
能删除文件的权限是必须对该文件所在的目录有wx权限。

chmod

用于权限更改 

英文:change mode (change the permissions mode of a file) 

作用:改变文件或目录权限 

语法: 

chmod \[{ugoa}{+-=}{rwx}][文件名或目录] 

chmod \[mode=421][ 文件或目录] 

参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的) 

可以有修改一个文件的权限: 

1.root 

2.文件所有者 

eg: chmod u+x a.txt 

eg: chmod u+x,o-x a.txt 

用数字来表示权限(r=4,w=2,x=1,-=0) 

eg: chmod 750 b.txt 

rwx和数字表示方式能随意切换

注意:root用户是超级用户,不管有没有权限,root都能进行更改。用普通用户测试权限。 

不能用一个普通用户去修改另一个普通用户的权限。

chown

用于更改所有者

英文:change file ownership

作用:更改文件或者目录的所有者

语法 : chown user[:group] file…

-R : 递归修改

参数格式 : user : 新的档案拥有者的使用者 ID

group : 新的档案拥有者的使用者群体(group)

eg:chown lee file1 把file1文件的所有者改为用户lee

eg:chown lee:test file1 把file1文件的所有者改为用户lee,所属组改为test

eg:chown –R lee:test dir 修改dir及其子目录的所有者和所属组

chgrp

用于改变所属组

英文:change file group ownership

作用:改变文件或目录的所属组

语法 : chgrp [group] file…

eg: chgrp root test.log 把test.log的所属组修改为root

sudo****权限的配置

执行 visudo 这里实际修改的是/etc/sudoers文件 

sudoers文件内部的信息解释 

root ALL=(ALL) ALL 

\#用户名 被管理主机的地址(不是访问地址)=(可使用的身份) 授权命令(绝对路径) 

%wheel ALL=(ALL) ALL 

\#%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) 

\#sudo -l 查看可用的sudo命令 

注意: 

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用 

户。

若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。 

用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。



sudo(选项)(参数) 

选项

-b:在后台执行指令; 

-h:显示帮助; 

-H:将HOME环境变量设为新身份的HOME环境变量; 

-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码; 

-l:列出目前用户可执行与无法执行的指令; 

-p:改变询问密码的提示符号; 

-s:执行指定的shell; 

-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份; 

-v:延长密码有效期限5分钟; 

-V :显示版本信息

rpm的常用参数

i:安装应用程序(install)

vh:显示安装进度(verbose hash)

U:升级软件包(update)

qa: 显示所有已安装软件包(query all)

e:卸载应用程序(erase)

注意:如果其它软件包有依赖关系,卸载时会产生提示信息,可使用–nodeps强行卸载。

查询所有安装的rpm包: rpm –qa

查询mysql相关的包: rpm –qa | grep mysql

安装:rpm -ivh jdk.rpm

卸载: rpm –e mysql*

强行卸载:rpm –e mysql* --nodeps

挂载

:mount [-t vfstype] [-o options] device dir

\#1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 

光盘或光盘镜像:iso9660 

DOS fat16文件系统:msdos 

Windows 9x fat32文件系统:vfat 

Windows NT ntfs文件系统:ntfs 

Mount Windows文件网络共享:smbfs 

UNIX(LINUX) 文件网络共享:nfs 

\#2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有: 

loop:用来把一个文件当成硬盘分区挂接上系统 

ro:采用只读方式挂接设备 

rw:采用读写方式挂接设备 

iocharset:指定访问文件系统所用字符集 

\#3.device 要挂接(mount)的设备。 

\#4.dir设备在系统上的挂接点(mount point)。 

\##将镜像文件挂载在/mnt/cdrom下 

mkdir /mnt/cdrom #在根目录下的mnt目录下创建目录cdrom 

mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom ##挂载 

umount /mnt/dvd ##卸载 

让网络yum源文件失效

cd /etc/yum.repos.d/

rename .repo .repo.bak * #重命名所有的.repo文件

cp CentOS-Media.repo.bak CentOS-Media.repo #配置一个.repo文件

Crontab****使用

实例1:每1分钟执行一次command

命令:* * * * * command

实例2:每小时的第3和第15分钟执行

命令:3,15 * * * * command

实例3:在上午8点到11点的第3和第15分钟执行

命令:3,15 8-11 * * * command

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

命令:3,15 8-11 */2 * * command

实例5:每个星期一的上午8点到11点的第3和第15分钟执行

命令:3,15 8-11 * * 1 command

Crantab在线生成:https://cron.qqe2.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值