Day 5
文件压缩解压缩
压缩:类比于小容器装大文件
常见压缩档 > *.zip | zip 程序压缩打包的档案; (很常见,但是因为不包含文档名编码信息,跨平台可能会乱码) > *.rar | rar 程序压缩打包的档案;(在windows上很常见,但是是商业软件。) > *.gz | gzip 程序压缩的档案; (linux目前使用最广泛的压缩格式) > *.bz2 | bzip2 程序压缩的档案; > *.xz | xz 程序压缩的档案; > *.tar | tar 程序打包的资料,并没有压缩过; > ***.tar.gz | tar 程序打包的档案,其中并且经过 gzip 的压缩 (最常见)** > *.tar.bz2 | tar 程序打包的档案,其中并且经过 bzip2 的压缩 > ***.tar.xz | tar 程序打包的档案,其中并且经过 xz 的压缩 (新一代压缩选择)** > ***.7z | 7zip 程序压缩打包的档案(目前Linux主机上新的压缩方式)
zip bzip2 gzip xz (仅做了解)
zip
格式: zip 压缩文件名 文件名... zip -r 压缩文件名 目录名... 压缩目录以及目录下所有文件 zip -m 压缩文件名 文件名 压缩文件中添加文件 zip -d 压缩文件名 文件名 删除压缩文件中的文件 unzip 压缩文件名 解压 unzip -v 压缩文件名 解压显示详细信息
gzip
gzip gunzip=gzip -d #注意: 以上压缩之后原始文件就没有了。 格式:gzip 文件名 eg: gzip test1.txt 将test1压缩为test1.txt gzip -r dir1/ 将dir1目录下的文本文件进行压缩 gzip -c test2.txt > test2.txt.gz 压缩但保留原始文件 zcat 文件名.gz 查看压缩过的文本文件内容
bzip2
bzip2、bunzip2(=bzip2 -d)gzip有着更高的压缩率。 bzip2 -z man.config //将man.config以bzip2压缩,此时man.config变成man.config.bz2 bzip2 -c man.config > man.config.bz2 //将man.config用最佳的压缩比压缩,并保留原本的档案 bzip2 -d man.config.bz2 //将man.config.bz2解压缩,可用bunzip2取代bzip2 -d bunzip2 man.config.bz2 //将man.config.bz2解压缩 :bzcat(或者bzless) 文件名.bz2 //查看压缩过的文件内容
xz
xz、xz -d=unxz xz test1.txt unxz test1.txt.xz xz dir1/* 将目录下所有文件本文件分别进行压缩 xzcat test1.txt.xz zcat、zless、bzcat、bzless 不解压,显示压缩文件的内容
tar归档命令(重点掌握)
格式:tar [选项] 打包文件名 被打包的源文件或目录列表 tar [选项] 打包文件名 [-C 目标文件夹] 常用选项:
| 选项 | 功能 |
|---|---|
| c | 创建.tar格式的包文件 |
| x | 释放.tar格式的包文件 |
| t | 查看包中的文件列表 |
| v | 表示在命令执行时显示详细的提示信息 |
| f 包文件名 | 用于指定包文件名(选项f一般放在最后)。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名;当与-x选项一起使用时,则释放该选项指定的tar包文件 |
| p | 打包时保留文件及目录的权限 |
| z | 调用gzip程序,以gzip格式压缩或解压缩文件 |
| j | 调用bzip2程序,以bzip2格式压缩或解压缩文件 |
| J | 使用xz压缩(.tar.xz) xz的压缩率通常比bzip2更高 |
| -C 目录路径名 | 释放包时指定释放的目标的位置 |
| -P | 参数作用是保留绝对路径 |
-
创建(非压缩的)包文件 命令格式:tar -cvf 包文件名 要打包的目录或文件名列表
eg:
[root@localhost pub]# touch {1..10} [root@localhost pub]# ll total 0 -rw-r--r--. 1 root root 0 Dec 2 15:54 1 -rw-r--r--. 1 root root 0 Dec 2 15:54 10 -rw-r--r--. 1 root root 0 Dec 2 15:54 2 -rw-r--r--. 1 root root 0 Dec 2 15:54 3 -rw-r--r--. 1 root root 0 Dec 2 15:54 4 -rw-r--r--. 1 root root 0 Dec 2 15:54 5 -rw-r--r--. 1 root root 0 Dec 2 15:54 6 -rw-r--r--. 1 root root 0 Dec 2 15:54 7 -rw-r--r--. 1 root root 0 Dec 2 15:54 8 -rw-r--r--. 1 root root 0 Dec 2 15:54 9 [root@localhost pub]# tar -cvf 123.tar 1 2 3 1 2 3 [root@localhost pub]# ll total 12 -rw-r--r--. 1 root root 0 Dec 2 15:54 1 -rw-r--r--. 1 root root 0 Dec 2 15:54 10 -rw-r--r--. 1 root root 10240 Dec 2 15:55 123.tar -rw-r--r--. 1 root root 0 Dec 2 15:54 2 -rw-r--r--. 1 root root 0 Dec 2 15:54 3 -rw-r--r--. 1 root root 0 Dec 2 15:54 4 -rw-r--r--. 1 root root 0 Dec 2 15:54 5 -rw-r--r--. 1 root root 0 Dec 2 15:54 6 -rw-r--r--. 1 root root 0 Dec 2 15:54 7 -rw-r--r--. 1 root root 0 Dec 2 15:54 8 -rw-r--r--. 1 root root 0 Dec 2 15:54 9功能:将指定的一个或多个文件或目录备份生成为一个指定的包文件。
命令格式:tar -xvf 包文件名 释放.tar格式包文件中的内容
eg:
[root@localhost pub]# rm -rf 1 2 3 [root@localhost pub]# ll total 12 -rw-r--r--. 1 root root 0 Dec 2 15:54 10 -rw-r--r--. 1 root root 10240 Dec 2 15:55 123.tar -rw-r--r--. 1 root root 0 Dec 2 15:54 4 -rw-r--r--. 1 root root 0 Dec 2 15:54 5 -rw-r--r--. 1 root root 0 Dec 2 15:54 6 -rw-r--r--. 1 root root 0 Dec 2 15:54 7 -rw-r--r--. 1 root root 0 Dec 2 15:54 8 -rw-r--r--. 1 root root 0 Dec 2 15:54 9 [root@localhost pub]# tar -xvf 123.tar 1 2 3 [root@localhost pub]# ll total 12 -rw-r--r--. 1 root root 0 Dec 2 15:54 1 -rw-r--r--. 1 root root 0 Dec 2 15:54 10 -rw-r--r--. 1 root root 10240 Dec 2 15:55 123.tar -rw-r--r--. 1 root root 0 Dec 2 15:54 2 -rw-r--r--. 1 root root 0 Dec 2 15:54 3 -rw-r--r--. 1 root root 0 Dec 2 15:54 4 -rw-r--r--. 1 root root 0 Dec 2 15:54 5 -rw-r--r--. 1 root root 0 Dec 2 15:54 6 -rw-r--r--. 1 root root 0 Dec 2 15:54 7 -rw-r--r--. 1 root root 0 Dec 2 15:54 8 -rw-r--r--. 1 root root 0 Dec 2 15:54 9
-
创建带压缩的包文件 为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式: 命令:tar -c[z j|J] f 压缩包文件名 要备份的目录或文件名
-
列出包文件中的文件列表 命令:tar -t[v]f 包文件名
-
提取包文件到指定目录 格式:tar -x [z j|J] [v]f 包文件名 [ -C 目标位置]
文件查找
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等
which
基于环境变量路径开始匹配文件,查找的是可执行文件 echo $PATH
whereis
基于环境变量路径开始匹配文件,查看所有文件
locate
全盘搜索默认查找的是数据库中的数据文件,所以查找文件前线需要更新数据库
find 全盘搜索
语法格式:
find [查找路径] 寻找条件 操作
eg:
[root@localhost ~]# find / -name a.txt
[root@localhost ~]# find -name a.txt
find ../.. -name 4
find命令中的参数以及作用 这些参数可用作上面语法格式中的寻找条件
| 参数 | 作用 |
|---|---|
| -name | 匹配名称 inum 通过索引节点号搜索 |
| -perm 644 | 匹配权限(mode为完全匹配,-mode为包含即可) |
| -user | 匹配所有者 |
| -group | 匹配所有组 |
| -mtime -n +n | 匹配修改内容的时间(-4指小于等于4天内的文件名;+4,大于等于5天前的文件名;4指前4~5那一天的文件) -cmin |
| -atime -n +n | 匹配访问文件的时间 -amin |
| -ctime -n +n | 匹配修改文件权限的时间 -cmin |
| -nouser | 匹配无所有者的文件 |
| -nogroup | 匹配无所有组的文件 |
| -newer f1 ! -newer f2 | 匹配比文件f1新但比f2旧的文件 |
| --type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
| -size | 匹配文件的大小(-size +50KB为查找超过50KB的文件,而 -size -50KB为查找小于50KB的文件) |
| *-exec …… {}\; | 后面可跟用于进一步处理搜索结果的命令 -ok -print |
| -mindepth n | 从第 n级目录开始搜索 eg: /etc 的第三级子目录开始搜索。 find /etc -mindepth 3 |
| -maxdepth n | 表示至多搜索到第 n-1 级子目录。0当前目录 |
1.按照文件名搜索 find / -mtime -30
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 选项: -name: 按照文件名搜索 -iname: 按照文件名搜索,不区分文件名大小写 -inum: 按照 inode 号搜索 [root@kongd ~]# find /etc -name "host*" -print
2.按照文件大小搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 选项: -size [+|-]大小: 按照指定大小搜索文件 这里的“+”的意思是搜索比指定大小还要大的文件, “-”的意思是搜索比指定大小还要小的文 件
3.按照修改时间搜索 Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个 时间,我们也可以按照时间来搜索文件。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 find -atime n 指查找 24*n小时到24*(n+1)小时内访问过的文件。 72>=time>=48 find -atime -n 指查找 24*n小时内访问过的文件。 find -atime +n 指查找 24*(n+1)小时以上访问过的文件
10.24 00.00 10.2500.00
图中最右边为目前的时间,越往左边则代表越早之前的时间轴啦。 • +4代表大于等于5天前的档名: find /var -mtime +4 • -4代表小于等于4天内的文件档名:find /var -mtime -4 • 4则是代表4-5那一天的文件档名: find /var -mtime 4
命令类型
内置命令由主机的命令解释器(shell)提供
外置命令需要配置时间,相比于内置命令效率较低
type 命令名 可查看命令的路径
eg: [root@localhost ~]# type cat cat is hashed (/usr/bin/cat)
time 命令程序 可查看命令执行所需要的时间
eg: [root@localhost ~]# time cd / real 0m0.000s user 0m0.000s sys 0m0.000s [root@localhost /]# time touch a real 0m0.004s user 0m0.000s sys 0m0.003s 由此可见,外置命令执行时间要比内置命令的长(cd为内置命令,touch为外置命令)
查看命令帮助信息
1.命令 --help
2.help 命令
内置命令上面1、2都适用,外置命令只能用2
linux中命令匹配顺序
linux中命令匹配顺序:1别名-->2命令缓存-->3通过系统环境变量所定义的命令文件路径开始匹配
####
alias 命令别名
可对指定命令做别名定义
格式:
alias 别名=命令本身
eg:alias cc=touch
[root@localhost ~]# alias tm=time [root@localhost ~]# tm touch A real 0m0.002s user 0m0.001s sys 0m0.000s
eg: [root@localhost ~]# alias tm=‘echo "系统时间是`date | cut -d " " -f 4`"' 对长命令定义一个别名
unalias 命令别名 对命令取消别名定义
eg: [root@localhost ~]# unalias tm [root@localhost ~]# tm bash: tm: command not found...
alias 查看当前用户的所有命令别名
eg: [root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias xzegrep='xzegrep --color=auto' alias xzfgrep='xzfgrep --color=auto' alias xzgrep='xzgrep --color=auto' alias zegrep='zegrep --color=auto' alias zfgrep='zfgrep --color=auto' alias zgrep='zgrep --color=auto'
是否为环境变量下的可执行文件决定了命令是否能够执行
临时更改
vim /etc/bashrc 定义永久生效的别名,对系统中所有用户都生效
vim ~/.bashrc 定义永久生效的别名,对系统中当前用户生效


被折叠的 条评论
为什么被折叠?



