一、文件系统访问列表

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. TLS握手、中断恢复与证书中心的原因

    在双方都拿到随机数A.B.C后,将会使用这三个随机数生成一个对话密钥,然后使用该对话密钥进行对称加密通信,这种方式我们可以看到,安全性取决于随机数C的加密,前面的几个都是明文传的,这里就取决于服务器的 ...

  2. jQuery图片无缝轮播

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. 【python】python嵌套循环内层循环只执行一次

    今天写了一个两个基因集找相同的基因然后输出这么个小程序就无论如何也跑不起来,原因出在循环嵌套上,这方面之前就出过问题,后来阴差阳错的就好了我也没太注意,但是最近这个问题严重制约了工作效率,我决心找到问 ...

  4. hdu 5382 GCD?LCM! - 莫比乌斯反演

    题目传送门 传送门I 传送门II 题目大意 设$F(n) = \sum_{i = 1}^{n}\sum_{j = 1}^{n}\left [ [i, j] + (i, j) \geqslant n \ ...

  5. HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统

    一.HAProxy简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点, ...

  6. 最短路模板|堆优化Dijkstra,SPFA,floyd

    Ⅰ:Dijkstra单源点最短路 1.1Dijkstra const int MAX_N = 10000; const int MAX_M = 100000; const int inf = 0x3f ...

  7. vuejs点滴

    博客0.没事的时候可以看的一些博客:https://segmentfault.com/a/1190000005832164 http://www.tuicool.com/articles/vQBbii ...

  8. 文件下载 路径中有中文 报错 提示 文件找不到 java.io.FileNotFoundException: http://192.168.1.141:8096/resources/card/comcard/????????/????????.png

    此问题主要是中文编码格式不对导致的,将路径中的中文部分设置下编码就可以啦 例如: String url =  "http://192.168.1.141:8096/resources/car ...

  9. icpc2018-焦作-E Resistors in Parallel-数论+大数

    http://codeforces.com/gym/102028/problem/E 定义n种电阻,阻值r[i]={ inf | i%d2==0 && d>1 ,   i | e ...

  10. 洛谷P1030求先序排列

    题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度≤8. 输入输出格式 输入格式: 2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列. 输 ...