1.使用tar命令进行文件归档。
Linux 中的 tar
和 gzip
是两个不同的命令,用于不同的目的:
-
tar
:tar
是一个归档命令,用于将多个文件或目录组合成一个文件,通常称为 tarball。tar
本身不具有压缩功能,它只是将文件打包成一个单独的文件。你可以通过tar
命令创建 tarball,也可以使用它来解压缩已经存在的 tarball。常见的用法有:选项:c(创建)、v(详细)、x(提取)、t(⽬录)、f(⽂件)- 创建 tarball:
tar -cvf archive.tar file1 file2 directory1
- 解压缩 tarball:
tar -xvf archive.tar
- 列出 tarball 中的文件:
tar -tvf archive.tar
- 创建 tarball:
-
gzip
:gzip
是一个压缩工具,用于压缩文件。它通常与tar
结合使用,将 tarball 压缩为.tar.gz
或.tgz
格式的文件。gzip
压缩后的文件扩展名为.gz
。常见的用法有:- 压缩文件:
gzip filename
- 解压缩文件:
gzip -d filename.gz
- 压缩文件:
因此,如果你想要将文件或目录打包并压缩,可以首先使用 tar
创建 tarball,然后使用 gzip
将其压缩。
问题:如果直接使用-cvf等参数,可能会在出结果时出现tar: Removing leading `/' from member names的warning,因为tar命令默认使用相对路径,在v-f中间(或者其他参数)加上P参数即可解决。
延伸
tar命令打包和解压,各常用参数的意思。
-
-z: 对单个tar包进行压缩,只有对.gz文件进行操作时使用。如:
#解压.gz文件 tar zxf jdk-8u241-linux-x64.tar.gz #打包并压缩至.gz文件 tar zcf jdk-8u241-linux-x64.tar.gz jdk8
-
-x: 建立一个解压文件的指令
-
-c: 建立一个压缩文件的指令
-
-f: 添加一个参数名称,通常是参数中最后一个位置,后加参数名。
-
-C(大写): 指定解压路径,如此路径不存在,则解压不成功。
例如:tar zxf jdk-8u241-linux-x64.tar.gz -C /usr/local/pppp/
假如/usr/local/pppp/文件夹不存在,此解压不会成功。
-
-p(小写): 使用原文件的原来属性,不改变属主、权限等属性。
-
-v: 显示详细进度,但是太多了,一般不打,除非排错。
-
-j: 对单个tar包进行压缩,只有对.bz2文件进行操作时使用。
使用方法类似于-z。例如:
-
$tar -cvf tarfile ⽂件+
将多个⽂件捆绑到⼀个 tar ⽂件中,通常使⽤扩展名 .tar。
$tar -xvf tar ⽂件
解压⼀个 tar ⽂件并恢复原始⽂件
$tar -tvf tar ⽂件 检查 tar ⽂ 件的内容
-
2.文件压缩:gzip
$ gzip [选项] ⽂件*
参数:
‐d:解压。 ‐l:打印压缩⽂件中的⽂件信息(压缩⼤⼩、压缩率)。 ‐r:压缩所有⼦⽬录。 ‐v:压缩或解压时,输出压缩率和⽂件名。
$ gzip ‒d ⽂件.gz*
压缩包恢复压缩⽂件。
$gunzip ⽂件.gz*
压缩包恢复压缩⽂件。
使⽤⽰例
$ tar -cvf src.tar *
$ gzip src.tar
重点:如何使⽤
将这些⽂件捆绑到⼀个 tar ⽂件中,并使⽤ compress/gzip 对其进⾏压缩。
⽂件恢复:解压后,解压tar⽂件,恢复原⽂件。
3.Find命令 -exec参数
对所有搜索到的⽂件执⾏相同的操作(命令)
例如:
$ find . -name core -exec rm -i {} \;
$ find . -name *.c -atime +30 -exec ls -l {} \;
注意:-exec ....{}和前置参数间, \和{}间,必须留有空格
4.启动文件中的全局变量
对于环境设置,为环境变量设置适当的值。
$>环境变量名=字符串(没有空间)
例:
$> TERM=xterm
$> echo(回显) $TERM
xterm
注意!!在变量名前使⽤$才能得出变量的值,如果不使用$,只能得出变量名
4.1 检查环境变量命令:env
env
命令用于显示当前 shell 中所有的环境变量及其值。- 如果不带任何参数,
env
会列出所有环境变量及其值。如果提供了参数,env
会在执行给定的命令时设置环境变量。 - 示例:
env
,env PATH="/usr/bin:/bin" ls
4.2 导出变量命令:export
(通过export命令导出变量)环境变量作为可以制作出来,就是git shell
export
命令用于在当前 shell 中将变量标记为环境变量。环境变量可在当前 shell 中使用,并且在当前 shell 中创建的子进程中也可用。- 通过
export
命令设置的环境变量只在当前 shell 及其子进程中可见,并不会影响其他 shell 的环境。 - 示例:
export TEST="example"
总的来说,export
用于设置和导出环境变量,而env
用于显示当前环境中的所有环境变量或在特定环境下执行命令。
5.Shell转义函数(外壳逃脱)
5.1.命令替换:当执⾏⼀个命令时,会使⽤其他命令的执⾏结果。其他命令部分⽤反引号 (`) 括起来,注意不是单引号。
例:$ echo 当前⽬录中的⽂件数:`ls | wc -w` 当前⽬录中的⽂件 数:32
5.2.引号转移:使⽤引号极限替换函数(外壳逃逸)
单引号:对引号里的内容不进行转义,原样输出
双引号:对括号的内容中的转义符进行识别,转义后输出。
6.外壳脚本
那么 shell 脚本呢?
使⽤适当的命令和实⽤程序编写的简单程序。
脚本主要是解释型(cf、编译)
在脚本⽂件中指定 shell 脚本类型
6.1:在第⼀⾏以#!路径名的形式指定要使⽤的shell。
#!/bin/csh
# !/bin/ksh
# !/bin/bash
# !/bin/sh
6.2:如果第⼀⾏以 # 开头且未指定 shell 路径,则将其视为 C shell 脚本。 其他脚本则被视为 Bourne shell 脚本。
6.3:输入各种命令,保存后。使用chmod +x 文件名 获得运行权限
特别注意:运行sh文件时,需要加上路径名称,只有文件名,无法找到并使用该sh文件。