day11-Linux系统inode及链接知识及企业按哪里精讲

1.索引节点 Inode

本质是磁盘上的一块存储空间。256字节

存储文件的属性信息(大小、用户、时间等),还有指针:指向实际文件内容的地址

Linux常见的文件系统:ext4,xfs

Windows常见的文件系统:ntfs,fat32

创建文件系统时就会生成inode和block

元数据存放在inode中,实际数据存放在block中。

1.1 inode的特点

1.inode是文件的唯一标识(身份证)

2.大小是256字节

3.存放文件属性信息及指针(文件实际的位置信息)

4.创建文件时就分配inode

5.一个文件有且只有一个inode

6.多个文件有相同的inode,是同一个文件的不同文件名,这样的文件被称为硬链接文件。

2. block的特点

1.磁盘读取数据是按block为单位读取的

2.每读取一个block就会消耗一次磁盘IO

3.若文件比较大,一个文件可能占用多个block

4.若文件比较小,一个block剩余空间会被浪费,无论内容有多小

3.有关inode的命令

3.1 查看文件的inode

[root@oldboy ~]# ls -il
总用量 20
33574978 -rw-------. 1 root root 1438 1126 21:25 anaconda-ks.cfg
33793476 -rw-r--r--. 1 root root  277 1218 21:38 a.txt
33793369 -rw-r--r--. 1 root root    0 1219 21:38 file1
33793493 -rw-r--r--. 1 root root    0 1219 21:38 file10
33793481 -rw-r--r--. 1 root root    0 1219 21:38 file2
33793482 -rw-r--r--. 1 root root    0 1219 21:38 file3
33793484 -rw-r--r--. 1 root root    0 1219 21:38 file4
33793485 -rw-r--r--. 1 root root    0 1219 21:38 file5
33793487 -rw-r--r--. 1 root root    0 1219 21:38 file6
33793488 -rw-r--r--. 1 root root    0 1219 21:38 file7
33793490 -rw-r--r--. 1 root root    0 1219 21:38 file8
33793491 -rw-r--r--. 1 root root    0 1219 21:38 file9
33793367 -rw-r--r--. 1 root root    0 1219 21:13 rm
33793380 -rw-r--r--. 1 root root 3525 1129 20:24 test.txt
33793478 -rw-r--r--. 1 root root  181 11 20:17 test.zip.gz
33793379 -rw-r--r--. 1 root root  126 1218 21:27 uniq

3.2 查看磁盘或分区的inode

[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

3.3 查看磁盘或分区的大小(block)

[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

4.inode满了的原因?

1.磁盘中存在大量小文件

2.有不规范的定时任务

5. 链接

5.1 硬链接

指向相同索引节点的文件,称为硬链接文件。

5.1.1 硬链接文件的作用和特性

用于备份,防止误删文件。

删除一个硬链接,其他硬链接也能访问数据。

若一个inode没有对应的文件名,则该inode会被系统回收。

硬链接只针对文件,不针对目录。

5.1.2 互为硬链接的文件

.和当前目录:

[root@oldboy ~]# ls -lid . /root ~ ./
33574977 dr-xr-x---. 3 root root 4096 11 20:15 .
33574977 dr-xr-x---. 3 root root 4096 11 20:15 ./
33574977 dr-xr-x---. 3 root root 4096 11 20:15 /root
33574977 dr-xr-x---. 3 root root 4096 11 20:15 /root

…和上一级目录:

[root@oldboy ~]# ls -lid .. /
64 dr-xr-xr-x. 18 root root 238 11 21:59 /
64 dr-xr-xr-x. 18 root root 238 11 21:59 ..

5.1.3 创建硬链接

[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 1129 20:24 test.hardlink.txt
33793380 -rw-r--r--. 2 root root 3525 1129 20:24 test.txt

5.2 软链接

软连接就是快捷方式,指向源文件的位置

5.2.1 作用

1.把复杂路径简单化

2.软件版本升级时无需改动较多代码

6. Linux文件删除原理

文件的硬链接数量和被进程使用的数量都为0

7.du -sh 路径

查看指定路径下目录的大小

[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

8.老男孩Linux77期基础命令测试题:

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 *

基础不牢,地动山摇。——老男孩

你可能感兴趣的:(Linux运维,linux,python,运维)