“第005课 linux进阶命令”的版本间的差异

来自百问网嵌入式Linux wiki
 
(未显示2个用户的11个中间版本)
第1行: 第1行:
  
=001节_Linux进阶命令__find命令 =
+
= 001节_Linux进阶命令__find命令 =
 
我们在Windows中搜索文件,一般查找文件需要传入两个条件:
 
我们在Windows中搜索文件,一般查找文件需要传入两个条件:
 +
 
1)在那些目录中查找;
 
1)在那些目录中查找;
 +
 
2)查找的内容;
 
2)查找的内容;
  
 
在Linux中,查找文件的也需要这两个条件,不同于Windows使用搜索框查找,Linux中使用 find 命令查找文件。
 
在Linux中,查找文件的也需要这两个条件,不同于Windows使用搜索框查找,Linux中使用 find 命令查找文件。
  
find 命令:
+
 
 +
find 命令:
 
*目的:查找符合条件的文件
 
*目的:查找符合条件的文件
 
*格式:  find    目录名    选项    查找条件
 
*格式:  find    目录名    选项    查找条件
 +
  
 
举例1:
 
举例1:
第16行: 第20行:
  
 
说明:
 
说明:
    a)/work/001_linux_basic/dira/`指明了查找的路径
+
 
    b)`-name 表明以名字来查找文件
+
a)<code>/work/001_linux_basic/dira/</code>指明了查找的路径
    c)`"test1.txt"`,就指明查找名为test1.txt的文件
+
 
 +
b)<code>-name</code>表明以名字来查找文件
 +
 
 +
c)<code>"test1.txt"</code>就指明查找名为test1.txt的文件
 +
 
  
 
举例2:
 
举例2:
第25行: 第33行:
  
 
说明:
 
说明:
a)查找指定目录下面所以以.txt结尾的文件,其中*是通配符。
+
 
 +
a)查找指定目录下面所以以.txt结尾的文件,其中*是通配符。
 +
 
  
 
举例3:
 
举例3:
第32行: 第42行:
  
 
说明:
 
说明:
a)查找指定目录下面是否存在dira这个目录,dira是目录名。
+
 
 +
a)查找指定目录下面是否存在dira这个目录,dira是目录名。
 +
 
  
 
注意:
 
注意:
 +
 
1)如果没有指定查找目录,则为当前目录。
 
1)如果没有指定查找目录,则为当前目录。
    find . -name "*.txt"`   其中`.`代表当前路径  
+
 
find  -name "*.txt"`   没加路径,默认是当前路径下查找
+
<code>find . -name "*.txt"</code>   其中<code>.</code>代表当前路径  
 +
 
 +
<code>find  -name "*.txt"</code>   没加路径,默认是当前路径下查找
 
 
 
2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件
 
2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件
  find /home -mtime -2   查找/home目录下两天内有变动的文件
+
 
 +
<code>find /home -mtime -2</code> 查找/home目录下两天内有变动的文件
  
 
=002节_Linux进阶命令__grep命令 =
 
=002节_Linux进阶命令__grep命令 =
  
grep 命令:
+
grep 命令:
> 目的:使用grep命令来查找文件中符合条件的字符串
+
 
> 格式:grep  [选项] [查找模式]  [文件名]
+
目的:使用grep命令来查找文件中符合条件的字符串
  
 +
格式:grep  [选项]  [查找模式]  [文件名]
  
假设dira目录的test1.txt和dirb目录的test1.txt都含有如下内容:
+
 
 +
假设dira目录的test1.txt 和 dirb目录的test1.txt都含有如下内容:
 
  aaa
 
  aaa
 
  AAAAAA
 
  AAAAAA
第62行: 第80行:
 
#所在的行号------使用-n选项
 
#所在的行号------使用-n选项
  
grep -rn "字符串"  文件名
+
可以使用以下命令:
r(recursive):递归查找
+
 
n(number):显示目标位置的行号
+
grep -rn "字符串"  文件名
 +
 
 +
<code>r</code>(recursive):递归查找
 +
 
 +
<code>n</code>(number):显示目标位置的行号
 +
 
 
字符串:要查找的字符串
 
字符串:要查找的字符串
 +
 
文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录
 
文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录
 +
  
 
举例:
 
举例:
grep -n "abc" test1.txt   在test1.txt中查找字符串abc
+
 
grep -rn "abc" *           在当前目录递归查找字符串abc
+
<code>grep -n "abc" test1.txt</code>  在test1.txt中查找字符串abc
 +
 
 +
<code>grep -rn "abc" * </code>      在当前目录递归查找字符串abc
 +
 
 
 
 
注意:
 
注意:
 +
 
1)可以加入-w全字匹配。
 
1)可以加入-w全字匹配。
 +
 +
= 003节_Linux进阶命令__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节_Linux进阶命令__which命令和whereis命令 =
 +
 +
which 和 whereis 命令:
 +
*目的:查找命令或应用程序的所在位置
 +
*格式:which  命令名/应用程序名
 +
 +
 +
在终端上执行<code>pwd</code>实际上是去执行了<code>/bin/pwd</code>
 +
 +
 +
举例:
 +
which pwd    定位到/bin/pwd
 +
which gcc    定位到/usr/bin/gcc
 +
whereis  pwd  查找到可执行程序的位置/bin/pwd和手册页的位置/usr/share/man/man1/pwd.1.gz
 +
 +
=005节_Linux进阶命令__gzip命令和bzip2命令 =
 +
 +
== 压缩的概念 ==
 +
* 压缩的目的:
 +
在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。接受者接受文件后,解压即可。
 +
 +
 +
* 压缩的类型
 +
 +
有损压缩、无损压缩。
 +
<blockquote>
 +
a)有损压缩:
 +
如mp4视频文件,即使压缩过程中,减少了很多帧的数据,
 +
对观看者而言,也没有影响。当然mp3音乐文件也是有损压缩。
 +
 +
b)无损压缩:
 +
如普通文件的压缩,为了保证信息的正确传递,
 +
不希望文件经过压缩或解压后,出现问题。
 +
后面讲解的都是无损压缩。
 +
</blockquote>
 +
 +
 +
== Linux下常用的压缩命令 ==
 +
 +
* 单个文件的压缩(解压)使用gzip和bzip2
 +
 +
* 多个文件和目录使用tar 
 +
 +
gzip的常用选项:
 +
-l(list) 列出压缩文件的内容
 +
-k(keep) 在压缩或解压时,保留输入文件。
 +
-d(decompress) 将压缩文件进行解压缩
 +
 +
1)查看
 +
 +
gzip  -l 压缩文件名
 +
 +
比如: <code>gzip -l pwd.1.gz</code>
 +
 +
 +
2)解压
 +
 +
gzip -kd  压缩文件名
 +
 +
比如: <code>gzip -kd pwd.1.gz</code>
 +
该压缩文件是以.gz结尾的单个文件
 +
 +
 +
3)压缩
 +
 +
gzip -k  源文件名
 +
 +
比如:<code>gzip -k mypwd.1</code> 得到了一个.gz结尾的压缩文件
 +
 
 +
 +
注意:
 +
 +
1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,
 +
并删除原有的文件,所以说,推荐使用<code>gzip -k</code>来压缩源文件。
 +
 +
2)相同的文件内容,如果文件名不同,压缩后的大小也不同。
 +
 +
3)gzip只能压缩单个文件,不能压缩目录。
 +
 +
 +
提示:
 +
 +
<code>man pwd</code>会解压<code>/usr/share/man/man1/pwd.1.gz</code>这个文件,
 +
然后读取该文件中固定的格式的一些信息,然后显示到终端中。
 +
 +
 +
* bzip2来压缩单个文件
 +
 +
bzip2的常用选项:
 +
 +
-k(keep) 在压缩或解压时,保留输入文件。
 +
-d(decompress) 将压缩文件进行解压缩
 +
 +
1)压缩
 +
 +
bzip2  -k  源文件名
 +
 +
比如:<code>bzip2 -k mypwd.1</code>
 +
得到一个.bz2后缀的压缩文件
 +
 +
 +
2)解压
 +
 +
bzip2  -kd  压缩文件名
 +
 +
比如:<code>bzip2 -kd mypwd.1.bz2</code>
 +
 +
 +
注意:
 +
 +
1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,
 +
并删除原有的文件,所以说,推荐使用<code>bzip2 -k</code>来压缩源文件。
 +
 +
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  压缩文件名  目录名
 +
 +
如: <code>tar czvf dira.tar.gz  dira</code>
 +
 +
注意:<code>tar  -czvf</code>与<code>tar  czvf</code>是一样的效果,所以说,后面统一取消-。
 +
 +
 +
2)查看
 +
 +
tar tvf  压缩文件名
 +
 +
如:<code>tar tvf dira.tar.gz</code>
 +
 +
 +
3)解压
 +
 +
tar xzvf 压缩文件名
 +
 +
tar xzvf 压缩文件名  -C  指定目录
 +
 +
如: <code>tar xzvf dira.tar.gz</code>    解压到当前目录
 +
 +
如: <code>tar xzvf dira.tar.gz  -C  /home/book</code>    解压到/home/book
 +
 +
 +
2.tar打包、bzip2压缩
 +
 +
1)压缩
 +
 +
tar cjvf  压缩文件名  目录名
 +
 +
如: <code>tar cjvf dira.tar.bz2  dira</code>
 +
 +
 +
2)查看
 +
 +
tar tvf  压缩文件名
 +
 +
如: <code>tar tvf dira.tar.bz2</code>
 +
 +
 +
3)解压
 +
 +
tar xjvf 压缩文件名
 +
 +
tar xjvf 压缩文件名  -C  指定目录
 +
 +
如: <code>tar xjvf dira.tar.bz2</code>    解压到当前目录
 +
 +
如: <code>tar xjvf dira.tar.bz2 -C  /home/book</code>  解压到/home/book
 +
 +
='''查看《《所有章节目录》》'''=
 
<categorytree mode=all background-color:white;">ARM裸机加强版</categorytree>
 
<categorytree mode=all background-color:white;">ARM裸机加强版</categorytree>
[[Category:ARM裸机加强版 ]]
+
[[Category:ARM裸机加强版 ]][[Category:LinuxBase]]

2019年12月26日 (四) 11:05的最新版本

001节_Linux进阶命令__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节_Linux进阶命令__grep命令

grep 命令:

目的:使用grep命令来查找文件中符合条件的字符串

格式:grep  [选项]  [查找模式]  [文件名]


假设dira目录的test1.txt 和 dirb目录的test1.txt都含有如下内容:

aaa
AAAAAA
abc
abcabcabc
cbacbacba 
match_pattern
nand->erase

通过查找字符串,希望显示如下内容:

  1. 所在的文件名----grep查找时默认已经显示目标文件名
  2. 所在的行号------使用-n选项

可以使用以下命令:

grep -rn "字符串"  文件名

r(recursive):递归查找

n(number):显示目标位置的行号

字符串:要查找的字符串

文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录


举例:

grep -n "abc" test1.txt 在test1.txt中查找字符串abc

grep -rn "abc" * 在当前目录递归查找字符串abc


注意:

1)可以加入-w全字匹配。

003节_Linux进阶命令__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节_Linux进阶命令__which命令和whereis命令

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节_Linux进阶命令__gzip命令和bzip2命令

压缩的概念

  • 压缩的目的:

在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。接受者接受文件后,解压即可。


  • 压缩的类型

有损压缩、无损压缩。

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只能压缩单个文件,不能压缩目录。


提示:

man pwd会解压/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 -czvftar czvf是一样的效果,所以说,后面统一取消-。


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