Linux系统学习笔记

一、基础知识

        对于文件系统的属性来说,windows文件系统类型一般是ntfs、fat32等,而Linux文件系统类型则为ext2、ext3、ext4等(文件系统:是操作系统用于明确磁盘或分区上的文件的方法和数据结构,文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。) 

        在 Linux 中规定,每一个硬盘设备最多只能有 4个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。

    Linux目录:主要的目录树的有//root/home/usr/bin等目录。下面是一个典型的linux目录结构如下:

   wget下载方式:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo(阿里yum)

基础命令:

   按ctrl+alt+F2键可以切换视窗界面和命令行界面

   ls  ./ 查看当前目录所有的文件和目录。
   ls  -a 查看所有的文件,包括隐藏文件,以.开头的文件。
   pwd显示当前所在的目录。
   mkdir创建目录,用法mkdir  test ,命令后接目录的名称。
   rmdir 删除空目录
   rm 删除文件或者目录,用法 rm –rf  test.txt (-r表示递归,-f表示强制)。
   cp 拷贝文件,用法,cp  old.txt  /tmp/new.txt ,常用来备份;如果拷贝目录需要加 –r参数。

   kill杀死、终止进程      kill -9   进程号

   touch 创建文件,用法,touch test.txt,如果文件存在,则表示修改当前文件时间。

   find查找文件或目录,用法 find  /home  -name  “test.txt”,命令格式为:
   find 后接查找的目录,-name指定需要查找的文件名称,名称可以使用*表示所有。
   find  /home  -name  “*.txt” ;查找/home目录下,所有以.txt结尾的文件或者目录。

   ps 列出系统中当前运行的进程   ps anx|grep 程序名

   passwd 改用户密码。帐户密码被删除后,将不能登录系统,除非重新设置密码。

   groups 用户名   命令可以查询用户所属的组

   id 用户名  查看用户账号信息

   who   或   w查看当前主机的用户登录情况

   whoami   查询自己当前使用的账号

 

   防火墙命令

      CentOS 7.0默认使用的是firewall作为防火墙,关闭firewall:

  1. systemctl stop firewalld.service #停止firewall

  2. systemctl disable firewalld.service #禁止firewall开机启动

  3. firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)


   vi 修改某个文件,vi有三种模式:命令行模式、文本输入模式、末行模式
    默认vi打开一个文件,首先是命令行模式,然后按i进入文本输入模式,可以在文件里写入字符等等信息。写完后,按esc进入命令模式,然后输入:进入末行模式,例如输入:wq表示保存退出。如果想直接退出,不保存,可以执行:q!, q!叹号表示强制退出。
    cat 查看文件内容,用法 cat test.txt 可以看到test.txt内容
     more 查看文件内容,分页查看,cat是全部查看,如果篇幅很多,只能看到最后的篇幅。可以使用cat和more同时使用,例如:cat  test.txt |more 分页显示text内容,|符号是管道符,用于把|前的输出作为后面命令的输入。
echo 回显,用法 echo ok,会显示ok,输入什么就打印什么。
echo  ok  > test.txt ;把ok字符覆盖test.txt内容,>表示追加并覆盖的意思。
>>两个大于符号,表示追加,echo ok >> test.txt,表示向test.txt文件追加OK字符,不覆盖原文件里的内容。
 

二、配置静态IP

   CentOS 7的网络IP地址配置文件在 /etc/sysconfig/network-scripts文件下,对应的网卡名文件,查看当前网卡命令ifconfig。BOOTPROTO默认为dhcp(动态获取IP),设置为static静态。配置完后要重启网卡,systemctl network restart(旧命令为:systemctl network restart)

(1.service命令service命令其实是去/etc/init.d目录下,去执行相关程序。2.systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl)

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"         # 使用静态IP地址,默认为dhcp
IPADDR="192.168.2.175"   # 设置的静态IP地址
NETMASK="255.255.255.0"    # 子网掩码
GATEWAY="192.168.2.255"    # 网关地址
DNS1="192.168.241.2"       # DNS服务器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95b614cd-79b0-4755-b08d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes"             #是否开机启用


###
另一种配置
###
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.2.135
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=192.168.2.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f0c3f707-7dfc-4ac9-ad93-cc48b0b21fa0
DEVICE=ens33
ONBOOT=yes

三、配置主机名

   hostname(主机名):配置hostname的方法为  hostnamectl set-hostname mini1(重启也生效),查看当前主机名称 hostnamectl

 临时立即生效(重启后失效)修改主机名:hostname 主机名,

四、配置DNS

          DNS 配置在vi  /etc/resolv.conf 文件,一般配置两个DNS,一个本地公司DNS服务器,一个114.114.114.114,一个8.8.8.8(世界通用)

五、yum配置

   yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

   通常情况下可以把本地原来自带的yum换成为阿里yum和网易yum。用wget工具下载yum包到指定目录(通常把本地yum包备份,以免出现错误),替换之后把原有的内存清除一下yum clean all,然后生成缓存  makecache。

   yum下载 

  yum下载前可以先查询是否之前已经装有相关的软件,如果有,要先清除干净。yum list|grep jdk 可以在阿里yum仓库。

相关命令:

默认是: /var/cache/yum,也可以在 /etc/yum.conf 指定,cachedir=/var/cache/yum #存放目录,keepcache=1 #1为保存 0为不保存。

metadata_expire=1800 #过期时间 

  yum deplist package1 查看程序package1依赖情况

 

1) 安装

yum install 全部安装

yum install package1 安装指定的安装包package1

yum groupinsall group1 安装程序组group1

2) 更新和升级

yum update 全部更新

yum update package1 更新指定程序包package1

yum check-update 检查可更新的程序

yum upgrade package1 升级指定程序包package1

yum groupupdate group1 升级程序组group1

3) 查找和显示

yum list installed|grep package 1显示已经安装的软件

yum info package1 显示安装包信息package1

yum list 显示所有已经安装和可以安装的程序包

yum list package1 显示指定程序包安装情况package1

yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

4) 删除程序

yum -y remove  package1 删除程序包package1

yum groupremove group1 删除程序组group1

RPM下载

 RPM共有10种基本的模式:它们是安装、查询、验证、删除等。

 安装模式:rpm–i           查询模式:rpm–q           验证模式:rpm–V–verify           删除模式:rpm–e

1.安装一个包

# rpm -ivh

2.升级一个包

# rpm -Uvh

3.移走一个包

# rpm -e

4.安装参数

--force 即使覆盖属于其它包的文件也强迫安装

--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

5.查询一个包是否被安装

# rpm -q < rpm package name>

6.得到被安装的包的信息

# rpm -qi < rpm package name>

7.列出该包中有哪些文件

# rpm -ql < rpm package name>

8.列出服务器上的一个文件属于哪一个RPM

#rpm –qf

9.可综合好几个参数一起用

# rpm -qil < rpm package name>

10.列出所有被安装的rpm package

# rpm –qa

11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?

# rpm -qilp < rpm package name>

六、权限配置

   1.在Linux操作系统中,root的权限是最高的,相当于windowsadministrator,拥有最高权限,能执行任何命令和操作。系统中,通过UID来区分用户的权限级别,UID等于0,表示此用户具有最高权限,也就是管理员。其他的用户UID依次增加,通过/etc/passwd用户密码文件可以查看到每个用户的独立的UID。

 

2.每一个文件或者目录的权限,都包含一个用户权限、一个组的权限、其他人权限,例如下:
标红第一个
root表示该文件所有者是root用户,第二个root代表该文件的所属的组为root组,其他用户这里默认不标出。
 
[root@node1 ~]# ls -l monitor_log.sh
-rw-r--r-- 1 root root 91 May  7 20:21 monitor_log.sh
如果我们想改变某个文件的所有者或者所属的组,可以使用命令chown
            chown  –R  test:test  monitor_log.sh即可。

每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)
利用
ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为准。

第一个字段由10个字符组成,如下:
    
[root@node1 ~]# ls -l monitor_log.sh
    -
rw-r--r-- 1 root root 91 May  7 20:21 monitor_log.sh
   
第一位表示文件类型,-表示文件,d表示目录;后面每三位为一组。
    第一组:
2-4位表示文件所有者的权限,即用户user权限,简称u
    
第二组:5-7位表示文件所有者所属组成员的权限,group权限,简称g
    
第三组:8-10位表示所有者所属组之外的用户的权限,other权限,简称o
从上面这个文件,我们可以看出,monito_log.sh文件对应的权限为:
root用户具有读和写的权限,root组具有读的权限,其他人具有读的权限。
为了能更简单快捷的使用和熟悉权限,
rwx权限可以用数字来表示,分别表示为r4)、w2)、x1)。
Monitor_log.sh权限可以表示为:644
如果给某个文件授权,命令为chmodchmod 777 monitor_log.sh

七、用户和用户组管理
1,用户和用户组文件
在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。
 
  在linux系统中,所创建的用户帐号和其相关信息(密码除外)均是存放在/etc/passwd配置文件中。由于所有用户对passwd文件均有读取的权限,因此密码信息并未保存在该文件中,而是保存在了/etc/shadow的配置文件中。
  在passwd文件中,一行定义一个用户帐号,每行均由多个不同的字段构成,各字段值间用":”分隔,每个字段均代表该帐号某方面的信息。
  在刚安装完成的linux系统中,passwd配置文件已有很多帐号信息了,这些帐号是由系统自动创建的,他们是linux进程或部分服务程序正常工作所需要使用的账户,这些账户的最后一个字段的值一般为/sbin/nologin,表示该帐号不能用来登录linux系统。
  在passwd配置文件中,从左至右各字段的对应关系及其含义:
 
用户帐号    用户密码    用户ID    用户组ID    用户名全称    用户组目录    用户所使用的shell
  root            x                  0             0                root              /root                /bin/bash
  由于passwd不再保存密码信息,所以用x占位代表。
  若要使某个用户账户不能登录linux,只需设置该用户所使用的shell为/sbin/nologin即可。比如,对于FTP 账户,一般只允许登录和访问FTP服务器,不允许登录linux操作系统。若要让某用户没有telnet权限,即不允许该用户利用telnet远程登录和 访问linux操作系统,则设置该用户所使用的shell为/bin/true即可。若要让用户没有telnet和ftp登录权限,则可设置该用户的 shell为/bin/false。
  在/etc/shells文件中,若没有/bin/true或/bin/false,则需要手动添加:
[root@localhost ~]# echo "/bin/false">>/etc/shells
[root@localhost ~]# echo "/bin/true">>/etc/shells

2,用户密码文件

  为安全起见,用户真实的密码采用MD5加密算法加密后,保存在/etc/shadow配置文件中,该文件只有root用户可以读取。
  与passwd文件类似,shadow文件也是每行定义和保存一个账户的相关信息。第一个字段为用户帐户名,第二个字段为账户的密码。
 
3,用户组帐号文件

  用户组帐号信息保存在/etc/group配置文件中,任何用户均可以读取。用户组的真实密码保存在/etc/gshadow配置文件中。
  在group中,第一个字段代表用户组的名称,第二个字段为x,第三个为用户组的ID号,第四个为该用户组的用户成员列表,各用户名间用逗号分隔

4,添加用户
  创建或添加新用户使用useradd命令来实现,其命令用法为:
  useradd [option] username
  该命令的option选项较多,常用的主要有:

-c 注释      用户设置对账户的注释说明文字
  -d 主目录    指定用来取代默认的/home/username的主目录
  -m          若主目录不存在,则创建它。-r与-m相结合,可为系统账户创建主目录

  -M          不创建主目录
  -e date     指定账户过期的日期。日期格式为MM/DD/YY
  -f days     帐号过期几日后永久停权。若指定为-,则立即被停权,若为-1,则关闭此功能
  -g 用户组     指定将用户加入到哪个用户组,该用户组必须存在
  -G 用户组列表 指定用户同时加入的用户组列表,各组用逗分隔
  -n          不为用户创建私有用户组
  -s shell    指定用户登录时使用的shell,默认为/bin/bash
  -r          创建一个用户ID小于500的系统账户,默认不创建对应的主目录
  -u 用户ID    手动指定新用户的ID值,该值必须唯一,且大于499
  -p password 为新建用户指定登录密码。此处的password是对应登录密码经MD5加密后所得到的密码值,不实真实密码原文,因此在实际应用中,该参数选项使用较少,通常单独使用passwd命令来为用户设置登录密码。
示例:
  若要创建一个名为zhangjie的用户,并作为student用户组的成员,则操作命令为:
[root@localhost ~]# useradd -g student zhangjie
[root@localhost ~]# tail -1 /etc/passwd
zhangjie:x:501:501::/home/zhangjie:/bin/bash

4,添加用户

添加用户时,若未用-g参数指定用户组,则系统默认会自动创建一个与用户帐号同名的私有用户组。若不需要创建该私有用户组,则可选用-n参数。
比如,添加一个名为lijie的账户,但不指定用户组,其操作结果为:
[root@localhost ~]# useradd lijie
[root@localhost ~]# tail -1 /etc/passwd
lijie:x:502:502::/home/lijie:/bin/bash
[root@localhost ~]# tail -2 /etc/group
student:x:501:
lijie:x:502:          #系统自动创建了名为lijie的用户组,ID号为502
 
  创建用户账户时,系统会自动创建该用户对应的主目录,该目录默认放在/home目录下,若要改变位置,可以利用-d参数指定;对于用户登录时使用的shell,默认为/bin/bash,若要更改,则使用-s参数指定。
例如,若要创建一个名为vodup的账户,主目录放在/var目录下,并指定登录shell为/sbin/nologin,则操作命令为:
[root@localhost ~]# useradd -d /var/vodup -s /sbin/nologin vodup
[root@localhost ~]# tail -1 /etc/passwd
vodup:x:503:503::/var/vodup:/sbin/nologin
[root@localhost ~]# tail -1 /etc/group
vodup:x:503:
5,设置帐号属性
  对于已创建好的用户,可使用usermod命令来修改和设置账户的各项属性,包括登录名,主目录,用户组,登录shell等,该命令用法为:
usermod [option] username
部分option选项
(1)改变用户帐户名
使用-l参数来实现,命令用法为:
usermod -l 新用户名 原用户名
例如,若要将用户lijie更名为lijunjie,则操作命令为:
[root@localhost ~]# usermod -l lijunjie lijie
[root@localhost ~]# tail -1 /etc/passwd
lijunjie:x:502:502::/home/lijie:/bin/bash
从输出结果可见,用户名已更改为lijunjie。主目录仍为原来的/home/lijie,若也要更改为/home/lijunjie,则可通过执行以下命令来实现
[root@localhost ~]# usermod -d /home/lijunjie lijunjie
[root@localhost ~]# tail -1 /etc/passwd
lijunjie:x:502:502::/home/lijunjie:/bin/bash
[root@localhost ~]# mv /home/lijie /home/lijunjie
(2)锁定账户
  若要临时禁止用户登录,可将该用户账户锁定。锁定账户可利用-L参数来实现,其命令用法为:
 usermod -L 要锁定的账户
  linux锁定用户,是通过在密码文件shadow的密码字段前加“!”来标识该用户被锁定。
(3)解锁账户
  要解锁账户,可以使用带-U参数的usermod命令来实现

6,删除账户

  要删除账户,可以使用userdel命令来实现,其用法为:
  userdel [-r] 帐户名
  -r为可选项,若带上该参数,则在删除该账户的同时,一并删除该账户对应的主目录。
  若要设置所有用户账户密码过期的时间,则可通过修改/etc/login.defs配置文件中的PASS_MAX_DAYS配置 项的值来实现,其默认值为99999,代表用户账户密码永不过期。其中PASS_MIN_LEN配置项用于指定账户密码的最小长度,默认为5个字符。 
  7,设置用户登录密码
  使用passwd命令来设置,其命令用法为:
  passwd [帐户名]
  若指定了帐户名称,则设置指定账户的登录密码,原密码自动被覆盖。只有root用户才有权设置指定账户的密码。一般用户只能设置或修改自己账户的密码(不带参数)。
  例如,若要设置lijunjie账户的登陆密码,则操作命令为:
[root@localhost ~]# passwd lijunjie
更改用户 lijunjie 的密码 。
新的 密码:
重新输入新的 密码:

passwd: 所有的身份验证令牌已经成功更新。
  账户登录密码设置后,该账户就可以登录系统了。按ctrl+alt+F2键,选择第2号虚拟控制台(tty2),然后利用lijunjie账户登录,以检验能否登录。

8,锁定/解锁账户密码
  在linux中,除了用户账户可被锁定外,账户密码也可被锁定,任何一方被锁定后,都将无法登录系统。只有root用户才有权执行该命令,锁定账户密码使用带-l菜蔬的passwd命令,其用法为:
 passwd -l 帐户名
 passwd -u 帐户名    #解锁账户密码

9,查询密码状态
  要查询当前账户的密码是否被锁定,可以使用带-S参数的passwd命令来实现,其用法为:
 passwd -S 账户名
例如
[root@localhost etc]# passwd -S lijunjie
lijunjie LK 2011-03-25 0 99999 7 -1 (密码已被锁定。)
[root@localhost etc]# passwd -u lijunjie
解锁用户 lijunjie 的密码 。
passwd: 操作成功
[root@localhost etc]# passwd -S lijunjie
lijunjie PS 2011-03-25 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)


10,删除账户密码
  如要删除账户的密码,使用带-d参数的passwd命令来实现,该命令也只有root用户才有权执行,其用法为:
  passwd -d 帐户名
  帐户密码被删除后,将不能登录系统,除非重新设置密码。
 
11,创建用户组
  用户和用户组属于多对多关系,一个用户可以同时属于多个用户组,一个用户组可以包含多个不同的用户
  创建用户组使用groupadd命令,其命令用法为:
  groupadd [-r] 用户组名称
  若命令带有-r参数,则创建系统用户组,该类用户组的GID值小于500;若没有-r参数,则创建普通用户组,其GID值大于或等于500.
 
12,修改用户组属性
  用户组创建后,根据需要可对用户组的相关属性进行修改。对用户组属性的修改,主要是修改用户组的名称和用户组的GID值。
(1)改变用户组的名称
    若要对用户组进行重命名,可使用带-n参数的groupmod命令来实现,其用法为:
    groupmod -n 新用户组名  原用户组名
    对于用户组改名,不会改变其GID的值
 比如,若要将student用户组更名为teacher用户组,则操作命令为:
    [root@localhost ~]# tail -3 /etc/group
    student:x:501:
    lijie:x:502:
    vodup:x:503:
    [root@localhost ~]# groupmod -n teacher student
    [root@localhost ~]# tail -3 /etc/group
    lijie:x:502:
    vodup:x:503:
    teacher:x:501:
(2)重设用户组的GID
  用户组的GID值可以重新进行设置修改,但不能与已有用户组的GID值重复。对GID进行修改,不会改变用户名的名称。
  要修改用户组的GID,可使用带-g参数的groupmod命令,其用法为:
groupmod -g new_GID 用户组名称
例如,若要将teacher组的GID更改为504,则操作命令为:
[root@localhost ~]# tail -3 /etc/group
lijie:x:502:
vodup:x:503:
teacher:x:501:
[root@localhost ~]# groupmod -g 504 teacher
[root@localhost ~]# tail -3 /etc/group
lijie:x:502:
vodup:x:503:
teacher:x:504:
13,删除用户组
  删除用户组使用groupdel命令来实现,其用法为:
  groupdel 用户组名
   在删除用户组时,被删除的用户组不能是某个账户的私有用户组,否则将无法删除,若要删除,则应先删除引用该私有用户组的账户,然后再删除用户组。
[root@localhost ~]# groupdel teacher
groupdel: cannot remove the primary group of user 'zhangjie'
[root@localhost ~]# userdel -r zhangjie
[root@localhost ~]# groupdel teacher
[root@localhost ~]# grep teacher /etc/group    #没有输出,说明teacher用户组以不存在,删除成功
 
14,添加用户到指定的组/从指定的组中移除用户
 可以将用户添加到指定的组,使其成为该组的成员。其实现命令为:
gpasswd -a 用户账户  用户组名
 若要从用户组中移除某用户,其实现命令为:
gpasswd -d 用户账户  用户组名
 
例如,现在将上面创建的lijunjie用户添加到vodup用户组中
[root@localhost ~]# groups lijunjie
lijunjie : lijie

[root@localhost ~]# gpasswd -a lijunjie vodup  #添加用户到指定的用户组
Adding user lijunjie to group vodup
[root@localhost ~]# groups lijunjie
lijunjie : lijie vodup
[root@localhost ~]# gpasswd -d lijunjie vodup  #从指定的用户组中移除用户
Removing user lijunjie from group vodup
[root@localhost ~]# groups lijunjie   #查看用户所属的组
lijunjie : lijie

15,设置用户组管理员
  添加用户到组和从组中移除某用户,除了root用户可以执行该操作外,用户组管理员也可以执行该操作。
  要将某用户指派为某个用户组的管理员,可使用以下命令来实现;
  gpasswd -A 用户账户 要管理的用户组
  命令功能:将指定的用户设置为指定用户组的用户管理员。用户管理员只能对授权的用户组进行用户管理(添加用户到组或从组中删除用户),无权对其他用户组进行管理。
[root@localhost ~]# gpasswd -A lijunjie vodup
[root@localhost ~]# useradd fen
[lijunjie@localhost ~]# gpasswd -a fen vodup
Adding user fen to group vodup
[lijunjie@localhost ~]# groups fen
fen : fen vodup
[lijunjie@localhost root]$ gpasswd -d fen fen  #试图将fen用户从fen用户组中移除
gpasswd: Permission denied.     #操作被拒绝,说明无权对其他用户组进行管理
 
  另外,linux还提供了id,whoami和groups等命令,用来查看用户和组的状态。id命令用于显示当前用户的uid,gid和所属的用户组的列表;whoami用于查询当前用户的名称;groups用于产看指定用户所隶属的用户组。
  同时,我们可以使用图形界面来管理用户和用户组,系统--->管理--->用户和组群可以打开相应的配置界面。
 
16,切换用户和操作环境
su - username #用户和操作环境都改变
su username  #只切换用户不切换操作环境及环境变量不变。还可用于退出超级权限
 

八、装软件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值