一、文件系统访问列表

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. Linux下系统时间函数、DST等相关问题总结(转)

    Linux下系统时间函数.DST等相关问题总结 下面这个结构体存储了跟时区相关的位移量(offset)以及是否存在DST等信息,根据所在的时区信息,很容易找到系统时间与UTC时间之间的时区偏移,另外根 ...

  2. mybatis 查询优化主子表查询之association和collection

    很多开发人员之所以编写出低效的应用,有一大原因是并不理解怎样编写高效的SQL.以订单查询为例,我们经常需要查询某个用户的订单以及订单明细,并且以树形方式展现如下: 对于这种性质的功能,很多开发人员的做 ...

  3. container(容器),injection(注入)

    1.container为什么会出现? 在书写程序的时候,我们常常需要对大量的对象引用进行管理.为了实现有效的归类管理,我们常常将同类的引用放置在同一数据容器中.由于数据容器中存放了我们随时可能需要使用 ...

  4. Spring Boot Log4j2 日志学习

    简介 Java 中比较常用的日志工具类,有: Log4j. SLF4j. Commons-logging(简称jcl). Logback. Log4j2(Log4j 升级版). Jdk Logging ...

  5. TensorFlow和Keras完成JAFFE人脸表情识别

    cut_save_face.py #!/usr/bin/python # coding:utf8 import cv2 import os import numpy as np import csv ...

  6. JS模态框 简单案例

    演示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8 ...

  7. 使用pandas的部分问题汇总

    pandas(我所用版本0.17)是一个强大数据处理库,在开发金融类系统中我应用到了pandas.Dataframe数据类型,它的数据结构类似一张图表(如下图所示),左边一列为index既行的索引: ...

  8. windows 和linux 文件互传

    1.sz +  文件   [拷贝到windows上] 2.rz + 文件 [拷贝到linux上]

  9. dilated convolutions:扩张卷积

    最近在阅读<Context Encoding for Semantic Segmentation>中看到应用了dilated convolutions. 扩张卷积与普通的卷积相比,除了卷积 ...

  10. 『Python CoolBook』使用ctypes访问C代码_上_用法讲解

    一.动态库文件生成 源文件hello.c #include "hello.h" #include <stdio.h> void hello(const char *na ...