通过前面两篇博客,我们介绍了Linux系统的权限管理。Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限,所属组权限和其他人权限时,设定 ACL 权限,能额外的为某个特定的用户设定权限。然后对于 文件系统系统属性chattr权限和sudo命令 ,chattr 命令能设定文件的系统属性,超级用户也能被限制,这个命令能更好的保护文件和目录不被破坏;而另一个命令 sudo,超级管理员赋予普通用户执行系统命令的权利,然后通过 sudo 命令去执行,因为我们有时候没有超级用户的使用权限,这时候又想使用一些系统命令,那么 sudo 命令能帮助我们。

  权限管理结束之后,我们开始进入Linux系统的文件系统管理学习。本篇博客我们首先介绍文件系统的常用命令。

1、为什么要给硬盘分区?

  前面我们讲解 Linux 系统的安装时,我们手动给硬盘划分了4个分区,分为了根目录/,/home 分区,/boot分区,还有/swap交换分区,那么为什么要给硬盘分区呢?

  ①、易于管理和使用

  一个没有分区的硬盘就像一个大柜子,如果我们在柜子里放些衣物和化妆品就会显得很杂乱没有规则更不容易管理和拿取,这时如果我们找来木匠把柜子分割成不同的空间,用来分别储存衣物和化妆品就会让我们很容易管理和拿取衣服和化妆品。同样的一个硬盘如果不分割空间而直接储存各种文件会让我们难以管理和使用。

  ②、有利于数据安全

  如果漏雨,一个没有分割的大柜子里面的东西肯定全部无法避免被雨水侵蚀的命运,而把柜子分割开来则会因每个空间相对独立,先侵蚀的只会是正好漏雨的空间如果及时采取措施那其它空间里的东西将得以保存。如果中病毒,一个没有分区的硬盘,里面保存的数据肯定全部都会被感染或者损坏,而如果把硬盘分区,然后把文件分开存放,在中毒后我们有充分的时间来采取措施防止病毒和清除病毒,即使需要重做系统也只会丢失系统所在的数据而其它数据将得以保存。

  ③、节约寻找文件的时间

  在没有分区的硬盘里面找文件就想在一个大柜子里面找衣服一样,总会翻动很多东西才能找到自己想要的。如果我们把硬盘分区,在需要某个文件时可以直接到特定的分区去寻找,这样避免了我们翻找过多的文件。

2、Linux系统分区类型

  ①、主分区:总共最多只能分 4 个。

  ②、扩展分区:只能有一个,也算作主分区的一种,也就是说主分区加上扩展分区最多有 4 个。但是扩展分区不能存储数据和格式化,必须在划分为逻辑分区才能使用。

  ③、逻辑分区:逻辑分区是扩展分区中划分的,如果是 IDE 硬盘,Linux 最多支持59个逻辑分区,如果是 SCSI 硬盘Linux最多支持 11 个逻辑分区。

  

  

  注意:如果只有一个主分区,一个扩展分区,扩展分区下有三个逻辑分区。那么主分区的设备文件名为/dev/sda1,扩展分区的设备文件名为 /dev/sda2。而逻辑分区直接是 /dev/sda5,也就是说系统默认的设备文件名从/dev/sda1——/dev/sda4是给主分区和扩展分区命名的,而逻辑分区的设备文件名是从/dev/sda5开始的。

3、Linux 文件系统的格式

  

  

  

4、文件系统的常用命令  

  ①、文件系统查看命令:df

df 【选项】【挂载点】

  

  使用的比较多的就是 df -h

  

  ②、统计目录或文件大小:du

du 【选项】【目录或文件名】

  

  我们说通过 ls 命令也能统计文件大小,但是ls 命令只是文件的一级目录,而du能显示目录以及所有子目录和文件的大小。

  

  df命令能统计文件或目录大小,而前面讲的df命令也能查看分区大小,这里我们以 /home分区为例:

  

  df 统计的/home分区使用大小为 760M,而du 命令统计的/home分区使用大小为 751M,这是为什么呢?

  ①、df 命令是从文件系统考虑的,不管要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。

  ②、du 命令是面向文件的,只会计算文件或目录占用的空间。

  也就是说,实际系统的剩余空间大小是以 df 命令统计为准的。这也告诉我们 Linux 虽然系统很稳定,但是对于经常高负载的服务器,还是应该定期重启,维护服务器的高效运转。

  ③、文件系统修复命令:fsck

fsck 【选项】分区设备文件名

  

  系统在启动时会自动进行文件系统修复,这里我们最好不要手动执行文件系统修复命令,很容易造成意外的错误。

  ④、显示磁盘状态命令:dumpe2fs

dumpe2fs 分区设备文件名

  

5、挂载命令

  ①、查询系统中已经挂载的设备:mount

mount 【-l】

  选项:-l 会显示卷标名称,也就是设备文件名的别名

  

  ②、依据配置文件 /etc/fstab 的内容自动挂载:mount -a

  下面是 /etc/fstab 的文件内容:

  

  注意:我们最好不要将光盘或者U盘的挂载配置写在 /etc/fstab 文件中,因为系统启动的时候会自动挂载这个文件中配置好的内容,你不可能光盘或者U盘一直都和系统连着,如果没有,则挂载出错,系统有可能奔溃。

  ③、挂载命令格式

  

  

  范例:我们重新挂载 /home 分区,加上-o noexec,也就是说使得 /home 分区的可执行文件不能执行。然后创建一个脚本(后面会讲解,这里只需要知道是一个可执行文件),然后看其是否能执行。

  第一步:在/home目录下创建脚本hello.sh,简单的输出 hello world

  

  我们给其赋予可执行权限,然后执行此脚本:

  

  第二步:重新挂载 /home分区,加上 -o noexec,在执行此脚本发现权限不够了,注意我们还是使用的超级用户root

  

  第三步:将/home分区还原,然后在执行此脚本,发现又可以了

  

6、挂载光盘与U盘

  ①、挂载光盘

  一、建立挂载点

mkdir /mnt/cdrom

  二、将光盘放入光驱

  对于虚拟机我们执行以下操作即可:

  

  三、挂载光盘

mount -t iso9660 /dev/cdrom /mnt/cdrom

  或者执行下面命令

mount /dev/sr0 /mnt/cdrom

  为什么有两个设备文件名/dev/cdrom 和/dev/sr0 呢?

  

  我们可以看到这是一个软链接,光盘的设备文件名是系统自动检测的,以及固定了,我们只需要记住就好了。

  ②、挂载 U 盘

  第一步:让虚拟机识别到 U 盘

  注意我们是在真实物理机上安装的虚拟Linux系统,为了让虚拟机能检测到U盘,我们要鼠标点进到虚拟机中,不能用远程连接工具。

  第二步:执行 fdisk -l 查看U 盘的设备文件名

  第三步:挂载 U 盘

mount -t vfat /dev/sdb1 /mnt/usb

  

  ③、卸载命令

umount 设备文件名或者挂载点

  

7、支持 NTFS 文件系统

  我们知道 Linux 默认是不支持 NTFS 文件系统的,所以早期的苹果笔记本如果插上移动硬盘,是不能对硬盘的内容进行修改,只能读取的。

  那么如何解决 Linux 系统不支持 NTFS 文件系统呢?

  第一种方法是重新编译内核,这种方法要求较高,这里我们就不做演示了。

  第二种方法是安装 NTFS-3G 插件,如下:

  

  安装完成之后,如下进行使用:

  

8、总结

  本篇博客我们首先介绍了硬盘为什么要分区,以及Linux系统的几种分区类型,然后介绍了Linux系统几个常用的文件系统命令,最后讲解了挂载命令,并通过实例演示了如何挂载光盘和U盘。下篇博客我们将介绍linux文件系统的fdisk分区。

Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令的更多相关文章

  1. ComicEnhancerPro 系列教程十八:JPG文件长度与质量

    作者:马健邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十八:JPG文件长度 ...

  2. Linux系列教程(八)——Linux常用命令之压缩和解压缩命令

    前面一篇博客我们讲解了Linux帮助和用户管理命令,对于帮助命令,man 命令能获得命令和配置文件的帮助信息,help命令能获得shell内置命令的帮助信息.我们可以通过which来区分什么是shel ...

  3. linux系列(十八):locate命令

    1.命令格式: locate [选择参数] [样式] 2.命令功能: locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库 ...

  4. Spring Boot2 系列教程 (十八) | 整合 MongoDB

    微信公众号:一个优秀的废人.如有问题,请后台留言,反正我也不会听. 前言 如题,今天介绍下 SpringBoot 是如何整合 MongoDB 的. MongoDB 简介 MongoDB 是由 C++ ...

  5. Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置

    用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...

  6. Linux学习笔记(14)文件系统管理

    1 回顾分区与系统 (1)分区类型 Linux的分区一般包括主分区,扩展分区和逻辑分区.其中: 主分区最多只能分4个: 扩展分区只能有一个,也算作主分区的一种,即主分区加扩展分区最多有4个.但扩展分区 ...

  7. Linux基础学习(9)--文件系统管理

    第九章——文件系统管理 一.回顾分区和文件系统 1.分区类型: 2.分区表示方法: 3.文件系统: 二.文件系统常用命令 1.df命令.du命令.fsck命令和dump2fs命令: (1)文件系统查看 ...

  8. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. CRL快速开发框架系列教程十(导出对象结构)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

随机推荐

  1. Average of Levels in Binary Tree

    Given a non-empty binary tree, return the average value of the nodes on each level in the form of an ...

  2. ssh项目访问路径及url请求书写

    在ssh项目中配置好Struts后,一般可以采用两种方式进行后台请求: 1.html形式,包括a标签,form表单,ajax等.此时的访问链接必须写全路径,可以是相对路径,也可以是绝对路径 相对路径方 ...

  3. VB.net DateTimePicker 初始化为空,选择后显示日期

    目的:当某记录的日期数据为空的时候,DateTimePicker 不以默认当前时间显示. 优点:避免不规则的时间格式输入:符合平时遇到的时间输入习惯 缺点:设置要代码,没有textbox控件那么方便设 ...

  4. Log4net日志使用教程-控制台、文本、数据库三种记录方式

    一.log4net简介: 1. Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的 ...

  5. C#分布式事务解决方案-TransactionScope

    引用一下别人的导读:在实际开发工作中,执行一个事件,然后调用另一接口插入数据,如果处理逻辑出现异常,那么之前插入的数据将成为垃圾数据,我们所希望的是能够在整个这个方法定义为一个事务,Transacti ...

  6. 即时通信系统Openfire分析之五:会话管理

    什么是会话? A拨了B的电话 电话接通 A问道:Are you OK? B回复:I have a bug! A挂了电话 这整个过程就是会话. 会话(Session)是一个客户与服务器之间的不中断的请求 ...

  7. GBK和UTF8有什么区别

    GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符. UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多 ...

  8. C#直接发送打印机命令到打印机及ZPL常用打印命令 - 条码打印机

    using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServi ...

  9. Elasticsearch-sql 用SQL查询Elasticsearch

    Elasticsearch的查询语言(DSL)真是不好写,偏偏查询的功能千奇百怪,filter/query/match/agg/geo各种各样,不管你是通过封装JSON还是通过python/java的 ...

  10. mySQL、mariaDB、noSQL、SQL server、redis之间是什么关系?

    1.首先,从数据库类型上分类,mySQL.mariaDB.SQL server这3种属于关系型数据库. noSQL属于非关系型数据库,被视为数据库革命者. redis成为内存缓存数据库,而前面的两种类 ...