Linux系统常用指令

Centos7常用指令

VIM编辑器

模式转换方法

在这里插入图片描述

vi 和 vim 快捷键

  • 拷贝/拷贝当前向下5行:yy / 5yy
  • 删除/删除当前向下5行:dd / 5dd
  • 文件中搜索:命令行模式下 /关键字 然后回车查找,,输入n表示下一个
  • 设置 / 取消文件的行号: 命令行模式下输入 :set nu / :set nonu
  • 查看文件最末行:G 最首行:gg
  • 撤销输入的文本的动作: u

在这里插入图片描述

关机重启命令

  • shutdown -h now 立该进行关机
  • shutdown -h 1 1 分钟后会关机
  • shutdown -r now 现在重新启动计算机
  • halt 关机,作用和上面一样
  • reboot 现在重新启动计算机
  • sync 把内存的数据同步到磁盘.

注意:

  • 不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中
  • 目前的 shutdown/reboot/halt 等命令均已经在关机前进行了 sync

登录注销

  • 登录尽量使用普通账户,当权限不够再使用 su 用户名指令切换为管理员
  • 注销:logout

用户管理

添加用户

语法:useradd 用户名useradd -d 指定目录 用户名
当创建用户成功后,会自动的创建和用户同名的家目录,useradd -d 指定目录 用户名可以给新创建的用户指定目录

指定/修改密码

语法:passwd 用户名
查看当前用户号所在目录:pwd

删除用户

语法:userdel 用户名
注意: 删除用户仍然会保留用户目录,如需删除用户及其目录,可用userdel -r 用户名

查询用户信息指令

语法:id 用户名

切换用户

语法:su 用户名
注意: 当需要返回到原来用户时,使用 exit/logout 指令

查看当前用户/登录用户

whoami / who am I

用户组管理

新增用户组

语法:groupadd 组名

删除用户组

语法:groupdel 组名

练习:可以在新增用户组之后添加用户时直接指定用户所在组:useradd -g 用户组名 用户名

修改用户组

语法:usermod -g 用户组 用户名

将用户添加到辅助组

语法:usermod -aG [组名] [用户名]
说明:在Linux系统中,有两种类型的组:主组和辅助组。在用户创建时,默认会创建一个主组,而辅助组则可以有多个。而用户添加到辅助组的这个命令,正是帮助我们方便地管理这些辅助组。

用户和组相关文件

/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

/etc/shadow 文件

口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 文件

组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表

指定运行级别

运行级别说明:
0 :关机
1 :单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是 3 和 5 ,也可以指定默认运行级别
命令:init [0123456] 应用案例: 通过 init 来切换不同的运行级别
假设 root 密码忘记了,请问如何找回密码
重启进入单用户模式修改

文件目录类

显示当前工作目录的绝对路径

语法:pwd

显示当前文件夹文件

语法:ls
 常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息

切换当前路径

语法cd 指定目录

创建目录

语法:mkdir [选项] 要创建的目录
 常用选项
-p :创建多级目录

删除目录

删除空目录语法:rmdir [选项] 要删除的空目录
删除非空目录语法:rm -rf 要删除的目录

创建文件

语法:touch 文件名称

拷贝文件

语法:cp [选项] 原地址 目标地址
 常用选项
-r :递归复制整个文件夹

删除文件或目录

语法:rm [选项] 要删除的文件或目录
 常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示

移动文件、目录(也可用作文件重命名)

语法:mv 旧文件名 新文件名(重命名)
mv 文件/目录 移动地址(移动文件)

查看文件内容

语法:cat [选项] 要查看的文件
 常用选项
-n :显示行号
注意:
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more cat -n /etc/profile | more [进行交互]

more指令

基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令),详见操作说明
语法:more 要查看的文件操作说明
如图:
在这里插入图片描述

less指令

less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
语法:less 要查看的文件
在这里插入图片描述

echo 指令

echo 输出内容到控制台
语法:echo [选项] [输出内容]

head指令

head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
语法:head 文件
例子:head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)

tail 指令

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前 10 行内容。
语法:

  1. tail 文件 (功能描述:查看文件尾 10 行内容)
  2. tail -n 5 文件 (功能描述:查看文件尾 5 行内容,5 可以是任意行数)
  3. tail -f 文件 (功能描述:实时追踪该文档的所有更新

> 指令 和 >> 指令

> 输出重定向(内容覆盖)和>>追加
语法案例:
1) ls -l >文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
2) ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
3) cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
4) echo "内容">> 文件 (追加)

ln 指令(软连接)

语法:ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
案例: 在/home 目录下创建一个软连接 myroot,连接到 /root 目录
ln -s /root /home/myroot

history指令

查看已经执行过历史命令,也可以执行历史指令
语法:history (功能描述:查看已经执行过历史命令)

时间日期类

date 指令-显示当前日期

语法:

  • date (功能描述:显示当前时间)
  • date +%Y (功能描述:显示当前年份)
  • date +%m(功能描述:显示当前月份)
  • date +%d (功能描述:显示当前是哪一天)
  • date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

date 指令-设置日期

语法:
date -s 字符串时间
案例
设置系统当前时间 , 比如设置成 2020-11-03 20:02:10
date -s “2020-11-03 20:02:10”

cal 指令

查看日历指令 cal
语法:cal [选项] (功能描述:不加选项,显示本月日历)
案例
显示 2020 年日历 : cal 2020

搜索查找类

find 指令

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
语法:find [搜索范围] [选项]
 选项说明
在这里插入图片描述

locate 指令

locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻

语法:locate 搜索文件
注意: 由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。

grep 指令和 管道符号 |

语法:grep [选项] 查找内容 源文件
选项
在这里插入图片描述
案例 : 请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号写法 1: cat /home/hello.txt | grep “yes”
写法 2: grep -n “yes” /home/hello.txt

压缩和解压类

gzip/gunzip 指令

gzip 用于压缩文件, gunzip 用于解压的

语法:gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)

zip/unzip 指令

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

语法:zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)

 zip 常用选项

  • -r:递归压缩,即压缩目录

 unzip 的常用选项

  • -d<目录> :指定解压后文件的存放目录

tar 指令

语法:tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

案例:

  • 压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
    tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
  • 将/home 的文件夹 压缩成 myhome.tar.gz
    tar -zcvf myhome.tar.gz /home/
  • 将 pc.tar.gz 解压到当前目录
    tar -zxvf pc.tar.gz
  • 将myhome.tar.gz 解压到 /opt/tmp2 目录下
    (1) mkdir /opt/tmp2
    (2) tar -zxvf /home/myhome.tar.gz -C /opt/tmp2

组管理和权限管理

查看文件的所有者

语法:ls –ahl

修改文件所有者

语法:chown 用户名 文件名

组的创建

语法:groupadd 组名
注意: 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。

查看文件/目录所在组

语法:ls –ahl

修改文件/目录所在的组

语法:chgrp 组名 文件名

改变用户所在组

语法:usermod –g 新组名 用户名
usermod –d 目录名 用户名 改变该用户登陆的初始目录。
**注意:**用户需要有进入到新目录的权限。

文件信息的基本介绍

ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位说明

  • 第 0 位确定文件类型(d, - , l , c , b)
  • l 是链接,相当于 windows 的快捷方式
  • d 是目录,相当于 windows 的文件夹
  • c 是字符设备文件,鼠标,键盘
  • b 是块设备,比如硬盘
  • 第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
  • 第 4-6 位确定所属组(同用户组的)拥有该文件的权限,—Group
  • 第 7-9 位确定其他用户拥有该文件的权限 —Other

权限可用数字表示为: r=4,w=2,x=1 因此 rwx=4+2+1=7 , 数字可以进行组合
 其它说明
1 文件:硬连接数 或 目录:子目录数
root 用户
root 组
1213 文件大小(字节),如果是文件夹,显示 4096 字节
Feb 2 09:39 最后修改日期
abc 文件名

修改权限-chmod

方法一:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

  • chmod u=rwx,g=rx,o=x 文件/目录名
  • chmod o+w 文件/目录名
  • chmod a-x 文件/目录名
    方法二:通过数字变更权限
    r=4 w=2 x=1 rwx=4+2+1=7 chmod u=rwx,g=rx,o=x 文件目录名相当于 chmod 751 文件/目录名

修改文件所有者-chown

语法:
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
-R 如果是目录 则使其下所有子文件或目录递归生效

修改文件/目录所在组-chgrp

语法:chgrp newgroup 文件/目录 【 改变所在组】

任务调度

语法crontab [选项]
常用的:

  • conrtab –r:终止任务调度。
  • crontab –l:列出当前有那些任务调度
  • service crond restart [重启任务调度]

常用选项:
在这里插入图片描述
快速入门:

  1. 设置任务调度文件:/etc/crontab
  2. 设置个人任务调度。执行 crontab –e 命令。
  3. 接着输入任务到调度文件,如:*/1 * * * * ls –l /etc/ > /tmp/to.txt,意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
    参数细节说明
    5 个占位符的说明
    在这里插入图片描述
    特殊符号的说明
    在这里插入图片描述
    特殊时间执行案例
    在这里插入图片描述

一些操作案例:

  • 案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
    */1 * * * * date >> /tmp/mydate
  • 案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中步骤:
    (1) vim /home/my.sh 写入内容 date >> /home/mycal cal >> /home/mycal
    (2) 给 my.sh 增加执行权限,chmod u+x /home/my.sh
    (3) crontab -e 增加 */1 * * * * /home/my.sh
  • 案例 3: 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中。提示: 指令为
    mysqldump -u root -p 密码 数据库 > /home/db.bak
    步骤(1) crontab -e
    步骤(2) 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak

at 定时任务

语法:at [选项] [时间]
Ctrl + D 结束 at 命令的输入, 输出两次
at 命令选项
在这里插入图片描述
 at 指定时间的方法:

  1. 接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
  2. 使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午 4 点)等比较模糊的词语来指定时间。
  3. 采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。 例如:12pm
  4. 指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2021-03-1
  5. 使用相对计时法。指定格式为:now + count time-units ,now 就是当前时间,time-units 是时间单位,这里能够是 minutes
    (分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。 例如:now + 5 minutes
  6. 直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。

案例:
案例 1:2 天后的下午 5 点执行 /bin/ls /home
在这里插入图片描述
案例 2:atq 命令来查看系统中没有执行的工作任务
案例 3:明天 17 点钟,输出时间到指定文件内 比如 /root/date100.log
在这里插入图片描述
案例 4:2 分钟后,输出时间到指定文件内 比如 /root/date200.log
在这里插入图片描述
案例 5:删除已经设置的任务 , atrm 编号
atrm 4 //表示将 job 队列,编号为 4 的 job 删除

磁盘分区挂载

语法:lsblk 或者 lsblk -f (速记:老师不离开(lsblk))

 分区命令 fdisk /dev/sdb
开始对/sdb 分区
m 显示命令列表
p 显示磁盘分区 同 fdisk –l n 新增分区
d 删除分区
w 写入并退出
 说明: 开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w
写入分区并退出,若不保存退出输入 q。
在这里插入图片描述
 格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1
其中 ext4 是分区类型
 挂载: 将一个分区与一个目录联系起来,
mount 设备名称 挂载目录
例如: mount /dev/sdb1 /newdisk
 umount 设备名称 或者 挂载目录
例如: umount /dev/sdb1 或者 umount /newdisk
永久挂载: 通过修改/etc/fstab 实现挂载添加完成后 执行 mount –a 即刻生效
在这里插入图片描述
查看系统整体磁盘使用情况
语法:df -h
在这里插入图片描述

查询指定目录的磁盘占用情况

语法:du -h
 查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值

磁盘情况-工作实用指令

  1. 统计/opt 文件夹下文件的个数
    ls -l /opt | grep "^-" | wc -l
  2. 统计/opt 文件夹下目录的个数
    ls -l /opt | grep "^d" | wc -l
  3. 统计/opt 文件夹下文件的个数,包括子文件夹里的
    ls -lR /opt | grep "^-" | wc -l
  4. 统计/opt 文件夹下目录的个数,包括子文件夹里的
    ls -lR /opt | grep "^d" | wc -l
  5. 以树状显示目录结构 tree 目录 , 注意,如果没有 tree ,则使用 yum install tree 安装
    在这里插入图片描述

进程管理

显示系统执行的进程

语法:ps
在这里插入图片描述

  1. 指令:ps –aux|grep xxx ,比如我看看有没有 sshd 服务
  2. 指令说明
     System V 展示风格
     USER:用户名称
     PID:进程号
     %CPU:进程占用 CPU 的百分比
     %MEM:进程占用物理内存的百分比
     VSZ:进程占用的虚拟内存大小(单位:KB)
     RSS:进程占用的物理内存大小(单位:KB)
     TT:终端名称,缩写 .
     STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-
    正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
     STARTED:进程的启动时间
     TIME:CPU 时间,即进程使用 CPU 的总时间
     COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

实例:

  • 以全格式显示当前所有的进程,查看进程的父进程。
    查看 sshd 的父进程信息
    ps -ef 是以全格式显示当前所有的进程
    -e 显示所有进程。-f 全格式
    ps -ef|grep sshd

终止进程kill

语法:
kill [选项] 进程号(功能描述:通过进程号杀死/终止进程)
killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

常用选项:
-9 :表示强迫进程立即停止

实例:

  1. 案例 1:踢掉某个非法登录用户
    kill 进程号 , 比如 kill 11421
  2. 案例 2: 终止远程登录服务 sshd, 在适当时候再次重启 sshd 服务
    kill sshd 对应的进程号; /bin/systemctl start sshd.service
  3. 案例 3: 终止多个 gedit , 演示 killall gedit
  4. 案例 4:强制杀掉一个终端, 指令 kill -9 bash 对应的进程号

查看进程树 pstree

语法:pstree [选项] ,可以更加直观的来看进程信息
常用选项:
-p :显示进程的 PID
-u :显示进程的所属用户

服务管理

语法:service 服务名 [start | stop | restart | reload | status]
注意:

  • 在 CentOS7.0 后 很多服务不再使用 service ,而是 systemctl
  • service 指令管理的服务在 /etc/init.d 查看
  • 通过 chkconfig 命令可以给服务的各个运行级别设置自 启动/关闭
  • chkconfig 指令管理的服务在 /etc/init.d 查看

chkconfig 基本语法

  1. 查看服务 chkconfig --list [| grep xxx]
  2. chkconfig 服务名 --list
  3. chkconfig --level 5 服务名 on/off

systemctl 管理指令

语法: systemctl [start | stop | restart | status] 服务名
systemctl 指令管理的服务在 /usr/lib/systemd/system 查看

systemctl 设置服务的自启动状态

  • systemctl list-unit-files [ | grep 服务名] (查看服务开机启动状态, grep 可以进行过滤)
  • systemctl enable 服务名 (设置服务开机启动)
  • systemctl disable 服务名 (关闭服务开机启动)
  • systemctl is-enabled 服务名(查询某个服务是否是自启动的)
    案例:
    查看当前防火墙的状况,关闭防火墙和重启防火墙
    systemctl status firewalld 查看防火墙状态
    systemctl stop firewalld关闭防火墙
    systemctl start firewalld重启防火墙
    注意:
  • 关闭或者启用防火墙后,立即生效。[telnet 测试 某个端口即可]
  • 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
  • 如果希望设置某个服务自启动或关闭永久生效,要使用 systemctl [enable|disable] 服务名

firewall 指令(防火墙)

  1. 打开端口: firewall-cmd --permanent --add-port=端口号/协议
  2. 关闭端口: firewall-cmd --permanent --remove-port=端口号/协议
  3. 重新载入,才能生效 : firewall-cmd --reload
  4. 查询端口是否开放: firewall-cmd --query-port=端口/协议
    案例:
  5. 启用防火墙, 测试 111 端口是否能 telnet , (此时不行)
  6. 开放 111 端口后
    firewall-cmd --permanent --add-port=111/tcp ; 需要 firewall-cmd --reload
  7. 再次关闭 111 端口
    firewall-cmd --permanent --remove-port=111/tcp ; 需要 firewall-cmd --reload

动态监控进程

top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。

语法:top [选项]
在这里插入图片描述

选项说明:在这里插入图片描述
交互操作说明:
在这里插入图片描述
案例:

  • 案例 1.监视特定用户, 比如我们监控 tom 用户top:输入此命令,按回车键,查看执行的进程。u:然后输入“u”回车,再输入用户名,即可,
  • 案例 2:终止指定的进程, 比如我们要结束 tom 登录top:输入此命令,按回车键,查看执行的进程。k:然后输入“k”回车,再输入要结束的进程 ID 号
  • 案例 3:指定系统状态更新的时间(每隔 10 秒自动更新), 默认是 3 秒
    top -d 10

查看网络状态

语法:netstat [选项]
选项:
-an 按一定顺序排列输出
-p 显示哪个进程在调用

检测主机连接命令ping:

包管理

RPM包管理

一些语法指令:
rpm -qa :查询所安装的所有 rpm 软件包

  • rpm -qa | more
  • rpm -qa | grep X [rpm -qa | grep firefox ]

rpm -q 软件包名 :查询软件包是否安装

  • rpm -q firefox
  • rpm -qi 软件包名 :查询软件包信息
    案例: rpm -qi firefox

rpm -ql 软件包名 :查询软件包中的文件

  • rpm -ql firefox
  • rpm -qf 文件全路径名: 查询文件所属的软件包
  • rpm -qf /etc/passwd
  • rpm -qf /root/install.log

卸载rpm包

语法:rpm -e RPM 包的名称
注意:

  1. 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如: $ rpm -e foo
    removing these packages would break dependencies:foo is needed by bar-1.0-1
  2. 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
    如:$ rpm -e --nodeps foo

安装rpm包

语法:rpm -ivh RPM 包全路径名称
 参数说明

  • i=install 安装
  • v=verbose 提示
  • h=hash 进度条

实例:
演示卸载和安装 firefox 浏览器
rpm -e firefox 卸载
rpm -ivh firefox 安装

yum包管理

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

语法:yum list|grep xx 软件列表 查询 yum 服务器是否有需要安装的软件

安装指定的yum包

语法:yum install xxx 下载安装

实例:
请使用 yum 的方式来安装 firefox
rpm -e firefox
yum list | grep firefox
yum install firefox

移除指定的yum包

语法:yum remove xxx 下载安装

本篇借鉴自b站韩顺平Linux教学,如有侵权,可联系笔者予以删除。
B站主页:https://space.bilibili.com/651245581?spm_id_from=333.788.b_765f7570696e666f.1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值