【扩展】个人补充(未)
大约 4 分钟
【扩展】个人补充(未)
目录实验
该章节是Linc个人追加的
.
和 ..
路径
我可以认为:
- 每个文件夹都一定包含这两个文件夹:
.
和..
文件夹- 哪怕
/
路径也有..
文件夹,不过cd过去会返回自身 - 哪怕
.
和..
也满足该项
- 哪怕
- 这两个文件夹是特殊的
是隐藏文件(
ls
不显示.
和..
,ls -a
显示)操作权限受限
# Linux $ rm . rm: 无法删除 '.': 是一个目录 $ rm -r . rm: 拒绝删除 '.' 或 '..' 目录: 跳过 '.' # 至于创建等其他操作同理,可能报错,也可能通过但是没有结果 # Windows `.` 可以作为文件/文件夹名的一部分,但不能出现在名字的最后
命令实验
vim特殊用法
前面提到一点:可以用vim打开文件夹(用cat只能打开文件,无法打开文件夹)
硬件类
$ lspci
$ lshw
磁盘类
Linux 磁盘管理常用三个命令为 df、du 和 fdisk。
- df(英文全称:disk free):列出文件系统的整体磁盘使用量
- du(英文全称:disk used):检查磁盘空间使用量
- fdisk:用于磁盘分区
$ df # 用于查看磁盘使用情况,包括磁盘的总容量、已用空间和可用空间等信息
文件系统 1K的块 已用 可用 已用% 挂载点
tmpfs 1624804 2244 1622560 1% /run
/dev/sda5 121451184 14408264 100827396 13% /
tmpfs 8124020 0 8124020 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
/dev/sda2 524252 6220 518032 2% /boot/efi
tmpfs 1624804 120 1624684 1% /run/user/1000
$ df -i
文件系统 Inodes 已用I 可用I 已用I% 挂载点
tmpfs 2031005 1477 2029528 1% /run
/dev/sda5 7749632 246105 7503527 4% /
tmpfs 2031005 1 2031004 1% /dev/shm
tmpfs 2031005 4 2031001 1% /run/lock
/dev/sda2 0 0 0 - /boot/efi
tmpfs 406201 159 406042 1% /run/user/1000
$ df -h
$ du -sh /path/to/directory
$ fdisk -l # 用于列出系统中的块设备(包括硬盘和分区)以及其相关信息,如设备名称、大小、挂载点等
$ lsblk # 用于显示块设备的信息,包括硬盘和其它设备。可以显示设备的名称、大小、类型等信息
文件类
inode/块类
inode和块的作用:
- 创建新文件时分配inode:用户在创建一个新文件时,Linux 内核会通过 inode 的位图找到空闲可用的 inode,并进行分配
- 存储数据时分配块:要存储数据时,会通过块的位图找到空闲的块,并分配
以下命令都能看到inode号
$ stat [FileName] # 列出文件大小,文件所占的块数,块的大小,主设备号和次设备号,inode number,链接数,访问权限,uid,gid,atime,mtime,ctime
文件:"go"
大小:3657 块:8 IO 块:4096 普通文件
设备:802h/2050d Inode:13137033 硬链接:1
权限:(0775/-rwxrwxr-x) Uid:( 1000/ruanyang) Gid:( 1000/ruanyang)
最近访问:2016-07-27 19:12:39.792720377 +0800
最近更改:2016-07-27 19:11:35.608719535 +0800
最近改动:2016-07-27 19:11:35.632719536 +0800
创建时间:-
$ df -i # -i可以看到indoe总数/已用数
# -lk可以看到1K块的总数/已用数
# 如果想要查看每个inode节点的大小,可以使用命令:sudo dumpe2fs -h /dev/hda | grep "Inode size"。
文件系统 Inodes 已用I 可用I 已用I% 挂载点
tmpfs 2031005 1477 2029528 1% /run
/dev/sda5 7749632 246105 7503527 4% /
tmpfs 2031005 1 2031004 1% /dev/shm
tmpfs 2031005 4 2031001 1% /run/lock
/dev/sda2 0 0 0 - /boot/efi
tmpfs 406201 159 406042 1% /run/user/1000
$ ls -ai # -i可以查看inode号
# -a是显示隐藏文件
4718594 . 4718612 Documents 4718595 .profile
4718593 .. 4718609 Downloads 4718611 Public
4718676 .bash_history 4718604 .local 4718722 snap
4718596 .bash_logout 4721772 .mozilla 4721617 .sogouinput
4718597 .bashrc 4718613 Music 4719850 .sudo_as_admin_successful
4718598 .cache 4718891 .pam_environment 4718610 Templates
4718599 .config 4718614 Pictures 4721742 .thunderbird
4721717 .dbus 4719899 .pki 4718615 Videos
4718608 Desktop 4721725 .presage 4721934 .xinputrc
【总结】捋一下包含关系
- 块 / 逻辑块 / 数据块 / 文件块 =
- 1 * 4KB = 8 * 512KB = 8扇区
- 一个文件/文件夹 包含:
- 1 * inode
- 1 * 目录项
- n * 数据块
- 磁盘 (Ext2)
- (/1)
- n * 盘片 > 2 * 盘面 > n * 磁道 > n * 扇区
- (/2)
- 1 * 1K引导块
- n * 块组
- (/1)
- 1 * 超级块
- 1 * 块组描述符
- 1 * 数据位图
- 1 * inode 位图
- n * inode 列表
- n * 数据块
- (/2)
- n * 文件
- (/1)
- (/1)
寻址方式
- 盘片盘面-磁道-扇区 寻址。直觉上更合理,但由于磁头的物理构造,不用这个(例如你磁头最后才向下接触磁碟,自然是最后才去定位盘面)
- 柱面-磁头-扇区 (Cylinder-Head-Sector, CHS) 寻址。1. 寻址时先驱动磁头臂旋转 (磁道s) 2. 控制其中一个磁头(盘片盘面) 3. 扇区 (让磁碟旋转)
- 逻辑块 (Logical Block Addressing, LBA) 寻址
链接到当前文件 0
没有文件链接到当前文件