首页 >> 学习 >> Linux常用命令 >> Linux文件系统
Linux文件系统

本节重要性:★★★★☆    本节难度:★★★★☆

1. Linux文件

与Windows不同,Linux下的一切(包括设备等)都是以文件的形式存在。这些文件包括普通文件(文本文件、可执行文件、压缩文件等)、目录文件(简称目录,在Windows下我们称为文件夹,其实是类似的东西)、设备文件(如光驱/dev/cdrom)、链接文件(相等于Windows下的快捷方式),可以使用file命令查看Linux文件的类型。

Linux下文件的命名很有讲究,有人喜欢用1.txt,2.txt这样命名,实际上这种习惯很不好,很难判断文件的内容是什么。Linux下文件命名要注意以下几方面:

首先,Linux文件命名:

其次,文件名应能体现文件的内容,如human_genome_protein.fasta表示文件的内容是人类基因组的蛋白质序列。有人可能担心文件名太长敲起来太麻烦,其实完全不用担心,后面我们讲到命令行编辑的时候您就明白了,Linux有简单的方法可以自动把文件名补齐。

最后,文件名后缀表示文件类型,这个主要是给人看的,修改后并不影响软件打开。如上面的文件是普通的文本文件,使用cat、more或less等命令可以查看文件的内容,如果把文件名改成human_genome_protein.txt,再用这些命令打开时完全一样。但是如果用fasta做文件名后缀,我们就知道文件内容的格式是Fasta格式(前面我们已经介绍过这种最常用的序列格式)。

Linux下使用ls –l命令可以查看当前目录下文件的详细信息,这些信息包括文件的种类和权限、文件硬链接的个数(关于硬链接和软连接我们后面会详细讲)、文件的属主及所归属的组、文件的大小、最后访问或修改的时间、文件名。

文件类型:上图中的第一列信息,d表示目录(文件),-表示普通文件,l表示软连接,p表示管道文件。

文件权限:上图中的第2-10列信息,共9个字符,分为三组,左边3个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这些字符代表的权限的意义如下:

硬链接个数:一个文件可以有多个硬链接,相当于一个人可以有多个名字,喊任何一个名字都可以找到这个人。关于硬链接和软链接(符号链接)的更详细的介绍请参考ln命令和扩充学习的inode一节。

属主:也就是这个文件属于哪个用户。

所属的组:这个文件属于哪个用户组。

大小:文件的大小,如果是目录,则显示的是一个硬盘块(block)的大小,因为存放目录信息只需要一个硬盘块,如上图显示的4096。如果要显示一个目录(包含里面的文件或目录)的实际大小,可以使用命令:du -s 目录名。

最后访问或修改时间

文件名:文件名的颜色表示文件类型,如Fedora或CentOS下默认的蓝色表示目录、浅蓝色表示软链接、黑色的是普通文本文件。

2. Linux目录结构

Linux的目录结构是倒立的树状,最上面是树根。

/:根目录,整个文件系统层次结构的最上层目录。

/bin:需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如:cat、ls、cp,和/usr/bin类似。

/boot:包含引导程序文件,例如:kernel、initrd;时常是一个单独的分区

/dev:必要的设备,如/dev/null

/etc:系统配置文件

/home:其中包含除root用户外所有用户的主目录(家目录),一般为单独的分区。

/lib:/bin/与/sbin/中二进制文件所需的库文件。

/media:可移除媒体(如CD-ROM)的挂载点 (在FHS-2.3中出现)。

/lost+found:在EXT3文件系统中,当系统意外崩溃或机器意外关机,会产生一些文件碎片在这里。当系统在开机启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题。可能会有文件被移动到这个目录中,可能需要用手工的方式来修复,或移到文件到原来的位置上。

/mnt:临时挂载的文件系统。比如cdrom,u盘等,直接插入光驱无法使用,要先挂载后使用。

/opt:可选应用软件包。

/proc:虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下)。例如:uptime、 network。在Linux中,对应Procfs格式挂载。该目录下文件只能看不能改(包括root)。

/root:超级用户的主目录(家目录)。

/sbin:必要的系统二进制文件,例如: init、 ip、 mount。sbin目录下的命令,普通用户都执行不了。

/srv:站点的具体数据,由系统提供。

/tmp:临时文件(参见 /var/tmp),在系统重启时目录中文件不会被保留。

/usr:曾经是用户的家目录,现在用户家目录被home取代,usr用来专门存放各种程序和数据,默认软件都会存于该目录下。用于存储只读用户数据的第二层次;包含绝大多数的(多)用户工具和应用程序。usr是Unix System Resource的缩写。

/var:变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。如果不单独分区,有可能会把整个分区充满。如果单独分区,给大给小都不合适。

参考内容

		

3. 文件系统

文件系统是操作系统用于明确存储设备(如磁盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。常用的文件系统有FAT、NTFS、EXT等。

文件系统类型	支持最大容量	支持分区大小	支持单文件大小
FAT16				2GB		2GB
FAT32		2TB		128GB		4GB
NTFS		8TB		2TB		2TB
EXT2		16TB		2TB		2TB(块大小为4096时)
EXT3		64TB		16TB		4TB(块大小为4096时)
EXT4		4EB		1EB		16TB(块大小为4096时)

注:1EB=1024TB,1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B

目前,安装Linux默认的文件系统为EXT4,EXT是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。另外还需要一个SWAP分区(类似于Windows的虚拟内存)。

4. 路径

Linux下操作一个文件(包括目录,Linux把目录也看成是文件,成为目录文件)时,需要把文件的路径告诉系统。

跟表示路径相关的符号:

/	跟在一个名字后,表示其为目录,如果只有/,则表示根目录
.	表示当前目录
..	表示上一级目录
~	表示当前用户的家目录

表示路径有两种方法:绝对路径和相对路径。

绝对路径:从根目录开始的完整的路径,如:

/usr/local/bin/clustalw2
/home/xiezy/genome

相对路径:相对于某个位置表示的路径,分两种情况:

(1)相对于当前目录,如:

./fasta_parser.pl #当前目录下的fasta_parser.pl文件
../pfam           #上一层目录下的pfam

(2)相对于用户的家目录,如:

~/bin/fasta_split.pl #当前登录用户家目录中bin目录下的fasta_split.pl文件
<<上一节  下一节>>