一、文件系统访问列表

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. QT中显示gif图片方法

    movie = new QMovie(":/timg.gif"); movie->setScaledSize(QSize(,)); ui->giflabel->s ...

  2. 用java 集合和映射实现文章的单词数目统计

    package 一_统计字母出现; import java.io.File; import java.io.FileNotFoundException; import java.util.HashMa ...

  3. Linux+Jenkins环境搭建

    一.安装基础环境 1. yum -y install java-1.8.0-openjdk.x86_64 #安装1.8jdk 2. 查看java 版本 [root@localhost djanggo_ ...

  4. codeforces #305 C Mike and Foam

    首先我们注意到ai<=50w 因为2*3*5*7*11*13*17=510510 所以其最多含有6个质因子 我们将每个数的贡献分离, 添加就等于加上了跟这个数相关的互素对 删除就等于减去了跟这个 ...

  5. python爬虫——跟踪登录过程以及意外的发现(4)

    新浪微博的消息还是很多的,值得弄个账号去爬.不过都有账号了,还需要特意再搞一个吗? 直接上去跟踪.分别使用www和wap端登录: wap端相对简单,form表单都没有用到前面传的数据.但是我看到表单时 ...

  6. iptables 扩展匹配 第三章

    获取帮助: centos 6 :man iptables centos 7: man iptables-extensions 扩展匹配: 隐式扩展:当使用-p指定某一协议之后,协议自身所支持的扩展就叫 ...

  7. Python RabbitMQ消息持久化

    RabbitMQ消息持久化:就是将队列中的消息永久的存放在队列中.   处理方案: # 在实例化时加入durable=True来确认消息的实例化,客户端服务端都要写 channel.queue_dec ...

  8. mac忘记操作密码

    转载于:https://blog.csdn.net/wu110112/article/details/70312987 如果忘记mac登陆密码应该如何处理呢? 这里大家请勿着急,我来帮大家解决这个问题 ...

  9. 新建Maven项目建成后本应该有的src/main/java和src/test/java目录并没有出现:

    转自:http://www.cnblogs.com/dong-dong-dong/p/9565466.html 新建Maven项目建成后本应该有的src/main/java和src/test/java ...

  10. jQuery实现淘宝轮播图

    我爱撸码,撸码使我感到快乐大家好,我是Counter今天给大家分享的是利用jQuery来实现淘宝轮播图,揭开这层神秘的面纱,CSS样式就不做过多的赘述了,主要就是实现的原理,也就是jQuery,老样子 ...