文件系统访问列表
FACL:利用文件扩展保存控制权限    
权限应用次序:ower->group->other
              ower->facl中user->group—>facl中group->other
setfacl
    -m:设定
        u:UID:perm 设定属主
        g:GID:perm 设定属组
            eg:setfacl -m u:hadoop:rw 给hadoop用户设定读写权限
    -x:取消
        u:UID:perm 取消属主
        g:GID:perm 取消属组
getfacl:
    wKiom1c4UlLTOn3jAABY0dyamtk577.png    
who:显示当前登录的用户有哪些
    who -H:显示头部
    sleep
    每隔5秒,就来查看hadoop是否已经登录,如果登录,显示其已经登录,并退出
wKioL1c4U0nz0GEBAAAk4-0Ju7o098.png

whoami:显示当前登录的用户    
last:显示/var/log/wtmp文件,显示用户登录历史及系统重启历史
    -n #:显示最近#次的相关信息
lastb:  /var/log/wtmp文件,显示用户错误的登录尝试
lastlog:显示每一个用户最近一次的成功登录的信息
    -u USERNAME:显示特定用户最近的登录信息

basename:取一个文件/路径的基名(文件名本身)
    $0:执行脚本时的脚本路径及名称
    
mail:邮件
    -s :邮件标题
    
    写邮件的两种方法:
    一、cat 文件路径 | mail "" 接收者
    eg: cat /etc/fstab | mail -s "How are you?" root
    二、mail "" 接收者 < 文件路径
    eg:mail -s "How old are you?" root < /etc/fstab
    

wKioL1c4U5uQaZUgAAEGV0J2_lk945.png

wKiom1c4UriAINsRAAD3YVO3dKY594.png


如果当前主机的主机名不是www.magedu.com,就将其改为www.magedu.com
    [ `houstname` != 'www.magedu.com' ] && houstname www.magedu.com
如果当前主机的主机名是localhost,就将其改为www.magedu.com
    [ `houstname` == 'localhoust' ] && houstname www.magedu.com
如果当前主机的主机名为空,或者为(none),或者为localhost,就将其改为www.magedu.com
    [ -z `hostname` ] || [`hostname` == 'n(none)' -o `houstname` == 'localhoust' ] && hostname www.magedu.com


生成随机数
    RANDOM:0-32768
随机数生成器
    /dev/random:会阻塞用户进程
    /dev/urandom:模拟生成随机数
wKiom1c4UtKzjYdXAADTyy6tZdo404.png

写一个脚本,利用RANDOM生成10个随机数,并找出其中最大值。
#!/bin/bash
#
declare -i MAX=0
declare -i MIN=0
for I in {1..10}; do
  MYRAND=$RANDOM
  [ $I -eq 1 ] && MIN=$MYRAND
  if [ $I -le 9 ]; then
    echo -n "$MYRAND,"
  else
    echo "$MYRAND"
  fi
  [ $MYRAND -gt $MAX ] && MAX=$MYRAND
  [ $MYRAND -lt $MIN ] && MIN=$MYRAND
done
echo $MAX,$MIN

控制结构:
    顺序结构
    选择结构
        if语句
        case语句
            case SWITCH in
            value1)//SWITCH值为1
                statement1
                ...
                ;;     //一定以";;"结尾
            value2)//SWITCH值为2
                statement2
                ...
                ;;
            *)//任意值
                statement
                ...
                ;;
            esac
    循环结构

        

wKioL1c4VC7wxTOZAABMaFQG7Z4662.png

wKioL1c4VDHjn-HvAABho47mvpc097.png


        写一个脚本,可以接受选项及参数,而后能获取每个选项,及参数的信息;
    并能根据选项及参数做出特定的操作
    比如:adminusers.sh --add tom,jerry
                        --del tom,blair
                        -v|--verbose -h|--help

wKioL1c4VBTiQNEPAABIV1Qg3xo403.png

wKioL1c4VBai_wPuAACmgN_E_o8132.png



终端类型:
    console:控制台(直接连接硬件设备的显示界面)
    pty:物理终端(VGA显卡)
    tty:虚拟控制台(VGA)
    ttys#:串行终端
    pts/#:伪终端