Linux命令+shell脚本大全:操作文件系统
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脚本大全:操作文件系统相关推荐
- Linux命令+shell脚本大全:查看文件内容
Linux中有几个命令可以查看文件的内容,而不需要调用其他文本编辑器(参见第10章).本 节将演示一些可以帮助查看文件内容的命令. 3.8.1 查看文件类型 在显示文件内容之前,应该先了解一下文件的类 ...
- Linux命令+shell脚本大全:处理数据文件
当你有大量数据时,通常很难处理这些信息及提取有用信息.正如在上节中学习的 du 命令, 系统命令很容易输出过量的信息. Linux系统提供了一些命令行工具来处理大量数据.本节将会介绍一些每个系统管理员 ...
- Linux命令+shell脚本大全:处理目录
在Linux中,有些命令(比如 cp 命令)对文件和目录都有效,而有些只对目录有效.创建新 目录需要使用本节讲到的一个特殊命令.删除目录也很有意思,本节也会讲到. 3.7.1 创建目录 在Linux中 ...
- Linux命令+shell脚本大全:用 aptitude 管理软件包
免费教程推荐: python.C++.Java.JS.Rust.Go语言入门完全手册(6合1).zip-Python文档类资源-CSDN下载 Linux系统管理员面对的一个常见任务是确定系统上已经安装 ...
- Linux命令+shell脚本大全:文件和目录列表
要想知道系统中有哪些文件,可以使用列表命令( ls ).本节将描述 ls 命令和可用来格式化 其输出信息的选项. 3.5.1 基本列表功能 ls 命令最基本的形式会显示当前目录下的文件和目录: $ l ...
- Linux命令+shell脚本大全:用 aptitude 安装软件包
免费教程推荐: python.C++.Java.JS.Rust.Go语言入门完全手册(6合1).zip-Python文档类资源-CSDN下载 了解了怎样在系统中列出软件包信息之后,本节将带你逐步学习怎 ...
- linux中脚本退出函数,Linux 命令 shell 脚本之09(函数)
1.使用函数 [oracle@XAG143 myshell]$ cat test_fun1.sh #!/bin/bash # using a function in a script function ...
- linux循环处理脚本命令,后端开发必须掌握的Linux命令[Shell脚本篇]
Shell脚本相关命令 介绍 一句话说明shell脚本是个啥 shell脚本就是将多个shell指令汇集到一起去完成一个复杂的功能 类似windows下的批处理文件 一般以sh为文件后缀 语法 程序结 ...
- 《Linux命令行与shell脚本大全》笔记
初识Linux Shell 什么是Linux Linux可划分为以下四部分: Linux内核 GNU工具 图形化桌面环境 应用软件 深入探究Linux内核 内核主要负责以下四种功能: 系统内存管理 软 ...
最新文章
- IEnumerable是否应该实现IEnumerable接口
- 看样子还是:JSP和JAVA
- mysql群删除记录查询_mysql那些招:执行大批量删除、查询和索引等操作
- Java匿名内部类总结
- Nexus-vPC与FHRP
- Winxp中加密自己的用户目录
- “写画”与“惊春”:王艾画展和当代诗人朗诵会
- 代码的坏味道之一——译自《重构》
- 第三:jenkins集成httpclient项目并生成在线报告(接口自动化落地)
- 不缺流量却变现乏力?穿山甲重磅打造《App 如何变现创收》系列课程帮你找症结...
- 使用 Async / Await 来编写简明的异步代码
- Java引用多个jar包的写法
- GPS数据格式:NMEA-0183协议
- 中国气象数据(站点)
- 安装算量软件价格_鹏业安装算量软件正版购买渠道
- Chrome快捷键大全:Chrome窗口和标签页快捷键、功能快捷键、网页快捷键
- 美国计算机访学,计算机应用专业4天喜获美国加州大学洛杉矶分校访问学者职位...
- [全新大碟]周杰倫 - 魔杰座
- 【疯狂诗词大会小程序2.0】功能模块+前端+诗词答题小程序+内置数千道题目+开箱即用
- Java程序员面试需要注意什么?
热门文章
- vue重复访问同一路由报错
- postgresql 数据库出现 autovacuum:VACUUM xxoo.xxoo (to prevent wraparound)
- 搜索词与关键词报告区别
- 氟改性UiO-66|3,4-二羟基苯甲醛改性UiO-66-NH2|喜树碱衍生物/寡肽@ZIF-8纳米载药体系
- ipad手写笔哪款好?ipad手写笔推荐
- 区块链产业月报丨中国区块链企业已达1400家,专利申请数量全球领先!
- Bonobo.Git.Server 401 Error
- 揭秘:广告拦截软件如何赚钱?
- 每日分享html之1个卡片选择、2个加载、1个背景、1个开关
- 物联网安全知识点总结--第六章 物联网应用层安全