今天下午在实验楼学了一个下午的linux,感觉还是蛮有收获的.再加上实验楼可以边动手边记笔记.
于是.我把我的学习过程全部记下来了.然后不费吹灰之力.直接copy到我的博客.
df 命令
查看文件系统和磁盘容量
使用 -h 参数来让结果以更易懂的方式显示.
du命令
直接使用 du 命令会显示出当前目录下所有的子文件和子文件夹, 并以block的方式显示文件的大小.
在du命令后面加上绝对路径 可以以绝对路径输出要显示的文件.例如: du ~
查看家目录下所有的子文件夹.
使用参数 -h 来令 du 显示的文件大小以更易懂的方式表示
使用参数-d 来表示 所要查看的深度.. 例如:du -d 0
就表示查看当前目录..不看任何一个子文件夹.
比较以下几个命令的不同..1
2
3
4
5
6
7du
du -h
du ~
du -h ~
du -d 0
du -d 0 ~
du -h -d 0 ~
dd 命令
dd命令用于转换和复制文件
dd命令的命令行格式为”选项=值”, 而不是更标准的”—选项 值”或”-选项=值”
初次使用dd命令
使用命令 dd of=test bs=10 count=1
然后输入一些字符串.可以得到一些提示.
但是很难明白什么意思,也不知道为什么会冒出一个 command not found
,似乎是因为某些字符被shell认为是命令了,为什么呢?
于是仔细读了这段话.
上述命令从标准输入设备读入用户输入(缺省值,所以可省略)然后输出到 test 文件,bs(block size)用于指定块大小(缺省单位为 Byte,也可为其指定如’K’,’M’,’G’等单位),count用于指定块数量。如上图所示,我指定只读取总共 10 个字节的数据,当我输入了“hello shiyanlou”之后加上空格回车总共 16 个字节(一个英文字符占一个字节)内容,显然超过了设定大小。使用和du和cat命令看到的写入完成文件实际内容确实只有 10 个字节(那个黑底百分号表示这里没有换行符),而其他的多余输入将被截取并保留在标准输入。
然后,明白了.bs可以设定blocks的大小.count设定blocks的数量.
dd命令只会接受这么多的信息.剩下的信息被dd命令传出来,传到shell,被shell当成命令.
于是出现了上面的那个情况,使用命令cat test
可以看到,输出的是hello shiy%
.说明 猜想是对的.
使用dd命令进行数据转换
看这条命令
1 | dd if=/dev/stdin of=test bs=10 count=1 conv=ucase |
输完这条命令之后在shell里面输入一串字母,dd命令会将字母转换成大写.然后写入test文件.
使用dd命令创建虚拟镜像文件
终于到重头戏了.
1.从/dev/zero设备创建一个容量为256M的空文件 使用一条命令
1 | #新建文件 |
2.将创建好的文件格式化(写入文件系统),
使用mkfs命令格式化磁盘(这里将文件当做磁盘), 使用ext4文件系统格式
1 | mkfs.ext4 virtual.img |
3.将文件当做磁盘挂载到某个文件夹..
mount命令的使用
mount [-o [操作选项]] [-t 文件系统类型] [-w|—rw|—ro] [文件系统源] [挂载点]
输入命令:
1 | mkdir virtual |
郁闷死我了,我找了好久的原因.最后发现.后面的文档里竟然有.好吧.以后要先看文档.再动手做.
不过遗憾的是,由于我们环境的问题(环境中使用的 Linux 内核在编译时没有添加对 Loop device的支持),所以你将无法挂载成功:
同样因为环境原因中没有物理磁盘,也无法创建虚拟磁盘的原因我们就无法实验练习使用该命令了,下面我将以我的物理主机为例讲解如何为磁盘分区。
不过实验还是要继续的.于是 我离开实验楼的环境.拿出我的廉价vps.但是因为同样是虚拟环境.擦.竟然也无法成功.
我就不信了.打开我的虚拟机.用archlinux试试.竟然成功了.上图!!上图.!!
那么我们来操作操作? 哈哈( ´∀`)
完全可以当成一个独立的磁盘来玩.原来还可以这样.好吧.这个先放一放.继续我的实验楼学习.
接下来学习fdisk命令
其实这个命令我在很久以前折腾archlinux的时候就用过了.
说实话..这个命令真是怎么好用怎么用,
参数: -l 查看磁盘信息.
好吧..实验楼的环境还是无法使用.那就拿虚拟机开刀咯.
然后是使用fdisk命令对virtaul.img文件进行问去操作.
使用命令:
1 | fdisk virtual.img |
这个命令在实验楼的环境下是可以进行的.
然后就是根据命令进行文件的分区咯.这个根据帮助命令可以学会.分好区之后使用w命令 可以将修改写入磁盘.
实验楼虚拟机有点卡.我还是用我的arch吧.
建立一个主分区(primary), 我竟然忘记当初是怎么使用fdisk分区了.重新学了一次.
建立扩展分区(extended).我把剩下的容量全部给了拓展分区.
在扩展分区里面建立逻辑分区.我建立了三个拓展分区 分别是一个27M,两个96M.
然后使用p命令查看已经分好的分区.如果不满意可以继续修改.满意了.则使用w命令写入分区信息.
关于fdisk的命令就学习到这里了,让我再回到实验楼看一下文档.
学习losetup命令
按照实验楼文档输入命令.
1 | # 关联回环设备 |
实验楼里面的回环设备是没有的.因此需要到虚拟机上弄.但是.实验楼文档说.需要一个叫做kpartx的工具.但是我用arch的pacman并没有找到kpartx的包.怎么办呢?郁闷了.
没办法,只好拿出我的CentOS虚拟机试试.先试了试losetup命令.发现有.哈哈.这就好办了.于是我先在CentOS里面安装一下git.然后从我的实验楼仓库里面把我在实验楼虚拟机里面搞好的virtual.img 文件clone到我的本地虚拟机.分区实在太蛋疼了.分了三次了今天.
哈哈,这样文件就到手了.继续开干.再次进入实验楼看文档.
先使用losetup命令和kpartx命令映射分区.并格式化每个分区.
再挂载每个分区.用完了再卸载分区.
作业.
安装并使用cowsay