“第005课 linux进阶命令”的版本间的差异
Baiwen root(讨论 | 贡献) |
|||
(未显示2个用户的12个中间版本) | |||
第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 目录名 选项 查找条件 | ||
+ | |||
举例1: | 举例1: | ||
第16行: | 第20行: | ||
说明: | 说明: | ||
− | + | ||
− | + | a)<code>/work/001_linux_basic/dira/</code>指明了查找的路径 | |
− | + | ||
+ | b)<code>-name</code>表明以名字来查找文件 | ||
+ | |||
+ | c)<code>"test1.txt"</code>就指明查找名为test1.txt的文件 | ||
+ | |||
举例2: | 举例2: | ||
第25行: | 第33行: | ||
说明: | 说明: | ||
− | + | ||
+ | a)查找指定目录下面所以以.txt结尾的文件,其中*是通配符。 | ||
+ | |||
举例3: | 举例3: | ||
第32行: | 第42行: | ||
说明: | 说明: | ||
− | + | ||
+ | a)查找指定目录下面是否存在dira这个目录,dira是目录名。 | ||
+ | |||
注意: | 注意: | ||
+ | |||
1)如果没有指定查找目录,则为当前目录。 | 1)如果没有指定查找目录,则为当前目录。 | ||
− | + | ||
− | + | <code>find . -name "*.txt"</code> 其中<code>.</code>代表当前路径 | |
+ | |||
+ | <code>find -name "*.txt"</code> 没加路径,默认是当前路径下查找 | ||
2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件 | 2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件 | ||
− | |||
+ | <code>find /home -mtime -2</code> 查找/home目录下两天内有变动的文件 | ||
+ | |||
+ | =002节_Linux进阶命令__grep命令 = | ||
+ | |||
+ | grep 命令: | ||
+ | |||
+ | 目的:使用grep命令来查找文件中符合条件的字符串 | ||
+ | |||
+ | 格式:grep [选项] [查找模式] [文件名] | ||
+ | |||
+ | |||
+ | 假设dira目录的test1.txt 和 dirb目录的test1.txt都含有如下内容: | ||
+ | aaa | ||
+ | AAAAAA | ||
+ | abc | ||
+ | abcabcabc | ||
+ | cbacbacba | ||
+ | match_pattern | ||
+ | nand->erase | ||
+ | |||
+ | 通过查找字符串,希望显示如下内容: | ||
+ | #所在的文件名----grep查找时默认已经显示目标文件名 | ||
+ | #所在的行号------使用-n选项 | ||
+ | |||
+ | 可以使用以下命令: | ||
+ | |||
+ | grep -rn "字符串" 文件名 | ||
+ | |||
+ | <code>r</code>(recursive):递归查找 | ||
+ | |||
+ | <code>n</code>(number):显示目标位置的行号 | ||
+ | |||
+ | 字符串:要查找的字符串 | ||
+ | |||
+ | 文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录 | ||
+ | |||
+ | |||
+ | 举例: | ||
+ | |||
+ | <code>grep -n "abc" test1.txt</code> 在test1.txt中查找字符串abc | ||
+ | |||
+ | <code>grep -rn "abc" * </code> 在当前目录递归查找字符串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 命令名/应用程序名 | ||
+ | |||
+ | |||
+ | 在终端上执行<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
通过查找字符串,希望显示如下内容:
- 所在的文件名----grep查找时默认已经显示目标文件名
- 所在的行号------使用-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 -czvf
与tar 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