本质是磁盘上的一块存储空间。256字节
存储文件的属性信息(大小、用户、时间等),还有指针:指向实际文件内容的地址
Linux常见的文件系统:ext4,xfs
Windows常见的文件系统:ntfs,fat32
创建文件系统时就会生成inode和block
元数据存放在inode中,实际数据存放在block中。
1.inode是文件的唯一标识(身份证)
2.大小是256字节
3.存放文件属性信息及指针(文件实际的位置信息)
4.创建文件时就分配inode
5.一个文件有且只有一个inode
6.多个文件有相同的inode,是同一个文件的不同文件名,这样的文件被称为硬链接文件。
1.磁盘读取数据是按block为单位读取的
2.每读取一个block就会消耗一次磁盘IO
3.若文件比较大,一个文件可能占用多个block
4.若文件比较小,一个block剩余空间会被浪费,无论内容有多小
[root@oldboy ~]# ls -il
总用量 20
33574978 -rw-------. 1 root root 1438 11月 26 21:25 anaconda-ks.cfg
33793476 -rw-r--r--. 1 root root 277 12月 18 21:38 a.txt
33793369 -rw-r--r--. 1 root root 0 12月 19 21:38 file1
33793493 -rw-r--r--. 1 root root 0 12月 19 21:38 file10
33793481 -rw-r--r--. 1 root root 0 12月 19 21:38 file2
33793482 -rw-r--r--. 1 root root 0 12月 19 21:38 file3
33793484 -rw-r--r--. 1 root root 0 12月 19 21:38 file4
33793485 -rw-r--r--. 1 root root 0 12月 19 21:38 file5
33793487 -rw-r--r--. 1 root root 0 12月 19 21:38 file6
33793488 -rw-r--r--. 1 root root 0 12月 19 21:38 file7
33793490 -rw-r--r--. 1 root root 0 12月 19 21:38 file8
33793491 -rw-r--r--. 1 root root 0 12月 19 21:38 file9
33793367 -rw-r--r--. 1 root root 0 12月 19 21:13 rm
33793380 -rw-r--r--. 1 root root 3525 11月 29 20:24 test.txt
33793478 -rw-r--r--. 1 root root 181 1月 1 20:17 test.zip.gz
33793379 -rw-r--r--. 1 root root 126 12月 18 21:27 uniq
[root@oldboy ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs 250475 343 250132 1% /dev
tmpfs 253460 1 253459 1% /dev/shm
tmpfs 253460 683 252777 1% /run
tmpfs 253460 16 253444 1% /sys/fs/cgroup
/dev/mapper/centos_oldboy-root 8910848 78153 8832695 1% /
/dev/sda1 524288 332 523956 1% /boot
tmpfs 253460 1 253459 1% /run/user/0
[root@oldboy ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 979M 0 979M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos_oldboy-root 17G 2.7G 15G 16% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 199M 0 199M 0% /run/user/0
1.磁盘中存在大量小文件
2.有不规范的定时任务
指向相同索引节点的文件,称为硬链接文件。
用于备份,防止误删文件。
删除一个硬链接,其他硬链接也能访问数据。
若一个inode没有对应的文件名,则该inode会被系统回收。
硬链接只针对文件,不针对目录。
.和当前目录:
[root@oldboy ~]# ls -lid . /root ~ ./
33574977 dr-xr-x---. 3 root root 4096 1月 1 20:15 .
33574977 dr-xr-x---. 3 root root 4096 1月 1 20:15 ./
33574977 dr-xr-x---. 3 root root 4096 1月 1 20:15 /root
33574977 dr-xr-x---. 3 root root 4096 1月 1 20:15 /root
…和上一级目录:
[root@oldboy ~]# ls -lid .. /
64 dr-xr-xr-x. 18 root root 238 1月 1 21:59 /
64 dr-xr-xr-x. 18 root root 238 1月 1 21:59 ..
[root@oldboy ~]# ln test.txt test.hardlink.txt
[root@oldboy ~]# ls -il test.txt test.hardlink.txt
33793380 -rw-r--r--. 2 root root 3525 11月 29 20:24 test.hardlink.txt
33793380 -rw-r--r--. 2 root root 3525 11月 29 20:24 test.txt
软连接就是快捷方式,指向源文件的位置
1.把复杂路径简单化
2.软件版本升级时无需改动较多代码
文件的硬链接数量和被进程使用的数量都为0
查看指定路径下目录的大小
[root@oldboy /]# du -sh /*
152K /backup
0 /bin
138M /boot
0 /dev
34M /etc
34M /home
0 /lib
0 /lib64
0 /media
0 /mnt
22M /opt
du: 无法访问"/proc/2996/task/2996/fd/4": 没有那个文件或目录
du: 无法访问"/proc/2996/task/2996/fdinfo/4": 没有那个文件或目录
du: 无法访问"/proc/2996/fd/4": 没有那个文件或目录
du: 无法访问"/proc/2996/fdinfo/4": 没有那个文件或目录
0 /proc
68K /root
9.5M /run
0 /sbin
0 /srv
0 /sys
0 /tmp
1.9G /usr
685M /var
01)请在/opt下创建oldboyedu目录,并在oldboyedu目录下创建dir1到dir5,共5个目录。
[root@oldboy opt]# mkdir /opt/oldboyedu -p
[root@oldboy opt]# cd oldboyedu/
[root@oldboy oldboyedu]# mkdir dir{1…5}
[root@oldboy oldboyedu]# echo {a…z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
02)请用一条命令完成创建多级目录/opt/oldboy/data/test123。
[root@oldboy oldboyedu]# mkdir -p /opt/oldboy/data/test123
03)请在/opt/oldboyedu目录下创建f1到f5,共5个文件。
[root@oldboy oldboyedu]# cd /opt/oldboyedu
[root@oldboy oldboyedu]# touch f{1…5}
[root@oldboy oldboyedu]# ls
dir1 dir2 dir3 dir4 dir5 f1 f2 f3 f4 f5
[root@oldboy oldboyedu]# tree
.
├── dir1
├── dir2
├── dir3
├── dir4
├── dir5
├── f1
├── f2
├── f3
├── f4
└── f5
04)查看/opt下的完整目录结构,并【只】显示子目录目录。
[root@oldboy opt]# tree -d
.
└── oldboyedu
├── dir1
├── dir2
├── dir3
├── dir4
└── dir5
如何过滤出目录:
[root@oldboy opt]# ls -p oldboyedu/
dir1/ dir2/ dir3/ dir4/ dir5/ f1 f2 f3 f4 f5
[root@oldboy opt]# ls -F oldboyedu/
dir1/ dir2/ dir3/ dir4/ dir5/ f1 f2 f3 f4 f5
[root@oldboy opt]# ls -F oldboyedu/|grep /
dir1/
dir2/
dir3/
dir4/
dir5/
[root@oldboy opt]# ls -F oldboyedu/|grep /$ #$以…结尾。
dir1/
dir2/
dir3/
dir4/
dir5/
[root@oldboy oldboyedu]# ls -l|grep ^d #以…开头。
drwxr-xr-x. 2 root root 6 5月 18 09:51 dir1
drwxr-xr-x. 2 root root 6 5月 18 09:51 dir2
drwxr-xr-x. 2 root root 6 5月 18 09:51 dir3
drwxr-xr-x. 2 root root 6 5月 18 09:51 dir4
drwxr-xr-x. 2 root root 6 5月 18 09:51 dir5
05)切换到/opt/oldboyedu目录下,并打印当前所在的路径。
[root@oldboy oldboyedu]# cd /opt/oldboyedu
[root@oldboy oldboyedu]# pwd
/opt/oldboyedu
06)编辑f1文件,增加”老男孩教育“内容。
07)使用重定向追加的方式给f2追加内容,“I am 30.”。
[root@oldboy oldboyedu]# echo “I am 30.” >>f2
[root@oldboy oldboyedu]# cat f2
I am 30.
08)把/etc/passwd内容重定向到f4里面,并过滤出含有halt的行。
cat /etc/passwd >f4
cat f4
grep halt /etc/passwd #####
09)浏览f4内容,并查看行号。*****
cat -n f4
less -N f4
grep -n “.” f4
10)浏览文件头部2行和尾部2行。并跟踪f4文件尾部的变化。
[root@oldboy oldboyedu]# head -2 f4
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
[root@oldboy oldboyedu]# tail -2 f4
oldboy❌1000:1000:oldboy:/home/oldboy:/bin/bash
tcpdump❌72:72::/sbin/nologin
[root@oldboy oldboyedu]# tail -f f4
11)把oldboyedu目录复制到/opt/oldboy/data下
[root@oldboy ~]# mkdir /opt/oldboy/data -p
[root@oldboy opt]# cd /opt/
[root@oldboy opt]# ls
oldboyedu
[root@oldboy opt]# cp -a oldboyedu/ /opt/oldboy/data/
[root@oldboy opt]# ls /opt/oldboy/data/
oldboyedu
12)删除/opt/oldboy/data下的test123目录
[root@oldboy ~]# cd /opt/oldboy/data/
[root@oldboy data]# rm -fr test123
13)打包oldboyedu目录,到备份目录/backup下,并按日期命名压缩包。*****
[root@oldboy data]# cd /opt/
[root@oldboy opt]# ls
oldboy oldboyedu
[root@oldboy opt]# tar zcf /backup/oldboyedu_KaTeX parse error: Expected 'EOF', got '#' at position 49: …oot@oldboy opt]#̲ ls /backup/ol…(date +%F).tar.gz
/backup/oldboyedu_2030-05-18.tar.gz
14)删除/backup下7天前的扩展名为.tar.gz的所有文件。 *****
find /backup/ -name “.tar.gz" -type f -mtime +7|xargs rm -f
find /backup/ -name ".tar.gz” -type f -mtime +7 -exec rm -f {} ;
rm -f $(find /backup/ -name “*.tar.gz” -type f -mtime +7)
1种方案。领导没有选择,不叫有能力。
2种方案。领导左右为难,不叫有能力。
3种方案。让领导有选择,才叫有能力。
————老男孩思想。
16)打包oldboyedu目录下,所有以f开头的文件,并移动到/opt下的data目录。*****
[root@oldboy opt]# tar zcf /opt/data/oldboyedu_$(date +%F).tar.gz find /opt/oldboyedu -name "f*" -type f
tar: 从成员名中删除开头的“/”
[root@oldboy opt]# ls /opt/data/
oldboyedu_2030-05-18.tar.gz
17)为重启网络命令设置别名net。并取消系统的cp别名。
[root@oldboy opt]# alias net=‘systemctl restart network’
[root@oldboy opt]# alias |grep net
alias net=‘systemctl restart network’
[root@oldboy opt]# alias |grep cp
alias cp=‘cp -i’
[root@oldboy opt]# unalias cp
[root@oldboy opt]# alias |grep cp
18)清空所有历史记录,删除/opt下所有内容。
[root@oldboy opt]# cd /opt/
[root@oldboy opt]# rm -fr *
基础不牢,地动山摇。——老男孩