欢迎各位兄弟 发布技术文章
这里的技术是共享的
# mkdir /var/swaptemp
# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
# mkswap LABEL=SWAP-FILE /var/swaptemp/swapfile
# /etc/fstab
# LABEL='MYDATA' /data ext3 defaults,acl 0 0
压缩,解压缩命令
压缩格式: gz,bz2,xz,zip, Z
adc(1)de(2) 12
压缩算法: 算法不同,压缩比也会不同:
压缩比:(压缩前的大小-压缩后的大小)/压缩前的大小
compress: FILENAME.Z (compress 压缩)
uncompress:
gzip: .gz 对文本文件压缩比大,压缩时会删除源文件(解压缩时会删除压缩文件)(可以不删,或压缩后重定向不用删除),不能压缩目录,指向目录时,会单独压缩目录里的每一个文件
gzip /PATH/TO/SOMEFILE 不能压缩目录, (可以多个文件,每个文件单独压缩)
-d: 表示解压缩 (相当于 gunzip) ( -d --decompress --uncompress Decompress 解压缩 )
-#: 1-9,指定压缩比,默认是 6 (压缩比小的话,速度快,完成后文件大)
-k: 保留源文件 (解压缩时也是保留源文件)(gzip 应该没有-k)
gunzip:
gunzip /PATH/TO/SOME_COMPRESS_FILE.gz 解压完成后会删除压缩文件
zcat /PATH/TO/SOMEFILE.gz (不解压的情况下,查看文本文件的内容)解压一个临时文件查看,关闭后,文件还是压缩的
bzip2: .bz2
比 gzip 有着更大的压缩比的压缩工具 (对大文件比gzip 优势明显得多,小文件可能还不如gzip)
使用格式近似
bzip2 /PATH/TO/SOMEFILE 不能压缩目录 压缩时会删除源文件(解压缩时会删除压缩文件)
-d: 表示解压缩
-#: 1-9,指定压缩比,默认是 6 (压缩比小的话,速度快,完成后文件大)
-k: 保留源文件 (解压缩时也是保留源文件)
bunzip2 /PATH/TO/SOME_COMPRESS_FILE.bz2 解压缩命令
bzcat /PATH/TO/SOMEFILE.bz2 (不解压的情况下,查看文本文件的内容)解压一个临时文件查看,关闭后,文件还是压缩的
https://mirrors.edge.kernel.org/pub/
https://mirrors.edge.kernel.org/pub/linux/
https://mirrors.edge.kernel.org/pub/linux/kernel/v3.0/
xz: .xz (主流.较新,压缩比更大,速度稍慢一点)
xz /PATH/TO/SOMEFILE 不能压缩目录 压缩时会删除源文件(解压缩时会删除压缩文件) (压缩比 比 gzip bzip2更大)
-d: 表示解压缩
-#: 1-9,指定压缩比,默认是 6 (压缩比小的话,速度快,完成后文件大)
-k: 保留源文件 (解压缩时也是保留源文件)
unxz /PATH/TO/SOME_COMPRESS_FILE.xz 解压缩命令
xzcat /PATH/TO/SOMEFILE.xz (不解压的情况下,查看文本文件的内容)解压一个临时文件查看,关闭后,文件还是压缩的
(xzdec 与 xzcat 一样)
xzdec (dec是 decompress 的简写 一般用不到,因为我们 已经有了unxz (或 xz -d)),只是万一别人用了,我们知道了解就行了
zip: 可以压缩一个目录 (既归档又压缩的工具) (压缩比小)
zip FILENAME.zip FILE1 FILE2 ...:压缩后不删除源文件
unzip FILENAME.zip
archive:归档,归档本身并不意味道压缩 (zip 既能归档,又能压缩)
tar : 归档工具 .tar 只归档,不压缩 我经常用 czvf (压缩归档) cxvf (解档,解压缩) (v表示可以看到解压或压缩的过程(详细信息))
tar 这个命令选项中短横线(杠)-是可以省略的
tar jcf /tmp/users.tar.bz2 /users/inittab 备份的时候会把 (/users/这个路径备份过来的)
tar xf /tmp/users.tar.bz2 -C ./ (-C表示解压到某个目录下)(
-C, --directory DIR
change to directory DIR
)
(tar在当前目录下压缩 比如 tar zcvf aaa.tar.gz aaa.txt 然后解压的时候就不会包含路径了,只看到aaa.txt
否则 假如 tar zcvf aaa.tar.gz /root/bbb/aaa.txt 解压的时候,会包含路径 .即 root/bbb/aaa.txt (当然不包含第一个斜杠)
)
-c :创建归档文件
-f FILE.tar:操作的归档文件 (-f 必须放在后面,因为要带参数)
-x:展开归档(还原归档)(解档)
--xattrs:归档时,保留文件的扩展属性信息(文件的扩展属性,acl存储文件扩展属性) 作备份时很关键
-t:不展开归档,直接查看归档了哪些文件
-zcf: 既归档,又压缩 归档并调用gzip压缩 创建的时候-z不能省
-zxf: 先解缩,后展开归档 调用gzip解压缩并展开归档 -z选项可省略
-jcf: 既归档,又压缩 归档并调用bzip2压缩 创建的时候-j不能省
-jxf: 先解缩,后展开归档 调用bzip2解压缩并展开归档 -j选项可省略
(这里-J好像红帽5不支持,红帽6支持)
-Jcf: 既归档,又压缩 归档并调用xz压缩 创建的时候-J不能省
-Jxf: 先解缩,后展开归档 调用xz解压缩并展开归档 -J选项可省略
cpio: 归档工具(与tar 功能差不多,更老) (红帽上cpio有些地方比tar能力更强,更适合)
练习:写一个脚本
从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件:
read (是bashshell 的内部命令) 把用户输入赋值给变量
-p "prompt" : 给出提示
-t # :等待多少秒,如果用户不输入的话 就自动往下执行
脚本编程
顺序结构
选择结构
if
case
循环结构
for (循环次数已知)
while (循环次数未知)
until
while循环:适用于循环次数未知的场景,要有退出条件
语法:
while CONDITION; do
statement
...
done
计算100以内所有正整数的和
提醒用户输字符串,自动变成大写,如果用户输的是 quit,则退出循环
while [ $STRING != 'quit' ]; do
done
xz,bz2,gz
归档
--xattrs
文件系统类型:
ext2
ext3
cat /proc/filesystems:查看当前内核所支持文件系统类型
任务计划
cron
at
batch
[root@ebs-22618 ~]# cp /var/log/messages ./
[root@ebs-22618 ~]# ls -la messages
-rw------- 1 root root 5561536 7月 28 08:53 messages
[root@ebs-22618 ~]# gzip messages
[root@ebs-22618 ~]# ls -l
[root@ebs-22618 ~]# ls -lh /var/log/messages
-rw------- 1 root root 5.4M 7月 28 08:51 /var/log/messages
[root@ebs-22618 ~]# ls -lh messages.gz
-rw------- 1 root root 447K 7月 28 08:53 messages.gz
[root@ebs-22618 ~]# gunzip messages.gz
[root@ebs-22618 ~]# ls -la
[root@ebs-22618 ~]# gzip messages
[root@ebs-22618 ~]# ls -la
[root@ebs-22618 ~]# gzip -d messages.gz
[root@ebs-22618 ~]# ls -la
[root@ebs-22618 ~]# gzip -9 messages
[root@ebs-22618 ~]# ls -lh
[root@ebs-22618 ~]# zcat messages.gz
[root@ebs-22618 ~]# ls -lh
[root@ebs-22618 ~]# ls
[root@ebs-22618 ~]# gzip -d messages.gz
[root@ebs-22618 ~]# ls
[root@ebs-22618 ~]# bzip2 messages
[root@ebs-22618 ~]# ls -la
[root@ebs-22618 ~]# bzip2 -d messages.bz2
[root@ebs-22618 ~]# ls -lh
[root@ebs-22618 ~]# man bzip2
[root@ebs-22618 ~]# bzip2 -k messages
[root@ebs-22618 ~]# ls -lh
[root@ebs-22618 ~]# mv messages messages.bak
[root@ebs-22618 ~]# bunzip2 messages.bz2
[root@ebs-22618 ~]# ls -lh
[root@ebs-22618 ~]# bzip2 messages
[root@ebs-22618 ~]# bzcat messages.bz2
# yun install xz (假如xz 没有安装的话)
安装前
[root@ebs-22618 ~]# cd /etc/yum.repos.d
[root@ebs-22618 yum.repos.d]# ls -lh
看有没有 server.repo (如果没有的话 可以使用 wget 下载)
[root@ebs-22618 yum.repos.d]# wget ftp://172.16.0.1/pub/gls/server.repo (这个yum 源好像不行)
把 instructor.example.com 改成 172.16.0.1 是防止 dns 解析不成功,导致命令无法执行
# yun install xz (假如xz 没有安装的话) (安装过程中 敲y确认安装)
[root@ebs-22618 ~]# man xz
[root@ebs-22618 ~]# ls -lh
总用量 6.1M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 291K 7月 28 08:53 messages.bz2
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
[root@ebs-22618 ~]# bzip2 -d messages.bz2
[root@ebs-22618 ~]# ls -lh
总用量 12M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw------- 1 root root 5.4M 7月 28 08:53 messages
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
[root@ebs-22618 ~]# xz messages
[root@ebs-22618 ~]# ls -lh
总用量 6.1M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 249K 7月 28 08:53 messages.xz
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
[root@ebs-22618 ~]# xz -d messages.xz
[root@ebs-22618 ~]# ls -lh
总用量 12M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw------- 1 root root 5.4M 7月 28 08:53 messages
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
[root@ebs-22618 ~]# xz messages
[root@ebs-22618 ~]# ls -lh
总用量 6.1M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 249K 7月 28 08:53 messages.xz
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
[root@ebs-22618 ~]# xzdec messages.xz (也是临时解压到屏幕上 (与 xzcat 一样))
[root@ebs-22618 ~]# ls -lh
总用量 6.1M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 249K 7月 28 08:53 messages.xz
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
[root@ebs-22618 ~]# man xzdec
[root@ebs-22618 ~]# xzdec -dk messages.xz > messages (-dk应该可以省略的) ( > messages 输出重定向表示结果生成了messages文件,也就是解压并保留原文件吧)
[root@ebs-22618 ~]# ls -lh
总用量 12M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw-r--r-- 1 root root 5.4M 7月 31 04:56 messages
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 249K 7月 28 08:53 messages.xz
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
[root@ebs-22618 ~]# zip test.zip test/* 好像 与 zip test.zip test/ 效果是一样的
adding: test/test1/ (stored 0%)
adding: test/test2/ (stored 0%)
[root@ebs-22618 ~]# ls -lh
总用量 12M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw-r--r-- 1 root root 5.4M 7月 31 04:59 messages
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 249K 7月 28 08:53 messages.xz
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 4 root root 4.0K 7月 31 05:07 test
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
-rw-r--r-- 1 root root 322 7月 31 05:09 test.zip
[root@ebs-22618 ~]# mv test test-bak
[root@ebs-22618 ~]# unzip test.zip
Archive: test.zip
creating: test/test1/
creating: test/test2/
[root@ebs-22618 ~]# ls -lh
总用量 12M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw-r--r-- 1 root root 5.4M 7月 31 04:59 messages
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 249K 7月 28 08:53 messages.xz
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 4 root root 4.0K 7月 31 05:14 test
drwxr-xr-x 4 root root 4.0K 7月 31 05:07 test-bak
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
-rw-r--r-- 1 root root 322 7月 31 05:09 test.zip
[root@ebs-22618 ~]# man tar
[root@ebs-22618 ~]# cd test
[root@ebs-22618 test]# ls
123 adb lxy6 sort.test test1.txt test2.txt test6.txt x12 xyz123
a hello123 sed.txt test1 test2 test3.txt test.txt xyz y123
[root@ebs-22618 test]# tar -cf test.tar test*.txt
[root@ebs-22618 test]# ls -lh test.tar 太大,因为tar本身包含元数据,相当于衣服包起来(衣服有份量),所有体积较大
总用量 36K
-rw-r--r-- 1 root root 0 7月 31 05:24 123
-rw-r--r-- 1 root root 0 7月 31 05:24 a
-rw-r--r-- 1 root root 0 7月 31 05:24 adb
-rw-r--r-- 1 root root 0 7月 31 05:24 hello123
-rw-r--r-- 1 root root 0 7月 31 05:24 lxy6
-rw-r--r-- 1 root root 0 7月 31 05:24 sed.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 sort.test
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test1
-rw-r--r-- 1 root root 0 7月 31 05:24 test1.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test2
-rw-r--r-- 1 root root 0 7月 31 05:24 test2.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 test3.txt
-rw-r--r-- 1 root root 0 7月 31 05:25 test6.txt
-rw-r--r-- 1 root root 10K 7月 31 05:32 test.tar
-rw-r--r-- 1 root root 0 7月 31 05:25 test.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 x12
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz123
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 y123
[root@ebs-22618 test]# rm -rf test*.txt
[root@ebs-22618 test]# ls -lh
总用量 36K
-rw-r--r-- 1 root root 0 7月 31 05:24 123
-rw-r--r-- 1 root root 0 7月 31 05:24 a
-rw-r--r-- 1 root root 0 7月 31 05:24 adb
-rw-r--r-- 1 root root 0 7月 31 05:24 hello123
-rw-r--r-- 1 root root 0 7月 31 05:24 lxy6
-rw-r--r-- 1 root root 0 7月 31 05:24 sed.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 sort.test
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test1
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test2
-rw-r--r-- 1 root root 10K 7月 31 05:32 test.tar
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 x12
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz123
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 y123
[root@ebs-22618 test]# tar -xf test.tar (要想引用归档文件名 必须用f选项,且f选项后必跟归档文件名)
[root@ebs-22618 test]# ls -lh
总用量 36K
-rw-r--r-- 1 root root 0 7月 31 05:24 123
-rw-r--r-- 1 root root 0 7月 31 05:24 a
-rw-r--r-- 1 root root 0 7月 31 05:24 adb
-rw-r--r-- 1 root root 0 7月 31 05:24 hello123
-rw-r--r-- 1 root root 0 7月 31 05:24 lxy6
-rw-r--r-- 1 root root 0 7月 31 05:24 sed.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 sort.test
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test1
-rw-r--r-- 1 root root 0 7月 31 05:24 test1.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test2
-rw-r--r-- 1 root root 0 7月 31 05:24 test2.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 test3.txt
-rw-r--r-- 1 root root 0 7月 31 05:25 test6.txt
-rw-r--r-- 1 root root 10K 7月 31 05:32 test.tar
-rw-r--r-- 1 root root 0 7月 31 05:25 test.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 x12
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz123
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 y123
[root@ebs-22618 test]# tar -tf test.tar 不打开看归档文件里面的东西
test1.txt
test2.txt
test3.txt
test6.txt
test.txt
[root@ebs-22618 test]#
[root@ebs-22618 test]# xz test.tar
[root@ebs-22618 test]# ls -lh
总用量 28K
-rw-r--r-- 1 root root 0 7月 31 05:24 123
-rw-r--r-- 1 root root 0 7月 31 05:24 a
-rw-r--r-- 1 root root 0 7月 31 05:24 adb
-rw-r--r-- 1 root root 0 7月 31 05:24 hello123
-rw-r--r-- 1 root root 0 7月 31 05:24 lxy6
-rw-r--r-- 1 root root 0 7月 31 05:24 sed.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 sort.test
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test1
-rw-r--r-- 1 root root 0 7月 31 05:24 test1.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test2
-rw-r--r-- 1 root root 0 7月 31 05:24 test2.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 test3.txt
-rw-r--r-- 1 root root 0 7月 31 05:25 test6.txt
-rw-r--r-- 1 root root 200 7月 31 05:32 test.tar.xz
-rw-r--r-- 1 root root 0 7月 31 05:25 test.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 x12
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz123
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 y123
[root@ebs-22618 test]# xz -d test.tar.xz
[root@ebs-22618 test]# ls -lh
总用量 36K
-rw-r--r-- 1 root root 0 7月 31 05:24 123
-rw-r--r-- 1 root root 0 7月 31 05:24 a
-rw-r--r-- 1 root root 0 7月 31 05:24 adb
-rw-r--r-- 1 root root 0 7月 31 05:24 hello123
-rw-r--r-- 1 root root 0 7月 31 05:24 lxy6
-rw-r--r-- 1 root root 0 7月 31 05:24 sed.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 sort.test
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test1
-rw-r--r-- 1 root root 0 7月 31 05:24 test1.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test2
-rw-r--r-- 1 root root 0 7月 31 05:24 test2.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 test3.txt
-rw-r--r-- 1 root root 0 7月 31 05:25 test6.txt
-rw-r--r-- 1 root root 10K 7月 31 05:32 test.tar
-rw-r--r-- 1 root root 0 7月 31 05:25 test.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 x12
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz123
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 y123
[root@ebs-22618 test]# rm -f test.tar
[root@ebs-22618 test]# tar -jcf test.tar.bz2 test*.txt
[root@ebs-22618 test]# ls -lh
总用量 28K
-rw-r--r-- 1 root root 0 7月 31 05:24 123
-rw-r--r-- 1 root root 0 7月 31 05:24 a
-rw-r--r-- 1 root root 0 7月 31 05:24 adb
-rw-r--r-- 1 root root 0 7月 31 05:24 hello123
-rw-r--r-- 1 root root 0 7月 31 05:24 lxy6
-rw-r--r-- 1 root root 0 7月 31 05:24 sed.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 sort.test
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test1
-rw-r--r-- 1 root root 0 7月 31 05:24 test1.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test2
-rw-r--r-- 1 root root 0 7月 31 05:24 test2.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 test3.txt
-rw-r--r-- 1 root root 0 7月 31 05:25 test6.txt
-rw-r--r-- 1 root root 165 7月 31 05:59 test.tar.bz2
-rw-r--r-- 1 root root 0 7月 31 05:25 test.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 x12
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz123
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 y123
[root@ebs-22618 test]# rm -f test*.txt
[root@ebs-22618 test]# tar -jxf test.tar.bz2
[root@ebs-22618 test]# ls
123 hello123 sort.test test2 test6.txt x12 y123
a lxy6 test1 test2.txt test.tar.bz2 xyz
adb sed.txt test1.txt test3.txt test.txt xyz123
[root@ebs-22618 test]# rm -f test*.txt
[root@ebs-22618 test]# tar -xf test.tar.bz2 (可以根据文件名后缀,展开的时候,自动根据后缀,来判定
是不是压缩了,自动找解压工具来解压缩的)
[root@ebs-22618 test]# ls
123 hello123 sort.test test2 test6.txt x12 y123
a lxy6 test1 test2.txt test.tar.bz2 xyz
adb sed.txt test1.txt test3.txt test.txt xyz123
[root@ebs-22618 test]# tar -jtf test.tar.bz2 (不解压,直接看里面的内容)
test1.txt
test2.txt
test3.txt
test6.txt
test.txt
[root@ebs-22618 test]# tar -tf test.tar.bz2 (不解压,直接看里面的内容,j可以省略)
test1.txt
test2.txt
test3.txt
test6.txt
test.txt
[root@ebs-22618 test]# man cpio
[root@ebs-22618 test]# file /boot/initramfs-2.6.32-696.el6.x86_64.img
/boot/initramfs-2.6.32-696.el6.x86_64.img: gzip compressed data, from Unix, last modified: Thu May 11 04:07:02 2017, max compression
[root@ebs-22618 test]# cp /boot/initramfs-2.6.32-696.el6.x86_64.img /root
[root@ebs-22618 test]# cd
[root@ebs-22618 ~]#
[root@ebs-22618 ~]# mv initramfs-2.6.32-696.el6.x86_64.img initramfs-2.6.32-696.el6.x86_64.img.gz
[root@ebs-22618 ~]# gzip -d initramfs-2.6.32-696.el6.x86_64.img.gz
[root@ebs-22618 ~]# ls -lh
总用量 65M
-rwxr-xr-x 1 root root 30K 5月 15 2017 centos
-rw------- 1 root root 54M 7月 31 06:33 initramfs-2.6.32-696.el6.x86_64.img
drwxrwxrwx 6 www www 4.0K 7月 6 09:01 inotify-tools-3.14
-rw-r--r-- 1 root root 351K 3月 14 2010 inotify-tools-3.14.tar.gz
-rwx------ 1 root root 1.1K 1月 10 2006 install.sh
-rw-r--r-- 1 root root 5.4M 7月 31 04:59 messages
-rw------- 1 root root 5.4M 7月 28 08:53 messages.bak
-rw------- 1 root root 249K 7月 28 08:53 messages.xz
crw-r--r-- 1 root root 66, 0 7月 15 08:55 mydev
crw-r----- 1 root root 66, 1 7月 15 08:57 mydev2
crw-r--r-- 1 root root 66, 3 7月 18 00:53 mydev3
drwxr-xr-x 8 root root 4.0K 7月 31 06:04 test
drwxr-xr-x 4 root root 4.0K 7月 31 05:07 test-bak
drwxr-xr-x 3 root root 4.0K 7月 17 06:02 testdisk-7.1
-rw-r--r-- 1 root root 113K 7月 24 02:43 test.txt
-rw-r--r-- 1 root root 322 7月 31 05:09 test.zip
[root@ebs-22618 ~]# file initramfs-2.6.32-696.el6.x86_64.img
initramfs-2.6.32-696.el6.x86_64.img: ASCII cpio archive (SVR4 with no CRC)
[root@ebs-22618 ~]# read NAME
abc
[root@ebs-22618 ~]# echo $NAME
abc
[root@ebs-22618 ~]#
[root@ebs-22618 ~]# read NAME
abc def
[root@ebs-22618 ~]# echo $NAME
abc def
[root@ebs-22618 ~]#
[root@ebs-22618 ~]# read NAME AGE
jerry 18
[root@ebs-22618 ~]# echo $NAME
jerry
[root@ebs-22618 ~]# echo $AGE
18
[root@ebs-22618 ~]#
如果变量和值的个数不相等,值比变量个数多, 前面一对一 后面全部给了最后一个变量
[root@ebs-22618 ~]# read NAME AGE
jerry 19 66 99
[root@ebs-22618 ~]# echo $NAME
jerry
[root@ebs-22618 ~]# echo $AGE
19 66 99
[root@ebs-22618 ~]#
如果变量和值的个数不相等,值比变量个数少, 前面一对一 后面为空
[root@ebs-22618 ~]# read NAME AGE
jerry
[root@ebs-22618 ~]# echo $NAME
jerry
[root@ebs-22618 ~]# echo $AGE
[root@ebs-22618 ~]#
[root@ebs-22618 ~]# vim sum.sh
#!/bin/bash
#
echo "Input two integer:"
read A B
echo $[$A+$B]
~
~
[root@ebs-22618 ~]# chmod +x sum.sh
[root@ebs-22618 ~]# ./sum.sh
Input two integer:
2 3
5
[root@ebs-22618 ~]# vim sum.sh
#!/bin/bash
#
echo -n "Input two integer:" #-n 紧接着后面不换行
read A B
echo "$A plus $B is: $[$A+$B]"
[root@ebs-22618 ~]# ./sum.sh
Input two integer:4 6
4 plus 6 is: 10
[root@ebs-22618 ~]#
[root@ebs-22618 ~]# vim sum.sh
#!/bin/bash
#
#echo -n "Input two integer:"
read -p "Input two integers: " A B # 这里使用 -p (prompt)直接提示
echo "$A plus $B is: $[$A+$B]"
~
[root@ebs-22618 ~]# ./sum.sh
Input two integers: 6 8
6 plus 8 is: 14
[root@ebs-22618 ~]# help read
[root@ebs-22618 ~]# vim sum.sh
#!/bin/bash
#
#echo -n "Input two integer:"
read -t 5 -p "Input two integers [ 100 and 1000 ]: " A B # 等5秒 ,看用户输入否,如果 超时,自动往下执行
[ -z $A ] && A=100
[ -z $B ] && B=1000
echo "$A plus $B is: $[$A+$B]"
~
[root@ebs-22618 ~]# ./sum.sh
Input two integers: 100 plus 1000 is: 1100
[root@ebs-22618 ~]# ./sum.sh
Input two integers [ 100 and 1000 ]: 5 7
5 plus 7 is: 12
[root@ebs-22618 ~]# vim myar.sh
#!/bin/bash
#
read -p "Three files: " FILE1 FILE2 FILE3
read -p "Destination: " DEST
tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3
~
[root@ebs-22618 ~]# chmod +x myar.sh
[root@ebs-22618 ~]# ./myar.sh
Three files: test/test1.txt test/test2.txt test/test3.txt
Destination: test/myartest
[root@ebs-22618 ~]# ls -lh test
总用量 32K
-rw-r--r-- 1 root root 0 7月 31 05:24 123
-rw-r--r-- 1 root root 0 7月 31 05:24 a
-rw-r--r-- 1 root root 0 7月 31 05:24 adb
-rw-r--r-- 1 root root 0 7月 31 05:24 hello123
-rw-r--r-- 1 root root 0 7月 31 05:24 lxy6
-rw-r--r-- 1 root root 143 7月 31 09:11 myartest.tar.bz2
-rw-r--r-- 1 root root 0 7月 31 05:24 sed.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 sort.test
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test1
-rw-r--r-- 1 root root 0 7月 31 05:24 test1.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:07 test2
-rw-r--r-- 1 root root 0 7月 31 05:24 test2.txt
-rw-r--r-- 1 root root 0 7月 31 05:24 test3.txt
-rw-r--r-- 1 root root 0 7月 31 05:25 test6.txt
-rw-r--r-- 1 root root 165 7月 31 05:59 test.tar.bz2
-rw-r--r-- 1 root root 0 7月 31 05:25 test.txt
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 x12
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 xyz123
drwxr-xr-x 2 root root 4.0K 7月 31 05:25 y123
[root@ebs-22618 ~]# tar -tf test/myartest.tar.bz2
test/test1.txt
test/test2.txt
test/test3.txt
[root@ebs-22618 ~]# vim myar.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 "Unknown."
exit 9;;
esac
[root@ebs-22618 ~]# vim while.sh
#!/bin/bash
#
declare -i I=1
declare -i SUM=0
while [ $I -le 100 ]; do
let SUM+=$I
let I++
done
echo $SUM
~
[root@ebs-22618 ~]# chmod +x while.sh
[root@ebs-22618 ~]# ./while.sh
5050
[root@ebs-22618 ~]# vim 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
[root@ebs-22618 ~]# chmod +x translate.sh
[root@ebs-22618 ~]# ./translate.sh
Input something: adb
ADB
Input something: hello
HELLO
Input something: quit
[root@ebs-22618 ~]#
[root@ebs-22618 ~]# vim detechhadoop.sh
#!/bin/bash
#
who | grep "hadoop" &> /dev/null
RETVAL=$?
while [ $RETVAL -ne 0 ]; do
echo "`date`, hadoop is not logged."
sleep 5
who | grep "hadoop" &> /dev/null
RETVAL=$?
done
echo "hadoop is logged in."
[root@ebs-22618 ~]# useradd hadoop
[root@ebs-22618 ~]# passwd hadoop
更改用户 hadoop 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@ebs-22618 ~]#
[root@ebs-22618 ~]# chmod +x detechhadoop.sh
[root@ebs-22618 ~]# ./detechhadoop.sh
2018年 08月 01日 星期三 02:34:42 CST, hadoop is not logged.
2018年 08月 01日 星期三 02:34:47 CST, hadoop is not logged.
2018年 08月 01日 星期三 02:34:52 CST, hadoop is not logged.
2018年 08月 01日 星期三 02:34:57 CST, hadoop is not logged.
当 hadoop 登录后 就显示 hadoop 登录了,然后程序就退出了