lesson

一、df 
作用: 
显示磁盘分区上的可使用的磁盘空间, 默认显示单位为kb . 可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间的等信息。
选项:
-a :包含全部的文件系统
-h :以可读性较高的方式显示信息  单位显示G,M,KB
-H:与-h 参数相同, 但在计算时以1000Bytes 为换算单位, 不是1024Bytes 
-i: 显示inode的信息
-k:kilobytes制定区块大小为1024字节
-l:仅显示本地端的文件系统
-m:megabytes 制定区块大小为1048576字节 兆字节
-P --portability 使用POSIX的输出格式
-t --type:仅显示指定文件系统类型的磁盘信息
-T --print -type:显示文件系统的类型
-x --exclude-type:不要显示制定文件系统类型的磁盘信息 
--block-size :以指定区块大小显示区块数目
--sync :取得磁盘使用信息前,先执行sync 指令
--no-sync: 取得磁盘使用信息前, 不执行sync 指令。此为预设值
/dev/shm: 实际上是内存虚拟化出来的一个虚拟的文件系统。 文件速度快并不重要的可以写入该目录里

二、du 

du : show disk usage 
作用:统计目录或文件所占用磁盘空间的大小。
语法:du 参数 选项
参数:
-a 为每个制定文件显示磁盘使用情况, 或者为目录中每个文件显示各自磁盘使用情况
-b 显示目录或文件大小时, 以byte 为单位
-c 除了显示目录或文件的大小外, 同时也显示所有目录和文件的总和
-D deferenc -args 显示指定符号链接的源文件大小
-h humanreadable 以K,M,G 为单位,提高信息的可读性
-H 以K,M,G为单位, 以1000 换算而不是1024
-k kilobytes
-l count-lines 重复计算硬件链接的文件
-L 显示选项中符号链接的源文件大小
-m megabytes 为单位
-s summarize 显示当前目录大小
-S 显示每个目录的大小,不包含子目录
-x one-file-xystem  以一开始处理的文件系统为准, 其他不同目录略过
-X exclude-from  制定目录或文件
实例:
du /home/linux    :显示一个目录树以及每个子目录的磁盘使用情况
du -k /home/linux :以KB 为单位显示一个目录以及子目录的磁盘使用情况、
du -m /home/linux :以MB 为单位显示一个目录以及子目录的磁盘使用情况
du -g /home/linux :以GB 为单位显示一个目录以及子目录的磁盘使用情况
du -h .           :查看当前目录下所有的目录以及子目录的大小
du -h --max-depth=0 user: 查看第n层目录,即0不深入到子目录
du -h --exculde='*xyz*' :列出当前目录下目录名不包括xyz字符串的目录的大小
du -sh user       :查看当前目录下user目录的大小
du -ah user       :列出user目录以及子目录下所有目录和文件的大小
du -0 user        :没列出一个目录的信息,不换行直接输出下一个目录的信息
du -s user        :只显示一个目录树的全部磁盘使用情况

三、fdisk 

作用: 查看磁盘实体使用情况,也可对硬盘分区。
选项: 
-b 分区大小
-l  列出指定的外围设备的分区表状况
-s 分区编号, 将指定的分区大小输出到标准输出上, 单位为区块
-u 搭配-l 显示,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v 显示版本信息
实例:
*选择要进行操作的磁盘:
fdisk /dev/sdb
*输入m 列出可以执行的命令:
command (m for help) :m
a toggle a bottable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition type 
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 partition's system
t change a partition's system id
u change display /entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
*输入p 列出磁盘目前的分区情况:
*输入d 选择分区,删除现有分区
*查看分区情况,确认分区已删除 print 
*输入n 建立新的磁盘分区
e extended
p primary partition (1-4)
 
p //建立主分区
1 //分区号
1 //分区起始位置默认1 
100 // 分区结束位置
+100M //分区结束位置,以M为单位。
*确认分区成功: p 
*创建扩展分区; e  
*在扩展分区中创建逻辑分区: l  logical 
主分区和扩展分区的磁盘号位1-4,也就是说最多有4个主分区或者扩展分区,逻辑分区开始的磁盘号为5,因此在这个实验中试没有sdb4的.
*最后保存分区操作: w 
*分区格式化后使用磁盘:
在sdb1 建立ext2 分区:
mkfs.ext2 /dev/sdb1
在sdb6 建立ext3分区:
mkfs.ext3 /dev/sdb6
格式化分区:
mke2fs -t ext4 -b 4096 -m 0.1  /dev/sdb1  -L aming
5.00% reserved for the super user : 保留空间为超级用户
*建立两个目录/oracle /web 将新建好的两个分区挂载到系统
mkdir /oracle
mkdir /web
mount /dev/sdb1 /oracle
mount /dev/sdb6 /web
重新挂载只读,noatime
mount -oremount,ro noatime /dev/sdb6  /web
/dev/sdb1 1019M   35M  984M  4%  /oarcle
*取消挂载
unmount /oracle
unmount /web
*重新根据配置文件挂载
mount -a 
* 检查分区, 可能会丢失数据
fsck -y /dev/sdb1 
*查看分区挂载情况
df -h  
* 如果需要每次开机自动挂载则需修改/etc/fstab文件。
/dev/sdb1 /oracle ext2 defaults 0备份日志 0检测磁盘分区坏道
/dev/sdb6 /web ext3 defaults 0 0 
 
/etc/rc.d/rc.local

四、dd 

作用:
dd 是一个Unix和类Unix系统中的命令, 主要功能为转换和赋值文件。在Unix和类Unix系统上, 硬件的设备驱动(如硬盘) 和特殊设备文件(如/dev/zero, /dev/random) 就像普通文件一样, 出现在文件系统中, 只要在各自的驱动程序中实现了对应的功能, dd 也可以读取或者写入这些文件。 dd 也可以用在备份硬件的引导扇区, 获取一定数量的随机数据等等的一些任务。 dd 程序也可以再复制时处理数据。 例如转换字节序, 或在ASCII和EBXCDIC编码间转换。

用法:

dd 的命令行语句与其他的程序不同,因为它的命令选项格式为 选项=值, dd 默认从标准输入中读取,并写到标准输出中, 可以使用选择if (input file ) 和of (output file) 。

块的概念:

块是衡量一次读取,写入和转换字节的单位, 命令行选项可以为输入/读取(ibs) 和输出/写入(obs)指定一个不同的块大小, 选项会覆盖ibs 和obs 选项, 输入和输出的默认块大小为512字节(传统的磁盘块以及POSIX规定的块的大小) 复制的count选项。 读取的(skip)选项和 写入(seek)选项都是以块为单位的。 转换操作也瘦“转换块大小(cbs)”影响。
w表示2倍,b表示512倍,k表示1024倍,M表示1024 × 1024倍,G表示1024 × 1024 × 1024倍

用途:

*数据转换:dd 可以在文件、设备、分区和卷之间复制数据。数据可以从其中任何地方输入和输出;但输出到分区时有重要差异。此外在传输过程中,数据可以用conv 选项以适应介质。 如何最后一个块有意外长度,试图使用cp 复制整个磁盘可能会遗漏掉,dd 却可能成功。源文件和目标磁盘应具有相同的大小。
dd if =/dev/sr0 of=myCD.iso bs =2048 conv =noerror, sync // 从CD-ROM中创建ISO磁盘镜像
dd if =/dev/sda2 of =/dev/sdb2 bs=4096 conv=noerror //克隆一个分区到另一个
dd if =/dev/ad0 of =/dev/ad1 bs=1M conv noerror //克隆硬盘ad0到ad1 
noerror 如果发生错误,程序继续进行,  sync  填充每个块到指定字节
*备份和恢复主引导记录: 可以修复主引导记录。主引导记录可以转换到文件,或从总转移出来。
dd if =/dev/fd0 of =MBRboot.img bs=512 count=2 //要复制软盘的前两个扇区:
dd if =/dev/sda of =MBR.img bs =512 count =1 //创建整个x86主引导记录的镜像(包括MS-DOS分区表和MBR字节)
dd if = /dev/sda of =MBR_boot.img bs=446 count =1 //创建仅含主引导记录代码的镜像
*数据修改:dd可以直接修改数据
dd if=/dev/zero of=path/to/file bs=512 count=1 conv=notrunc //空字节覆盖文件的前512 字节,notrunc 表示不缩减输出文件, 如果存在文件,只修改相应字节的数据,如果不存在,则创建512字节的文件。当dd的输出文件为块设备时,无效果。
dd if=/dev/sdb2 of=partition.img bs=4096 counv=noerror //在不同的分区中复制磁盘分区到磁盘映像文件中。
*磁盘擦除: 出于安全方面考虑,有时需要擦除丢弃的磁盘。
dd if=dev/sda // 检查驱动器上是否有数据,并将其输出到标准输出
dd if=/dev/zero of =/dev/sda bs=4k //用零擦除磁盘
*驱动器性能基准测试: 对驱动器进行基准测试, 使用1024字节块分析连续系统读取和写入的性能:
dd if =/dev/zero bs=1024 count=1000000 of=file_1GB
dd if =file_1GB of=/dev/null bs=1024
*用随机数据生成文件
dd if=/dev/urandom of=myrandom bs=100 count=1 //使用内核随机数驱动,用100 个随机字节生成文件
*将文件转换为大写
dd if =filename of=filename1 conv=ucase
*创建任意大小的空文件
dd if=/dev/zero of=mytestfile.out bs=1 seek =1G  //创建1G的稀疏文件,或增加现有文件的大小。

参数:

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

cbs = bytes 一次转换bytes字节。

count = blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCII码。

conv = ebcdic 把ASCII码转换为EBCDIC码。

conv = ibm 把ASCII码转换为alternate EBCDIC码。

conv = blick 把变动位转换成固定字符。

conv = ublock 把固定们转换成变动位

conv = ucase 把字母由小写变为大写。

conv = lcase 把字母由大写变为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。

 

原文地址:https://www.cnblogs.com/LinuxSuDa/p/4387294.html