Linux 文件类型、文件扩展名、文件系统

来源:互联网 发布:软件腰带图片 编辑:程序博客网 时间:2024/05/21 07:07

Linux 文件类型及文件的扩展名

来自:LinuxSir.Org

摘要: Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等,如果想了解这方面知识的弟兄,就进来了解了解。

本文应该说是基础文档。

目录

1、Linux文件的扩展名;

 2、Linux 文件类型;

2.1 普通文件;

2.2 目录;

2.3 字符设备或块设备文件;

2.4 套接口文件;

2.5 符号链接文件;

3、关于本文;

4、后记;

5、参考文档;

6、相关文档;

 ++++++++++++++++正文++++++++++++++++++++++

1、Linux文件的扩展名; 一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt、file.doc、file.sys、file.mp3、file.exe等,根据文件的后缀就能判断文件的类型。但在Linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。但我们了解一下Linux文件的后缀名还是有必要的,特别是我们自己创建一些文件,最好还是加后缀名,这样做的目的是仅仅是为了我们的在应用时方便。 现在的Linux桌面环境和Windows一样智能化,文件的类型是和相应的程序关联的。在我们打开某个文件时,系统会自动判断用哪个应用程序打开。如果从这方面来说,Linux桌面环境和Windows桌面没有太大的区别。 在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。 file.tar.gz file.tgz file.tar.bz2 file.rar file.gz file.zip ... ... 这些大家都熟悉,是归档文件。要通过相应的工具来解压或提取; file.php 这个大家都知道吧,是能用php语言解释器进行解释,能用浏览器打开的文件; file.so 这类是库文件; file.doc file.obt 这是OpenOffice 能打开的文件; ... ... 用一些工具创建的文件,其后缀也不相同,就看我们用什么工具了,比如 Gimp,gedit,OpenOffice 等工具,创建出来的文件后缀名也不一样。

2、Linux 文件类型; Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。 Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等;现在我们进行一个简要的说明;

2.1 普通文件; [root@localhost ~]# ls -lh install.log -rw-r--r-- 1 root root 53K 03-16 08:54 install.log 我们用 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具... .... 或 cp工具等。这类文件的删除方式是用rm 命令;

2.2 目录; [root@localhost ~]# ls -lh 总计 14M -rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale -rw-r--r-- 1 root root 53K 03-16 08:54 install.log -rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm drwxr-xr-x 2 1000 users 4.0K 04-04 23:30 mkuml-2004.07.17 drwxr-xr-x 2 root root 4.0K 04-19 10:53 mydir drwxr-xr-x 2 root root 4.0K 03-17 04:25 Public 当我们在某个目录下执行,看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用 mkdir 命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm 或rmdir命令。

2.3 字符设备或块设备文件; 如时您进入/dev目录,列一下文件,会看到类似如下的; [root@localhost ~]# ls -la /dev/tty crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty [root@localhost ~]# ls -la /dev/hda1 brw-r----- 1 root disk 3, 1 2006-04-19 /dev/hda1 我们看到/dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件。比如猫等串口设备 我们看到 /dev/hda1 的属性是 brw-r----- ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备; 这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。

2.4 套接口文件; 当我们启动MySQL服务器时,会产生一个mysql.sock的文件。 [root@localhost ~]# ls -lh /var/lib/mysql/mysql.sock srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock 注意这个文件的属性的第一个字符是 s。我们了解一下就行了。

2.5 符号链接文件;

[root@localhost ~]# ls -lh setup.log lrwxrwxrwx 1 root root 11 04-19 11:18 setup.log -> install.log

当我们查看文件属性时,会看到有类似 lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。是通过ln -s 源文件名 新文件名 。上面是一个例子,表示setup.log是install.log的软链接文件。怎么理解呢?这和Windows操作系统中的快捷方式有点相似。 符号链接文件的创建方法举例;

 [root@localhost ~]# ls -lh kernel-2.6.15-1.2025_FC5.i686.rpm -rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm

 [root@localhost ~]# ln -s kernel-2.6.15-1.2025_FC5.i686.rpm kernel.rpm

[root@localhost ~]# ls -lh kernel* -rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm lrwxrwxrwx 1 root root 33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm

3、关于本文; 本文是文件系统的一个组成部份,为写文件和目录的属性及操作相关的内容做准备;属于基础篇。内容是少了点。但看样子还是比较容易懂。

4、后记; 准备写文件和目录的创建、属性方面的操作等内容;

5、参考文档;

6、相关文档 《简述Linux 文件系统的目录结构》 Linux 文件系统 Linux文件系统结的结构是树形结构,其入口从/开始,了解Linux文件系统的结构,对于我们需要掌握的基础知识点之一。

1、什么是文件系统;

什么是文件系统(filesystem),用一两句话解答出来,实在有点困难,这个问题只能留给文件系统的设计者或对文件系统精通的专业人士来答复;下面是关于filesystem的定义是我从 Google.com 上搜索到的;下面我们分析一下,对我们来说,了解一下也有好处。如果您是专业人士,如果您有自己的定义方法,请在本文后面留言;谢谢;

定义一; A directory structure contained within a disk drive or disk area. The total available disk space can be composed of one or more filesystems. A filesystem must be mounted before it can be accessed. To mount a filesystem, you must specify a directory to act as the mount point. Once mounted, any access to the mount point directory or its subdirectories will access the separate filesystem. 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点;一旦文件系统被挂载, freebooks.by.ru/view/ShellProgIn24h/31480175.htm

定义二; A method of organising files on a disk, eg NTFS, FAT. linux-s.sourceforge.net/ldm/home/terms.html 文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如NTFS或FAT;

定义三; A data structure or a collection of files. In Unix, filesystem can refer to two very distinct things, the directory tree or the arrangement of files on disk partitions. 文件系统是文件的数据结构或组织方法。在Unix中,文件系统涉及两个非常独特的事情,目录树或在磁盘或分区上文件的排列;www.emulex.com/ts/docfc/glossary.htm

定义四; the structure of files on a disk medium which is visible via the operating system, ie the structure of files which a Unix user can see using "ls" and other tools 文件系统是基于操作系统的,建立在磁盘媒质上的可见体系结构,例如这种结构对于一个Unix用户来说可以用ls 或其它工具可以看到;www.ucolick.org/~de/deimos/glossary.html

定义五; A software mechanism that defines the way that files are named, stored, organized, and accessed on logical volumes of partitioned memory. 文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法;www.evestigations.com/html/glossary.html

定义六; In computing, a file system is a method for storing and organizing computer files and the data they contain to make it easy to find and access them. File systems may use a storage device such as a hard disk or CD-ROM and involve maintaining the physical location of the files, or they may be virtual and exist only as an access method for virtual data or for data over a network (e.g. NFS).

在计算机业,一个文件系统是有组织存储文件或数据的方法,目的是易于查询和存取。文件系统是基于一个存储设备,比如硬盘或光盘,并且包含文件文件物理位置的维护;也可以说文件系统也是虚拟数据或网络数据存储的方法,比如NFS; en.wikipedia.org/wiki/Filesystem 理解文件系统的关健词; 0)存储介质:硬盘、光盘、软盘、Flash盘、磁带、网络存储设备等;

1)磁盘的分割: 这是针对大容量的存储设备来说的,主要是指硬盘;对于大硬盘,我们要合理规划分区,所以要谈到硬盘的分割。硬盘的分割,Linux有fdisk、cfdisk和parted等,常用的还是fdisk 工具,Windows和dos常用的也有fdisk ,但和Linux中的使用方法不一样。硬盘的分割工具还有第三方程序,比如PQ;至于对分区的理解和操作请参考: 《实例解说 fdisk 使用方法》《合理规划您的硬盘分区》

2)文件系统的创建: 这个过程是存储设备建立文件系统的过程,一般也被称为格式化或初始化,通过一些初始化工具来进行。一般的情况下每个类型的操作系统都有这方面的工具,也有多功能的第三方工具,比如PQ。我的建议是如果您不太懂操作系统自带的工具,可以用第三方工具来切割硬盘,把硬盘分割成若干分区,然后再用操作系统自带的工作来初始化分区,也就是格式化分区。在Linux中有 mkfs系列工具;

3)挂载(mount): 文件系统只有挂载才能使用,Unix类的操作系统如此,Windows也是一样;在Windows更直观一些,具体内部机制我们不太了解。但Unix类的操作系统是通过mount进行的,挂载文件系统时要有挂载点,比如我们在安装Linux的过程中,有时会提示我们分区,然后建立文件系统,接着是问你的挂载点是什么 ,我们大多选择的是/ 。我们在Linux系统的使用过程中,也会挂载其它的硬盘分区,也要选中挂载点,挂载点通常是一个空置的目录,最好是我们自建的空置目录; 请参见:《Linux 文件系统概述》 2、文件系统的组织结构简说; 当您使用Linux的时候,如果您通过ls -la / 就会发现,在/下包涵很多的目录,比如etc、usr、var、bin ... ... 等目录,而在这些目录中,我们进去看看,发现也有很多的目录或文件。文件系统在Linux下看上去就象树形结构,所以我们可以把文件系统的结构形象的称为树形结构。 查看文件系统的结构,我们可以通过tree命令来实现; [root@localhost ~]# tree 不过tree 这个命令目前在Fedora Core 5.0 中已经消失,在Slackware 10.2的版本中仍有保留。不过其它版本的Linux应该有;由tree命令的输出结果来看,最顶端应该是/,我们称/为Linux的root,也就是Linux操作系统的文件系统。Linux的文件系统的入口就是/,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。

下面我们把Linux文件系统的树形结构的主要目录列一下,主要

3、文件系统的组织结构分析; 文件系统的组织结构分析,我们能分析什么呢?也就是当我们列/目录时,所看到的/usr、/etc ... ... /var 等目录是做什么用的,这些目录是不是有些特定的用途。无论哪个哪个版本的Linux系统,都有这些目录,这些目录应该是标准的。当然各个Linux发行版本也会存在一些小小的差异,但总体来说,还是大体差不多。 Linux发行版本之间的差别其实很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同,除此之外,没有什么大的差别; 比如Fedora软件包管理工具是rpm,而Slackware是pkgtool 或installpkg等; 言归正传,我们接着说文件系统组织结构。

/ Linux文件系统的入口,也是处于最高一级的目录; /bin 基础系统所需要的那些命令位于此目录,也是最小系统所需要的命令;比如 ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。做为基础系统所需要的最基础的命令就是放在这里。 /boot Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。

在一般情况下,GRUB或LILO系统引导管理器也位于这个目录; /dev 设备文件存储目录,比如声卡、磁盘... ... /etc 系统配置文件的所在地,一些服务器的配置文件也在这里;比如用户帐号及密码配置文件; /home 普通用户家目录默认存放目录; /lib 库文件存放目录 /lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

/media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录 ;CDROM/DVD自动挂载后,也会在这个目录中创建一个目录,类似cdrom 的目录。这个只有在最新的发行套件上才有,比如Fedora Core 4.0 5.0 等。可以参看/etc/fstab的定义; /misc /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom 。

/opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过 ./configure --prefix=/opt/目录 。

/proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。

/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见 /etc/fstab 。 /root Linux超级权限用户root的家目录; /sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的; 我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。 /tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。

/usr 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts ,帮助目录 /usr/share/man或/usr/share/doc,普通用户可执行文件目录/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超级权限用户root的可执行命令存放目录,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;还有程序的头文件存放目录/usr/include。

/var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。

/var/www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地; 我们再补充一下一些比较重要的目录的用途;

 /etc/init.d 这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V模式启动或初始化的系统中常见。比如Fedora/RedHat; /etc/xinit.d 如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下。有些系统没有这个目录, 比如Slackware,有些老的版本也没有。在Rehat/Fedora中比较新的版本中存在。 /etc/rc.d 这是Slackware发行版有的一个目录,是BSD方式启动脚本的存放地;比如定义网卡,服务器开启脚本等。

/etc/X11 是X-Windows相关的配置文件存放地;比如下面的例子: [root@localhost ~]# /etc/init.d/sshd start 注:启动sshd服务器 [root@localhost ~]# /etc/init.d/sshd stop 注:停止sshd服务器启动 sshd: [确定] 这就是典型的sshd 服务器 System V模式启动脚本,通过这运行这个脚本可以启动sshd服务器了。 /usr/bin 这个目录是可执行程序的目录,普通用户就有权限执行; 当我们从系统自带的软件包安装一个程序时,他的可执行文件大多会放在这个目录。比如安装gaim软件包时。

相似的目录是/usr/local/bin; 有时/usr/bin中的文件是/usr/local/bin的链接文件; /usr/sbin 这个目录也是可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行;相似目录是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等; /usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。这个目录下面有子目录。自己看看吧。

/usr/lib 和/lib 目录相似,是库文件的存储目录; /usr/share 系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,是用户都共用的吧。 /usr/share/doc和/usr/share/man帮助文件,也是共用的吧; /usr/src 是内核源码存放的目录,比如下面有内核源码目录,比如 linux 、linux-2.xxx.xx 目录等。有的系统也会把源码软件包安装在这里。比如Fedora/Redhat,当我们安装file.src.rpm的时候,这些软件包会安装在/usr/src/redhat相应的目录中。请参考: 《file.src.rpm 使用方法的简单介绍》 。

另外Fedhat 4.0 5.0,他的内核源码包的目录位于/usr/src/kernels目录下的某个目录中(只有安装后才会生成相应目录);

/var/adm 比如软件包安装信息、日志、管理信息等,在Slackware操作系统中是有这个目录的。在Fedora中好象没有;自己看看吧。 /var/log 系统日志存放,分析日志要看这个目录的东西; /var/spool 打印机、邮件、代理服务器等假脱机目录;

原创粉丝点击