linux命令备忘

1. ls 显示指定目录下目录或文件信息
ls命令结果颜色区分:蓝色-文件夹,绿色-可执行文件,天蓝色-mount内容,黑色-一般文件
ll可通过alias ll='ls -lh'实现命令别名
ll -ad .* 列出当前目录所有隐藏文件/目录,选项d的意思是遇到目录时列出目录本身而非目录内的文件
ll -d */ 列出当前目录下的所有目录(*/,注意加/表示目录),并不列出各个目录下的内容(-d)
2. 用户维护工具
[quote]useradd
useradd -D用于显示或修改useradd命令的默认配置
包括Group(用户组),HOME(用户目录的父级目录),EXPIRE(过期时间),SHELL(用户使用的shell版本,如/bin/bash),SKEL(用户目录中的初始内容模板)
如useradd -D显示默认useradd配置
useradd -D -s /bin/sh将创建用户的默认shell配置为/bin/sh
useradd 用于添加新用户,如useradd liujian,可使用-m选项创建用户目录,还可以使用其他选项覆写-D中设置的默认配置项
[/quote]
[quote]userdel 删除用户,如userdel -r redhat[/quote]
[quote]usermod 用户 修改指定用户,如
usermod -L danson 锁定danson用户
usermod -U danson 解锁danson用户
usermod -d /danson danson 修改danson的用户目录为/danson
[/quote]
[quote]查看所有用户 查看/etc/passwd即可[/quote]
[quote]passwd 修改用户密码[/quote]
3. 文件搜索工具
[quote]locate mylog.txt 定位文件,速度很快,因为是从数据库中搜寻,数据库自动7天更新一次
若需实时性,可以手动更新数据库,调用updatedb命令更新数据库,再进行locate
[/quote]
[quote]find /etc -name server* 也是搜索文件命令,在其他命令(如locate)无法达到搜索目的时可以使用,性能较慢;
[/quote]
4. df 查看分区信息
du 总结每个文件的磁盘总量,目录则取总用量,如du -sh mydir(s:总量,h:人性化显示)表示计算mydir目录的总大小, du -h mydir表示计算mydir及子目录所有的大小统计

5. setup 可以用来设置认证,防火墙,键盘,网络,系统服务,时区等选项
6. file 查看文件/目录类型
7. mount 挂载命令
查询当前系统支持的文件类型,cat /proc/filesystems
如挂载windows共享目录:mount -t cifs -o username=danson.liu,password=4071255 //10.10.13.23/danson /mnt/danson.liu (若是老版本则使用smbfs代替cifs文件类型)
还可设置连接的io字符集,iocharset,如-o username=xx,password=xx,iocharset=utf8
可以配置/etc/fstab进行开机自动挂载,配置规则如下,一行一个配置
[quote]/dev/device mount-point type rules dump fsck
1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。
2. mount-point: 挂载点。例如,把/dev/hda1挂到/mnt/mywinc下。
3. type: ext3, vfat, ......就是要挂上的文件系统类型。
4. rules:
auto: 开机自动挂接;
defaults, noauto: 开机不自动挂接;
nouser: 只有root可挂;
ro: 只读挂接;
rw: 可读可写挂接;
user: 任何用户都可以挂接;
5. dump: 表示文件系统是否需要dump 备份,是真假关系;1是需要,0 是不需要;
6. fsck: 是否在系统启动时,通过fsck磁盘检测工具来检查文件系统,1是需要,0是不需要,2是跳过;
如//10.10.13.23/danson /mnt/danson.liu cifs defaults,username=danson.liu,password=4071255 0 0
注意配置在fstab里的挂载项有的是系统启动自动挂载,有的是需要手动挂载,手动挂载直接使用mount /mnt/danson.liu(即fstab中定义的挂载点),或mount -a(从fstab中读取配置)
[/quote]
umount /mnt/danson.liu 卸载/mnt/danson.liu上的挂载

8. history历史执行命令清单
可以通过!+命令编号,执行历史清单中的命令
9. 服务重启/终止/开启
service vsftpd restart
或/etc/init.d/vsftpd {start|stop|restart|reload|status} (vsftpd服务,一种ftp服务)
service vsftpd status 查看服务状态
service --list vsftpd 查看服务在各运行级别下的开启状态
10.tar 压缩/解压缩
tar -cf mydir.tar mydir 压缩mydir目录生成mydir.tar
tar -xvf mydir.tar 解压mydir.tar生成mydir
tar -zcf mydir.tar.gz mydir 压缩mydir目录生成mydir.tar.gz(z选项后续使用gzip压缩)
tar -zxvf mydir.tar.gz 解压mydir.tar.gz(z选项后续使用gunzip解压)
tar -jcf mydir.tar.bz2 mydir 压缩mydir目录生成mydir.tar.bz2(j选项后续使用bzip2压缩)
tar -jxvf mydir.tar.bz2 解压mydir.tar.bz2(j选项后续使用bunzip2解压)
tar解压缩时会将归档解压缩到当前工作目录,所以如果想将归档解压缩到某个目录,可以先创建该目录,然后进入该目录执行tar xvf 归档路径,比如:
[quote]
把当前目录下的所有文件打包成game.war
jar -cvfM0 game.war ./

-c 创建war包
-v 显示过程信息
-f
-M
-0 这个是阿拉伯数字,只打包不压缩的意思


解压game.war

jar -xvf game.war

解压到当前目录
[/quote]
# cd /usr/local/src
# tar -zxvf /tmp/etc.tar.gz
就将/tmp/etc.tar.gz解压缩到了/usr/local/src中
11.chown red:red 文件/目录 改变文件/目录的拥有者和拥有组
chmod ### 文件/目录 改变文件/目录的权限,其中###分别代表拥有者,拥有组,其他人的(读,写,执行)权限
rwx=111=7,rw-=110=6,r--=100=4,---=000=0等
或chmod u+rw 文件/目录 给文件/目录的拥有者添加rw(读写)权限
chmod go-rx 文件/目录 给文件/目录的所属组和其他用户删除rx(读执行)权限
chmod a=rw 文件/目录 给文件/目录的所有用户权限赋为rw(读写)
其中[身份:u-拥有者,g-所属组,o-其他人,a-全部]
[权限:r-读取,w-写入,x-执行]
[行为:+-添加,--删除,=-赋值相当于覆盖]
12.ln链接
ln a.txt b.txt 建立a.txt到b.txt的硬链接(相当于两个指针指向同一个地址)
ln -s /home/danson/a.txt simple/a.txt 建立/home/danson/a.txt到当前路径下simple/a.txt的软链接/符号链接(注意前面路径要用绝对路径,否则可能建立错误的软链接)
删除软链接目录current操作:rm current, 而非rm current/
[quote]硬链接与软链接的区别
4点不同 :
(1)软连接可以 跨文件系统 ,硬连接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 。ln aa.txt /root/bb 失败 。
(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在 ,不管你删除的是源文件还是 连接的文件 。只要有一个存在 ,文件就 存在 (其实也不分什么 源文件连接文件的 ,因为他们指向都是同一个 I节点)。 当你修改源文件或者连接文件任何一个的时候 ,其他的 文件都会做同步的修改 。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但是 删除 源文件,连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.
(3)软连接可以对一个不存在的文件名进行连接 。
(4)软连接可以对目录进行连接。

备注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.
[/quote]
13.gzip 仅用于压缩/解压文件,非目录
gzip a.txt 压缩a.txt生成a.txt.gz
gunzip a.txt.gz 解压缩a.txt.gz生成a.txt
通常配合tar命令,用于压缩.tar文件,如
tar -zcf mydir.tar.gz mydir 压缩mydir目录生成mydir.tar.gz,加了z选项后相当于
1. tar -cf mydir.tar mydir tar目录mydir生成mydir.tar
2. gzip mydir.tar 压缩mydir.tar生成mydir.tar.gz
14.finger danson 显示login=danson的用户信息
15.netstat 显示网络连接,路由表和网络接口信息
16.ps 进程查看
ps aux 查看当前系统所有进程
ps aux|grep apache 查看所有与apache相关的进程
pstree 树状显示进程信息
top 动态交互式进程管理器

ctrl+z 挂起当前shell中的任务
jobs 显示背景任务
bg [任务编号] 将挂起的任务背景执行
fg [任务编号] 将背景任务调到前台执行
17.kill pid 杀指定进程
kill -9 pid 强杀指定进程
18.踢登录用户 pkill -kill -t tty
查询tty命令 -- w
19.使用户能够执行sudo权限,修改/etc/sudoers,其中%admin ALL=(ALL) ALL,解释如下:
Members of the admin group may gain root privileges
所以只需要将用户添加到admin组即可拥有执行sudo的权限: usermod -G admin redhat
组与主组的区别:主组即为用户的默认组,即用户创建文件/目录时,该文件/目录所属的组
在判断某一个文件/目录是否可被某用户操作(读/写/执行)时,涉及到所属组的权限时,用户所属的组列表中,主组与一般组是平等的,只要用户所属组列表中存在文件/目录的所属组,即拥有相应的所属组权限
可以通过id user查看该用户的主组及一般组, GID即为主组id
usermod -g group user 修改user的主组
usermod -G groups user 修改user的所属组(非主组)
usermod -G '' redhat 修改redhat使其没有其他所属的组(只有主组)
与用户相关的配置文件:/etc/passwd,/etc/shadow
与用户组相关的配置文件:/etc/group,/etc/gshadow
20.sudo 临时以其他用户身份执行命令,一般格式:sudo -u username <command>,如
sudo -u danson mkdir fff以danson用户身份执行mkdir fff命令
sudo rm -rf ddd 以root身份执行rm -rf ddd命令
21.shutdown 关机
shutdown -r now 立即重启机器(-r=reboot)
shutdown +3 3分钟后关机
shutdown 17:30 17:30关机
shutdown -c 取消关机
shutdown -k now 广播一个系统即将关闭的消息,但并不真正执行关机,可在维护时用于通知
另外在shutdown之前最好调用几次sync命令,以便将内存中未保存的数据同步到硬盘中
22.显示日期与时间
date 显示系统的日期与时间
date +格式,如date +%y%m%d_%H:%M:%S以990321_12:33:24的形式显示当前时间
cal 显示计算机中的年历或月历,如cal, cal 2009, cal -y
date -s
按字符串方式修改时间
可以只修改日期,不修改时间,输入: date -s 2007-08-03
只修改时间,输入:date -s 14:15:00
同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s "2007-08-03 14:15:00"

修改完后,记得输入:clock -w
把系统时间写入CMOS
23.向系统中某一用户发送消息,退出消息按ctrl+c
write danson或write danson tty1(向tty1终端上登录的danson用户发送消息)
24.rar 压缩/解压缩
rar a archive files 压缩
rar a jface jface* 压缩所有符合jface*的文件/目录到jface.rar中
rar a -r -v2000 -s -rr jface jface*
从符合jface*的文件/文件夹压缩全部文件成为 2000*1000 字节大小、固实的、分卷自解压文件 jface.part1.rar,jface.part2.rar,jface.part3.rar 等,并在每一个分卷中添加恢复记录;将命令a换成命令m可将文件压缩后删除(相当于移动);
rar x archive files path_to_extract(注意path_to_extract要以"/"结尾)
rar x jface jface2.txt jface3.txt jface_new/ 将jface2.txt,jface3.txt从jface.rar中解压到jface_new目录下
rar x jface * jface_new/
25.命令行ssh登录 ssh -l redhat 10.10.13.35
还可以使用sftp来安全的传送文件 sftp [-oPort=9186] danson@10.10.13.35,登录后输入help查看帮助
26.wc 统计文件行数,字数,字节数
wc -l a.txt 统计a.txt的行数
27.输出重定向: ">"(覆写)和">>"(追加,append)
管道: 将一个程序的标准输出写到一个管道,再将管道中的内容作为另一个命令的标准输入,管道操作符为"|",如ll /usr|less, ll/usr|wc -l,且管道可以连续使用,如cat split_* | sort | uniq > result(即合并文件,排序并消除重复,结果保存到result文件)
28.lsb_release -a 查看linux版本信息,比如可以查看当前系统为ubuntu9.04
uname -r 查看linux内核版本
29.关于远程路径格式
协议://用户名:密码@位置:端口/路径
例如:
ftp://danson:redhat@10.10.13.35:2221/data/book
http://www.ubuntu.org.cn/index.html (默认端口匿名访问)
30.wget "非交互"式网络文件下载工具
wget http://xxx/3.mp3 从指定网址下载3.mp3到当前工作目录
31.在命令末尾加上'&',表示以背景任务执行,如wget http://xx/3.mp3 &,可以一边下载一边执行其他命令
';'串联多个命令,表示命令按顺序执行,但即使前面命令执行失败,后面命令继续执行
'&&'串联多个命令,表示命令按顺序执行,但前面命令执行失败,后面命令则停止执行
``(ESC下面的按键),`<命令>`如果一个命令被`符号包含则是一个子命令,子命令优先执行,执行结果被代入上一级命令继续执行(有点eval函数的意思),如: touch `date +%m.%d_%H:%M:%S`创建当前日期格式的文件,如04.17_19:45:33文件
32.在linux命令行(CLI=command line interface)下,遇到特殊字符,可以使用\符号转义,或者使用""符号将内容括起来,如less \;ff或less ";ff"
[quote]'\'字符在Shell中也可以作为换行符,在一个命令的末尾添加一个 \ ,然后回车,在下一行继续输入命令剩余的部分,将一个命令拆分为多行且不影响它的执行(如果执行一个很长的命令,请将它拆分为多行以便于阅读)
  事实上换行符也符合转义符的定义。回车键有两个涵义,一个是 执行 (Enter),另一个 换行 (折线箭头)。在Shell中它作为控制字符 执行 ,使用脱字符后,它便代表排版字符 换行 了。
[/quote]
33.查看系统PATH, echo $PATH
34.whereis 查看程序的安装位置,如whereis fish
结果:fish: /usr/bin/fish /etc/fish /usr/share/fish /usr/share/man/man1/fish.1.gz
35.小技巧
[quote]
[List]
[*]在修改配置文件之前,应该先对其进行备份,比如cp a.conf a.conf_100321_13:24:33
[quote]为了方便,可以写一个shell程序,比如bak,内容如下:
#!/bin/bash
cp $1 $1_`date +%y%m%d_%H:%M:%S`
保存并chmod a+x bak赋予所有人执行bak的权限
将bak所在路径配置到$PATH环境变量中,即可执行bak a.conf备份文件
[/quote]
[/List]
[/quote]
36.关于bash,可以在~/.bashrc中定制该用户的配置,或者在/etc/bash.bashrc中定制全局配置(很多程序都差不多,存在全局配置文件在/etc下,存在用户配置文件在$HOME下,且大多为全局文件的同名隐藏文件)
37.切割与合并文件, split与cat,如:
split -b 2K jface.tar jjj 将jface.tar切割成以jjj打头的每个大小为2K的文件
cat jjj* > jjj 将以jjj打头的文件合并起来并保存到jjj文件
38.free 查看内存,缓冲区,交换空间的占用
39.grub读取的配置文件/boot/grub/menu.lst中设备的uuid如何查询,如:
[quote]title Ubuntu 9.04, kernel 2.6.28-18-generic
uuid 388050a1-b766-472c-adc0-b2c73f25f3f4
kernel /boot/vmlinuz-2.6.28-18-generic root=UUID=388050a1-b766-472c-adc0-b2c73f25f3f4 ro locale=zh_CN quiet splash v
ga=791
initrd /boot/initrd.img-2.6.28-18-generic
quiet
[/quote]
通过ls -l /dev/disk/by-uuid查看某分区uuid
40.设置网卡地址 ifconfig eth0 192.168.0.33
设置子网掩码 ifconfig eth0 netmask 255.255.255.0
或者同时设置 ifconfig eth0 192.168.0.33 netmask 255.255.255.0
关闭网卡 ifconfig eth0 down
开启网卡 ifconfig eth0 up
41.grep 用于查找指定的模式匹配
ps aux|grep apache 查询包含'apache'文本信息的进程
grep hello a.txt 查询a.txt文件中包含'hello'的行
grep -r hello mydir 查询mydir文件夹下所有包含'hello'的文件的行

-B 3 -A 4 显示搜索到的行并包含之前3行和之后4行
42.export命令解释
[quote]子shell与export命令

用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可

以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell

,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它

的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来说,用户可以有许多 shell,每个

shell都是由某个shell(称为父shell)派生的。

在子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运

行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在

其他shell中被改变,可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的

shell时定义这个变量的一个拷贝。这个过程称之为变量输出。
注意:由于在当前shell中运行一个shell脚本程序,是开启一个新的子shell的形式,所以在该shell脚本中改变工作目录,脚本执行完毕返回到父shell时,父shell的工作目录是不会改变的(因为改变的仅仅是子shell的工作目录),但可以将这个shell脚本放在当前shell环境中执行(不开启子shell),这样就能够改变当前shell的工作目录了,执行方式为"source xx.sh"或". xx.sh"
[/quote]
43. dpkg -l | grep libname 查看指定lib是否安装
44. 文件字符编码转换(重要!)
iconv -f 原编码 -t 新编码 filename -o newfile
iconv -f big5 -t utf8 vi.big5 -o vi.utf8
iconv -f big5 -t gb2312 vi.big5 -o vi.gb2312
45. wget下载工具
wget http://linux.vbird.org/linux_basic/0310vi/vi.big5 -P ~danson/downloads
将http://linux.vbird.org/linux_basic/0310vi/vi.big5文档下载到~danson/downloads下
46. man查看相应资源帮助文档,若该资源存在多个文档,可以通过一下方法找出特定的
man -f set 和set资源相关的所有文档
结果:
set (1p) - set or unset options and positional parameters
set [builtins] (1) - bash built-in commands, see bash(1)
man 1p set 查看指定为1p的set帮助文档
47. 定义bash变量
name=danson.liu 定义变量name,值为danson.liu,默认都是字符串类型
echo $name 打印name变量的值
export name 将普通变量转换为环境变量(即能够传递到子bash中)
declare -i sum=33+44 定义整形变量sum,值为33+44
declare -ri zero=0 定义整形常量zero,值为0(常量只有从新注销后才能恢复)
declare -x age 等同于export age,将普通变量转换为环境变量
declare +x age 与-x相反,将环境变量转换为普通变量
unset age 取消age变量
favors[0]=football
favors[1]=basketball
favors[2]=volleyball 定义数组类型

环境变量的图解(形象解释)
[img]http://dl.iteye.com/upload/attachment/271356/594b1b98-0513-3ebb-bef0-b807d3eb54d6.bmp[/img]
48. xargs命令用途---很多指令不支持管道命令,所以需要使用xargs来提供该指令引用stdin数据
如: cut -d ':' -f 1 /etc/passwd | finger则不对,原因是finger不支持管道命令
cut -d ':' -f 1 /etc/passwd | xargs finger这才正确,使用xargs将管道中的数据作为finger的输入
-n选项,表明将管道中的内容几个作为一组,进行后面命令的执行
...|xargs -n 1 echo ---> echo a, echo b, echo c, echo d
...|xargs -n 2 echo ---> echo a b, echo c d

49. -(减号)的使用, 在管道指令中常常使用前一指令的stdout作为这次的stdin,某些指令需要用到文件名来进行处理时,该stdin与stdout可以使用减号'-'来替代
如: tar -cvf - /home | tar -xvf -
第一个-作为输出,数据输出到管道,第二个-代表stdin,即从管道中读出数据进行解压缩
50. 对于管道使用的三种情况
1. 支持管道的管道命令,可以直接使用
2. 支持管道的管道命令但需要文件参数,则可以使用'-'(减号)配合使用
3. 不支持管道的命令,可以使用xargs配合管道使用
51. 无聊一下:)
echo 'first line(回车)
>second line' > hello
less hello
first line
second line
或者echo -e "first line\nsecond line" > hello

对于sed有所不同
nl /etc/passwd | sed '2a first line\(回车)
>second line'
则打印内容在/etc/passwd的第二行后拼两个新行,注意与上面不同,增加了一个'\'符号
52. sed很强大,可以用来删除,插入,替换内容,对行操作
可以使用替换功能来对数据进行删除,如
ifconfig ppp0 | grep 'inet'| sed 's/inet 地 址://g' | sed 's/点对点.*//g' | sed 's/ //g' > ip 则记录ppp0的ip地址到ip档案中
使用空字符串替换搜寻内容即可删除指定的内容
| sed '/^$/d'删除空白行
sed中$代表最后一行
sed -i '$a #This is a test' demo.txt
修改demo.txt,在其最后一行拼接新行,内容'#This is a test'
53. 强大的文本处理命令: egrep(搜寻符合的行), sed(强大的编辑功能), awk(强大的拆分字段功能)
54. 清除痕迹
export HISTIGNORE=*(关闭该次历史命令记录功能)
echo > /var/log/wtmp (禁last)
echo > /var/log/btmp (禁lastb)
cat /dev/null > /var/log/lastlog
清除.bash_history文件该次内容
清除ssh登陆日志/var/log/secure该次部分内容
55. 查找某一目录下所有包含指定内容的文件
find . | xargs grep xxx
56. scp用法
scp -P 58422 auth.conf root@192.168.8.60:/var/svn/auth.conf.new
57. I/O重定向
command > filename 把标准输出重定向到一个新文件中
command >> filename 把标准输出重定向到一个文件中(追加)
command 1 > fielname 把标准输出重定向到一个文件中
command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把标准错误重定向到一个文件中
command 2 >> filename 把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)
command 1>stdout.txt 2>stderr.txt 将标准输出重定向到stdout.txt,错误到stderr.txt

58. 查看网卡速度
ethtool eth0
dmesg|grep eth0
59. 查看磁盘IO使用情况
iostat -xm 2,最重要的参数是%util,如果接近100%,则表明磁盘的IO已经是一个制约系统性能的瓶颈了,可以更换为IO操作更快的磁盘,比如SSD。
60. 配置crontab
如果想要修改crontab,一般做以下的几步就可以了
将crontab 导出到一个自定义的文件上
crontab -l>/tmp/crontab.bak
编辑这个文件,做需要的修改
cp /tmp/crontab.bak /tmp/crontab.tmp
vi /tmp/crontab.tmp
导入crontab
crontab /tmp/crontab.tmp
61. iptables
http://tech.ccidnet.com/art/9513/20070601/1098119_1.html
62. 文本处理(选列, 排序,分组,count)
netstat -nlap|grep 27017|awk '{print $5}'|sort|cut -d":" -f1|uniq -c


--待续
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值