作用: 命令的分隔符 不管前面命令是否执行成功都会执行后面的命令
[root@ahui ~]#touch test.txt;ll test.txt;pwd -rw-r--r-- 1 root root 0 5月 12 09:00 test.txt /root
命令执行错误继续执行后面的命令
[root@ahui ~]#mkdi ahui;ll ahui;pwd -bash: mkdi: 未找到命令 总用量 0 /root [root@ahui ~]#mkdi ahui;ll ahui;pw -bash: mkdi: 未找到命令 总用量 0 -bash: pw: 未找到命令第二个符号: &&
作用: 前面的命令执行成功 才执行&& 后面的命令
[root@ahui ~]#mkdir ahui && ll ahui mkdir: 无法创建目录"ahui": 文件已存在 [root@ahui ~]# [root@ahui ~]#touch test.txt && ll test.txt && pwd -rw-r--r-- 1 root root 0 5月 12 09:04 test.txt /root [root@ahui ~]# [root@ahui ~]#touch test.txt && ll test.txtttt && pwd ls: 无法访问test.txtttt: 没有那个文件或目录
[root@ahui ~]#ll 总用量 0 drwxr-xr-x 2 root root 6 5月 12 09:01 ahui -rw-r--r-- 1 root root 0 5月 12 09:04 test.txt [root@ahui ~]#cd ahui && touch test.txt [root@ahui ~/ahui]#ll 总用量 0 -rw-r--r-- 1 root root 0 5月 12 09:05 test.txt第三个符号: ||
作用: 前面的命令执行失败 才执行后面的命令
[root@ahui ~]#touch test.txt|| ll test.txt||pwd [root@ahui ~]# [root@ahui ~]#touc test.txt|| ll test.txt||pwd -bash: touc: 未找到命令 -rw-r--r-- 1 root root 0 5月 12 09:07 test.txt [root@ahui ~]#touc test.txt|| ll test.txttttt ||pwd -bash: touc: 未找到命令 ls: 无法访问test.txttttt: 没有那个文件或目录 /root扩展举例: 如果目录不存在则创建
判断目录是否存在:使用 -d 判断test目录是否存在
[root@ahui ~]#[ -d test ] [root@ahui ~]#echo $? # 返回值0则成功 非0失败 1 [root@ahui ~]#[ -d test ] || mkdir test [root@ahui ~]#ll 总用量 0 drwxr-xr-x 2 root root 22 5月 12 09:05 ahui drwxr-xr-x 2 root root 6 5月 12 09:10 test文件压缩 为什么压缩:
- 不常用的文件占用磁盘空间(节约空间)
- 压缩后的文件发送到备份服务器
- 在发送的过程中减少磁盘IO
1个文件—> 发送给服务器 —> 和服务器建立连接 IO请求
1个文件建立1次IO请求 INPUT OUTPUT
1000个文件 建立1000次IO请求 造成磁盘压力大 导致负载高
把1000个文件打包成1个文件 建立1次IO减少IO操作
- 在压缩的过程中最消耗服务器的CPU
- 业务的低谷期压缩
- 业务的低谷期: 流量较少 访问量少
- 具体看公司的zabbix流量图 最低点进行备份
- 学习视频网站: 12点以后备份
- 游戏平台: 早上5点左右
- 小说平台: 早上5点左右
- 公司官网: 晚上12点后
- 电商平台: 早上5点左右
- 快播视频: 中午12点
命令格式:
命令 [参数选项] 压缩包名称.tar.gz 文件1 文件2 目录
命令 参数 筐子 黄瓜 香蕉 茄子
tar -zcvf package.tar.gz ahui.txt /etc/hosts
压缩目录会压缩里面所有内容
压缩的参数前面可以加- 也可以不加
参数选项:
-----------------------------------------------------
z # 使用gzip方式进行压缩
c # 使用create创建压缩包
v # 显示压缩的过程 verbose 可以省略
f # 指定文件
x # 表示解压 使用xf进行解压
t # 查看压缩的里面的文件名称 使用tf进行查看
C # 指定解压到哪个位置(默认解压到当前路径)
------------------------------------------------------
-P # 不提示从成员中删除/
–exclude # 排除文件
–exclude-from # 排除文件中的文件名
相对路径:
首先进入到/etc/目录
[root@ahui ~]#cd /etc [root@ahui /etc]#ll hosts -rw-r--r--. 1 root root 158 Jun 7 2013 hosts [root@ahui /etc]#tar zcvf hosts.tar.gz hosts hosts [root@ahui /etc]#ll hosts.tar.gz -rw-r--r-- 1 root root 166 May 12 09:44 hosts.tar.gz
绝对路径:
系统为了保护系统文件安全 使用绝对路径打包 会删除/
如果不删除解压后会覆盖源文件
例如压缩了/etc/hosts 如果不删除/ 则解压后的路径/etc/hosts 覆盖原来的文件
[root@ahui ~]#tar zcvf hosts.tar.gz /etc/hosts tar: Removing leading `/' from member names /etc/hosts [root@ahui ~]# [root@ahui ~]#tar tf hosts.tar.gz etc/hosts案例2: 不显示压缩过程
[root@ahui ~]#tar zcf all.tar.gz test test.txt [root@ahui ~]#ll total 8 -rw-r--r-- 1 root root 141 May 12 09:51 all.tar.gz 案例3: 同时打包多个文件 /etc/hosts /etc/passwd test.txt [root@ahui ~]#tar zcvf all.tar.gz /etc/hosts /etc/passwd test.txt tar: Removing leading `/' from member names /etc/hosts /etc/passwd test.txt案例4: 指定压缩包存放的位置 压缩后的文件放在/opt目录
[root@ahui ~]#tar zcvf /opt/all.tar.gz /etc/hosts /etc/passwd test.txt tar: Removing leading `/' from member names /etc/hosts /etc/passwd test.txt [root@ahui ~]#ll /opt/ -rw-r--r-- 1 root root 808 May 12 09:55 all.tar.gz案例5: 解压压缩包使用xf
[root@ahui /opt]#tar xf all.tar.gz [root@ahui /opt]#ll total 4 -rw-r--r-- 1 root root 808 May 12 09:55 all.tar.gz drwxr-xr-x 2 root root 33 May 12 09:57 etc -rw-r--r-- 1 root root 0 May 12 09:07 test.txt [root@ahui /opt]#ll etc/ total 8 -rw-r--r-- 1 root root 158 Jun 7 2013 hosts -rw-r--r-- 1 root root 1368 Nov 30 20:57 passwd
注意: 解压结果默认是解压到当前的所在路径 而不是压缩包所在的位置/opt
[root@ahui ~]#tar xf /opt/all.tar.gz [root@ahui ~]#ll total 0 drwxr-xr-x 2 root root 33 May 12 09:58 etc -rw-r--r-- 1 root root 0 May 12 09:07 test.txt案例6: 指定解压到固定的目录
将all.tar.gz 解压后的结果放到/opt目录 使用-C 指定
[root@ahui ~]#tar xf all.tar.gz -C /opt/ [root@ahui ~]#ll total 4 -rw-r--r-- 1 root root 808 May 12 09:55 all.tar.gz [root@ahui ~]#ll /opt/ total 0 drwxr-xr-x 2 root root 33 May 12 10:00 etc -rw-r--r-- 1 root root 0 May 12 09:07 test.txt案例7: 查看压缩包里的内容
使用-tf参数查看
[root@ahui ~]#tar tf all.tar.gz etc/services案例8: 排除压缩某个文件 exclude
[root@ahui ~]#mkdir ahui
[root@ahui ~]#cd ahui/
[root@ahui ~/ahui]#ll
total 0
[root@ahui ~/ahui]#touch {1..3}.txt
[root@ahui ~/ahui]#ll
total 0
-rw-r--r-- 1 root root 0 May 12 10:07 1.txt
-rw-r--r-- 1 root root 0 May 12 10:07 2.txt
-rw-r--r-- 1 root root 0 May 12 10:07 3.txt
压缩当前目录所有的.txt 文件
[root@ahui ~/ahui]#tar zcvf all.tar.gz ./* ./1.txt ./2.txt ./3.txt
压缩所有的.txt 只排除3.txt
[root@ahui ~/ahui]#tar zcvf exclude.tar.gz ./* --exclude=1.txt ./2.txt ./3.txt [root@ahui ~/ahui]#tar tf exclude.tar.gz ./2.txt ./3.txt
排除多个文件
[root@ahui ~/ahui]#tar zcvf exclude.tar.gz ./* --exclude=1.txt --exclude=2.txt ./3.txt
排除的多个文件名称可以写入到一个文件中 然后排除这个文件中的所有
[root@ahui ~/ahui]#cat file.txt 1.txt 2.txt
[root@ahui ~/ahui]#echo -e "1.txtn2.txt" > file.txt [root@ahui ~/ahui]#cat file.txt 1.txt 2.txt
[root@ahui ~/ahui]#cat file.txt 1.txt 2.txt [root@ahui ~/ahui]#tar zcvf all.tar.gz ./* --exclude-from=file.txt ./3.txt ./file.txt [root@ahui ~/ahui]#tar tf all.tar.gz ./3.txt ./file.txt文件属性(2) 文件权限、selinux相关 .
16819633 - rw-r--r-- . 1 root root 158 6月 7 2013 /etc/hosts -------- - --------- - - ---- ---- --- ------------ ----------- 1 2 3 4 5 6 7 8 9 10第三列:文件权限
作用: 决定了当前登陆用户对当前文件的权限
rw-r–r-- # 9位权限 三位为一组
rw- # 第一组权限位
r-- # 第二组权限位
r-- # 第三组权限位
r # read 读取文件 cat less more vim
w # write 写入文件 vim cat sed
x # excute 可执行文件 针对脚本(文件中是可执行命令而不是普通的字符)
-
# 表示没有权限
第一组权限位: 前三位 rw-
特点:
1)表示属主 文件的主人 谁创建的这个文件
2)创建这个文件的主人对这个文件拥有什么权限(默认拥有rw权限)
3)笔记本属于张三的 张三对这个笔记本拥有的就是rw权限
4)主人对这个文件拥有rw-权限
第二组权限位: 中间三位 r–
特点:
1)表示属组权限位 组内的成员对这个文件拥有的权限
2)张三的家人对这个笔记本拥有r权限 只读
3)小组成员对这个文件 只能查看 r权限
第三组权限位: 后三位 r–
特点:
1)表示其他用户的权限位 陌生人对这个文件拥有的权限
陌生人指的是 不是这个文件的主人 也没有在这个组内
2)老王对这个笔记本拥有只能查看 r权限
对于普通文件最高的权限就是rw 可读 可写
九位权限位:
rw-r–r–
rw- # 文件主人对文件拥有最高权限 可读 可写
r-- # 小组成员只能查看
r-- # 其他用户只能查看
r read----> 4表示
w write—> 2表示
x excute–> 1表示
rw-r–r-- 使用数字表示 将每三位进行相加 等于 644权限
rw- ==== r(4)w(2)-(0) ======= 6
r-- ==== r(4)-(0)-(0) ======= 4
r-- ==== r(4)-(0)-(0) ======= 4
如果数字权限是755 则对应的字母权限位置 相减
rwxr-xr-x
开启了selinux防火墙后生成的.
关闭selinux后创建的文件 就没有.
- 在同一个文件系统中有相同的inode号的文件互为硬链接 使用ll -i查看inode号
- 硬链接相当于文件有多个入口 类似超市的多个门
- 相当于复制了多个inode号码 多张藏宝图
- 文件默认1个硬链接
- 目录默认有2个硬链接
- 只能在相同的分区内进行创建
- 不能对目录进行创建硬链接 只能文件
- 删除任意一个硬链接不影响其他的相同inode的文件
- 可以在任意一个入口进入到文件中 如果修改文件 查看每个文件都会发生变化
- 硬链接数0 才真正的被删除 删除所有相同的inode号 文件才真正的被删除
ln 源文件 目标文件
[root@ahui ~]#ln 1.txt hard_link.txt [root@ahui ~]#ll total 0 -rw-r--r-- 2 root root 0 May 12 11:00 1.txt -rw-r--r-- 2 root root 0 May 12 11:00 hard_link.txt [root@ahui ~]#ll -i total 0 33588705 -rw-r--r-- 2 root root 0 May 12 11:00 1.txt 33588705 -rw-r--r-- 2 root root 0 May 12 11:00 hard_link.txt [root@ahui ~]#echo hehe > 1.txt [root@ahui ~]#ll -i total 8 33588705 -rw-r--r-- 2 root root 5 May 12 11:04 1.txt 33588705 -rw-r--r-- 2 root root 5 May 12 11:04 hard_link.txt [root@ahui ~]#cat 1.txt hehe [root@ahui ~]#cat hard_link.txt hehe
目录默认有2个硬链接
[root@ahui ~]#ll -id ahui/ 33588707 drwxr-xr-x 2 root root 6 May 12 11:05 ahui/ [root@ahui ~]#cd ahui/ [root@ahui ~/ahui]#ll -ia total 0 33588707 drwxr-xr-x 2 root root 6 May 12 11:05 .硬链接作用:
提高系统文件的安全性 在企业中用的很少
把重要文件做硬链接
只要/etc/passwd中内发发生变化 家目录下的passwd也会变化
如果/etc/passwd 文件被删除 可以将家目录下的passwd做硬链接到/etc/passwd
[root@ahui ~]#ln /etc/passwd passwd [root@ahui ~]#ll total 8 -rw-r--r-- 1 root root 11 May 12 11:09 hard_link.txt drwxr-xr-x 2 root root 6 May 12 11:05 ahui -rw-r--r-- 2 root root 1368 Nov 30 20:57 passwd [root@ahui ~]#ll -id ahui/ 33588707 drwxr-xr-x 3 root root 18 May 12 11:17 ahui/ [root@ahui ~]#cd ahui/ [root@ahui ~/ahui]#ll -ia total 0 33588707 drwxr-xr-x 3 root root 18 May 12 11:17 . 33574977 dr-xr-x---. 4 root root 239 May 12 11:14 .. 51001248 drwxr-xr-x 2 root root 6 May 12 11:17 test [root@ahui ~/ahui]#cd test/ [root@ahui ~/ahui/test]#ll -ia total 0 51001248 drwxr-xr-x 2 root root 6 May 12 11:17 . 33588707 drwxr-xr-x 3 root root 18 May 12 11:17 ..软链接: 软连接的特点:
- 软链接的inode号不同
- 类似windows的快捷方式
- 软链接文件中存放这是源文件的指针 指向源文件的位置
- 删除软链接不影响源文件 类似删除windows的快捷方式
- 删除源文件 软链接文件不能用 红底白字闪烁
- 创建软链接 ln -s
- 文件和目录可以做软链接 可以跨文件系统做软链接
ln -s 源文件 链接文件 [root@ahui ~]#cat test.txt hehe [root@ahui ~]#ln -s test.txt s.txt [root@ahui ~]#ll total 4 drwxr-xr-x 3 root root 18 May 12 11:17 ahui lrwxrwxrwx 1 root root 8 May 12 11:24 s.txt -> test.txt -rw-r--r-- 1 root root 5 May 12 11:24 test.txt软链接作用:
企业常用
1.可以利用软链接跨文件系统的方式处理磁盘不够用问题
2.可以利用软链接做代码上线 代码回滚等
软链接和硬链接的区别-
在linux系统中链接分区两种 一种硬链接 一种是软链接
-
创建方式不同 硬链接使用 ln创建 软链接使用ln -s 创建
-
软链接的inode号不同,硬连接inode号相同
-
目录不能做硬链接 文件和目录和做软链接
-
删除硬链接不影响源文件,删除软链接的链接文件不影响源文件,删除软链接的源文件软链接失效
-
软链接可以跨文件系统 硬链接不可以跨文件系统
-
同时删除源文件和硬链接文件 才真正的被删除(没有被进程调用)
-
软链接在工作中常用 硬链接不常用
注意: 做软链接尽量使用绝对路径
[root@ahui ~]#stat /etc/hosts File: ‘/etc/hosts’ Size: 158 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 16819633 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-05-12 09:13:01.708386201 +0800 # 访问时间 cat less Modify: 2013-06-07 22:31:32.000000000 +0800 # 修改时间 vim Change: 2020-08-28 11:04:35.586905128 +0800 # 属性修改时间第一个:访问时间:
只有在第一次修改后第一次查看时间会发生变化
如果不修改文件 后面查看时间不变
[root@ahui ~]#cat test.txt ahui [root@ahui ~]#stat test.txt File: ‘test.txt’ Size: 7 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 33588713 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-05-12 12:04:15.321677944 +0800第二个:修改时间:
如果使用vim 三个时间都会变化
使用echo测试
[root@ahui ~]#stat test.txt
File: ‘test.txt’
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33588714 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-05-12 12:06:10.353673985 +0800
Modify: 2022-05-12 12:06:10.353673985 +0800
Change: 2022-05-12 12:06:10.354674485 +0800
Birth: -
[root@ahui ~]#echo hehe >> test.txt
[root@ahui ~]#stat test.txt
File: ‘test.txt’
Size: 17 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33588714 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-05-12 12:06:10.353673985 +0800
Modify: 2022-05-12 12:07:09.796945181 +0800
Change: 2022-05-12 12:07:09.796945181 +0800
第三个:属性修改时间:
[root@ahui ~]#chmod +x test.txt [root@ahui ~]#ll total 4 drwxr-xr-x 3 root root 18 May 12 11:17 ahui -rwxr-xr-x 1 root root 17 May 12 12:07 test.txt [root@ahui ~]#stat test.txt File: ‘test.txt’ Size: 17 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 33588714 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-05-12 12:06:10.353673985 +0800 Modify: 2022-05-12 12:07:09.796945181 +0800 Change: 2022-05-12 12:08:54.748001786 +0800find按照时间进行查找文件:
-mtime 修改时间
-atime 访问时间
-ctime 属性修改时间
#查找7天前被修改的文件和目录
find ./ -mtime +7
#查找7天以内被修改的文件和目录
find ./ -mtime -7
-mtime 0 表示最近24小时修改的文件 -mtime 1 表示一天前修改的文件 -mtime +1表示修改时间大于1天前 -mtime -1表示修改时间小于1天
案例:查找/data目录下文件修改时间30天前的 并且删除 或者备份
find /data -type f -mtime +30|xargs rm
find /data -type f -mtime +30|xargs tar zcvf backup.tar.gz
xargs 可以将前面的执行结果放在命令的最后面
xargs 可以格式化输出内容 可以按照n列进行显示内容
[root@ahui ~]#echo {1..20}|xargs -n7
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20
查看系统inode号:
每个文件最少占用1个inode和1个block硬件存储快
df -i 查看系统所有的inode号
[root@ahui ~]#df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda3 9858560 69968 9788592 1% /小结:
1.特殊符号; && ||
- ; 命令分隔符
- && 与 前面的命令执行成功 才执行&& 后面的命令
- || 或 前面的命令执行失败 才执行||后面的命令
- 文件属性(2) 文件权限、selinux相关 .
- rwx含义
- selinux生成属性 .
- 文件打包压缩: tar
参数:
- z # 使用gzip方式进行压缩
- c # 使用create创建压缩包
- v # 显示压缩的过程 verbose 可以省略
- f # 指定文件
- x # 表示解压 使用xf进行解压
- t # 查看压缩的里面的文件名称 使用tf进行查看
- C # 指定解压到哪个位置(默认解压到当前路径)
- tar zcvf all.tar.gz file1 file2 相对路径 不会提示从成员中删除/跟目录
- 打包文件放在指定的路径 tar zcvf /opt/all.tar.gz file1 file2
- 解压 tar xf all.tar.gz
- 指定解压的位置 tar xf all.tar.gz -C /opt
- 查看压缩包 tar tf all.tar.gz
- 硬链接 软链接特点与区别
- 文件时间:
- 修改时间
- 访问时间
- 属性修改时间
- find 按照时间查找
- -mtime______修改时间
- -atime_______访问时间
- -ctime_______属性修改时间
- +n__________表示修改时间大于n天前
- -n__________表示修改时间小于n天
- 0___________表示最近24小时修改的文件
- n___________表示n天前修改的文件



