小胖学Linux day11:文件的属性及类型

Posted 城南花已开。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小胖学Linux day11:文件的属性及类型相关的知识,希望对你有一定的参考价值。

文件的属性及类型

今日思维导图:

小胖学Linux

文件属性

[root@22:53:20wudidesangege ~]\\ ll /
d rwx r-x r-x. 3 root root 20 Mar 21 21:33 application
l rwx rwx rwx. 1 root root 7 Mar 14 20:56 bin -> usr/bin

# 以空格为分隔符第一列:
文件的类型
-: 普通文件 touch
d:directory 目录 mkdir
l:link 软链接文件(windows快捷方式) ln
c:设备文件(char字符设备文件)和字符相关的设备,举例:打印机,终端
b:设备文件(block块设备文件)和存储相关的设备,举例:硬盘,U盘,磁盘分区
s:socket安全套接字文件,网络编程
p:pipe管道文件,父进程与子进程之间的通信文件

# 以空格为分隔符第二列:
文件的权限:Permission denied(权限被拒绝)
rw- r-- r--
rwx rwx rwx
r:read 读
w:write 写
x:exec 执行
-:该权限位上没有权限

# 以空格为分隔符第三列:
指该文件的硬链接数

# 以空格为分隔符第四列:
该文件的属主

# 以空格为分隔符第五列:
该文件的属组

# 以空格为分隔符第六列:
该文件的大小

# 第七列
文件的创建时间

# 最后一列
文件名

文件类型查看命令

## 指令↓
file
## 语法:
file [选项] 文件...
例↓
/root/blog.driverzeng.com_access.log: ASCII text, with very long lines
[root@23:08:32wudidesangege <sub>]\\ file pikachu
pikachu: cannot open (No such file or directory)

[root@23:17:36wudidesangege </sub>]\\ file lgb.sh
lgb.sh: empty

[root@23:17:46wudidesangege <sub>]\\ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped

[root@23:22:30wudidesangege </sub>]\\ file /dev/sda
/dev/sda: block special

[root@23:23:19wudidesangege ~]\\ file /dev/pts/0
/dev/pts/0: character special

系统的链接文件

一个文件在Linux中,会被分为两部分:

  • 真实数据​:文件中的真实内容
  • 元数据​:用来形容一个文件数据

一个文件在Linux中,存储也会被分为两部分:

  • inode​:用来存储,文件的元数据
  • block​:用来存储,文件的真实数据,一个block是4k

小胖学Linux

## 查看磁盘空间
df
## 选项
-h:human人类可读
-i:查看inode空间
例↓
# 查看磁盘的block
[root@23:45:28wudidesangege <sub>]\\ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 1.5G 18G 8% /
/dev/sda1 497M 125M 373M 26% /boot
tmpfs 98M 0 98M 0% /run/user/0
以上每列分别表示的内容↓
磁盘分区名 分区内存大小 已使用大小 剩余可用 使用百分比 路径

# 查看磁盘的inode
[root@23:54:03wudidesangege </sub>]\\ df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 119K 378 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 713 121K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda3 9.3M 28K 9.3M 1% /
/dev/sda1 250K 326 250K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0

链接文件的种类

  • 软连接文件

软链接相当于windows的快捷方式,软链接文件会将inode指向源文件的block

小胖学Linux

ls
-i:查看该文件的inode号
## 创建软链接的命令↓
ln:link 链接,创建链接文件
-s:soft 软,创建软链接文件
# 语法
ln -s 源文件 链接文件的位置
例↓
[root@00:10:45wudidesangege <sub>]\\ ln -s /root/wykwd.txt /tmp/
[root@00:11:19wudidesangege </sub>]\\ ll /tmp/
lrwxrwxrwx. 1 root root 15 Mar 30 00:11 wykwd.txt -> /root/wykwd.txt

[root@00:10:45wudidesangege <sub>]\\ ln -s /root/wykwd.txt /tmp/wykwd2.txt
[root@00:11:19wudidesangege </sub>]\\ ll /tmp/
lrwxrwxrwx. 1 root root 15 Mar 30 00:11 wykwd.txt -> /root/wykwd.txt
lrwxrwxrwx. 1 root root 15 Mar 30 00:12 wykwd2,txt -> /root/wykwd.txt

# 1.软链接文件,会受到源文件的影响,如果源文件删除,软链接文件也无法使用
[root@00:15:55wudidesangege <sub>]\\ cat /tmp/wykwd.txt
1
1
2
3
[root@00:15:55wudidesangege </sub>]\\ cat /tmp/wykwd2.txt
1
1
2
3
[root@00:15:55wudidesangege <sub>]\\ cat /root/wykwd.txt
1
1
2
3

[root@00:16:14wudidesangege </sub>]\\ rm -f /tmp/wykwd.txt
[root@00:18:19wudidesangege <sub>]\\ cat /tmp/wykwd2,txt
1
1
2
3
[root@00:18:49wudidesangege </sub>]\\ rm -f /root/wykwd.txt
[root@00:20:00wudidesangege <sub>]\\ cat /tmp/wykwd2.txt
cat: /tmp/wykwd2.txt: No such file or directory
[root@00:20:24wudidesangege </sub>]\\ ll /tmp/wykwd2.txt
lrwxrwxrwx. 1 root root 15 Mar 30 00:12 /tmp/wykwd2.txt -> /root/wykwd.txt

小胖学Linux

  • 硬链接文件

若一个inode号对应多个文件名,则称这些文件为硬链接。换句话说,硬链接就是同一个文件使用了多个别名

小胖学Linux

## 创建硬链接的命令↓
ln
# 语法↓
ln 源文件 链接文件的位置
例↓
创建两个硬链接↓
[root@00:48:48wudidesangege <sub>]\\ ln /root/info.txt /opt/
[root@00:49:03wudidesangege </sub>]\\ ln /root/info.txt /opt/info1.txt
## 特性
1.硬链接文件,不会受到原文件的影响↓
2.所有硬链接文件的inode号与源文件相同↓
[root@00:49:11wudidesangege <sub>]\\ ls -li /root/info.txt
33630039 -rw-r--r--. 3 root root 204 Mar 26 14:43 /root/info.txt
[root@00:49:31wudidesangege </sub>]\\ ls -li /opt/info.txt
33630039 -rw-r--r--. 3 root root 204 Mar 26 14:43 /opt/info.txt
[root@00:49:56wudidesangege <sub>]\\ ls -li /opt/info1.txt
33630039 -rw-r--r--. 3 root root 204 Mar 26 14:43 /opt/info1.txt

[root@00:50:02wudidesangege </sub>]\\ cat /root/info.txt
Im zls,18 years old QQ 133411023
Im wyk,73 years old QQ 383838384
[root@00:51:55wudidesangege <sub>]\\ cat /opt/info.txt
Im zls,18 years old QQ 133411023
Im wyk,73 years old QQ 383838384
[root@00:52:09wudidesangege </sub>]\\ cat /opt/info1.txt
Im zls,18 years old QQ 133411023
Im wyk,73 years old QQ 383838384

3.修改一个文件,其他文件都会改变

4.默认情况下,新创建的目录,有两个硬链接,一个是目录本身,一个是该目录下的.目录
[root@localhost <sub>]# ls -lai /root/test -d
33575836 drwxr-xr-x 2 root root 6 Mar 29 11:52 /root/test
↑ 两个硬链接 目录本身加.目录

[root@01:12:12wudidesangege </sub>]\\ ls -lai /etc/ -d
16777281 drwxr-xr-x. 74 root root 8192 Mar 29 17:58 /etc/
↑ 一共74个硬链接 目录本身加.目录 加72个子目录的..目录

5.不允许给目录创建硬链接
## 报错
[root@00:50:02wudidesangege ~]\\ln /root/wyk /tmp/wyk
‘/root/wyk’: hard link not allowed for directory #不允许硬链接目录

硬链接和软链接的区别

区别

软链接

硬链接

创建命令

ln -s

ln

对象

普通文件和目录

只能对普通文件

会不会受到源文件影响

不会

inode号

不同

相同

跨分区创建

可以

不可以

企业面试题

当前磁盘空间还剩余500G,但是就无法往里面写入数据,报错,磁盘空间满了。

# 1.首先磁盘存储被划分为两块
inode:存储文件的元数据
block:存储文件的真实数据
# 2.在问题当中剩余500G,这500G指的是block
# 3.应该是inode被占满了
# 4.这种情况,一般是系统中,小文件太多导致的
# 5.找到系统中的小文件(没用的),并删除
##### 使用find命令

演示

## 查看inode
[root@01:21:57wudidesangege <sub>]\\ df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 119K 378 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 713 121K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda3 9.3M 28K 9.3M 1% /
/dev/sda1 250K 326 250K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0

## 从/dev/zero中取出1024k数据,保存到/opt/disk文件中
[root@01:22:13wudidesangege </sub>]\\ dd if=/dev/zero of=/opt/disk bs=1K count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00149822 s, 700 MB/s

## 查看/opt/disk大小为1M
[root@01:23:04wudidesangege <sub>]\\ ll -h /opt/disk
-rw-r--r--. 1 root root 1.0M Mar 30 01:23 /opt/disk

## 格式化,指定inod
[root@01:24:38wudidesangege </sub>]\\ mkfs.ext4 -i 1024 /opt/disk
mke2fs 1.42.9 (28-Dec-2013)
/opt/disk is not a block special device.
Proceed anyway? (y,n) y

Filesystem too small for a journal
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size小胖学Linux day21~22:find文件查找

小胖学Linux day10:文件管理命令4

小胖学Linux day14:用户管理

小胖学LInux day28:自制YUM仓库

小胖学Linux day42~43:NFS共享存储

小胖学Linux day15:用户管理2