【linux学习】打包压缩与搜索命令
打包压缩与搜索命令
tar命令
tar命令对文件进行打包压缩或者解压
tar 【选项】 【文件】
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或者解压 |
-j | 用Bzip2压缩或者解压 |
-v | 显示压缩或者解压的过程 |
-f | 目标文件名(必须放到参数的最后一位) |
-p | 保留原始的权限和属性 |
-P | 使用绝对路径来压缩 |
-C | 解压到指定目录 |
例:
压缩:
tar -czvf 压缩包名称.tar.gz 要打包的目录
解压:
tar -xzvf 压缩包名称
grep命令
用于在文本中执行关键词搜索,并显示匹配结果。
grep 【选项】 【文件】
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当做文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择-----仅列出没有“关键词”的行 |
-R | 递归查找目录下的所有文件 |
-C 6 | 显示查找到内容的上下6行 |
-B 6 | 显示上6行 |
-A 6 | 显示下6行 |
例:/etc/passwd中用户的登录终端被设置为/sbin/nologin。就不容许登录系统了。我们可以用grep命令查询哪些用户不可以登录。
find命令
用于按照指定条件来查找文件。
find 【查找路径】 寻找条件 操作
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天哪以内,+n指n天之前) |
-atime -n +n | 匹配访问文件的时间(-n指n天哪以内,+n指n天之前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天哪以内,+n指n天之前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但是比f2旧的文件 |
--type b/d/c/p/l/f | 匹配文件类型(依次表示块设备,目录,字符设备,管道,链接文件,文本文件) |
-size | 匹配文件大小(+50KB为查找超过50KB的文件,-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec ....... {} \ ; | 后面可跟用进一步处理搜索结果的命令 |
例:寻找/etc目录下的所有以host开头的文件列表
例:在整个系统中搜索权限中包括suid权限的所有文件,只需使用-4000.
管道符,重定向与环境变量
输入输出重定向
输入重定向
符号 | 作用 |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,直到遇见分界符才停止 |
命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 |
输出重定向
符号 | 作用 |
---|---|
命令 > 文件 | 将标准输出重定向到一个文件(清空原有数据) |
命令 2> 文件 | 将错误输出重定向到一个文件(清空原有数据) |
命令 >> 文件 | 将标准输出重定向到一个文件(追加到原有内容的后面) |
命令 2>> 文件 | 将错误输出重定向到一个文件(追加到原有内容的后面) |
命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出和错误输出共同写入到文件中(追加到原有内容的后面) |
管道命令符
把前一个命令原本要输出到屏幕的标准正常数据当做是后一个命令的标准输入。
命令行的通配符
sda* #以sda开头的所有文件 sda? #sda后还有一个字符的文件 【1-9】 # 匹配1~9的数字
常用的转义字符
转义字符 | 含义 |
---|---|
反斜杠(\) | 使反斜杠后面的变量变为单纯的字符串 |
单引号(‘’) | 转义其中所有的变量为单纯的字符串 |
双引号(“”) | 保留其中的变量属性,不进行转义处理 |
反引号(``) | 把其中的命令执行返回结果 |
例:$$的作用是显示当前进程ID,我们可以用反斜杠来解决这一问题