背景:AWS Cloud Foundation/实验4,给实例挂载EBS;
笔记:一些Linux命令的含义与用法。如何查看可用存储、如何对分区进行格式化、如何挂载新卷、如何查看文件内容并显示、如何将新卷配置为开机启动、如何在新卷中创建文件并输入文本;
关键词:Linux df、sudo、mkfs、mkdir、mount、echo、tee、cat等命令;/dev、/mnt、/etc目录;开机自动启动fstab文件.
1. 查看实例上可用的存储:
df -h
您应该会看到类似于以下内容的输出结果:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 488M 60K 488M 1% /dev
tmpfs 497M 0 497M 0% /dev/shm
/dev/xvda1 7.8G 982M 6.7G 13% /
这显示的是原始 8GB 磁盘卷。新卷尚未显示。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Linux df(英文全拼:disk free) 命令: 用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
- 文件-a, --all 包含所有的具有 0 Blocks 的文件系统
- 文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
- 文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
- 文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
- 文件-i, --inodes 列出 inode 资讯,不列出已使用 block
- 文件-k, --kilobytes 就像是 --block-size=1024
- 文件-l, --local 限制列出的文件结构
- 文件-m, --megabytes 就像 --block-size=1048576
- 文件--no-sync 取得资讯前不 sync (预设值)
- 文件-P, --portability 使用 POSIX 输出格式
- 文件--sync 在取得资讯前 sync
- 文件-t, --type=TYPE 限制列出文件系统的 TYPE
- 文件-T, --print-type 显示文件系统的形式
- 文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
- 文件-v (忽略)
- 文件--help 显示这个帮手并且离开
- 文件--version 输出版本资讯并且离开
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2.在新卷上创建 ext3 文件系统:
sudo mkfs -t ext3 /dev/sdf
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(1)Linux sudo命令:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
(2)Linux mkfs(英文全拼:make file system)命令:用于在特定的分区上建立 linux 文件系统。
- -t : 给定档案系统的型式,Linux 的预设值为 ext2
- -c : 在制做档案系统前,检查该partition 是否有坏轨
(3)/dev:dev是设备(device)的英文缩写。在linux中,/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。(原文链接:https://blog.youkuaiyun.com/maopig/article/details/7195048)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3.创建目录以挂载新存储卷:
sudo mkdir /mnt/data-store
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(1)Linux mkdir(英文全拼:make directory)命令:用于创建目录。
(2)/mnt:在linux中,mnt是存储挂载设备的目录;mnt是mount的缩写,是挂载的意思,mount命令用于挂载linux系统外的文件,因此mnt目录可以理解为mount命令挂载光驱、USB等设备后,会在mut中找到相应的设备目录。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4.挂载新卷:
sudo mount /dev/sdf /mnt/data-store
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Linux mount命令:它用于挂载Linux系统外的文件
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5.要将 Linux 实例配置为在启动时挂载此卷,您需要在 /etc/fstab 中增加一行。
echo "/dev/sdf /mnt/data-store ext3 defaults,noatime 1 2" | sudo tee -a /etc/fstab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(1)Linux echo命令:用于字符串的输出;
(2)/etc:用来存放系统管理所需要的配置文件和子目录
(3)/etc/fstab:Linux系统开机自动挂载文件fstab,fstab文件中包含了各种各样的文件系统描述信息,它可以被特殊的工具修改,fstab中每一个文件系统描述占一行,每一行是TAB或空格分隔。
第一列需要挂载的设备(/dev/sdf)或远程文件系统(nfs);
第二列是文件系统的挂载点;
第三列是需要挂载的文件系统;
第四列挂载所需带有参数;
async 此参数表明所涉及的文件系统I/O都是异步处理,不会同步写入磁盘能提高性能,生产环境一般不用
atime 此参数表明在每一次数据访问时,同步更新每次的访问的inode时间,是默认参数,实际生产环境中高并发情况不建议使用
auto 能够被自动挂载通过-a 选项
defaults 缺省值(rw,suid,dev,auto)
noatime不同步更新文件系统访问inode时间,提高I/O性能,实际生产环境常用
noauto不自动进行挂载
noexec不可执行可执行程序
第五列决定文件系统是否需要通过dump,通常设置为0或1
第六列控制文件是否需要开机进行fsck检查:0为不需要,根分区一般设置为1,/boot分区一般设置为2.
(4)|:竖线'|' ,在linux中是作为管道符的,将'|'前面命令的输出作为'|'后面的输入。 它的作用是: 连接两个命令,将第一个命令的输出作为第二个命令的输入.
(5)Linux tee命令:用于读取标准输入的数据,并将其内容输出成文件。
- -a或--append 附加到既有文件的后面,而非覆盖它.
- -i或--ignore-interrupts 忽略中断信号。
- --help 在线帮助。
- --version 显示版本信息。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6.查看配置文件以了解最后一行的设置:
cat /etc/fstab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cat 命令:是Linux中最常用的命令之一, cat 命令的名称来自于concatenate。 它可以读取和连接文件,并将其内容写入到标准输出。 如果未指定文件名或指定连字符 - 作为参数,则从标准输入读取内容,即复制标准输入到标准输出。 cat 最常用于打印/查看一个或多个文本文件的内容。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7.再次查看可用存储:
df -h
输出结果现在将额外包含一行 – /dev/xvdf:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 488M 60K 488M 1% /dev
tmpfs 497M 0 497M 0% /dev/shm
/dev/xvda1 7.8G 982M 6.7G 13% /
/dev/xvdf 976M 1.3M 924M 1% /mnt/data-store
8.在挂载的卷上,创建文件并向其添加一些文本。
sudo sh -c "echo some text has been written > /mnt/data-store/file.txt"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> 覆盖输出到文本
>>追加到文本
< 将后面文件作为前面命令的输入
<< 带命令作用全文匹配某个字符串后结束
<<<部分匹配某个字符串
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9.验证文本是否已写入卷中。
cat /mnt/data-store/file.txt