Linux提供了一些不同的工具,我们可以利用它们轻松地在命令行中进行文件系统操作。可
使用键盘随心所欲地创建新的文件系统或者修改已有的文件系统。本节将会带你逐步了解命令行
下的文件系统交互的命令。

8.2.1 创建分区
一开始,你必须在存储设备上创建分区来容纳文件系统。分区可以是整个硬盘,也可以是部
分硬盘,以容纳虚拟目录的一部分。
fdisk 工具用来帮助管理安装在系统上的任何存储设备上的分区。它是个交互式程序,允许
你输入命令来逐步完成硬盘分区操作。
要启动 fdisk 命令,你必须指定要分区的存储设备的设备名,另外还得有超级用户权限。如
果在没有对应权限的情况下使用该命令,你会得到类似于下面这种错误提示。

$ fdisk /dev/sdb
Unable to open /dev/sdb
$

说明: 有时候,创建新磁盘分区最麻烦的事情就是找出安装在Linux系统中的物理磁盘。Linux
采用了一种标准格式来为硬盘分配设备名称,但是你得熟悉这种格式。对于老式的IDE驱
动器,Linux使用的是/dev/hdx。其中x表示一个字母,具体是什么要根据驱动器的检测顺
序(第一个驱动器是a,第二个驱动器是b,以此类推)。对于较新的SATA驱动器和SCSI
驱动器,Linux使用/dev/sdx。其中的x具体是什么也要根据驱动器的检测顺序(和之前一
样,第一个驱动器是a,第二个驱动器是b,以此类推)。在格式化分区之前,最好再检查
一下是否正确指定了驱动器。

如果你拥有超级用户权限并指定了正确的驱动器,那就可以进入 fdisk 工具的操作界面了。
下面展示了该命令在CentOS发行版中的使用情景。

$ sudo fdisk /dev/sdb
[sudo] password for Christine:
Device contains neither a valid DOS partition table,
nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xd3f759b5.
Changes will remain in memory only
until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will
be corrected by w(rite)
[...]
Command (m for help):

窍门 如果这是你第一次给该存储设备分区, fdisk 会警告你设备上没有分区表。
fdisk 交互式命令提示符使用单字母命令来告诉 fdisk 做什么。表8-2显示了 fdisk 命令提示
符下的可用命令。

尽管看上去很恐怖,但实际上你在日常工作中用到的只有几个基本命令。
对于初学者,可以用 p 命令将一个存储设备的详细信息显示出来。

Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 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: 0x11747e88
Device Boot Start End Blocks Id System
Command (m for help):

输出显示这个存储设备有5368 MB(5 GB)的空间。存储设备明细后的列表说明这个设备上
是否已有分区。这个例子中的输出中没有显示任何分区,所以设备还未分区。
下一步,可以使用 n 命令在该存储设备上创建新的分区。

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): +2G
Command (m for help):

分区可以按主分区(primary partition)或扩展分区(extended partition)创建。主分区可以被
文件系统直接格式化,而扩展分区则只能容纳其他主分区
① 。扩展分区出现的原因是每个存储设
备上只能有4个分区。可以通过创建多个扩展分区,然后在扩展分区内创建主分区进行扩展。
② 上
例中创建了一个主分区,在存储设备上给它分配了分区号1,然后给它分配了2 GB的存储设备空
间。你可以再次使用 p 命令查看结果

Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 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: 0x029aa6af
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
Command (m for help):

从输出中现在可以看到,该存储设备上有了一个分区(叫作/dev/sdb1)。 Id 列定义了Linux怎
么对待该分区。 fdisk 允许创建多种分区类型。使用 l 命令列出可用的不同类型。默认类型是 83 ,
该类型定义了一个Linux文件系统。如果你想为其他文件系统创建一个分区(比如Windows的NTFS
分区),只要选择一个不同的分区类型即可。
可以重复上面的过程,将存储设备上剩下的空间分配给另一个Linux分区。创建了想要的分
区之后,用 w 命令将更改保存到存储设备上。

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
$

存储设备的分区信息被写入分区表中,Linux系统通过 ioctl() 调用来获知新分区的出现。
设置好分区之后,可以使用Linux文件系统对其进行格式化。

窍门 :有些发行版和较旧的发行版在生成新分区之后并不会自动提醒Linux系统。如果是这样的
话,你要么使用 partprob 或 hdparm 命令(参考相应的手册页),要么重启系统,让系统
读取更新过的分区表。
——————————
① 此处说法有误。扩展分区内容纳的应该是“逻辑分区”(logical partition)。可参考https://en.wikipedia.org/wiki/
Extended_boot_record及https://technet.microsoft.com/en-us/library/cc976786.aspx。
② 此处正确的说法应是:“可以通过创建一个扩展分区,然后在扩展分区内创建逻辑分区进行扩展。”

Linux命令+shell脚本大全:操作文件系统相关推荐

  1. Linux命令+shell脚本大全:查看文件内容

    Linux中有几个命令可以查看文件的内容,而不需要调用其他文本编辑器(参见第10章).本 节将演示一些可以帮助查看文件内容的命令. 3.8.1 查看文件类型 在显示文件内容之前,应该先了解一下文件的类 ...

  2. Linux命令+shell脚本大全:处理数据文件

    当你有大量数据时,通常很难处理这些信息及提取有用信息.正如在上节中学习的 du 命令, 系统命令很容易输出过量的信息. Linux系统提供了一些命令行工具来处理大量数据.本节将会介绍一些每个系统管理员 ...

  3. Linux命令+shell脚本大全:处理目录

    在Linux中,有些命令(比如 cp 命令)对文件和目录都有效,而有些只对目录有效.创建新 目录需要使用本节讲到的一个特殊命令.删除目录也很有意思,本节也会讲到. 3.7.1 创建目录 在Linux中 ...

  4. Linux命令+shell脚本大全:用 aptitude 管理软件包

    免费教程推荐: python.C++.Java.JS.Rust.Go语言入门完全手册(6合1).zip-Python文档类资源-CSDN下载 Linux系统管理员面对的一个常见任务是确定系统上已经安装 ...

  5. Linux命令+shell脚本大全:文件和目录列表

    要想知道系统中有哪些文件,可以使用列表命令( ls ).本节将描述 ls 命令和可用来格式化 其输出信息的选项. 3.5.1 基本列表功能 ls 命令最基本的形式会显示当前目录下的文件和目录: $ l ...

  6. Linux命令+shell脚本大全:用 aptitude 安装软件包

    免费教程推荐: python.C++.Java.JS.Rust.Go语言入门完全手册(6合1).zip-Python文档类资源-CSDN下载 了解了怎样在系统中列出软件包信息之后,本节将带你逐步学习怎 ...

  7. linux中脚本退出函数,Linux 命令 shell 脚本之09(函数)

    1.使用函数 [oracle@XAG143 myshell]$ cat test_fun1.sh #!/bin/bash # using a function in a script function ...

  8. linux循环处理脚本命令,后端开发必须掌握的Linux命令[Shell脚本篇]

    Shell脚本相关命令 介绍 一句话说明shell脚本是个啥 shell脚本就是将多个shell指令汇集到一起去完成一个复杂的功能 类似windows下的批处理文件 一般以sh为文件后缀 语法 程序结 ...

  9. 《Linux命令行与shell脚本大全》笔记

    初识Linux Shell 什么是Linux Linux可划分为以下四部分: Linux内核 GNU工具 图形化桌面环境 应用软件 深入探究Linux内核 内核主要负责以下四种功能: 系统内存管理 软 ...

最新文章

  1. IEnumerable是否应该实现IEnumerable接口
  2. 看样子还是:JSP和JAVA
  3. mysql群删除记录查询_mysql那些招:执行大批量删除、查询和索引等操作
  4. Java匿名内部类总结
  5. Nexus-vPC与FHRP
  6. Winxp中加密自己的用户目录
  7. “写画”与“惊春”:王艾画展和当代诗人朗诵会
  8. 代码的坏味道之一——译自《重构》
  9. 第三:jenkins集成httpclient项目并生成在线报告(接口自动化落地)
  10. 不缺流量却变现乏力?穿山甲重磅打造《App 如何变现创收》系列课程帮你找症结...
  11. 使用 Async / Await 来编写简明的异步代码
  12. Java引用多个jar包的写法
  13. GPS数据格式:NMEA-0183协议
  14. 中国气象数据(站点)
  15. 安装算量软件价格_鹏业安装算量软件正版购买渠道
  16. Chrome快捷键大全:Chrome窗口和标签页快捷键、功能快捷键、网页快捷键
  17. 美国计算机访学,计算机应用专业4天喜获美国加州大学洛杉矶分校访问学者职位...
  18. [全新大碟]周杰倫 - 魔杰座
  19. 【疯狂诗词大会小程序2.0】功能模块+前端+诗词答题小程序+内置数千道题目+开箱即用
  20. Java程序员面试需要注意什么?

热门文章

  1. vue重复访问同一路由报错
  2. postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)
  3. 搜索词与关键词报告区别
  4. 氟改性UiO-66|3,4-二羟基苯甲醛改性UiO-66-NH2|喜树碱衍生物/寡肽@ZIF-8纳米载药体系
  5. ipad手写笔哪款好?ipad手写笔推荐
  6. 区块链产业月报丨中国区块链企业已达1400家,专利申请数量全球领先!
  7. Bonobo.Git.Server 401 Error
  8. 揭秘:广告拦截软件如何赚钱?
  9. 每日分享html之1个卡片选择、2个加载、1个背景、1个开关
  10. 物联网安全知识点总结--第六章 物联网应用层安全