文件系统命令(十六)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件系统命令(十六)相关的知识,希望对你有一定的参考价值。

文件系统命令:du,df,fdisk,parted,blkid,lsblk

16.1.du

功能:估算文件空间使用情况

语法:

       du [OPTION]... [FILE]...

       du [OPTION]... --files0-from=F


常用选项:

-a或-all  递归指定目录或多个目录中所有文件的统计结果

-b或-bytes  以bytes为单位显示

-c–total  产生一个总大小,除了显示目录和文件的大小外,同时还显示所有目录或文件的总和

-h  人性化显示(K,M,G)

-k  单位KB显示

-m  单位MB显示

-s  只显示总大小,不含子文件

--max-depth=<目录层数>,超过层数的目录忽略

--exclude=file 排除文件或目录

--time  显示大小和创建时间


示例:

[[email protected] scripts]# du  -sh /etc   #查看etc目录大小
28M/etc
[[email protected] tmp]# du -sh /tmp
13G/tmp
[[email protected] tmp]# du -sh --exclude=test.12 /tmp  #排除test.12文件查看tmp目录大小
1.2M/tmp
[[email protected] tmp]# du -sh --time /tmp
13G    2017-06-20 11:07    /tmp
[[email protected] tmp]# du -ah --max-depth=1 /etc/  #选择层数查看,不能使用s,因为s是不显示子目录和文件的
0/etc/grub.conf
116K/etc/lvm
8.0K/etc/xinetd.d
16K/etc/gnome-vfs-2.0
48K/etc/polkit-1
28K/etc/iproute2



16.2.df

功能:报告文件系统磁盘空间使用情况

语法:df [OPTION]... [FILE]...

常用选项:

-a  显示所有文件系统的磁盘使用情况,包含虚拟文件系统及伪文件系统

-h 人性化显示

-i  显示block使用的inode信息

-k  KB显示

-P  使用POSIX格式输出

-t  输出指定文件系统类型的磁盘使用情况

-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)

-T  打印文件系统类型

示例:

[[email protected] ~]# df -ah  #查看所有文件系统磁盘使用情况
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G   14G  3.0G  82% /
proc                     0     0     0    - /proc
sysfs                    0     0     0    - /sys
devpts                   0     0     0    - /dev/pts
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             477M   28M  425M   6% /boot
none                     0     0     0    - /proc/sys/fs/binfmt_misc
/dev/mapper/VolGroup-lv01
                      4.8G   19M  4.6G   1% /data
[[email protected] ~]# df -i   #打印inode号
Filesystem            Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root
                     1152816 58106 1094710    6% /
tmpfs                 125543     1  125542    1% /dev/shm
/dev/sda1             128016    38  127978    1% /boot
/dev/mapper/VolGroup-lv01
                      327680    10  327670    1% /data
[[email protected] ~]# df -k  #以kb为单位打印
Filesystem           1K-blocks     Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      18003272 13974776   3107308  82% /
tmpfs                   502172        0    502172   0% /dev/shm
/dev/sda1               487652    27678    434374   6% /boot
/dev/mapper/VolGroup-lv01
                       5029504    19236   4748124   1% /data
[[email protected] ~]# df -Ph  #使用posix格式输出,整齐多了
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   18G   14G  3.0G  82% /
tmpfs                         491M     0  491M   0% /dev/shm
/dev/sda1                     477M   28M  425M   6% /boot
/dev/mapper/VolGroup-lv01     4.8G   19M  4.6G   1% /data
[[email protected] ~]# df -Th
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   #打印文件系统类型
                     ext4    18G   14G  3.0G  82% /
tmpfs                tmpfs  491M     0  491M   0% /dev/shm
/dev/sda1            ext4   477M   28M  425M   6% /boot
/dev/mapper/VolGroup-lv01
                     ext4   4.8G   19M  4.6G   1% /data

[[email protected] ~]# du -ah /etc |sort -nrk 1 |head -n 10   #打印指定目录中最大的10个目录或文件
984K    /etc/pki/tls/certs/ca-bundle.trust.crt
772K    /etc/pki/tls/certs/ca-bundle.crt
628K    /etc/services
620K    /etc/pki/ca-trust/extracted/pem
384K    /etc/selinux/targeted/contexts
352K    /etc/sysconfig
324K    /etc/pki/ca-trust/extracted/openssl
316K    /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
300K    /etc/selinux/targeted/contexts/files
296K    /etc/gconf

[[email protected] tmp]# find . -type f -exec du -k {} \;|sort -nrk 1 |head  #查找指定目录中最大的10个目录或文件
12582916    ./test.12
1000    ./123.log
100    ./456.log
12    ./123
4    ./user.log
4    ./passwd.bak
4    ./passwd
4    ./newetcdir
0    ./yum.log

16.3.fdisk

功能:linux分区表操作器

语法:

fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device

fdisk -l [-u] [device...]

fdisk -s partition...

fdisk -v

fdisk -h

示例:

# fdisk -l  查看磁盘的详细信息
磁盘大小=盘面数 X 扇区数 X 柱面数 X 每扇区大小(512字节)
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders  255个磁头 63个扇区 2610个柱面
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dc9a4
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
 
Disk /dev/mapper/vg_node1-lv_root: 18.8 GB, 18798870528 bytes
255 heads, 63 sectors/track, 2285 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512
bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
Disk /dev/mapper/vg_node1-lv_swap: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

磁盘分区:

fdisk /dev/sdb
 
Command (m for help): m 打印帮助
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition  删除一个分区
   l   list known partition types  查看所有分区类型
   m   print this menu
   n   add a new partition 添加新分区
   o   create a new empty DOS partition table
   p   print the partition table 打印分区表
   q   quit without saving changes 退出不保存
   s   create a new empty Sun disklabel
   t   change a partition‘s system id  更改分区的系统类型(id)
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit  保存且退出
   x   extra functionality (experts only)
 
 
Command (m for help): n
Command action
   e   extended  扩展分区
   p   primary partition (1-4) 主分区 分区编号
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):  起始柱面(默认)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G  数字代表结束柱面;+size代表最终指定大小
 
分区:如果你要分四个以上分区,请把第四个分为extended扩展分区
     而且扩展分区把多余的所有空间都划分进去,否则会造成空间的浪费
 
格式化成某种文件系统:
mkfs.ext4 /dev/sdb1
或者
mkfs -t ext4 /dev/sdb1
 
查看文件系统:
df -lhT
通过挂载方式使用:
手动挂载:
mkdir /u01 创建空的挂载点
mount /dev/sdb1 /u01

16.4.parted

功能:GNU分隔-分区操作程序

语法:parted [options] [device [command [options...]...]]

常用选项:

-h, --help 显示此求助信息 

-l, --list 列出所有设别的分区信息

-i, --interactive 在必要时,提示用户 

-s, --script 从不提示用户 

-v, --version 显示版本


两种分区:

gpt    没有主分区,扩展分区,逻辑扩展分区的概念,支持单个分区最大超过2TB

msdos    有主分区,扩展分区,逻辑扩展分区的概念

 

bios

EFI/UEFI

 

fdisk只能分msdoc分区,而parted可以分msdos和gpt分区

 

这两种分区格式怎么查看

 

# parted /dev/sda
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type ‘help‘ to view a list of commands.
(parted) print                                                           
Model: ATA ST3500312CS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos      --这里就可以看到类型


这两种分区格式怎么转换

(parted) mklabel gpt        --在parted里输入这样的命令去转换

(parted) mklabel msdos

 

--注意,不要在正在使用磁盘时做转换,如果你要做转换可以在以下几种情况去做

1,rescue模式

2,把磁盘接到另一台linux,另一台启动并使用parted /dev/sdb来做转换

3,在安装系统时,在分区那一步,可以按ctrl+alt+F2切换到文本模式,再使用parted来转换

(parted) help        
(parted) mkpart
Partition type?  [logical]?
File system type?  [ext2]? ext4
Start? 225GB
End? 275GB

16.5.blkid

功能:打印块设备属性

示例:

[[email protected] tmp]# blkid
/dev/mapper/VolGroup-lv01: UUID="9a4d86d6-2b06-496c-82df-c50cf5423b23" TYPE="ext4" 
/dev/sda1: UUID="ec9d5b15-ba24-4f6e-bd2a-7f585d1462c3" TYPE="ext4" 
/dev/sda2: UUID="dN12Vt-FG5U-Nd3f-FCrR-Sv7m-USb2-fOgtT7" TYPE="LVM2_member" 
/dev/mapper/VolGroup-lv_root: UUID="ae65ef93-0d13-40ba-9516-d69474f5e0f1" TYPE="ext4" 
/dev/sdb: UUID="Shb8E4-1wg8-cc34-AGXH-SP4b-ONfr-3Yfw3y" TYPE="LVM2_member" 
/dev/mapper/VolGroup-lv_swap: UUID="b497699e-b5f0-4b03-8c09-898a41fec6c7" TYPE="swap

16.6.lsblk

功能:列出所有块设备信息

语法:

lsblk [options]

lsblk [options] device...

常用选项:

-a, --all            显示所有设备

 -b, --bytes          以bytes方式显示设备大小

 -d, --nodeps         不显示 slaves 或 holders

 -D, --discard        print discard capabilities

-e, --exclude <list> 排除设备 (default: RAM disks)

 -f, --fs             显示文件系统信息

 -h, --help           显示帮助信息

 -i, --ascii          use ascii characters only

 -m, --perms          显示权限信息

 -l, --list           使用列表格式显示

 -n, --noheadings     不显示标题

 -o, --output <list>  输出列

 -P, --pairs          使用key="value"格式显示

 -r, --raw            使用原始格式显示

 -t, --topology       显示拓扑结构信息


示例:

[[email protected] tmp]# lsblk  #查看本机的设备文件
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                          11:0    1 1024M  0 rom  
sda                           8:0    0   20G  0 disk 
├─sda1                        8:1    0  500M  0 part /boot
└─sda2                        8:2    0 19.5G  0 part 
  ├─VolGroup-lv_root (dm-0) 253:0    0 17.6G  0 lvm  /
  └─VolGroup-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                           8:16   0   10G  0 disk 
└─VolGroup-lv01 (dm-2)      253:2    0    5G  0 lvm  /data
 
[[email protected] tmp]# lsblk  -l #列表格式显示
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                      11:0    1 1024M  0 rom 
sda                       8:0    0   20G  0 disk
sda1                      8:1    0  500M  0 part /boot
sda2                      8:2    0 19.5G  0 part
VolGroup-lv_root (dm-0) 253:0    0 17.6G  0 lvm  /
VolGroup-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                       8:16   0   10G  0 disk
VolGroup-lv01 (dm-2)    253:2    0    5G  0 lvm  /data

本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1940187

以上是关于文件系统命令(十六)的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

linux(十六) 系统引导过程及服务控制详解

VSCode自定义代码片段——cli的终端命令大全

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段4——cli的终端命令大全

VSCode自定义代码片段15——git命令操作一个完整流程