一、
1、/etc
 passwd
    用户:基本组,附加组
    USER、密码占位符、UID、GID(用户基本组)、用户附加信息、家目录、默认shell
 shadow(whatis shadow,man 5 shadow)
     登录名、密码、(1970元年开始)上次密码修改时间、密码最短使用期限、密码最长使用期限、离密码过期之前提示还有几天、非活动状态时间、绝对计时,帐号禁用时间、保留段
    md5,salt(种子,随机数)
    单向加密:定长输出,特征码,不可逆,雪崩效应
              md5,128
              sha1,160  
        注:!!没密码或被锁定  
 group
    组名、密码、GID、
 gshadow
 
 
 
用户:
管理员
系统用户
普通用户
组:
私有组
系统组
公共组

AUTHENTICATION认证
AUTHORIZATION 授权


useradd
   -u UID  >500
   -g  基本组
   -G 附加组     可多个,用,隔开
   -s shell类型
   -d  家目录
   -M 不为此用户创建家目录
   -m 强行创建家目录 常和-k搭配
   -c 用户说明信息
   -r 加入系统用户
chsh 改变用户默认shell

usermod
   -u
   -g
   -G -a(附加)一起用,附加组
   -s
   -d  -m改变家目录同时,把文件移过去
   -l 改变用户登录名
   -c 用户说明信息
   -e 用户过期时间  (年月日)
   -f 密码过期缓冲时间。期间提示改密码,过期则禁用
  
  
userdel
   -r 
 
passwd
   -l 锁定用户
   -u 解锁
   --stdin   脚本中echo '123' |passwd --stdin john
   -x 密码最长使用期限
   
groupadd
   -g GID
   -r 加入系统组
   
groupmod
   -g gid
   -n 改变组名
   
   
gpasswd
   
   
newgrp临时切换进入其他组,需要密码

 

 

  for I in {1..20}; do
          if ! cut -d: -f1 /etc/passwd|grep "^user${I}$" &> /dev/null; then
           useradd user$I
         let I++
         echo "user$I"|passwd --stdin user$I
  fi
  done
 
 
 
 
2、getopts
    shift 轮替    shift $[OPTIND-1]
 
 
free -m 显示Mem,Swap物理使用大小,以M显示    
   free -m | grep "^Mem" | awk '{print $3}'   
  
  
wait     

 


3、日志
/var/log/wtmp成功登录等信息<---last -n 最近n次记录
/var/log/btmp失败登录信息 <---lastb -n
lastlog 所有用户最近一次登录信息
lastlog -u root
watch -n 1 last -n 10 监控

4、umask  绝对不能有执行权限
umask 022   管理员 仅对当前shell有效
 umask 002  普通用户
touch aa
mkdir aa
  666-umask 文件
  777-umask 目录
  666-023=633+1=644
 
 
 
5、4:SUID   u,x位置上,s原有,S
  2:SGID   g,x,s,S
  1:STICKY粘滞位    o,x,t,T         /usr/bin/passwd
 
  chmod g+s
  chmod u+s
  chmod o+t
 
  chmod 1755 test
 
6、trap ‘command’ signal   信号捕捉   trap ‘echo “aa”’ SIGINT    17 18  1
  help trap
 
7、ARRAY=(a b c d)
echo ${ARRAY[0]}
 
 
A2[0]=6
A2[10]=100
echo ${A2[*]}
echo ${#A2[*]}显示数组中非空个数

$RANDOM 系统内置自动生成16位随机数
echo  $[$RANDOM%4] 0-3随机数

 


声明一数组,一组名字,然后随机抽取一位、随机2个。。。。
selectuser.sh -n    n为一次挑取的人数


grp=(a b c d)
INDEX=$[$RANDOM%4]
echo ${grp[$INDEX]}

for I in {1..20}
echo $[$RANDOM%4]
done

 


二、文件系统
1、
Windows:fat32、ntfs
Linux:VFS虚拟文件系统
    ext2、ext3、ext4、reiserfs
    jfs(IBM),xfs(SJI)-------UNIX
    iso9660光盘系统
    NFS(SUN),SMBFS,GFS2(集群文件系统),OCFS
    
    SuperBlock超级块
    GDT 块组描述符
    BlockBitmap位图,查看块儿的使用与否
    inodeBitmap 有多少inode号,使用与否
    inodeTable 索引节点,每一个文件对应一个inode号
    DataBlock
    
    
    
    目录:寻址路径
    
    /  rootfs  自引用
    DE 缓存
    
    连接
    硬连接:同一分区不同路径指向同一个inode 。不能跨分区
    软连接(符号链接):文件类型为l,大小为路径长度。另外一个路径。可以跨分区。可以指向目录

 

2、创建连接 ln -sv  s软连接v显示过程,默认为创建硬连接
    rm mv cp
    
    
    
    特殊文件:b c不占用空间大小,只占用一个inode,仅是访问设备的入口
    
    查看磁盘空间:
    baobab图形界面 
    du 磁盘利用情况
      -h/H 单位换算,默认KB
      -s  summarizes sub-directories instead
    df 磁盘空闲情况
      -h/H 单位换算
      -T   文件系统类型
      -i   inodes数目  
    
    
    
3、mktemp创建临时文件
       如:mktemp a.XX  XX随机分配数字
       MYFILE=`mktemp a.XX`
       mktemp -d DIR.XX创建临时目录
       
       
三、颜色控制
\033[nmSTRING \033[0m


四、
/dev接口,使用时需挂载
 IDE:/dev/hd*
 SCSI、SATA、USB:/dev/sd*
 
 
 
 /dev/sd[a-z][0-n]
 /dev/sda1主
 /dev/sda2扩展
 /dev/sda5逻辑1
 
 fdisk -l
 mount/umount
 sync
 
五、
 不能压缩目录:
 compress/uncompress   .Z    古老
 gzip/gunzip=gzip -d   .gz   压缩比1-9   压缩或解压缩后删除原文件        -c      >   .zip保留原文件
 bzip2/bunzip2      .bz2  压缩比更大            -k保留原文件
 能压缩目录:
 zip/unzip        .zip   zip a.zip  a  b  c ...
 归档打包工具:
 tar  
   -cf  file.tar  file1 file2 ...               c创建
   -xf 展开                    x展开
   -tf 查看                   t查看
   -v  显示过程
   -C 指定到..位置
   -zcf /-zxf        gzip
   -jcf /-jxf   bzip2
       
六、dialog

printf 指定格式显示信息
   \b 回删