练习:
1 创建一个5G的分区,文件系统为ext3,卷标为MYDATA,块大小为1024,预留管理
空间为磁盘分区为3%,要求开机后可以自动挂载至/data目录,并且自动挂载的
设备要使用卷标进行引用
2 创建一个本地回环文件/var/swaptemp/swapfile来用于swap;要求大小为512MB
卷标为SWAP_FILE,且开机自动启用此交换设备
# mkdir /var/swaptemp
# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
# mkswap LABEL=SWAP_FILE /var/swaptemp/swapfile
/etc/fstab
/var/swaptemp/swapfile swap swap defaults 0 0
3 上述第一问,如何让其自动挂载的同时启用ACL功能
/etc/fstab
LABEL='MYDATA' /data ext3 defaults,acl 0 0
访问控制列表(ACL)的权限控制方法,增加权限给其他用户或组别,而不单只是简单 的"other"或者是拥有者不存在的组别
压缩、解压目录
压缩格式:gz bz2 xz zip z
压缩算法:算法不同,压缩比也会不同
compress:FILENAME.z
uncompress:
xz bz2 gz(压缩文件)
gzip:.gz 压缩完会删除原文件,不能压缩目录(文本文件)
gzip /PATH/TO/SOMEFIEL
-d 解压缩
-# 1-9,指定压缩比,默认是6
gunzip:解压完后会删除原文件
gzip /PATH/TO/SOMEFIEL.gz
zcat /PATH/TO/SOMEFIEL.gz 不解压的情况,查看文本文件的内容
bzip2:.bz2
比gzip有着更大的压缩比的压缩工具,使用格式相似
bzip2 /PATH/TO/SOMEFIEL
-d
-# 1-9,指定压缩比,默认是6
-k 压缩时保留原文件
bunzip2 /PATH/TO/SOMEFIEL.bz2
bzcat
xz:.xz 压缩比最大
yum install xz
cd /etc/yum.repos.d
wget ftp://172.16.0.1/puv/gls/server.repos
xz /PATH/TO/SOMEFIEL
-d 解压缩
-# 1-9,指定压缩比,默认是6
-k 压缩时保留原文件
unxz
xzdec
xzcat
zip:压缩后不删除原文件,既归档又压缩的工具
zip FILENAME.zip FILE1 FILE2 ...
unzip
archive:归档,归档本身并不意味着压缩
tar:归档工具,只归档不压缩
-c:创建归档文件
-f FILE.tar:操作的归档文件 -cf联合用
-x:展开归档 tar -xf test.tar
--xattrs:归档时,保留文件的扩展属性信息
-t:不展开归档,直接查看归档了哪些文件
-zcf:归档并调用gzip压缩
-zxf:调用gzip并展开归档
-jcf:bzip2
-jxf:
-Jcf:xz
-Jxf:
tar -Jcf test.tar.xz test*.txt
高级版本红帽支持
解压可以省略压缩的字母 -z -j -J
查看tar -tf test.tar.bz2
cpio 做成归档或 展开归档,归档工具
read NAME
abc
echo $NAME
abc
vi sum.sh
#!/bin/bash
#
#echo -n "Input two intergers:"
read -t 5 -p "Input two intergers[1000 and 100]:"A B
[ -z $A ] && A=1000
[ -z $B ] && B=100
echo "$A plus $B is $[$A+$B]"
vi myark.sh
#!/bin/bash
#
read -p "Three files:"FILE1 FILE2 FILE3
read -p "Destination:"DEST
read -p "Compress[gzip|bzip2|xz]:"COMP
case $COMP in
gzip)
tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3 ;;
bzip2)
tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3 ;;
xz)
tar -cf ${DEST}.tar $$FILE1 $FILE2 $FILE3
xz ${DEST}.tar
;;
*)
echo "Unkown."
exit 9
;;
esac
read:
-p "PROMPT":给出提示
脚本编程:
顺序结构
选择结构
if
case
循环结构
for
while
until
while循环:适用于循环次数未知的场景
语法:
while CONDITION;do
statement
...
done
计算100以内的和
#!/bin/bash
#
declare -i I =1
declare -i SUM =0
while [ $I -le 100 ];do
SUM+=$I
let I++
done
echo $SUM
vi translate.sh
#!/bin/bash
#
read -p "Input something:" STRING
while [ $STRING != 'quit' ];DO
echo $STRING | tr 'a-z' 'A-Z'
read -p "Input something:" STRING
done
vi detect.sh
#!/bin/bash
#
who | grep "hadoop" &> /dev/null
RETVAL=#?
while [ $RETVAL -ne 0 ];do
echo "`date`,hadoop is not log"
sleep 5
who | grep "hadoop" &> /dev/null
RETVAL=#?
done
echo "hadoop is logged in."
xz message -> message.xz