一、文件系统访问列表

FACL :Filesystem Access Control List    文件系统访问列表

利用文件扩展保存额外的访问控制权限。

setfacl: -m:设定访问控制权限  ( u:UID:perm     g:GID:perm)    -x:取消访问控制权限

getfacl:

二、用户的几个命令

w

who:显示登录到当前系统的用户有哪些

whoami

last :显示/var/log/wtmp文件,显示用户登录历史及系统重启历史。

-n #:显示最近#次的相关信息。

lastb:/var/log/btmp 文件,显示用户错误的登录尝试

-n #:

lastlog:显示每一个用户最近一次的成功登录信息。

-u USERNAME:显示某个指定用户的最近登录信息

basename :

$0 :执行脚本时的脚本路径及名称

mail:

生成随机数:  RANDOM  0-32768

内置的环境变量

随机数生成器:   /dev/random     /dev/urandom

生成10个随机数,然后显示这十个随机数中的最大值和最小值:

三、终端类型

console:控制台

pty:物理终端 (VGA卡连接)

tty#:虚拟终端 (VGA卡连接)

ttyS#:串行终端

pts/# :伪终端

shell:

四、面向过程

面向过程的控制结构:

顺序结构

选择结构

循环结构

1、选择结构:

if:单分支、双分支、多分支

(1)单分支
         if CONDITION;then

statement

...

fi

(2) 双分支

if CONDITION;then

statement

...

else

statement

...

fi

(3)多分支

if CONDITION1;then

statement

...

elif CONDITION2;then

statement

...

else

statement

....

if

2、case语句

case语句:选择结构

case SWITCH in

value1)

statement

...

;;

value2)

statement

...

;;

value3)

statement

...

;;

*)

statement

...

;;

esac

练习:

只接受参数 start,stop, restart,status其中之一

练习2:

写一个脚本,可以接受选项及参数,而后能获取每一个选项,及选项的参数;并能根据选项及参数做出特定的操作。比如:

adminusers.sh --add tom,jerry --del tom,jerry -v|--verbose -h|--help

1 #! /bin/bash

2 #

3 DEBUG=0

4 ADD=0

5 DEL=0

6

7 for I in `seq 1 $#`; do

8 case $1 in

9 -v|--verbose)

10   DEBUG=1

11   shift;;

12 -h|--help)

13   echo "Usage:`basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"

14   exit 0

15   ;;

16 --add)

17   ADD=1

18   ADDUSERS=$2

19   shift 2

20   ;;

21 --del)

22   DEL=1

23   DELUSERS=$2

24   shift 2

25   ;;

26 #*)

27 #  echo "Usage:'basename $0' --add USER_LIST --del USER_LIST -v|--verbose -h|help"

28 #  exit 7

29 #  ;;

30 esac

31 done

32

33 if [ $ADD -eq 1 ]; then

34   for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do

35     if id $USER &> /dev/null; then

36       [ $DEBUG -eq 1 ] && echo "$USER exists."

26 #*)

27 #  echo "Usage:'basename $0' --add USER_LIST --del USER_LIST -v|--verbose -h|help"

28 #  exit 7

29 #  ;;

30 esac

31 done

32

33 if [ $ADD -eq 1 ]; then

34   for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do

35     if id $USER &> /dev/null; then

36       [ $DEBUG -eq 1 ] && echo "$USER exists."

37     else

38       useradd $USER

39       [ $DEBUG -eq 1 ] && echo "Add user $USER finished."

40     fi

41   done

42 fi

43

44 if [ $DEL -eq 1 ]; then

45   for USER in `echo $ADDUSERS | sed 's@,@ @g'`;do

46     if id $USER &> /dev/null; then

47       userdel -r $USER

48       [ $DEBUG -eq 1 ] && echo "Delete $USER finished."

49     else

50       [ $DEBUG -eq 1 ] && echo "$USER not exist."

51     fi

52   done

53 fi

练习3、写一个脚本showlogged.sh ,其用法格式为:

showlogged.sh -v -c -h | --help

其中,-h 选项只能单独使用,用于显示帮助信息; -c选项时,显示当前系统上登录的所有用户数;如果同时使用了 -v选项,则既显示同时登录的用户数,又显示登录的用户的相关信息。

case语法的更多相关文章

  1. case语法练习脚本之判断

    case语法练习脚本之判断 #!/bin/bash read -p "请输入一个字符,并按enter键确认:" key case "$key" in [a-z] ...

  2. bash 中的case语法

    CASE语法格式备忘 case $variable-name in pattern1) command1 ... .... commandN ;; pattern2|pattern3|pattern4 ...

  3. Shell case语法结构解析

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 ...

  4. Verilog RTL优化策略(一):推荐使用assign语法替代if-else和case语法

    参考 <手把手教你设计CPU--RISC-V处理器篇> 先给出不用if-else和case的原因 Verilog中的if-else和case语法存在两大缺点: 不能传播不定态X: 会产生优 ...

  5. HiSql 实现case语法操作 新一代无实体ORM框架

    HiSql 实现case语法操作 在SqlServer,Oralce,Hana,PostGreSql,MySql 这些数据都支持SQL case语法,平常在实现业务开发中也会常用到,那么HiSql对于 ...

  6. SQL Server高级内容之case语法函数

    1.Case函数的用法  (1)使用类似:switch-case与if-else if. (2)语法: case [字段] when 表达式 then 显示数据 when 表达式 then 显示数据 ...

  7. [lua]尝试一种Case语法糖

    function CaseT(arg) function proxy(caller) caller.yield(r) end -- proxy return function (cond) if (c ...

  8. case语法2

    case流程控制语句在linux中有其独到的一面,使得在编程过程中能够在脚本编写的过程中具备多个选项功能,使其功能多样化,其具备简单,快速的特点. 一.case流程语句结构图 根据流程图可以知道,在所 ...

  9. shell case语法

    在阅读hadoop相关的脚本文件时,遇到case语句,好久不写shell,忘了不少,复习下shell的case语句:                             运行结果:         ...

  10. delphi中Case语法的使用方法

    Case 语句If...Then…Else 语句适合选项较少的情况,如果有很多选项的话利用If 语句就比较麻烦,在这种情况下,Case 语句就容易多了.Case 语句的语法如下: case <表 ...

随机推荐

  1. Hdu1241 Oil Deposits (DFS)

    Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...

  2. jquery首页图片轮播

    css样式 .bannerBox {position: relative;width: 100%;height: 348px;margin:0px auto;}.bannerBox .bannerLi ...

  3. 使用 mysqladmin debug 查看死锁信息

    使用 mysqladmin debug 查看死锁信息 mysqladmin -S /mysql/data/mysql.sock debug 然后在error日志中,会看到: 11 lock struc ...

  4. Html lable 标签

    Html lable 标签 <html> <body> <!-- label 关联光标标签,点击文字使得关联的标签获取光标.for="username" ...

  5. svn版本备份和恢复注意事项

    转帖的,因为我经常要用到,所以也在我的博客上记录一下:  注意:备份不备份日志,你想备份日志就要单独在客户端备了,具体步骤百度上都有 svn备份常用命令1.完全备份和增量备份svn.svnadmin  ...

  6. onchange 事件

    Event 对象 定义和用法 onchange 事件会在域的内容改变时发生. 语法 onchange="SomeJavaScriptCode" 参数 描述 SomeJavaScri ...

  7. Springboot学习笔记(一)-线程池的简化及使用

    工作中经常涉及异步任务,通常是使用多线程技术,比如线程池ThreadPoolExecutor,它的执行规则如下: 在Springboot中对其进行了简化处理,只需要配置一个类型为java.util.c ...

  8. UVA11995 I Can Guess the Data Structure!

    思路 简单题,用栈,队列,优先队列直接模拟即可 代码 #include <cstdio> #include <algorithm> #include <cstring&g ...

  9. 【Git】vs code+git 不使用ssh的链接remote server的方式

    git config --global user.name "dennis wu" git config --global user.email "email" ...

  10. Learning-MySQL【3】:数据类型和运算符

    一.数据类型 1.数值类型 为每张表的每个字段选择合适的数据类型是数据库设计过程中一个重要的步骤. 数字分为整数和小数.其中整数用整数类型表示,小数用浮点数类型和定点数类型表示. 浮点数类型包括单精度 ...