画布 1
Linux
  基础指令
    安装
    ls
      #ls [选项] 路径
        列出目录
          -a 显示所有的文档（包含隐藏）
          -h 可读性较高的形式
          -l 详细列表
    pwd
      #pwd
        打印当前工作目录
    cd
      #cd 【路径】
        进入目录
          ~为当前登录用户的家目录，不写路径也会进到当前用户的家目录
    mkdir
      #mkdir [选项] 路径 [路径1 路径2]
        创建目录
          -p 一次性创建不存在的目录
            #mkdir -p a/b/c/d
            #mkdir dir1 dir2 dir3
    touch
      #touch 文件名称1 【文件名称2】
        创建【多个】文件
    cp
      #cp [选项] 被复制的文档路径 文档被复制到的路径
        复制文件
          -r 递归复制
    mv
      #mv 【选项】需要移动的文档路径 文档被移动到的位置
        移动、剪切、重命名
    rm
      #rm 【选项】路径（可通配符）
        删除
          -f force强制删除 无提示
          -r 递归删除
    vim
      #vim 文件路径
        打开一个文件
    重定向
      指令 > 路径
        覆盖输出
      指令 >> 路径
        追加输出
    cat
      #cat 文件路径
        查看文件
      #cat 路径1 路径2 > 合并之后路径
        合并文件并输出到某路径
  进阶指令
    df
      #df 【选项】
        查看磁盘空间
          -h 可读性较高的形式
    free
      #free 【选项】
        查看内存使用情况
          -m 以mb单位查看（推荐）
          -g 以g单位查看
    head
      # head -n 文件路径
        查看文件前n行【n为数字】
    tail
      # tail -n 文件路径
        查看文件末n行【n为数字】、用于查看日志或配置居多
    less
      #less 路径
        以较少内容查看 ，辅助功能键（数字+回车、空格键+上下方向键），q退出
    wc
      #wc 【选项】统计文件路径
        -l lines 行数
        -w words 单词数（按照空格拆分）
        -c bytes 字节数
    date
      #date
        时间读取 默认2018年 3月 24日 星期六 15:54:28
          +%F 2018-03-24
          %T 16:01:00
          “+%F %T” 等价于 “+%Y-%m-%d %H:%M:%S”
          -d “-1 day” “+%F %T” 获取之前或者之后的某个时间
    cal
      #cal
        直接输出当前月份日历 等价于 #cal 1
          #cal 3 输出上月+本月+下月的日历
          cal -y 年份 输出某一个年份的日历
    clear /ctrl + L
      清控制台
    |
      指令 | grep 关键词
        过滤，不能单独使用，需要配合前面的指令一起使用，辅助作用
  高级指令
    hostname
      #hostname [-f]
        读取主机名，也可设置，不过是临时性的切换用户后生效，重启后失效
          -f 输出当前主机名中的FQDN（全限定域名）
    id
      #id [用户名]
        查看用户的基本信息（用户id，组id，附加组id），可不指定用户，默认为当前用户
          验证用户信息：通过文件/etc/passwd
          验证用户组信息：通过文件/etc/group
    whoami
      #whoami
        显示当前登录的用户名
    ps
      #ps -ef | grep 关键词
        查看服务器的进程信息
          -e 列出所有进程
            UID：该进程执行的用户id；
PID：进程id；
PPID：该进程的父级进程id，如果一个程序的父级进程找不到，该程序的进程称之为僵尸进程（parent process ID）；
          -f 显示所有字段
            C：Cpu的占用率，其形式是百分数；
STIME：进行的启动时间；
TTY：终端设备，发起该进程的设备识别符号，如果显示“?”则表示该进程并不是由终端设备发起；
TIME：进程的执行时间；
CMD：该进程的名称或者对应的路径；
    top
      #top
        查看服务器进程所占用的资源，按q退出
          快捷键 m 按内存从高到低降序排列
            PID：进程id；
USER：该进程对应的用户；
PR：优先级；
VIRT：虚拟内存；
RES：常驻内存；
SHR：共享内存 计算一个进程实际使用的内存 = 常驻内存（RES）- 共享内存（SHR）
          快捷键 p cpu 从高到低排
            S：表示进程的状态status（sleeping，其中S表示睡眠，R表示运行）；
%CPU：表示CPU的占用百分比；
%MEM：表示内存的占用百分比；
TIME+：执行的时间；
COMMAND：进程的名称或者路径；
          当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息
    du
      #du 【选项】目录路径
        查看目录的真实大小
          -s summaries 汇总大小
          -h 可读性较高
    find
      #find 路径范围 【选项】【选项值】
        查找文件
          -name 文档名称 可通配符
          type f表示文件 d表示文件夹
    service
      #service 服务名 start/stop/restart
        控制服务的启动/停止/重启
    kill
      #kill 进程pid
        结束进程
    killall
      #killall 进程名称
        结束进程
    ifconfig
      #ifconfig
        获取网卡信息，inet addr就是网卡的ip地址
          eth0 网卡名称
          lo loop 本地回还网卡 ip一般为127.0.0.1，网卡名称
          当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息
    reboot
      #reboot
        重启
          -w 模拟重启，但不重启（只写关机和开机日志信息）
    shutdown
      #shutdowm 【选项】
        关机（慎用）
          -h 小时
            #shutdown -h 12:10 "系统计划在12:10"关机
          取消计划关机
            7.x- ctrl + c
            7.x+ shutdown -c
          拓展
            poweroff
            init 0
            halt
    uptime
      #uptime
        输出计算机持续在线时间（开机到现在）
    uname
      #uname 【选项】
        获取计算机操作系统相关信息
          -a all 获取全部的系统信息（类型、全部主机名、内核版本、发布时间、开源计划）
    netstat
      #netstat -tnlp
        查看网络连接状态
          -t 列出tcp协议的链接
          -n 字母组合转化成ip地址，将协议转换成端口号显示
          -l 过滤出“state（状态）”列中其值为LISTEN（监听）的连接
          -p 显示发起连接的进程pid和进程名称
    man
      #man 命令
        manual 查看手册 按q退出
  vim
    打开方式
      vim 路径
        打开指定文件
      vim +数字 路径
        打开指定文件，将光标移动到指定行
      vim +/关键词 路径
        打开指定文件，高亮显示关键词
      vim 路径1 路径2
        同时打开多个文件
    退出方式
      :wq
        保存并退出
      :q
        退出
      :q!
        不保存直接退出
      :x
        子主题 1
    命令模式（打开文件后默认进入的模式）
      不能对文件直接编辑，可通过快捷键标记文件（删除行、复制行、移动光标、粘贴等）
      光标移动
        shift +^
          行首
        shift + $
          行尾
        gg
          移动到首行
        G
          移动到末行
          数字 G
            快速移动到指定行
        数字 ↑/数字 ↓
          以当前光标为准向上/向下移动n行
        数字 ←/数字 →
          以当前光标为准向左/向右移动n字符
        :n
          末行模式下 快速移到n行
        ctrl + b或者PgUp
          上一页
        ctrl + f 或者PgDw
          下一页
      复制/粘贴/删除
        yy
          复制所在行
          数值 yy 以光标所在行为准（包括该行）向下复制指定行数
        可视化复制
          子主题 1
            按键：ctrl + v（可视块）或V（可视行）或v（可视），然后按下↑↓←→方向键来选中需要复制的区块，按下y键进行复制
        p
          粘贴
        dd
          剪切/删除所在行
          数字 dd 以光标所在行为准（包括该行）向下剪切指定行数
        D
          删除所在行数据，下面的数据不会上移
        可视化删除
          按键：ctrl + v（可视块）或V（可视行）或v（可视），上下左右移动，按下D表示删除选中行，d表示删选中块
        u 或 :u（末行模式）
          撤销
        ctrl + r
          恢复
    编辑模式（输入模式）按i、a等进入
      有多个命令 只介绍i，a
      i
        在光标所在字符前开始插入
      a
        在光标所在字符后开始插入
    末（尾）行模式 输入：或/进入
      退出方式
        按下esc
        连按两次esc
        删除末行全部输入字符
      保存/退出
        :w
          保存文件
          :w 路径
            另存为
        :q
          退出文件
        :wq
          保存并退出
        :q!
          强制退出 不做保存
        ! 命令
          调用外部命令
      查找/替换
        / 关键词
          上一个结果 N
          下一个结果 n
        :nohl
          取消高亮
        替换
          :s/搜索词/新内容
            替换光标所在行的第一处符合条件的内容
          :s/搜索词/新内容/g
            替换光标所在行全部符合条件的内容
          :%s/搜索词/新内容
            替换整个文档中每行第一个符合条件的内容
          :%s/搜索词/新内容/g
            替换整个文档符合条件的内容
        :set nu
          显示行号（临时）
          :set nonu 不显示行号
      扩展，打开多个文件，如何切换
        :files
          查看已经打开的文件夹名称
          状态%a 当前打开的文件
          状态# 上一个打开的文件
        :open 文件名
        :bn
          back next 下一个文件
        :bp
          back prev上一个文件
    扩展
      :syntax on
        代码着色 不着色为off
      计算器的使用
        a. 进入编辑模式
b. 按下按键“ctrl + R”，然后输入“=”，此时光标会变到最后一行
c. 输入需要计算的内容，按下回车
      配置
        在文件打开时在末行模式下输入配置（如：:set nu）
        个人配置文件（~/.vimrc，如没有则新建即可）
          若个人配置和系统配置冲突，以个人配置为准
        全局配置文件（vim自带，/etc/vimrc）
      异常退出
        定义：在编辑文件后并没有正常的去wq，再次打开文件时会引发异常
        解决方案：删除临时文件.wp，或按照提示操作即可
      别名机制
        定义
          创建一些属于自己的自定义命令，依赖~/.bashrc，添加alias mv='mv -i'即可
        需重新登录当前用户
      :x 退出
        “:x”在文件没有修改的情况下，表示直接退出，在文件修改的情况下表示保存并退出
        如果文件没有被修改，但是使用wq进行退出的话，则文件的修改时间会被更新；但是如果文件没有被修改，使用x进行退出的话，则文件修改时间不会被更新的；主要是会混淆用户对文件的修改时间的认定
      加密
        X
      解密
        X 不输入密码即可
  自有服务（1）
    运行模式（运行级别）
      配置文件 /etc/inittab（版本不同，各有区别）
      centos6.x
        0 — 表示关机级别（不要将默认的运行级别设置成这个值）
1 — 单用户模式
2 — 多用户模式，不带NFS（Network File Syetem）
3 — 多用户模式，完全的多用户模式（不带桌面的，纯命令行模式）
4 — 没有被使用的模式（被保留模式）
5 — X11，完整的图形化界面模式
6 — 表示重启级别（不要将默认的运行级别设置成这个值）
        #init 0
          关机
        #init 3
          切换到命令行模式
        #init 5
          切换到桌面模式
        #init 6
          重启电脑
        设置模式永久为命令行模式
          修改inittab文件末行 id:3:initdefault:
      centos7.x
        multi-user.target类似于runlevel 3
        graphical.target类似于runlevel5
        #systemctl get-default
          查看默认运行级别的方式
        #init n 仍可用
          0 shutdown.target
1 emergency.target
2 rescure.target
3 multi-user.target
4 无
5 graphical.target
6 无
        #systemctl set-default TARGET.target
          设置默认运行级别的方式
        #systemctl 【选项】【级别】
          systemctl get-default 获得当前的运行级别
systemctl set-default multi-user.target 设置默认的运行级别为mulit-user
systemctl isolate multi-user.target 在不重启的情况下，切换到运行级别mulit-user下
systemctl isolate graphical.target 在不重启的情况下，切换到图形界面下
  权限管理
    概述
      权限操作与用户、用户组是兄弟操作
      一般将文件可存/取访问的身份分为3个类别：owner、group、others，且3种身份各有read、write、execute等权限
      读
        对于文件夹来说，读权限影响用户是否能够列出目录结构（#ls）
        对于文件来说，读权限影响用户是否可以查看文件内容（vim、cat、tail、more、head）
      写
        对文件夹来说，写权限影响用户是否可以在文件夹下“创建/删除/复制到/移动到”文档（mkdir、touch、rm、cp、mv）
        对于文件来说，写权限影响用户是否可以编辑文件内容（vim）
      执行
        一般都是对于文件来说，特别脚本文件，当文档拥有执行权限（任意部分），其颜色在终端是绿色的
      lrwxr-xr--
        l 文件类型为软连接，-表文件，d表目录，s表套接字
        rwx 所有者拥有的权限 读写执行
        r-x 同组用户拥有的权限 读执行
        r-- 其他人拥有的权限 读，-表无权限
    身份
      Owner
        文件所有者，默认为文档的创建者
      Group
        与文件所有者同组的用户
      Others
        其他人，相对于所有者
      Root
        超级用户
    #chmod 【选项】 权限模式 文档
      如果想要给文档设置权限，操作者要么是root用户，要么就是文档的所有者
      -r 递归，文件夹
      字母形式
        用户
u 所有者
g 所属组
o 其他人
a 所有人
        操作
+ 增加权限
- 减少权限
= 确定权限（直接赋值）
        权限
r 可读
w 可写
x 可执行
- 无权限
        如果在设置权限的时候不指定给谁设置，则默认给所有用户设置
        eg:#chmod u+x,g+rx,o+r aa.txt
          aa.txt（-rw-------.）设置权限，要求所有者拥有全部的权限，同组用户拥有读和执行权限，其他用户只读权限
      数字形式（二进制&的结果）
        r 4
w 2
x 1
无任何权限设为0即可
        0 --- 0
1 --x 0+0+1
2 -w- 0+2+0
3 -wx 0+2+1
4 r-- 4+0+0
5 r-x 4+0+1
6 rw- 4+2+0
7 rwx 4+2+1
        在写权限的时候千万不要设置类似于上面的这种“奇葩权限”。如果一个权限数字中但凡出现2与3的数字，则该权限有不合理的情况
        在Linux中，如果要删除一个文件，不是看文件有没有对应的权限，而是看文件所在的目录是否有写权限，如果有才可以删除
        #chmod 775 aa.txt
    属主和属组的设置
      所属用户 所属用户组
root root
      #chowm 【-R】 用户名 文档
        更改文档属主
      #chowm 【-R】 用户名:用户组 文档
        一次更改文档属主属组
          #chown -R loger:loger passwd
      #chgrp 【-R】 用户组 文档（了解即可）
        更改文档属组
    sudo
      管理员赋予普通用户执行管理员专属命令（reboot、shutdown、init、halt、user管理）
      配置/etc/sudoers
        无法用vim直接编辑 使用#visudo进行编辑
        root ALL=(ALL) ALL
Root表示用户名，如果是用户组，则可以写成“%组名”
ALL：表示允许登录的主机（地址白名单）
(ALL)：表示以谁的身份执行，ALL表示root身份
ALL：表示当前用户可以执行的命令，多个命令可以使用“,”分割
        案例：本身test用户不能添加用户，要求使用sudo配置，将其设置为可以添加用户，并且可以修改密码（但是不能修改root用户密码）
          在写sudo规则的时候不建议写直接形式的命令，而是写命令的完整路径。
路径可以使用which命令来查看
语法：#which 指令名称
          禁止修改root密码的配置（先允许全部，再拒绝root密码设置）
            /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
          loger ALL=(ALL) /usr/sbin/useradd,/usr/bin/passwd [A-za-z]*,!/us r/bin/passwd root
        #sudo 需要执行的命令
      -l 在普通用户下查看自己有哪些sudo权限
      sudo不是任何Linux分支都有的命令，常见centos与ubuntu都存在sudo命令
  自有服务2
    #hostname
      -f FQDN（全限定域名）
      设置主机名
        #hostname 新主机名
          临时设置主机名，切换用户后生效，重启后失效
        centos6.x
          主机名配置文件：/etc/sysconfig/network
修改其中的HOSTNAME为自己需要设置的永久主机名
修改linux服务器的hosts文件（/etc/hosts），将 新主机名 指向本地（设置FQDN）重启后生效
            为什么要设置FQDN
              很多开源服务器软件（例如Apache）则无法启动，或出现报错；
方便记忆，看到主机名对其作用有一个初步判断；
如果不设置则会影响本地的域名的解析（本地访问）；
        centos7.x
          修改/etc/hostname内容即可
            重启后生效，ping 新hostname 能通则表示成功
    #chkconfig
      “开机启动项”管理服务
        --list 服务查询
          #chkconfig --list
        0-6 表示各个启动级别
        --del
          #chkconfig --del 服务名
        --add
          #chkconfig --add 服务名 （必须保证服务正常运行，才可以添加）
        --level
          #chkconfig --level 级别名1【级别名2】 服务名 on/off
            设置服务在某个级别下开机启动/不启动
    ntp服务
      对计算机的时间进行同步管理
        一次性同步
          操作之前先做个快照（方便下面设置时间同步服务的测试）
          #ntpdate 时间服务器的域名或ip地址（http://www.ntp.org.cn/pool）
          #ntpdate 120.25.115.20
        设置时间同步服务（启动ntpd服务）
          centos6.x
            #service ntpd start
            设置ntpd服务开机启动
chkconfig --level 35 ntpd on
          centos7.x
    防火墙服务
      centos6.x（iptables ）
        启动/关闭/重启（默认启动）
          #service iptables start/stop/restart
        查看状态（规则）
          #service iptables status
        查看规则命令
          #iptables -L -n
            -l 列出规则
            -n 将单词表达形式改为数字显示
          #vim /etc/sysconfig/iptables
            开放80端口
              配置文件加入 -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
              重启iptables
                #service iptables restart
        简单设置防火墙
          #iptables -I INPUT -p tcp --dport 80 -j ACCEPT #允许访问80端口
/etc/init.d/iptables save #添加完后要保存
            Iptables：主命令
-I：表示将规则放到最前面
-A：add，添加规则（最后）
INPUT：进站请求【出站output】
-p：protocol，指定协议（icmp/tcp/udp）
--dport：指定端口号
-j：指定行为结果，允许（accept）/禁止（reject）/丢弃（drop）
        用于过滤数据包，属于网络层防火墙
      centos7.x（firewaild）
        能够允许哪些服务可用，那些端口可用...属于更高一层的防火墙
        centos7/redhat7已经默认使用firewalld作为防火墙，其使用的方式已经变化，基于iptables的防火墙默认不启用，但是仍可以继续使用
centos7/redhat7中有几种防火墙共存：firewalld、iptables、ebtablesd、默认使用的是firewalld作为防火墙，管理工具是firewalld
        查看状态
          #systemctl status 【firewalld,iptables,ip6tables,ebtables】
        #firewall-cmd
          开启端口
            #firewall-cmd --zone=public --add-port=80/tcp --permanent
              --zone 作用域
              --add-port 添加端口 格式:端口/通讯协议
              --permanent 永久生效，无此参数，重启后失效
          检测端口
            #firewall-cmd --query-port=80/tcp
          重启
            #firewall-cmd --reload
          列表
            #firewall-cmd --list-port
          关闭
            #systemctl stop firewalld.service
          禁止开机启动
            #systemctl disable firewalld.service
        centos7与6的区别
    rpm管理
      查询某个软件的安装情况
        # rpm -qa |grep yum
        -q 查询
        -a 全部
      #rpm -e 软件名称
        没有依赖关系可以直接卸载
        当存在依赖关系的时候又不想去解决这个问题的时候可以：
#rpm -e 软件包名 --nodeps
      #lsblk
        查看块状设备信息
          Name：名称
Size：设备大小
Type：类型
MountPoint：挂载点（类似windows下盘符）
      光盘挂在和解挂
        解挂
          #umount 当前设备的挂载点
        挂载
          #mount 设备原始地址 要挂在的位置路径
          设备原始地址：/dev/名字（大小确定具体name值）
          要挂在的位置路径：挂载目录一般在mnt下，以/mnt/dvd为例
      #rpm -ivh 软件包完整名称
        安装软件
        -i 安装
        -v 显示进度
        -h 表示已#的形式显示进度条
    cron/crontab计划任务
      #crontab 【选项】
        -l 列出用户的计划任务列表
        -e edit 编辑指定用户的计划任务列表
        -u 指定用户名 不指定表示当前用户
        -r remove 删除指定用户的计划任务列表
      编辑计划任务
        格式：行为单位，一行为一个计划（cron表达式 需要执行的命令）
      权限
        任何用户都可以创建自己的计划任务
        黑名单配置不允许用户设置计划任务
          在/etc/cron.deny 添加用户名，一行一个
        白名单允许用户创建计划任务
          /etc/cron.allow（不存在则重建）一行有一个，当白名单和黑名单同时存在某用户，以白名单为准
  SSH服务
    服务启动/停止/重启
      #service sshd start/stop/restart
      #/etc/init.d/sshd start/stop/restart
      默认端口22，在/etc/ssh/ssh_config可自定义修改
    远程终端
      Xshell
      secureCRT
      Putty小
    文件传输
      Filezilla
  网络设置
    网卡配置文件路径
      /etc/sysconfig/network-scripts
      命名格式：ifcfg-网卡名称
      ifcfg-eth0（举例）
        TYPE="Ethernet"
BOOTPROTO="dhcp" #ip地址分配方式，DHCP表示动态主机分配协议
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="bb47ac5c-c613-4a71-87f2-1369029fc1d4"
DEVICE="ens33"
ONBOOT="yes" #是否开机启动
    重启所有网卡
      #service network restart
      #/etc/init.d/network restart
    扩展
      #ln -s 原始路径 快捷方式路径
        软连接（快捷方式）（ls -l可查看详情，文件类型位置的“l”表示其类型为link（连接类型））
          ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ifcfg-ens33
      #ifdown 网卡名
        停止单个网卡（慎用）
      #ifup 网卡名称
        启动单个网卡
  用户和用户组
    注意
      用户名不可重复
      /etc/passwd 存储用户信息 查看用户主组
      /etc/group 存储用户组信息 查看附加组
      /etc/shadow 存储用户密码信息
    用户操作
      #user add 【选项】 用户名
        -g 用户主组 可以是用户组id，也可以是组名
        -G 用户附加组 可以实用户组id，也可以是组名
        -u uid（用户id标识），不指定的话系统默认从500之后按顺序分配uid
        -c 注释
        验证成功
          验证/etc/passwd的最后一行
          验证是否存在同名家目录（centos）#ls /home
          在不添加选项时执行useradd 会创建同名家目录，会创建同名用户组
        passwd文件
          user1:x:1001:1001::/home/user1:/bin/bash
用户名:密码:用户ID:用户组ID:注释:家目录:解释器shell
          用户名：创建新用户名称，后期登录的时候需要输入；
密码：此密码位置一般情况都是“x”，表示密码的占位；
用户ID：用户的识别符；
用户组ID：该用户所属的主组ID；
注释：解释该用户是做什么用的；
家目录：用户登录进入系统之后默认的位置；
解释器shell：等待用户进入系统之后，用户输入指令之后，该解释器会收集用户输入的指令，传递给内核处理；
      #usermod 【选项】 用户名
        -g 用户主组 可以是用户组id，也可以是组名
        -G 用户附加组 可以实用户组id，也可以是组名
        -u uid（用户id标识），不指定的话系统默认从500之后按顺序分配uid
        -l 新用户名
          #usermod -l 新的用户名 旧的用户名
      #passwd 用户名
        设置密码
      #su 【用户名】
        切换用户，用户名不指定则表示切换到root用户
          a. 从root往普通用户切换不需要密码，但是反之则需要root密码；
b. 切换用户之后前后的工作路径是不变的；
c. 普通用户没有办法访问root用户家目录，但是反之则可以；
      #userdel 【选项】 用户名
        删除用户
          -r 删除用户时，同时删除家目录
          已经登录的的用户要先结束此用户进程才可删除
    用户组操作
      文件结构
        geoclue:x:991:
用户组名:密码:用户组ID:组内用户名
      #groupadd 【选项】 用户组名
        -g 自定义组id，不指定则默认500之后递增
      #groupmod 【选项】 用户组名
        -g 自定义组id，不指定则默认500之后递增
        -n 新用户组名
      #groupdel 用户组名
        若这个组时某个用户的主组，则不允许删除。要删除，先从组内移除所有用户