Linux基础-文件

1. 文件类型属性:d(目录) -(文件) l(链接) b(block,如磁盘) c(字符设备,不能阶段输出,不支持随机存取,如鼠标) s(socket) p(pipe/fifo)

2. /bin 存放的是在单人模式下还能运行的指令;/sbin 包括了开机、修复、还原系统所需要的指令

3. file 查看文件类型,纯文本/shell/二进制相当于windows下面的后缀名

4. od 以一定的格式查看文件,二进制,八进制,十六进制,ASCII字符集

5. SUID/SGID(s) 特点:1).SUID只对二进制文件(shell script不可以)有效 2).调用者对该文件有执行权  3).在执行过程中,调用者会暂时获得该文件的所有者权限 4).该权限只在程序执行的过程中有效  5).作为own组的权限 6). SGID可以用于目录 7). 若用户在开启了群组s属性的目录下创建新的文件,则群组和父目录相同

6. Sticky Bit(t): 对一个文件设置了sticky-bit之后,尽管其他用户有写权限, 也必须由属主执行删除、移动等操作。对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、 移动等操作。sticky 位要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映象。这样做是为了节省大型程序的启动时间。但是会占用系统资源。

7. whereis 和 locate/updatedb

8. sudo find / -type p  -exec ls -l {} \;  找出所有类型为pipe的文件并使用ll 列出

9. sudo find / -size +200M -size -2000M -user user -exec ls -lh {} \;

10. find .| xargs grep -ri world 找出所有含有world这个单词的文件

11. sed -n '2~15,+0{:loop;/love/!{N;b loop};p}' Lennon 从第二行开始,每隔15行选择一行,执行循环,如果没有找到‘love’,就读入下一行处理。发现‘love’后停止,且打印模式空间

12. sed -n '/begin/,/end/c ----'将begin和end之间的行替换为----。

13. /\([a-z]\{2}\) \1  vim 分组匹配

14. :%s/l.\{-}a/----/ vim 懒惰匹配

15. :%s/\(Sl\)\@<=i/I/ vim 零宽断言:匹配前面是Sl的i

 

\(Supply\)\@!Suppl 匹配所所有不是Supply的Suppl模式

 

16. :leti=1 |g/^/ s//\=i.' '/ |let i=i+1 vim添加行号

 

 

 

 

文件系统:

    一个磁盘最小单位是扇区,大小通常为512字节或者4k。早期Linux为了兼容Windows,使用MBR的方式来处理开机管理程序和分割表。开机管理程序和分割表通常放在第一个磁区,大小为512字节。开机记录区占446B,分割表占64B.因此磁盘最大支持2.2T。鉴于,分割表只有64B,一个磁盘最多只能分成4个主分区(P)和扩展分区(E)。但是,扩展分区可以再划分为多个逻辑分区(L)。对于P+E的情况,磁盘号通常为sda1(P),sda5(L),sda6(L)。sda2是整个E的编号,其中还有没有显示表示的两个主分区sda3和sda4。当然,另一种分区技术是GPT,限制相对较少,但是很多古老的工具如fdisk并不认识。

Linux采用ext2,ext3等文件系统,属于索引式文件系统。每个文件系统可以划分成以下三种。每个datablock有1k 2k,4k等大小,但是每个inode固定大小128B。Linux将inode记录block号码的区域定义为12个直接,1个间接,一个双间接和一个三间接。

 

  • superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统格式等信息;
  • inode:记录文件的属性,一个文件占用一个inode,同事记录此文件所在数据的block号;
  • block:实际记录文件内容,文件太大时,会展鸿多个block;
  • block bitmap:记录文件系统中已经使用的block;
  • inode bitmap:记录文件系统中已经使用的inode;

与之相对的另一种是链接式文件系统,如FAT32。为了将文件划分,当前数据块会存储下个文件块的地址,形成一个链表。这种文件系统无法一次将所有文件块读取出来。

对于索引式文件系统,当创建目录时,系统至少会分配一个inode和一个block。block用于存放目录下的文件名和文件使用的inode编号。

为了保证突然断电时,写入的inode,block信息一致,ext3及以上使用了日志文件系统。

Hard Link: 多个文件名对应到同一个inode

Symbol Link: 建立一个独立的文件,这个文件会让数据读取指向它链接到的那个文件名。

常用命令:

1. blkid 列出系统中被格式化的装置

2. dumpe2fs 仅限于ext2/ext3/ext4系列,列出文件系统详情,包括inode大小,block大小,inode和block数目。使用-h选项可以仅打印文件系统信息。

3. ls -i 列出inode号

4. ls -l /lib/modules/$(uname -r)/kernel/fs 当前系统支持的文件系统

5. file -s /dev/xvda1  OR  df -T /dev/xvda1 OR mount 列出文件系统类型

6. lsblk列出系统中有哪些磁盘,其中rota(rotation)表示是否是机械硬盘

7. xfs_info 查看xfs文件系统的信息

8. fdisk -l

9. stat列出文件的inode信息

10. debugfs /dev/sda1 这是一个强大的命令,进入命令行之后,可以通过stat来查看文件占用的inode和block。可以通过icheck来查找一个block对应的inode,可以通过ncheck来查找对应的文件名。?列出所有可用的命令。

11. dd 拷贝文件,支持格式转换,支持按块拷贝。

12. parted 查看文件系统分区。

13. 查看文件系统信息: tune2fs -l /dev/sda1 

14. 格式化磁盘mkfs.ext4 /dev/sda

15. 分区fdisk /dev/sda,分区完成之后要创建文件系统/格式化,分区才能使用,否则在mount,debugfs,dumpe2fs等时会有bad magic number问题。

16. 磁盘检查e2fsck

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值