压缩和归档
打包:即归档,类似于旅游之前收拾行李
压缩:为了减少占用的磁盘空间,可以做备份,在网络上传输时节省网络带宽。
压缩其实是有级别的:1~9 1级别最低,速度最快,效率最低;9级别最高,速度最慢,效率 最高。 默认级别是6。
一.zip:
压缩后的文件一般以.zip结尾,可以压缩目录
压缩的语法: zip filename.zip file1 file2 ...
zip 压缩后的文件名 待压缩文件
压缩后不删除原文件
例如:[root@server150 acltest] #zip com.zip com.txt
adding:com.txt(deflated 99%)
解压缩: unzip
unzip -d:指定解压路径
gzip:
gzip压缩时,原文件消失,生成压缩文件
gzip /path/to/somefile
默认会删除源文件
gzip -d 解压缩
gzip -# 指定压缩比,压缩比越小,速度越大
gunzip /path/to/some_compress_file
zcat some_compress_file
不解压的情况下查看文本的压缩文件
例子:#cp /var/log/messages ./
gzip messages
默认后缀名:.gz
解压:gunzip
gzip的压缩包,在解压后,压缩包消失,解压后的文件出现。
bzip2:
默认情况下,压缩完成,
原文件也是消失的,压缩包必须以.bz2结尾的
通常能够生成比使用gzip压缩更小的文件(压缩比较高)
bzip2 /path/to/somefile
-d:解压
-#:指定压缩比
-k:保留原文件
bunzip2 /path/to/somefile
bzcat /path/to/some_compress_file 不解压查看
解压缩:bunzip2
xz 压缩比更大:
压缩 xz somefile
解压
unxz
或 xzdec
-d:解压
-k:保留原文件
-c:输入到屏幕
xzcat 不解压查看
tar ***: 既可以打包,又可以压缩
格式:tar 选项 包名 打包的文件或目录
//切记:一定要注意语法格式,先是打包后的名字,然后才是要打包的东西
tar: 归档工具, .tar
例如:tar -cf
-c: 创建归档文件
-f FILE.tar: 操作的归档文件
-x: 展开归档
--xattrs: 归档时,保留文件的扩展属性信息
-t: 不展开归档,直接查看归档了哪些文件
-C:解压时指定路径
-r:向包中追加文件
-p:保留权限信息
-v:显示详细过程
-zcf: 归档并调用gzip压缩
-zxf: 调用gzip解压缩并展开归档,-z选项可省略
-jcf: bzip2
-jxf:
-Jcf: xz
-Jxf:
二.打包压缩同时进行:
-z:表示使用gzip压缩方式压缩或者解压缩
-j:表示使用bzip2压缩方式压缩或者解压缩
-c:表示创建 --create
-v:显示详细过程
-f:指定文件,一般后面跟包名
-zcvf zcvf .tar.gz
-jcvf jcvf .tar.bz2
解包 .tar.gz .tar.bz2:
-zxvf zxvf
-jxvf jxvf
-C:指定解压路径
其他选项:
-t:不解包查看包中的内容
-r:向包中追加文件,不能追加压缩的文件
三.文件搜索:
which:用来查找命令的绝对路径
-- 显示shell命令的绝对路径
-- 仅仅会在PATH变量中搜索要查找的命令
-- 搜索时先查找别名,然后从PATH中查找
查看用户的PATH变量:命令的搜索路径
# echo $PATH
添加路径到PATH
临时修改PATH值
# PATH=$PATH:/tmp //$PATH:保留变量原有值
# echo $PATH
永久修改PATH值 工作中一定会用的
/etc/profile //全局配置文件,对所有用户生效
~username/.bash_profile //局部配置文件,只对特定用户生效
# vim /root/.bash_profile
PATH=$PATH:$HOME/bin:/tmp
上述文件不是即时生效的,正常情况下,它是用户登录时执行的。
# source /root/.bash_profile //重新读取配置文件,使修改生效
# echo $PATH
/usr/lib64/qt-
命令的别名: alias
查看当前系统中有哪些别名(root用户和普通用户的别名可能不一样)
# alias
设置命令的别名
临时
# alias vi='vim'
# vi /etc/passwd //执行vi时候,实际上执行的是vim
永久,改文件
1./root/.bashrc cp rm mv
2./etc/profile.d
colorls.sh
which2.sh
取消别名
[ profile.d]# unalias vi
[ profile.d]# vi /etc/passwd //没颜色了
locate
-- 通过文件名检索文件,检索速度最快
-- 所有能够检索的东西,都是存放在数据库中的
-- locate局限性,有的文件系统、有的文件及有的目录默认是不会搜索的
find *****:
-- 全局性搜索文件
-- 工作方式:沿着文件的层次结构依次向下搜索,找到符合条件的,打印或者是执行相应的操
作
语法格式:
find 要搜索路径 条件(选项) [动作]
基本例子:
# find /etc/ -name network
/etc/vmware-tools/scripts/vmware/network
/etc/sysconfig/network
/etc/rc.d/init.d/network
按条件查找:
按照文件名搜索
-name:按名字查找 *****
-iname:忽略大小写
通配符:* 代表任意字符
? 代表单个字符
查找/etc目录下,所有以.conf结尾的文件
# find /etc/ -name *.conf
查找/etc/目录下,以.conf结尾,名称是5个字符的
find /etc/ -name "?????.conf"
按照文件类型查找 -type -type 后面只能跟一个字母
f:普通文件
b c d l s p
# find /var -type l //查找/var目录下类型是软链接的文件
# ll `find /var -type l` //验证是否查找到的都是软链接
# find /tmp/ -type f
按照时间查找:
-atime n 以天为单位
-ctime n
-mtime n
-amin n 以分钟为单位
-cmin n
-mmin n
n为数字,前面可以带+或者-号 -mtime n
+n:n+1天之前
n:n到n+1天之间
-n:n天以内
查看文件的属性信: stat 文件名
1、--color 带颜色显示匹配到的关键字 [ loring ~]# grep --color root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
2、-i 忽略大小写 [ loring tmp]# grep --color -i root /find/passwd Root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
3、-v 取反
过滤出不包含nologin的行
[ loring tmp]# grep -v nologin /etc/passwd
4、^ 以某关键字开头
显示/root/.bashrc文件中的非注释行
[ loring tmp]# grep -v ^# /root/.bashrc
5、$ 以某关键字结尾
显示passwd文件中以sh结尾的行
[ loring tmp]# grep sh$ /etc/passwd
6、^$ 空行
显示/root/.bashrc文件中的非注释行和非空行
[ loring tmp]# grep -v ^# /root/.bashrc | grep -v ^$
7、-c count,统计匹配到的行数
[ loring tmp]# grep -c root /etc/passwd
2
8、 -l 一般和-r联用,只显示包含关键字的文件的名字,而不是显示文件内容
9、-r 递归检索
显示test目录下文件内容中含有root的文件名
[ loring tmp]# grep -rl root /test
10、-q quiet 静默输出 一般在写脚本时候用
[ loring tmp]# grep -q root /etc/passwd
[ loring tmp]# echo $? //$?表示上一条命令的执行结果
0
返回结果为0:表示上一条命令的执行时成功的
返回结果非0:表示上一条命令执行失败
11、-n 显示匹配行的行号
[ loring tmp]# grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
grep练习:
1、显示/etc/group文件中含有root的行
[ loring test]# grep root /etc/group
2、显示/etc/passwd文件中以rp开头的行
[ loring test]# grep ^rp /etc/passwd
3、显示/etc/group文件中不以:为结尾的行
[ loring test]# grep -v :$ /etc/group
4、显示/etc/rc.local文件中的空行,要求带行号
[ loring test]# grep -n ^$ /etc/rc.local