嵌入式技术论坛
直播中

韦东山

9年用户 578经验值
擅长:嵌入式技术 处理器/DSP 控制/MCU
私信 关注
[经验]

Linux进阶命令详解

首发平台:微信公众号baiwenkeji
这是新1期(ARM裸机1期加强版)的wiki连载第5课,文字无法全部完整记录视频信息,有点抽象,演示均见视频,付费课程,想看的不妨参加10元试看10天活动。可能有不对的地方,欢迎指正。
001_ find查找文本

我们在Windows中搜索文件,一般查找文件需要传入两个条件:
1)在那些目录中查找;
2)查找的内容;
在Linux中,查找文件的也需要这两个条件,不同于Windows使用搜索框查找,Linux中使用 find 命令查找文件。
find 命令:
*目的:查找符合条件的文件
*格式: find 目录名  选项   查找条件

举例1:
find /work/001_linux_basic/dira/  -name "test1.txt"
说明:
a)/work/001_linux_basic/dira/指明了查找的路径
b)-name 表明以名字来查找文件
c)"test1.txt" 指明查找名为test1.txt的文件
举例2:
find /work/001_linux_basic/dira/  -name "*.txt"   
说明:
a)查找指定目录下面所以以.txt结尾的文件,其中*是通配符。
举例3:
find /work/001_linux_basic  -name "dira"
说明:
a)查找指定目录下面是否存在dira目录,dira是目录名。

注意:
1)如果没有指定查找目录,则为当前目录。
find. -name "*.txt"  其中.代表当前路径
find-name "*.txt"  没加路径,默认是当前路径下查找
2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件
find/home -mtime -2 查找/home目录下两天内有变动的文件
002__grep查找字符串

grep 命令:
目的:使用grep命令来查找文件中符合条件的字符串
格式:grep  [选项]  [查找模式]  [文件名]  
假设dira目录的test1.txt 和 dirb目录的test1.txt都含有如下内容:
aaa AAAAAA abc abcabcabc cbacbacba match_pattern nand->erase
通过查找字符串,希望显示如下内容:
·        所在的文件名—-grep查找时默认已经显示目标文件名
·        所在的行号——使用-n选项
可以使用以下命令:
grep -rn “字符串” 文件名
r(recursive):递归查找
n(number):显示目标位置的行号
字符串: 要查找的字符串
文件名: 要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录
举例:
grep-n "abc" test1.txt 在test1.txt中查找字符串abc
grep-rn "abc" * 在当前目录递归查找字符串abc

注意:
1)可以加入-w全字匹配。
003__file查看文件类型

file 命令:
·        目的:识别文件类型
·        格式: file 文件名
在Linux中有一个非常重要的观点:”’Linux下一切皆文件”’。
举例:
file ~/.bashrc      ASCII 编码的text类型file ~/.vimrc       UTF-8 Unicode 编码的text类型file ~/Pictures/*   如图形文件JPEG/PNG/BMP格式file ~/100ask/      directory表明这是一个目录file /bin/pwd     出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件file /dev/*     出现character special(字符设备文件) block special(块设备文件)
004_ whichwhereis查看命令所在位置

which 和 whereis 命令:
*目的:查找命令或应用程序的所在位置
*格式:which 命令名/应用程序名
在终端上执行pwd实际上是去执行了/bin/pwd
举例:
which pwd 定位到/bin/pwd
which gcc 定位到/usr/bin/gcc
whereis pwd 查找到可执行程序的位置/bin/pwd和手册页的位置/usr/share/man/man1/pwd.1.gz

005__gzipbzip2单个文件的压缩和解压


·        压缩的目的:
在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。接受者接受文件后,解压即可。
·        压缩的类型
有损压缩、无损压缩:
a)有损压缩:如mp4视频文件,即使压缩过程中,减少了很多帧的数据,对观看者而言,也没有影响。当然mp3音乐文件也是有损压缩。 b)无损压缩:如普通文件的压缩,为了保证信息的正确传递,不希望文件经过压缩或解压后,出现问题。后面讲解的都是无损压缩。

Linux下常用的压缩命令##
·        单个文件的压缩(解压)使用gzip和bzip2
·        多个文件和目录使用tar
gzip的常用选项:
-l(list)  列出压缩文件的内容
-k(keep)  在压缩或解压时,保留输入文件。
-d(decompress) 将压缩文件进行解压缩

1)查看
gzip  -l 压缩文件名比如: gzip -l pwd.1.gz
2)解压
gzip -kd  压缩文件名比如: gzip -kd pwd.1.gz该压缩文件是以.gz结尾的单个文件
3)压缩
gzip -k  源文件名比如:gzip -k mypwd.1 得到一个.gz结尾的压缩文件
注意:
1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件, 并删除原有的文件,所以说,推荐使用gzip -k压缩源文件
2)相同的文件内容,如果文件名不同,压缩后的大小也不同。
3)gzip只能压缩单个文件,不能压缩目录。
提示:
manpwd会解压/usr/share/man/man1/pwd.1.gz这个文件,
然后读取该文件中固定的格式的一些信息,然后显示到终端中。
·        bzip2来压缩单个文件
bzip2的常用选项:
-k(keep)  在压缩或解压时,保留输入文件。
-d(decompress)  将压缩文件进行解压缩

1)压缩
bzip2 -k 源文件名
比如:bzip2 -k mypwd.1得到一个.bz2后缀的压缩文件
2)解压
bzip2  -kd  压缩文件名比如:bzip2 -kd mypwd.1.bz2       
注意:
1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件, 并删除原有的文件,所以说,推荐使用bzip2 -k来压缩源文件。
2)bzip2只能压缩单个文件,不能压缩目录。
*单个文件的压缩使用gzip或bzip2

压缩有两个参数:
1)压缩时间
2)压缩比
一般情况下,”’小文件使用gzip来压缩,大文件使用bzip2来压缩”’。
比如:
mypwd.1源大小是1477字节,
gzip压缩后mypwd.1.gz是877字节,
bzip2压缩后mypwd.1.bz2是939字节。
myls.1源文件大小7664字节,
gzip压缩后myls.1.gz是3144字节,
bzip2压缩后myls.1.bz2是3070字节。
gzip、bizp2只能对一个文件进行压缩,而不能对多个文件和目录进行压缩。
所以需要tar来对多个目录、文件进行打包和压缩。

tar常用选项
-c(create) 表示创建用来生成文件包
-x:表示提取,从文件包中提取文件
-t 可以查看压缩的文件。 -z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-j 使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-v (verbose)详细报告tar处理的信息
-f(file) 表示文件,后面接着一个文件名。
-C <指定目录> 解压到指定目录
1.tar打包、gzip压缩
1)压缩
tar -czvf   压缩文件名   目录名如: tar czvf dira.tar.gz  dira
注意:tar -czvf与tarczvf是一样的效果,所以说,后面统一取消-。
2)查看
tar tvf   压缩文件名如:tar tvf dira.tar.gz
3)解压
tar xzvf 压缩文件名tar xzvf 压缩文件名  -C  指定目录如: tar xzvf dira.tar.gz    解压到当前目录如: tar xzvf dira.tar.gz   -C  /home/book   解压到/home/book      
2.tar打包、bzip2压缩
1)压缩
tar cjvf   压缩文件名   目录名如: tar cjvf dira.tar.bz2  dira
2)查看
tar tvf   压缩文件名如: tar tvf dira.tar.bz2
3)解压
tar xjvf 压缩文件名tar xjvf 压缩文件名  -C  指定目录如: tar xjvf dira.tar.bz2  解压到当前目录如: tar xjvf dira.tar.bz2 -C  /home/book   解压到/home/book

回帖(1)

任红飞

2018-5-7 08:40:17
楼主整理的很好,辛苦了!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分