首页 > 代码库 > 文件检索、压缩和归档
文件检索、压缩和归档
文件检索、压缩和归档
. 实验目标
熟练文件内容操作,压缩和归档,程序和文件检索
. 实验步骤
一.文件内容操作
1. 显示文件全部内容—— cat 命令
格式:cat 选项 文件名
命令选项 : -n —每一行显示行号包括空行
[root@localhost ~]# cat /etc/hosts //查看文件内容比较少的
[root@localhost ~]# cat -n /etc/hosts //每一行前显示行号
[root@localhost ~]# cat /root/install.log //显示文件全部内容
[root@localhost ~]# cat -n /root/install.log //-n每一行前显示行号
[root@localhost ~]# cat -n /etc/passwd //显示passwd行号
注:(1)cat查看文件不是目录
(2)查看文件内容比较少的
(3)内容较多时阅读不完整
2. More命令——可以分页显示
格式:more 选项 文件名
[root@localhost ~]# more /root/install.log //可以分页显示
[root@localhost ~]# type ls //指定命令
[root@localhost ~]# ls --help //命令帮助(外部)
[root@localhost ~]# ls --help | more //分页显示
[root@localhost ~]# cat /root/install.log | more //利用管道|对输出信息进行分页
[root@localhost ~]# more /root/install.log //分页显示
3. Less命令——分页显示(比more更全面)
格式:less 选项 文件名
[root@localhost ~]# less /root/install.log //使用less阅读大文件
4. head命令——默认显示文件头10行
格式:head -n 数字 显示头n行
[root@localhost ~]# head /etc/passwd //默认显示文件头十行
[root@localhost ~]# head -n 2 /etc/passwd //截取文件首2行
5. tail命令——默认显示文件尾10行
格式: tail -n 数字显示尾n行
[root@localhost ~]# tail /var/log/messages //默认显示文件尾10行
[root@localhost ~]# tail -n 2 /etc/passwd //截取文件尾2行
[root@localhost ~]# head -n 12 /etc/passwd | tail -n 5 //截取文
件中间8-12行
注:截取中间:先head截取前12行,在从截取的这12行尾数5行,去两者的交集
6. Wc命令——统计
格式: wc 选项 文件名
选项: -l 统计行号
[root@localhost ~]# wc /etc/passwd //统计
[root@localhost ~]# wc -l /etc/passwd //计算文本的总行数或统计有多少个用户账号
7. grep命令——输出包含指定字符串的行
格式:grep 选项 查找条件 目标文件
选项: -i忽略大小写
-v取反
^root以root开头
root$以root结尾
^$匹配空行
-E查找多个关键字,匹配其中任意一个都输出
[root@localhost ~]# ls -l /etc/*.conf | wc -l//目录下文件个数
[root@localhost ~]# cat /etc/hosts
[root@localhost ~]# grep 127.0.0.1 /etc/hosts//输出包含指定字符串
的行
[root@localhost ~]# grep --color 127.0.0.1 /etc/hosts//检索
[root@localhost ~]# grep -v 127.0.0.1 /etc/hosts //取反
[root@localhost ~]# grep root /etc/passwd//检索文本内容
[root@localhost ~]# grep Root /etc/passwd
[root@localhost ~]# grep -i Root /etc/passwd //忽略大小写
[root@localhost ~]# dmesg | grep eth //查看启动消息
[root@localhost ~]# dmesg | grep sda
[root@localhost ~]# grep "^#" /etc/hosts //^以……开头
[root@localhost ~]# grep -v "^#" /etc/hosts //除……
[root@localhost ~]# grep "bash$" /etc/passwd //$以……结尾
[root@localhost ~]# grep -v "^#" /etc/login.defs|grep -v "^$"
[root@localhost ~]# grep -Ev "^#|^$" /etc/login.defs //^$空行,
[root@localhost ~]# grep -c "/bin/bash$" /etc/passwd
//计算以/bin/bash$ 结尾的用户个数
[root@localhost ~]# grep -E "127.0.0.1|localhost6" /etc/hosts
//查看多个关键字,匹配其中任意一个都输出
二.压缩和归档操作
1.zip 压缩
格式:zip 压缩包名 被压缩的文件名
-r—指定对目录压缩
解压:
格式:unzip 文件名.zip解压缩
-d指定解压位置
[root@localhost ~]# ls -lh
[root@localhost ~]# ls -lh > gztest.txt
[root@localhost ~]# cat gztest.txt
[root@localhost ~]# zip gztest gztest.txt //压缩
[root@localhost ~]# ls -lh gztest*
[root@localhost ~]# rm gztest.txt
[root@localhost ~]# ls -lh gztest.txt
[root@localhost ~]# unzip gztest.zip //解压缩
[root@localhost ~]# ls -lh gztest.txt
[root@localhost ~]# mkdir bak
[root@localhost ~]# ls bak
[root@localhost ~]# unzip -d bak gztest.zip //指定解压位置
[root@localhost ~]# ls bak/
[root@localhost ~]# zip -r bak bak
[root@localhost ~]# rm -r bak
[root@localhost ~]# unzip bak.zip
注:解压后原文件仍保留
2. gzip命令
压缩
格式: gzip 文件名
解压缩
格式:gzip -d 文件名.gz
[root@localhost ~]# ls -lh gztest.txt
[root@localhost ~]# gzip gztest.txt //压缩
[root@localhost ~]# ls -lh gztest.*
[root@localhost ~]# gzip -d gztest.txt.gz //解压缩
[root@localhost ~]# ls -lh gztest.*
[root@localhost ~]# bzip2 gztest.txt //压缩
[root@localhost ~]# ls -lh gztest.*
[root@localhost ~]# bzip2 -d gztest.txt.bz2 //解压缩
[root@localhost ~]# ls -lh gztest.*
3. tar命令
制作归档
格式:tar 选项 归档文件 原文件或目录
释放归档
格式:tar 选项 归档文件 [-C目标目录]
选项:
-c创建tar包
-x解包
-t查看
-f使用归档文件
-z调用gzip
-j调用bzip2
-C指定解压位置
--remove打完包后删除原文件
tar -zcf xxx.tar.gz xxx调用gzip压缩
tar -jcf xxx.tar.bz2 xxx调用bzip2压缩
tar -ztf xxx.tar.gz查看xxx.tar.gz里面文件
tar -jtf xxx.tar.bz2查看xxx.tar.bz2里面文件
tar -zxf xxx.tar.gz解压xxx.tar.gz
tar -jxf xxx.tar.bz2解压xxx.tar.bz2
补充:
file查看文件格式
[root@localhost ~]# cd /opt/
[root@localhost opt]# rm -rf /opt/*
[root@localhost opt]# ls
[root@localhost opt]# mkdir test
[root@localhost opt]# cp /boot/* test/
[root@localhost opt]# cp -rf /boot/* test/
[root@localhost opt]# \cp -rf /boot/* test/
[root@localhost opt]# ls
[root@localhost opt]# tar -cf test.tar test/ //创建tar包
[root@localhost opt]# rm test.tar
[root@localhost opt]# tar -cvf test.tar test/ //创建并查看详细信息
[root@localhost opt]# tar -tf test.tar //查看包内使用归档文件
root@localhost opt]# gzip test.tar //压缩
[root@localhost opt]# ls
[root@localhost opt]# gzip -d test.tar.gz //解压缩
[root@localhost opt]# ls
[root@localhost opt]# rm test
[root@localhost opt]# rm -r test
[root@localhost opt]# rm -rf test
[root@localhost opt]# tar -xf test.tar//解开.tar格式的使用归档文件
[root@localhost opt]# ls
使用bzip2对test目录进行压缩...
[root@localhost opt]# tar -zcf test.tar.gz test //制作tar.gz包 文件
gzip
[root@localhost opt]# ls
[root@localhost opt]# tar -jcf test.tar.bz2 test//制作.tar.b2包 文件
bzip2
[root@localhost opt]# ls
[root@localhost opt]# file test.tar.gz //查看文件格式
[root@localhost opt]# file test.tar.bz2
[root@localhost opt]# ls
[root@localhost opt]# rm -rf test
[root@localhost opt]# tar -zxf test.tar.gz//解包
[root@localhost opt]# ls
[root@localhost opt]# ls -ld /root/test
[root@localhost opt]# tar -jxf test.tar.bz2 -C /root/ //释放
[root@localhost opt]# ls -ld /root/test
三.程序和文件检索
1. 执行命令路径的变量PATH
echo $PATH查看PATH的值
作用:
执行任何命令的时候会去从PATH的值(路径)中去搜寻是否有该命令。有就执行,
没有就告诉你找不到这个命令
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:
/root/bin
2. which命令——专门用于查找命令
格式:which [-a] 程序名
[root@localhost ~]# which ls cd //专门用于查找命令(外部命令)
3. locate命令——查找速度快,需要通过updatedb生成数据库
格式:locate 选项 关键字
[root@localhost ~]# updatedb //更新数据库
[root@localhost ~]# touch myhttpd.conf//新建
[root@localhost ~]# ls
[root@localhost ~]# locate myhttpd.conf //查找速度快
[root@localhost ~]# updatedb
[root@localhost ~]# locate myhttpd.conf //定位
[root@localhost ~]# rm myhttpd.conf
[root@localhost ~]# locate myhttpd.conf
[root@localhost ~]# updatedb
[root@localhost ~]# locate myhttpd.conf
4. find命令
格式:find [路径] [条件]
默认不指定路径,就是当前路径
-type 类型
f文件
d目录
l链接
b块设备文件
c字符设备文件
-name名字
-size 大小(单位c表示byte,k表示1024bytes)
+ 大于
-小于
-a多个条件同时满足
-o多个条件满足一条即可
-mtime 文件内容修改
n n为数字,意义在n天之前的“一天之内”被更改过的文件
+n 列出在n天之前(不含n天本身)被更改过的文件名
-n 列出在n天之内(含n天本身)被更改过的文件名
+4代表大于等于5天前的文件名 find /var -mtime +4
-4代表小于等于4天内的文件名 find /var -mtime -4
4则是代表4~5那一天的文件名 find /var -mtime 4
-exec command
eg: find /boot -size +2048k -exec ls -l {} \;
{}find找到的内容
-exec到\;代表find额外命令开始到结束
;特殊字符,需要转义
[root@localhost ~]# find /boot -type l
[root@localhost ~]# file /boot/grub/menu.lst
[root@localhost ~]# ls -l /boot/grub/menu.lst
[root@localhost ~]# find /boot -type d//查找类型 d目录
[root@localhost ~]# find / -name passwd
[root@localhost ~]# find / -name *passwd* //只要passed全部查找
[root@localhost ~]# find / -name *passwd //查找passwd结尾
[root@localhost ~]# find / -name passwd* //查找passwd.
[root@localhost ~]# find / -name passwd????//查找passwd后。。
[root@localhost ~]# find /etc -name "resolv*conf"//按文件名称查找
[root@localhost ~]# find /dev -type c -a -name "tty[1-3]"
//c字符设备 -a多个条件需同时满足
[root@localhost ~]# ls -lh /boot/*
[root@localhost ~]# find /boot -size +2M
[root@localhost ~]# cp install.log install.new
[root@localhost ~]# ls -lh install.???
[root@localhost ~]# find -name "install.???" -mtime +30查找30天
前 //按内容修改时间
[root@localhost ~]# find /boot -size +2M//大小 +大于 ,-小于
[root@localhost ~]# find /boot -size +2M -exec ls -lh {} \;
本文出自 “9255610” 博客,请务必保留此出处http://9265610.blog.51cto.com/9255610/1558281
文件检索、压缩和归档