上节修改:

for I in `seq 0 $#`;do

  if [ $# -gt 0 ];then

    case

    esac

  fi

复习:

  $0 当前脚本的文件名

  $n 传递给脚本或函数的参数

  $# 传递给脚本或函数的参数个数

  $* 传递给脚本或函数的所有参数

  $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,

     与 $* 稍有不同

  $? 上个命令的退出状态,或函数的返回值

  $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

 

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

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

其中,-h选项只能单独使用,用于显示帮助信息;

 -c选项时,显示当前系统上登录的所有用户数;

 如果同时使用了-v选项,则既显示同时登录的用户数,又显示

     登录的用户的相关信息;如

     Logged users:4.

They are:

root tty2 Feb 18 02:41

  ....

vim showlogged.sh

#!/bin/bash

#

declare -i SHOWNUM=0

declare -i SHOWUSERS=0

for I in `seq 1 $#`;do

   if [ $# -gt 0 ];then

     case $1 in

       -h|--help)

          echo "Usage:`basename $0` -h|--help -c|--count -v|00verbose"`

          exit 0

          ;;

       -v|--verbose)

          let SHOWUSERS=1

          shift ;;

       -c|--count)

          let SHOWNUM=1  

          shift ;;

       *)

          echo "Usage:`basename $0` -h|--help -c|--count -v|00verbose"`

          exit 7

          ;;

      esac

    fi

done

if [ $SHOWNUM -eq 1 ];then

   echo "logged users: `who | wc -l`."

   if[ $SHOWUSER -eq 1 ];then

      echo "They are:"

      who

    fi

fi

磁盘管理:

机械式硬盘

  U盘 光盘 软盘 硬盘 磁带

solid

partition 分区

  创建独立的文件系统的

MBR  主引导记录 (0 磁道的512Byte)

    Master Boot Record

    Main Boot Record

划分3个片段:

   446bytes:BootLoader 程序

   64bytes:

     每16个字节标识一个分区

   2bytes: Magic Number

      标记MBR是否有效

主+扩展分区 <= 4

块位图:bitmap

inode(index node)

目录:inode  

      文件名

目录项 dentry

block group

硬链接 像这一种直接指向同一个inode的不同路径,他们彼此之间

       可以称作硬链接

  ls -l 显示的数字是硬链接的次数

 1、只能对文件创建,不能应用于目录

 2、不能跨文件系统

 3、创建硬链接会增长文件被链接的次数

符号链接

  1、可应用于目录

  2、可以跨文件系统

  3、不会增加被链接文件的链接次数

  4、其大小为指定的路径所包含的字符个数

ln [-s,-v] SRC DECT

  -v 可以显示过程

  -s 表示创建软连接

不带任何选项就是创建硬链接

ln -s  abc test/abc2

du 显示文件所占有的磁盘空间大小的

    -s 目录及目录中的子文件所占用的磁盘空间大小

    -h

df 显示整个磁盘分区的使用清况的

   -h 

   -i 显示整个磁盘分区inode的使用清况

   -P 不能放在同一行显示的,不换行显示