ll -i
67326599 -rw-r--r-- 1 root root 194 Oct 28 18:21 /etc/hosts
① ② ③ ④ ⑤ ⑥ ⑦
文件属性 - inode 号码
index node(索引节点) --- 类似于书的目录文件类型 - 目录 文本 压缩包 ...
文件权限 - r read 读 w write 写 x execute 执行硬链接数 - 软连接 数据快捷方式
硬链接 查看文件数据多个门文件所属用户 - 文件创建者 (类似监护人)
-
文件所属组用户 - 文件所属组 (类似家人)
其他用户 - (隔壁老王)
文件大小信息 - 默认显示占用磁盘字节信息 Byte
文件时间信息 - 文件修改时间 (文件访问时间信息 文件改变时间信息)
文件属性详细说明 - 文件类型
横杠 普通文件
文本文件
二进制文件(命令文件)
数据文件(压缩文件)
file 文件信息 --- 获取文件类型
d 目录文件
l 连接文件(软链接)
c 字符流文件 查看时会不断出现字符信息
/dev/urandom -- 生成随机数
思路01: 将乱码信息屏蔽, 只留下字母和数字
tr -cd "0-9a-zA-Z" < /dev/urandom
思路02: 输出随机数是有限制
tr -cd "0-9a-zA-Z" < /dev/urandom|head -c 6
b block块文件 存储设备文件信息
s socket文件(网络编程)
特殊扩展名标记文件
xxx.txt --- 文本文件
xxx.log --- 日志文件
xxx.conf --- 配置文件
xxx.sh --- shell脚本文件
xxx.py --- python脚本文件
xxx.zip/xxx.gz/xxx.tar.gz --- 压缩文件
xxx.db --- 数据库文件
补充: 和文件相关命令
which --- 查看命令文件保存路径 bin是/user/bin的软连接
whereis --- 查看命令文件保存路径 以及 查看命令相关文件保存路径
rpm -qf which cat
---直接就能查出软件包名称
locate --- 快速检索一个文件保存的路径
yum provides localte
yum install -y mlocate
updatedb 更新表
find命令的介绍
find --- 查找数据信息
根据名称信息
-name
find /oldboy -name "oldboy.txt"
find /oldboy -name "*.txt"
find /oldboy -iname "Oldboy.txt"
根据文件类型
-type
练习01. 将目录中所有普通文件查找出来
find /oldboy -type f
练习02. 将目录中所有目录文件查找出来
find /oldboy -type d
练习03. 将目录中所有链接(软链接)文件查找出来
find /oldboy -type l
练习04. 将目录中所有字符流文件查找出来
find /oldboy -type c/b/s
根据文件大小
-size
b' for 512-byte blocks (this is the default if no suffix is used) 按照一个数据块进行查找 ???
c' for bytes
查找数据单位为字节
w' for two-byte words 查找数据单位为 双字节
k' for Kilobytes (units of 1024 bytes)
查找数据单位为k
M' for Megabytes (units of 1048576 bytes) 查找数据单位为M
G' for Gigabytes (units of 1073741824 bytes)
查找数据单位为G
-size 10k --- 找出10k大小的文件
-size +10k --- 找出大于10k大小的文件
-size -10k --- 找出小于10k大小的文件
根据文件权限
根据文件时间
根据文件inode号码查找
根据文件用户信息查找
find特殊查找数据方法:
根据目录层级查找数据: 放在要查的目录名字前面,否则不生效
-maxdepth 3: 查找数据层级最深深度会 会一层一层的查
-mindepth 3: 查找数据层级最浅深度 之前的不差从定的级别查
find多个查找条件参数组合方式
and方式: 多个条件是并且关系 (默认) -a
or 方式: 多个条件是或者关系 -o
not方式: 多个条件有取反操作 -not / !
练习01: 将old开头所有信息找出来, 但是不要显示oldgirl02信息
find /oldboy -name "old" ! -name "oldgirl02"
练习02: 请找出大小大于100K文件, 但是不要显示图片文件信息
find -size +100k ! -name ".jpg"
联系03: 排除指定目录不进行数据查找
find ./ -path ./oldboy02 -prune -o -type f -name "oldboy.txt" -print
如何find将找出的数据进行删除
find /oldboy/ -type f -delete
find /oldboy/ -type f -exec rm -f {} ;
find /oldboy/ -type f |xargs rm
find /oldboy/ -type f |xargs -r rm {} ;
tree查看
tree -L 1 、2、3---level 层次 显示目录结构层集
tree -d ---只看目录
tree -f ---显示目录结构和文件 还附上目录数量和文件数量
tar压缩数据命令
压缩数据:
tar zcvf 压缩包 压缩数据信息
相对路径压缩
tar zcvf ./oldboy.tar.gz oldboy01.txt oldboy02.txt oldboy03.txt
绝对路径压缩
tar zcvf /oldboy/oldboy.tar.gz /oldboy/oldboy01.txt /oldboy/oldboy02.txt /oldboy/oldboy03.txt
tar: Removing leading `/' from member names
z --- 压缩数据方式 gzip
c --- 创建一个压缩包
v --- 显示压缩数据过程
f --- 指定压缩文件路径信息 以及 压缩文件名称信息
解压数据:
tar xf 压缩包
x extract --- 提取压缩的数据 == 解压
tar xf oldboy.tar.gz
tar xf /oldboy/oldboy.tar.gz -C /oldboy/
-C --- 将压缩包解压后的数据保存到指定目录中
--exclude=PATTERN exclude files, given as a PATTERN
排除指定文件数据不要进行压缩
查看压缩数据:
tar tf 压缩包
文件属性详细说明
属主: 用户信息 文件数据创造者
属组: 用户组信息 给一个组赋予相应权限
其他用户: 不是属主 不属于属组成员的用户信息
系统用户分类:
超级管理员 皇帝 root user id uid信息: 0
虚拟用户 傀儡 nobody uid: 1-999 centos7 特点01: 不能登录系统
uid: 1-499 centos6 特点02: 没有家目录
普通用户 平民 oldboy uid: 1000+ centos7
uid: 500+ centos6
用户 和 用户组关系:
1 vs 1 关系: 一个用户组中 只有 一个用户
1 vs n 关系: 一个用户可以属于多个用户组
n vs 1 关系: 一个用户组中 可以有多个用户
文件属性详细说明
访问时间: access time - atime 查看文件时间
修改时间: modify time - mtime 文件内容被修改编辑时间
改变时间: change time - ctime 修改文件属性信息
初始状态时间信息:
Access: 2019-10-31 17:35:36.666225006 +0800
Modify: 2019-10-31 17:35:36.666225006 +0800
Change: 2019-10-31 17:35:36.666225006 +0800
查看文件信息操作:
cat oldboy.txt
Access: 2019-10-31 17:36:30.902225627 +0800
Modify: 2019-10-31 17:35:36.666225006 +0800
Change: 2019-10-31 17:35:36.666225006 +0800
编辑文件内容信息:
Access: 2019-10-31 17:36:30.902225627 +0800
Modify: 2019-10-31 17:37:36.073226374 +0800
Change: 2019-10-31 17:37:36.073226374 +0800
修改文件权限信息:
Access: 2019-10-31 17:36:30.902225627 +0800
Modify: 2019-10-31 17:37:36.073226374 +0800
Change: 2019-10-31 17:38:52.448227249 +0800
时间相关命令 - date (显示时间信息/修改时间信息)
显示时间信息:
a 按照指定格式信息显示
date "+%Y-%m-%d %H:%M:%S"
2019-10-31 17:47:02
b 按照指定格式显示未来或过去时间
date +%F_%A -d "-10 day" 显示过去时间信息
date +%F_%A -d "+10 day" 显示未来时间信息
%y : 年份
%m : 月份 --> %F : 显示年月日
%d : 日期
%H : 小时
%M : 分钟 --> %T : 显示小时分钟秒
%S : 秒
设置时间信息:
date -s "2019-11-11"
date -s "12:00:00"
date -s "2019-11-12 03:10:20"
ntpdate ntp1.aliyun.com ---t同步阿里云
日志文件需要做切割处理
日志文件需要做切割处理:
按照时间进行切割: 1天 100M
mv /var/log/message /var/log/message_2019-10-10
systemctl restart rsyslog.service
mv /var/log/messages /var/log/messages_date +%F
根据时间条件查找数据
find /oldboy -mtime +3/-3/3
-mtime: 按照天进行查找数据
-mmin: 按照分钟查找数据信息
实际用途: 查询系统中历史数据, 批量删除, 节省磁盘空间
例如:find /oldboy -type f -name "*.txt" -mmin -10
根据文件权限查找数据
find /oldboy/ -type f -perm 666
文件索引信息
inode:
概念介绍: 文件索引信息 目录
特点说明:
- 存储一个数据属性信息 (类型 权限 链接数 属主/属组 大小 时间)
- 存储指向相应block指针信息
- 数据存储会占用一个inode
诞生过程:
操作磁盘进行格式化--> 创建文件系统--> inode
查看方法:
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 51379712 63429 51316283 1% /
block:
概念介绍: 文件数据信息 内容
特点说明:
- 存储文件数据真实内容(文件)
- 存储目录下面文件名称(目录)
- 数据存储会占用多个block
诞生过程:
操作磁盘进行格式化--> 创建文件系统--> block
查看方法:
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 102709252 3665740 99043512 4% /
xfs_info 挂载点
block大小调整方案:
影响数据存储效率 : 5M -5s- U盘 500M - 10m - U盘
5M -- 拆分 -- 多个4K数据 -- 占用多个block 较少 更快 磁盘IO=input/output
每读取/写入一个block 消耗一定IO=1s
500M -- 拆分 -- 多个4k数据 -- 占用多个block 更多 稍慢
实验:
10G -- 打包
5M
第一次实验: 10G数据保存 5M保存(多久保存完)
第二次实现: 5M保存(多久保存完)
xfs文件系统默认block=4k
根据应用场景而定:
调整大一些 都是大文件数据10G --> block 8k 节省IO, 提升数据存储/读取效率
调整小一些 都是小文件数据1K --> block 8K 提高磁盘存储利用率, 避免磁盘空间浪费
研究存储方面
文件链接信息
软连接:
概念介绍: 文件数据快捷方式
特点介绍:
- 软链接文件会指向到源文件
- 源文件删除链接文件失效
- 可以给目录创建软链接
诞生过程:
ln -s 源文件 链接文件
作用说明:
操作方便
硬链接:
概念介绍: 查看数据内容多个门/inode号码相同文件数据称为硬链接
特点介绍:
- 硬链接文件指向相同inode
- 源文件删除不会影响硬链接文件
- 只能给普通文件创建硬链接
诞生过程:
ln 源文件 链接文件
作用说明:
防止文件误删除
问题:
创建一个文件: 默认硬链接数是多少? 1
创建一个目录: 默认硬链接数是多少? 2