一、文件系统访问列表

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. C++ Com控件调用

    1.假如我们创建的Com组件的工程名叫TestCom,在其中添加了一个接口叫MyCom,接口名会自动命名为IMyCom,在其中添加两个方法,分别为: HRESULT Add([in] long n1, ...

  2. vs2017 exe在Linux上运行

    1:将vs .netcore控制台项目发布打包(比如文件名为:demo2core.zip,以下会用到) 2:使用XShell软件连接Linux a.在linux上使用命令  id addr找出ip地址 ...

  3. Luogu P1892 P1525 团伙 关押罪犯

    (怎么都是抓罪犯 怪不得写法差不多) 团伙 关押罪犯 并查集.以"敌人的敌人是朋友"的思路来处理.所以增加一个e/E数组来存储敌人. 关押罪犯还用到了贪心的思路.将冲突值从大到小排 ...

  4. 【Maven】 Eclipse使用Maven创建Java Web 项目(一)

    需求:创建一个Servlet版本3.0,Java版本是1.7的Maven Web项目 创建环境: 系统:window 7 软件:Eclipse.Maven 创建步骤: 1.使用eclipse工具创建m ...

  5. python腾讯语音合成

    一.腾讯语音合成介绍 腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话. 腾讯TTS技术可以应用到很多场景,比如,移动APP语音播报新闻:智能设备语音提醒:依靠网上现有节 ...

  6. XGpio函数

    头文件 #include"xgpio.h" int XGpio_Initialize(XGpio * InstancePtr, u16 DeviceId) 功能:初始化GPIO 参 ...

  7. 洛谷 P1273 【有线电视网】

    题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点. 从转播站到转播站以及从 ...

  8. Monent.js:强大的日期处理类库

    一.介绍及安装 1.1 介绍 Moment.js是一个优秀的JavaScript 日期处理类库. 如果没有Moment.js之类的日期处理库,我们如果需要获得格式化后的日期.往往需要通过new Dat ...

  9. OpenGL.Tutorial16_ShadowMapping

    1. 2. In Tutorial 15 we learnt how to create lightmaps, which encompasses(包含) static lighting. While ...

  10. Ruby on Rails Tutorial 第一章笔记

    搭建开发环境 作者介绍了 Cloud9\ Coding.net 这样的云端开发环境 安装 Rails 1. 新建 rails 应用 首先,调用 rails new 命令创建一个新的 Rails 应用, ...