[20150925]Linux之文件系统与SHELL-朱晓扬

Linux之文件系统与SHELL

文件系统介绍

ext2/ext3/ext4

Ext2是GNU/Linux系统中标准的文件系统。这是Linux中使用最多的一种文件系统,它是专门为Linux设计的,拥有极快的速度和极小的CPU占用率。Ext2既可以用于标准的块设备(如硬盘),也被应用在软盘等移动存储设备上。

Ext3是Ext2的下一代,也就是保有Ext2的格式之下再加上日志功能。Ext3是一种日志式文件系统(Journal File System),最大的特点是:它会将整个磁盘的写入动作完整的记录在磁盘的某个区域上,以便有需要时回溯追踪。当在某个过程中断时,系统可以根据这些记录直接回溯并重整被中断的部分,重整速度相当快。该分区格式被广泛应用在Linux系统中。

在Ext4中,把支持文件连续写入,也就是说,在文件创建的时候,把为它创建一个连续的存储空间,这样,假如要再在该文件中写入东西,就可以在连续空间中写入,这样就意味着减少了文件的碎片和提高了驱动器的性能。

这个功能不仅仅出现在Ext4中,已经出现在Reiser4和 IBM的 JFS文件系统中,分别被用在Linux和AIX中。就像许多其他的现代文件系统一样,Ext4也是一种日志文件系统,在性能、备份和灾难恢复中起到重要的作用。Ext4兼容ext3标准,就是说,你可以把ext4的分区以ext3加载,但是你把失去它的连续写入功能。

FAT16/FAT32

作为一种文件名称,FAT(File Allocation Table,文件分配表)自1981年问世以来,已经成为一个计算机术语。由于时代的原因,包括Windows、MacOS以及多种Unix版本在内的大多数操作系统均对FAT提供支持。

这是MS-DOS和最早期的Windows 95操作系统中使用的磁盘分区格式。它采用16位的文件分配表,是目前获得操作系统支持最多的一种磁盘分区格式,几乎所有的操作系统都支持这种分区格式,从DOS、Windows 95、Windows OSR2到现在的Windows 98、Windows Me、Windows NT、Windows 2000、Windows XP都支持FAT16,但只支持2GB的硬盘分区成为了它的一大缺点。FAT16分区格式的另外一个缺点是:磁盘利用效率低(具体的技术细节请参阅相关资料)。为了解决这个问题,微软公司在Windows 95 OSR2中推出了一种全新的磁盘分区格式——FAT32。

这种格式采用32位的文件分配表,对磁盘的管理能力大大增强,突破了FAT16下每一个分区的容量只有2GB的限制。由于现在的硬盘生产成本下降,其容量越来越大,运用FAT32的分区格式后,我们可以将一个大容量硬盘定义成一个分区而不必分为几个分区使用,大大方便了对磁盘的管理。而且,FAT32与FAT16相比,可以极大地减少磁盘的浪费,提高磁盘利用率。目前,Windows 95 OSR2以后的操作系统都支持这种分区格式。但是,这种分区格式也有它的缺点。首先是采用FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的磁盘要慢。另外,由于DOS和Windows 95不支持这种分区格式,所以采用这种分区格式后,将无法再使用DOS和Windows 95系统。

NTFS

为了弥补FAT在功能上的缺陷,微软公司创建了一种称作NTFS的文件系统技术。它的优点是安全性和稳定性方面非常出色,在使用中不易产生文件碎片。并且能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统与数据的安全。Windows 2000、Windows NT、以及Windows XP都支持这种分区格式。

VFAT

VFAT叫长文件名系统,这是一个与Windows系统兼容的Linux文件系统,支持长文件名,可以作为Windows与Linux交换文件的分区。

磁盘访问

ext2文件系统结构示意图

图1 ext2文件系统示意图

super block:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量。以及文件系统的格式与相关信息等。

inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block的号码;

block:实际记录文件的内容,若文件太大时,会占用多个block。

ext2文件读取示意图:

图2  ext2数据访问示意图

FAT文件读取示意图:

图3 FAT数据访问示意图

SHELL-BASH

图4 硬件、内核与用户的相关性

BASH的主要优点

history:我们只要在命令行中按上下键就可以找到前后一个输入的命令。而在很多distribution中,默认的命令记忆功能可以达到1000个。不过需要注意的是/.bash_history记录的是前一次登陆以前所执行的命令,而这一次登陆所执行的命令都被暂存在临时内存中,当注销系统后,该命令记忆才会记录到.bash_history中。

命令与文件补全功能(Tab按键的好处):按Tab键具有自动补全命令与文件名的功能,Tab接在一串命令的第一个字后面,则为命令补全;Tab接在一串命令的第二个字以后时,则为文件补全。

命令 别名设置功能(alias):可以用自己熟悉的简短的命令来代替系统原有的复杂的长命令。

BASH中的常用快捷键:

脚本执行方式

1.以绝对路径的方式去执行bash shell脚本:改方法以一层层的进入文件目录,首先需要有目录的读权限,还要有所执行文件的执行权限。

2. 直接使用bash 或sh 来执行bash shell脚本:该方法是直接调用bash来执行脚本文件,不需要拥有被执行文件的执行权限,也不需要数被执行文件所在目录得到绝对路径。

时间: 2024-10-12 13:50:59

[20150925]Linux之文件系统与SHELL-朱晓扬的相关文章

[20150529]用户与用户组管理-朱晓扬

用户与用户组管理 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 用户与用户组配置文件 用户账号的管理主要涉及到用户账号的添加.删除和修改. 添加用户账号就是在

[20150522]RPM包的管理-朱晓扬

RPM包的管理 RPM包的分类 RPM包可分为源码包和二进制包两类.源码包的主要优点是开源,如果有足够的能力,可以修改源代码,源码包可以自由选择所需要安装的功能,软件是编译安装,所以更加适合自己的系统,更加稳定,效率也更高.但是缺点就是安装过程步骤比较多,编译过程时间比较长.二进制包也就是Red Hat中的RPM包的有点是包管理系统简单,只需要几个命令就可以实现包的安装.升级.查询.卸载,安装速度也比源码包快很多,缺点是经过编译,看不到源代码,功能选择不如源代码. 依赖性 树形依赖:A→B→C

linux 笔记--文件系统及命令

IDE:开发环境,集成开发 shell+library+kernel 可以组成一个简单的操作系统 .os 后缀的文件为linux的动态链接库文件 目录也称为文件,因为目录只是路径的映射文件 linux的文件系统为树状结构,层次化管理机制,查找文件快速.FHS文件结构标准 ls -l   列出文件的内容详解 文件类型: -:普通文件 d:目录 b:块设备文件(block)c:字符设备文件(character)l:符号链接文件 p:命令管道(pipe)s:套接字文件(socket) 文件权限:9位

《Linux命令行与shell脚本编程大全》学习笔记(转)

第一部分:Linux命令行<Linux命令行与shell脚本编程大全> 第一章:初识Linux shell<Linux命令行与shell脚本编程大全> 第二章:走进shell<Linux命令行与shell脚本编程大全> 第三章:基本的bash shell命令<Linux命令行与shell脚本编程大全> 第四章:更多的bash shell命令<Linux命令行与shell脚本编程大全> 第五章:使用Linux环境变量<Linux命令行与she

linux虚拟文件系统浅析

linux虚拟文件系统浅析 虚拟文件系统(VFS)在我看来, "虚拟"二字主要有两层含义:1, 在同一个目录结构中, 可以挂载着若干种不同的文件系统. VFS隐藏了它们的实现细节, 为使用者提供统一的接口;2, 目录结构本身并不是绝对的, 每个进程可能会看到不一样的目录结构. 目录结构是由"地址空间(namespace)"来描述的, 不同的进程可能拥有不同的namespace, 不同的namespace可能有着不同的目录结构(因为它们可能挂载了不同的文件系统).操作

用Busybox构建Linux根文件系统(转载)

注:本文转载自http://blog.sina.com.cn/u/2478597014 用Busybox构建Linux根文件系统 (2015-07-05 14:25:02)   虚拟机:Virtual Box4.2.6 和VMware Workstation6.5.2(这两种虚拟机都成功实作过) 开发环境:Linux版本2.6.32,采用Ubuntu10.04 arm-linux-gcc版本:3.4.1 Busybox版本:1.7.0 开发板:飞凌嵌入式S3C2440 开发板linux内核版本:

&lt;&lt;linux命令行与shell脚本编程大全&gt;&gt;学习笔记(1)

一章初识linux shell 一.什么是linux 1.linux系统可大致划分为四部分: l Linux内核 l GNU工具组件 l 图形化桌面环境 l 应用软件 在linux系统里,这四部分中的每一部分都扮演着一个特别的角色,但如果将他们分开,每一部分都没太大的作用. 1)探究linux内核 Linux系统的核心是内核,内核控制着计算机系统上的所有硬件和软件,必要时分配硬件,有时需要执行软件. 内核基本负责以下四项主要功能: l 系统内存管理 l 软件程序管理 l 硬件设备管理 l 文件系

一步一步学ZedBoard &amp; Zynq(七):制作ZedBoard上linux根文件系统(ramdisk)

一步一步学ZedBoard & Zynq(七):制作ZedBoard上linux根文件系统(ramdisk) 网址:http://xilinx.eetrend.com/blog/3935 Digilent的OOB设计给出了一个ZedBoard上完整的运行的linux系统所需要的所有文件,包括配置FPGA的bit文件. 配置ARM PS系统的First-Stage boot loader(FSBL)和引导linux需要的Second-Stage boot loader(SSBL).Linux内核z

【转】完美解读Linux中文件系统的目录结构

一.前 言 接触Linux也有一段时间了,不过这几天在编译开源程序时,才发现自己对linux文件系统的目录结构了解的不够透彻,很多重要目录都说不清楚是用来干嘛的,于是在网上百度了一下这方面的介绍,根据自己的使用习惯,整理出来一篇关于Linux文件系统的目录结构的文章,和大家一起分享. 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构.同时文章最后附录了一份Linux目录结构的简明手册,以便大家查阅. 二.目 录 1.什么是文件系统 2.文