Linux必知必会(2)——常用命令

2.2. 常用命令

​ Linux刚面世时并没有图形界面,所有的操作全靠命令完成,形成了对应的操作习惯。在职场中,大量的服务器维护工作都是在远程通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成。作为后端程序员,掌握常见Linux命令已经成为一项必备技能,必须要或多或少的掌握一些Linux常用的终端命令。

2.2.1. 命令格式

格式:
命令名称 可选项 参数

命令名称:相应功能的英文单词或单词的缩写
可选项:可用来对命令进行控制, 也可以省略
参数:传给命令的参数, 可以是 零个、一个 或者 多个

2.2.2. 查看文件列表

ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一

常用可选项说明:
只使用ls命令就只能看到当前目录下非隐藏 文件。

选项含义
-a显示指定目录下所有子目录与文件, 包含隐藏文件
-l以列表方式显示文件的详细信息
-h配合 -l 以人性化的方式显示文件大小

常见使用方式:

ls 查看当前目录内容 (缺点: 隐藏文件看不到)

ls -a 查看当前目录内容 ,包括隐藏文件

ls -al 查看目录内容的详细信息(查看文件类型、权限、大小等)

ls -lh 查看目录内容的详细信息,以K,M,G方式显示文件大小

ls /root 查看/root目录下内容

[root@node01 ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  .config  .dbus      .ICEauthority         .local    .tcshrc  模板  图片  下载  桌面 
..  .bash_history    .bash_profile  .cache   .cshrc   .esd_auth  initial-setup-ks.cfg  .mozilla  公共     视频  文档  音乐

2.2.3. 目录查看、目录创建和目录删除命令

目录查看命令 pwd
查看当前所在目录

[root@node01 ~]# pwd
/root

目录创建命令mkdir
注意: 新建目录的名称 不能与当前目录中 已有的目录或文件同名
1)创建没有层级关系的目录

[root@node01 ~]# mkdir test
[root@node01 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  test  公共  模板  视频  图片  文档  下载  音乐  桌面

2)创建有层级的目录
mkdir -p 目录1/目录2/目录3

[root@node01 ~]# mkdir -p test02/aa/bb

目录删除命令rm
常用可选项说明:

参数含义
-f强制删除,忽略不存在的文件或目录, 无需提示
-r递归地删除目录下的内容, 删除目录时必须加此参数

rm -r 目录 #删除目录有提醒

[root@node01 ~]# rm -r test 
rm:是否删除目录 "test"

rm -fr 目录 #直接删除目录(不管有没有内容)

[root@node01 ~]# rm -fr test 
[root@node1 ~]#

2.2.4. 目录切换命令

cd 是英文单词 change directory 的缩写, 其功能为 更改当前的工作目录, 也是用 户最常用的命令之一
注意: linux的所有 目录 和 文件名 都是大小写敏感的

命令含义
cd切换到用户主目录(root用户主目录是/root,其他用户是/home/用户名)
cd 目录切换到指定目录下
cd …切换到上级目录
cd -可以在最近的两次目录之间切换

常见使用方式:

cd #回到用户主目录

cd test #切换到当前目录下的test目录(相对路径)

cd **/root/**test #切换到指定目录(绝对路径)

cd #回到上一级目录

cd …/… #回到上上一级目录

cd **…/**dir #回到上一级的dir目录

2.2.5. 文件操作命令

2.2.5.1. touch

touch命令创建文件

常见使用方式:

touch a.txt #在当前目录创建a.txt文件

touch **/root/**a.txt #在/root目录创建a.txt文件

2.2.5.2. mv

通过mv 命令可以用来移动文件或目录, 也可以给文件或目录重命名

将文件移动另一个目录中:
mv 文件 目录/

touch a.txt 
mkdir dir 
mv a.txt dir 
ls dir

重命名
mv 旧文件名 新文件名

mv a.txt b.txt #重命名文件 
mv dir1 dir2 #重命名目录

将目录移动 到 另一个目录中:
mv 被移动目录 目标目录

mv dir1 /

文件删除rm:
rm -f 文件名

rm -f a.txt #强制删除一个文件
2.2.5.3. cat

查看文件内容

cat /root/initial-setup-ks.cfg
2.2.5.4. more

分屏显示长文件内容

常用参数说明:

-num 一次显示的行数 

-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声 

-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能 

-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) 

-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 

-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料 

-s 当遇到有连续两行以上的空白行,就代换为一行的空白行 

-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) 

+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示 

+num 从第 num 行开始显示

逐页显示 file1 文档内容,如有连续空白行则以一行空白行显示

#more -s file1
This is a test file.
Welcome to linuxdaxue.com!
This is cat command test.

从第二行开始显示file1文档的内容

#more +2 file1
Welcome to linuxdaxue.com!
This is cat command test.

设定每屏显示的行数

#more -2 file1
This is a test file.
Welcome to linuxdaxue.com!
--More--(64%)

常用操作说明:

Enter 向下n行,需要定义。默认为1行 

Ctrl+F 向下滚动一屏 

空格键(space) 向下滚动一屏 

Ctrl+B 返回上一屏 

= 输出当前行的行号 

:f 输出文件名和当前行的行号 

V 调用vi编辑器 

!命令 调用Shell,并执行命令 

q 退出more
2.2.5.5. cp

复制文件

cp a.txt dir1 #将a.txt复制到dir1目录 
cp a.txt b.txt #将a.txt复制到b.txt
2.2.5.6. less

通过 less [参数] 文件名 命令可以用于分屏显示文件内容, 每次只显示一页内容
通常用于分屏显示文件内容 或者 根据关键词搜索内容

分屏显示文件内容
less -N 文件名 显示文件内容 且 显示行号

操作键功能
空格键显示手册页的下一屏幕
Enter 键一次滚动手册页的一行
b回滚一屏
f向前一屏
q退出
/word搜索word字符串

根据关键词 搜索

# 根据关键词搜索
/word
操作键功能
n向下找
N向上找
2.2.5.7. head

查看文档的前几行内容
head -n 数字 文件

[root@node01 ~]# head -n 5 test01.data
aaa
2.2.5.8. tail

查看文档(日志)的后几行内容

查看文档的最后10行内容

tail -10 文件

动态显示文档的最后内容,一般用来查看日志

tail -f 文件名

动态显示文档的最后100行内容

tail -100f 文件名

2.2.6.压缩和解压缩

常用可选项说明:

参数解释
-c创建一个新tar文件
-v显示运行过程的信息
-f指定文件名
-z调用gzip压缩命令进行压缩
-t查看压缩文件的内容
-x解开tar文件
2.2.6.1. 解压缩

tar -zxvf 压缩文件 [-C] [指定解压目录]

tar -zxvf redis-3.2.8.tar.gz #将文件解压到当前目录 
tar -zxvf redis-3.2.8.tar.gz -C /root/dir #将文件解压到指定目录
2.2.6.2. 压缩

tar -c[z]vf 压缩文件 目录

tar -cvf test.tar /root/test #打包 
tar -czvf test.tar.gz /root/test #打包并压缩

2.2.7. 文件查找

2.2.7.1. find

用于查找符合条件的文件

find -name 'ins*' #查找/目录下以文件名ins开头的文件 
find -type f -size +100M #查找/目录下文件大小大于100M的文件
2.2.7.2. grep

搜索存在 关键字 的行

搜索 存在关键字的行

grep 关键字 文件名

搜索 存在关键字的行且显示行号

grep -n 关键字 文件名

忽略大小写搜索存在关键字的行

grep -i 关键字 文件名

搜索不存在关键字的行

grep -v 关键字 文件名

搜索以关键字开始的行或以关键字结尾的行

grep 正则 文件名
参数含义
^a行首,搜索以a开头的行
b$行尾,搜索以b结束的行
2.2.7.3. which

查看可执行文件的位置。

which pwd #查找pwd命令的路径

2.2.8. 系统管理命令

2.2.8.1. ps

列出所有在内存当中的进程

ps aux

ps命令用来列出系统中当前运行的那些进程

ps -ef #查看所有进程
2.2.8.2. kill命令

用于终止执行中的程序

kill -9 12345 #杀死pid为12345的进程
2.2.8.3. 管道命令

是将一个命令的输出用作另一个命令的输入
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ulETU4n-1630232657698)(.\images\管道命令.png)]

ps -ef | grep java #查询名称中包含java的进程

2.2.9. 用户的创建和删除命令

2.2.9.1. 用户创建和密码设置
useradd user01 #创建新用户kkb
passwd user01 #设置用户kkb密码
2.2.9.2. 删除用户
userdel -r user01 #删除用户kkb

2.2.10. 权限管理命令

2.2.10.1. 权限概述

​ 在Linux操作系统中,每当我们使用用户名登录操作系统时,Linux都会对 该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是 UID。
​ 用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。
​ 在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限, 能执行任何命令和操作,而其他用户都是普通用户。
​ Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。

2.2.10.2. 文件权限说明

文件 / 目录 的权限包括:

序号权限英文缩写数字序号
01readr4
02writew2
03执行executex1
04无权限-0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FxqUkfPU-1630232657707)(.\images\文件权限01.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R9QJeGnW-1630232657708)(.\images\文件权限02.png)]

r: 对文件是指可读取内容 对目录是可以ls

w: 对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)

x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录

2.2.10.3. chmod

用来变更文件或目录的权限

chmod 666 a.txt 
chmod u+x a.txt 
chmod u=rwx,g=rw,o=x a.txt
2.2.10.4. su

用于切换用户,普通用户不能使用某些权限, 所以需要切换用户。

序号命令作用说明
01su - 用户名切换用户, 并且企划目录- 可以切换到用户家目录, 否则保持位置不变
02exit退出当前登录用户
[zhangsan@node01 ~]$ whoami
zhangsan
[zhangsan@node01 ~]$ su - root
Password: 
[root@node01 ~]# whoami
root
[root@node01 ~]# exit
logout
[zhangsan@node01 ~]$ whoami
zhangsan

sudo

​ 虽然通过 su -u root 可以切换到root用户,但是存在严重的安全隐患。在大多数版本的Linux中, 都不推荐直接只用 root 账号登录系统。
sudo 命令用来以其他身份来执行命令,预设的身份为 root;用户使用 sudo 时, 必须先输入密码,之后5分钟的有效期限,超过期限则必须重新输入密码。

2.2.11. 网络和服务管理命令

2.2.11.1. hostname

查看主机名

[root@node01 ~]# hostname 
node1
2.2.11.2. ifconfig

查看主机ip地址

[root@node01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.108.130  netmask 255.255.255.0  broadcast 192.168.108.255
        inet6 fe80::9083:b166:48a8:aad6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:51:76:a8  txqueuelen 1000  (Ethernet)
        RX packets 1768  bytes 151002 (147.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1334  bytes 121420 (118.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
2.2.11.3. service

​ 用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

service network status #查看网络服务状态 
service network stop #停止网络服务 
service network start #启动网络服务 
service network restart # 重启网络服务

2.2.12. 其它

2.2.12.1. man

是manual的缩写,是Linux提供的一个手册,包含了绝大部分的命令、函数的详细使用说明。

常用操作键:

操作键功能
空格键显示手册的下一屏
Enter键一次滚动首页也得一行
b(back)回滚一屏
f(forward)前滚一屏
q (quit)退出
/word搜索word字符串
n(next)搜索下一个
N搜索上一个
[root@node01 ~]# man ls
2.2.12.2. echo

将字符串输出到控制台 , 通常会和重定向联合使用

[root@node01 ~]# echo 'hello'
hello
2.2.12.3. 重定向 >(覆盖) 和 >> (追加)

重定向 >(覆盖)

[root@node01 ~]# echo 'hello01'>test02.data
[root@node01 ~# cat test02
test02/      test02.data  
[root@node01 ~]# cat test02.data
hello01

>> (追加)

[root@node01 ~]# echo 'hello02' >> test02.data
[root@node01 ~]# cat test02.data
hello01
hello02
2.2.12.4. && 和 ||

&&

如果命令1执行成功,才会执行命令2

mkdir -p 正确目录 && echo "提示创建目录成功"

||

如果命令1执行失败,才会执行命令2

mkdir 错误目录 || echo "提示创建目录失败"
2.2.12.5. ln

可以用来创建软连接,类似于创建快捷方式

[root@node01 ~]# ln -s test02.data test03.data
[root@node01 ~]# ll
总用量 16
-rw-------. 1 root root 1496 1113 11:57 anaconda-ks.cfg
-rw-r--r--. 1 root root 1544 1113 12:04 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 1115 16:17 test
-rw-r--r--. 1 root root    4 1115 17:10 test01.data
drwxr-xr-x. 3 root root   16 1115 16:19 test02
-rw-r--r--. 1 root root   16 1115 20:23 test02.data
lrwxrwxrwx. 1 root root   11 1115 21:06 test03.data -> test02.data
drwxr-xr-x. 2 root root    6 1113 14:14 公共
drwxr-xr-x. 2 root root    6 1113 14:14 模板
drwxr-xr-x. 2 root root    6 1113 14:14 视频
drwxr-xr-x. 2 root root    6 1113 14:14 图片
drwxr-xr-x. 2 root root    6 1113 14:14 文档
drwxr-xr-x. 2 root root    6 1113 14:14 下载
drwxr-xr-x. 2 root root    6 1113 14:14 音乐
drwxr-xr-x. 2 root root    6 1113 14:14 桌面
2.2.12.6. clear

清屏命令,还可以使用快捷方式:ctrl + l

2.2.12.8. 自动补全命令
  • 自动补全命令

    在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab

    如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令

  • 曾经使用过的命令

    使用 / 光标键可以在曾经使用过的命令之间来回切换

    如果想要退出选择, 并且不想执行当前选中的命令, 可以按 ctrl + c

2.3. vi编辑器

2.3.1. 概述

vi是visual interface的简称, 是Linux中最经典的文本编辑器

vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域, 就能完成所有编辑操作

vi的特点:

1.只能是编辑文本内容, 不能对字体段落进行排版

2.不支持鼠标操作

3.没有菜单

4.只有命令

2.3.2. 使用方式

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

Vi编辑器三种模式:

  1. 命令模式

- 打开文件首先进入命令模式, 是使用vi的入口

- 通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除

- 在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现

  1. 末行模式 – 执行 保存 退出等操作

- 要退出 vi 返回到控制台, 需要在莫行模式下输入命令

- 末行模式 是 vi 的出口

  1. 编辑模式 – 正常的编辑文字

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iJZEYXZS-1630232657711)(.\images\vi编辑器01.png)]

2.3.3. 命令模式常用命令

命令功能
o在当前行后面插入一空行
O在当前行前面插入一空行
dd删除光标所在行
ndd从光标位置向下连续删除 n 行
yy复制光标所在行
nyy从光标位置向下连续复制n行
p粘贴
u撤销上一次命令
gg回到文件顶部
G回到文件末尾
/str查找str

2.3.4. 底行模式常用模式

命令功能
:w 文件另存为
:w保存(ctrl + s)
:q退出, 如果没有保存,不允许退出
:q!强行退出, 不保存退出
:wq保存并退出
:x保存并退出
:set nu设置行号
:%s/旧文本/新文本/g文本替换

2.4. 文本操作常用命令

2.4.1. cut

根据条件 从命令结果中提取对应内容

截取出test02.data文件中前2行的第5个字符

参数说明:

参数英文含义
-ccharacters按字符选取内容
[root@node01 ~]# head -2 test02.data|cut -c 5
o
u

截取出test03.data文件中前2行以”:”进行分割的第1,2,3段内容

参数说明:

参数含义
-d '分隔符'指定分隔符
-f n1,n2分割以后显示第几段内容, 使用 , 分割

显示范围控制:

范围含义
n只显示第n项
n-显示 从第n项 一直到行尾
n-m显示 从第n项 到 第m项(包括m)
[root@node01 ~]# head -2 test03.data|cut -d ':' -f 2,3,4
aa:sgx:abc
bb:sgx0011:jkl

2.4.2. sort

针对文本文件的内容,以行为单位来排序

字符串排序

[root@node01 ~]# cat test04.data
apple
orange
banana
pear
[root@node01 ~]# cat test04.data|sort
apple
banana
orange
pear

字符串去重排序

使用参数说明:

参数含义
-u去掉重复的
[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
[root@node01 ~]# sort -u test04.data
apple
banana
orange
pear

数值排序

使用参数说明:

参数含义
-n按照数值大小排序
-r使次序颠倒

按照默认顺序排序:

[root@node01 ~]# cat test05.data
1
2
4
3
10
5
9
11
[root@node01 ~]# sort test05.data
1
10
11
2
3
4
5
9

按照升序排序:

[root@node01 ~]# sort -n test05.data
1
2
3
4
5
9
10
11

按照倒序排序:

[root@node01 ~]# sort -n -r test05.data
11
10
9
5
4
3
2
1
[root@node01 ~]# sort -nr test05.data
11
10
9
5
4
3
2
1

2.4.3. wc

统计指定文件字节数、单词数、行数信息

常用参数说明:

参数含义
-c字节数
-w单词数
-l行数

显示文件字节数、单词数、行数

[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
[root@node01 ~]# wc test04.data
 5  5 30 test04.data    //行数、单词数、字节数

仅显示文件行数

[root@node01 ~]# wc -l test04.data
5 test04.data

仅显示文件单词数

[root@node01 ~]# wc -w test04.data
5 test04.data

仅显示文件字节数

[root@node01 ~]# wc -c test04.data
30 test04.data

统计多个文件的行数、单词数、字节数

[root@node01 ~]# wc test02.data test04.data test05.data
 2  2 50 test02.data
 5  5 30 test04.data
 8  8 18 test05.data
15 15 98 总用量

2.4.4. awk

实现模糊查询、按需提取字段、判断、运算等。

搜索zhangsan和lisi的成绩

命令格式:

awk ‘/搜索字符/’ score.txt 从score.txt 搜索含有 "搜索字符"的行

[root@node01 ~]# cat score.data
zhangsan 85 90 100
duyi 90 75 90
lisi 65 70 95
wangwu 75 80 90
[root@node01 ~]# awk '/zhangsan|lisi/' score.data
zhangsan 85 90 100
lisi 65 70 95

使用指定分隔符分割行,指定下标显示内容

命令格式:

awk -F ‘分隔符’ ‘{print $1, $2, $3}’ 按照指定分隔符分割文件中每行,并打印第一、二、三列

[root@node01 ~]# cat score.data|awk -F ' ' '{print $1,$2,$3}'
zhangsan 85 90
duyi 90 75
lisi 65 70
wangwu 75 80

使用指定分隔符分割行,指定下标显示内容,指定输出分隔符

命令格式:

awk -F ’ ’ ‘{OFS="==="}{print $1, $2, $3}’

使用空格分割每一行,输出第一、二、三列,每列间使用指定"==="分开

[root@node01 ~]# cat score.data|awk -F ' ' '{OFS="==="}{print $1,$2,$3}'
zhangsan===85===90
duyi===90===75
lisi===65===70
wangwu===75===80

使用函数

命令格式:

awk -F ’ ’ ‘{print toupper($1)}’

使用空格分割每一行,输出第一列内容,并把第一列内容转大写

[root@node01 ~]# cat score.data|awk -F ' ' '{print toupper($1)}'
ZHANGSAN
DUYI
LISI
WANGWU

条件选择筛选

命令格式:

awk -F ’ ’ ‘{if($4>60) print $1, $4 }’ score.data

使用空格分割每一行,如果分割后第4列成绩大于60分,则输出第一、四列内容

[root@node01 ~]# cat score.data
zhangsan 85 90 100
duyi 90 75 90
lisi 65 70 95
wangwu 75 80 56
[root@node01 ~]# cat score.data | awk -F ' ' '{if($4>60) print $1,$4}'
zhangsan 100
duyi 90
lisi 95

2.4.5. sed

对文件内容进行过滤和替换

完成查询功能

常用可选项说明:

可选项含义
p打印
$代表 最后一行
-n仅显示处理后的结果
-e根据表达式进行处理

列出文本中3-5行内容

[root@node01 ~]# cat test05.data
1
2
4
3
10
5
9
11
[root@node01 ~]# cat test05.data|sed -n -e '3,5p'
4
3
10

列出文本中含有"an"的行

[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
[root@node01 ~]# cat test04.data|sed -n -e '/an/p'
orange
banana

列出列出文本中含有"an"的行,不区分大小写,并显示行号

[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
Animal
[root@node01 ~]# cat test04.data|sed -n -e '/an/Ip'
orange
banana
Animal

删除文本行

可选项含义
d删除指定内容

删除前3行内容

[root@node01 ~]# cat -n test04.data | sed  -e '1,3d'
     4	banana
     5	pear
     6	Animal

保留前3行内容

[root@node01 ~]# cat -n test04.data | sed  -e '4,$d'
     1	apple
     2	orange
     3	pear

修改文本内容

参数含义
i目标前面 插入内容
a目标后面 追加内容

在第二行后添加"aaa",并显示行号

[root@node01 ~]# cat -n test04.data|sed -e '2a aa'
     1	apple
     2	orange
aaa
     3	pear
     4	banana
     5	pear
     6	Animal

在第二行前添加"aaa",并显示行号

[root@node01 ~]# cat -n test04.data|sed -e '2i aaa'
     1	apple
aaa
     2	orange
     3	pear
     4	banana
     5	pear
     6	Animal

替换文本内容

把文本中apple替换成abc

[root@node01 ~]# cat -n test04.data|sed -e 's/apple/abc/'
     1	abc
     2	orange
     3	pear
     4	banana
     5	pear
     6	Animal
``
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值