1226

 

一.与磁盘有关的小知识
 1.FileSystem就像当予一个软件,
   Windows:FAT16,FAT32,ntfs,
   Linux:VFS(virtual filesystem) ----->虚拟文件系统就相当于一个机制,是一个虚拟接口,看上去我们好像给VFS打交

道,事实上,它只是一个代理,将其转换到磁盘上真正使用的系统。
      ext2,ext3,ext4,reiserfs,ntfs,jfs,xfs
   iso:关盘 iso9660
   NFS,SNBFS,GFS2,OCFS   ---->(这些事网络文件系统)

  2.磁盘是有N个数据块组成的,数据块又按照一定的数量分成组,所以组成了块组,每一个块组的块数是一样的
    对每个磁盘分区上面,第一个数据块不能使用,叫引导块,放的是引导文件系统的数据,不归文件系统管理
   每一个快组,前面都有一个Super block放的是所有磁盘上的描述信息,
  3.磁盘的组成:
   Boot Block:Block Group 0(块组):Block Group 1:Block Group Block Group 2,......
   引导块      块组

   Block Group:块组的组成
   Super Block:GDT:Block Bitmap:Inode Bitmap:Inode Table:Data Blocks
   超级块   块组描述符  位图                 索引节点表

   超级块:放的是整个文件系统的信息,全局描述信息
   块组描述符(GDT):描述本组信息,描述Inode Table,Data Blocks在哪里,
   位图(Block Bitmap):在这里可以查看磁盘块是否被用了,
   Inode Bitmap:用来存放所有的节点,包括可用的和已经用过的,用来快速定位inode是否被使用
   索引节点表(Inode Table):存放的是已经分配出去的节点号

二.与文件有关的知识
  1.连接:
   硬链接:两个文件名指向同一个inode号,但是,这两个文件必须在同一个分区上,相当一cp了一份
     删除一个硬链接,另一个连接文件没删,那么inode号还是存在的,那么源文件还是存在的
     当我们ll时,用户前面会有数字,就表示被硬链接的次数,目录一般是2,因为被父目录硬链接,文件一般是1
   软连接:创建了一个新文件,他自己有一个inode号,也有磁盘块,磁盘块内放的是它所指的文件的路径
          可以跨分区,相当于一个快捷方式,目录禁止硬链接,但不禁止软连接
  
   rm通常是删inode号的,而数据没有被删除
   mv:当在同一个分区时,把一个文件从一个目录剪切到另一个目录去,只是在inode表中建立一个对应关系;
      当不再同一个分区时,需要先把数据考到另一个分区上去,然后在建inode的对应关系

三.检查磁盘上的可用空间:Checking Free Space   (333页)
  1.du /etc   ---->显示该目录下的每一个文件大小
  2.du -s /etc  ---->显示该目录占用磁盘的总大小
  3.du -sh /etc   --->以人类易读的方式来显示
  4.# df -h   ---->以易读的方式来显示磁盘的利用情况
  5.# df -h /etc/  --->这显示的是目录的利用情况
  6.df -i   ---->显示inode号的利用率,用了多少,还剩多少

四.建立临时文件
  1./tmp --->这个目录存放的是临时文件,每隔一段时间就会清除过去30天不用的文件
  2.mktmp --->这是创建临时文件的命令
   eg:mktemp a.XX(大写)    --->这两个XX就是生成临时文件时,生成的随机数代替XX,所以我们连续生成两个这样的文

件不会重名,X个数不限

  3.# mktemp -d aa.XX   ----->创建临时目录
五.有关磁盘利用率的小知识
  1.df -l ---->查看磁盘的利用情况
  2.输出df -l 输出的磁盘分区挂在的家目录的命令
   df -l |grep -v "^/dev/[^[:space:]]*[[:space:]]*$" |cut -d'%' -f2 |grep -v -E "Mounted|/dev"
  解释:grep -v 是指取出查找到的相反的内容,即,是没有这一行的内容;[^[:space:]]*这表示匹配零个或多个非空格

的字符;[[:space:]]*$表示匹配空格零次或多次,并且,以空格结束的行;grep -v -E "Mounted|/dev"表示选择不匹配的

行,
 
  3.有关上面的小脚本
#!/bin/bash
#Author:Jerry
#Date & Time:2011-02-25 08:08:38
#Description:
TMP1=`mktemp /tmp/disk.XXXXXX`
df -l |grep -v "^/dev/[^[:space:]]*[[:space:]]*$" |cut -d'%' -f2 |grep -v -E "Mounted|/dev" >$TMP1

show_memu() {
 let I=1
 echo "*****Please choose an choice.***"
 while read LINE; do
  echo "$I $LINE"
   let I++
   done < $TMP1
}                                  #这个函数是为了输出行号的

show_memu

read -p "Your choice('Q' for quit):" CHOICE

select_line() {
  MYLINE=`head -n $1 $TMP1 | tail -1`     #这里读取的是第n行的最后一行
  df -lh | grep "$MYLINE$"                #这里后面的一个$是为了根,表示以根结尾
}

while [ $CHOICE!='Q' ]; do
 case $CHOICE in
  1) select_line 1 ;;                     #这里的1是形参
  2) select_line 2 ;;
  3) select_line 3 ;;
  Q) exit 0 ;;
 esac
 read -p "Your choice('Q' for quit):" CHOICE
 done
 rm -f $TMP1

五.表示颜色
  1.\033[nmSTRING \033[0m   --->这是表示颜色的格式
    \033[  ---->这表示颜色控制符
     nm  有三种表示方式:
    n要是个位数即:0-8,表示字体的
     0: 表示正常字体(reset to normal mode)
     1: 表示粗体(Set to bold intensity)
     2: 表示输出比较紧一点(set faint intensity)
     3: 表示斜体(use intalic font)
     4: 表示加单下划线(use single underline)
     5: 表示慢闪  (use slow blink)
     6: 表示快闪  (use fast blin)

  2.n要是双数时,
   eg:3n :表示前景色,即字体的颜色
      4n :表示背景色
    这里的n表示0-7
     0: 黑色(black)
     1: 红色(red)
     2: 橙色 (green)
     3: yellow
     4: blue
     5: magenta
     6: cyan
     7: while
 eg:# echo -e "\033[31mHow\033[0m"

六.压缩工具
  1. gzip/gunzip  .gz
     bzip2/bunzip2  .bz2
     zip/unzip .zip
     前两个只能压缩单个文件,不能压缩目录
  2.gzip    会删除源文件
     -d =gunzip
   bzip与gzip相同
  3.zip 可以压缩多个文件,不会删除源文件
 
  4.tar 归档
    tar -cf myfile.tar file1 file2 file3
    -x  展开归档
    -c  打包
    -t  查看tar文件内的内容
    -z  用gzip压缩
    -j  用bzip2压缩
    -f  指定文件名,位于参数的最后面
    -v  显示压缩过程中的详细过程

七.有关dialog的知识
   1.yum install dialog   ---->这是要安装的软件包
   2.dialog就类似于在纯字符界面下生成一个图形界面窗口的,当我们安装完成dialog之后,就会生成各种形式的窗体,

如:单选框,复选框,多选款等,我们称这些窗体为widget,
   3.dialog的格式
   dialog --common-options --boxType  "Text"  Height Width --box-specific-option
   关键字  公共选项        窗体类型  窗体中的内容 高 宽      

   eg:#dialog --backtitle “The first dialog box”  --title “Hello” --yesno “Is this your first dialog

box?” 7 25
   解释:dialog : 关键字 ;--backtitle:背景标题 --title:窗体的标题  --yesno:窗体的类型,后面的是窗体内容

7是高度,25是宽度

   4.dialog --print-maxsize  --->查看该窗体支持高度和宽度是多大
   5.dialog --colors --title "Delete a file?" --msgbox "\Z1Delete a file.\Zn" 7 26
    解释:\Z1Delete a file.\Zn这里的\Z表示显示颜色,1表示red,要想让\Z生效,必须要有--colors选项
  
    # dialog --backtitle "Test..." --title "About Name" --inputbox "Please input your name:" 8 30 2>

/tmp/inputbox.out
    解释:这是一个输入框,2> /tmp/inputbox.out这表示将在输入框里写入的东西重定向到文件里去

   # NAME=`dialog --stdout --backtitle "Test..." --title "About Name" --inputbox "Please input your name:" 8

30`
    解释:这个命令将输入框里输入的数据赋给变量,--stdout不让错误输出到标准错误输出,而是输出到标准输出上面去

,即,该处的变量上面
 
    6.input标签还支持
      --extra-button   用来增加按钮的,默认是两个,
      --extra-label string   用来显示增加的按钮上的字体是什么

    7.textbox 用窗口的形式显示文件的内容的
      --exit-label string   用来设置退出按钮上的信息
     eg:# dialog --title "Test file" --exit-label "tuichu" --textbox /etc/fstab 13 26

   8.menu 框
    dialog --menu text height width  menu-height tag1 item1 tag2 item2 …
    text :显示的是对话框里上面显示的信息,menu-height定义的是对话框里的菜单框高度,tag是指要选的内容前面的标

志;item是要选的内容
    eg:# dialog --title "AAAA" --menu "Give you choice" 12 42 5 1 "Display" 2 "Show" 3 "Exit"

  9.gauge 进度条的窗体
     dialog --gauge text height width  [<percent>]
    eg:# dialog --gauge "Percent" 6 30 50  -->这是静态的进度条
    下面是一个脚本,实现动态的进度条
#!/bin/bash
#Author:Jerry
#Date & Time:2011-02-25 12:45:34
#Description:
declare -i PERCENT=0            #声明变量

(
 for I in /etc/*; do
   if [ $PERCENT -le 100 ]; then
     cp -r $I /tmp/test 2> /dev/null
     echo "XXX"
     echo "Copy the file $I ..."    #显示在进度框上面
     echo "XXX"             #这与上面的echo "XXX"是为了定位中间的echo的位置的
     echo $PERCENT         #它才是进度条上面显示的数值
    fi
    let PERCENT+=1
    sleep 0.1
    done
) | dialog --title "Coping..." --gauge "Starting to copy files..." 6 50 0
    

本文出自 “linux小窝” 博客,转载请与作者联系!

你可能感兴趣的:(职场,学习笔记,笔记,休闲,1226)