Linux文件系统小结

Linux操作系统相对于桌面操作系统Windows,在文件系统设计上,有一个很重要的可以说是Linux哲学的思想:一切皆文件。Linux\Unix认为,系统和所有的硬件设备的交互都应该如同文件操作一样简单易行,文件也不应该和应用程序绑定,比如.doc必须有Word才能打开,你可以在Linux上用cat打开任何文件(有意义的话)。

因为Linux是开源的,利用Linux来开发软件的团队或个人太多了,如果每个人都按照自己的想法来配置文件放置的目录,那很可能造成管理上的困难。比如:你去一家企业,所接触到的Linux目录配置竟然和你之前学习的完全不一样,那你一定很懵逼,所以对于Linux就有一个同意的文件配置标准叫做:FHS(FilesystemHierarchy Standard)出炉。可以参考网站(http://www.pathname.com/fhs/)。FHS的重点在于规范每个特定的目录下应该要放置什么样的数据。这样的话就能解决管理上的很多困难了。

那么既然一切皆文件,Linux下都有哪些文件呢?下面我们先来看看Linux系统文件的种类和扩展名:

文件种类:

普通文件:一般我们进行访问的文件,可以用符号—表示,我们可以用ll查看文件属性时,第一个显示的是—那么就说明此文件是一个普通文件。普通文件按照内容的不同又可以分为:

纯文本文件(ASCII):可以直接读取

二进制文件(binary):系统可以认识执行的文件

数据格式文件(Data):特定格式,比如/var/log/wtmp记录登录信息的,就是一个数据格式文件,可以用last打开。

目录(directory):第一个属性为d相当于Windows的文件夹。

连接文件(link):第一个属性为l,相当于Windows下的快捷方式

设备与设备文件(device):与系统外设及存储相关的一些文件,通常都集中在/dev这个目录下。它通常可以分为两种:

块(block)设备文件:第一个属性b存储设备供系统随机访问的接口设备,如硬盘,软盘等。

字符(character)设备文件:第一个属性c,就是串行端口的接口设备,如键盘鼠标等,这些设备的特征是“一次性读取”的,不能够截断输出。

套接字(sockets):数据接口文件,第一个属性为s,通常可以在/var/run这个目录下可以看到这种类型的文件,通常被用在网络上的数据连接。

管道(FIFO,pipe):一种特殊的文件类型,目的是解决多个程序同时访问一个文件造成的错误问题。第一个属性为p。

以上就是Linux系统的一些文件种类,以及在ll命令下查看文件属性时的第一个属性的代表字母。接下来我们看一看Linux下的扩展名。

由于Linux下一切接文件,不像Windows系统,我们知道有.exe.bat .com扩展名的文件在Windows下是可以被执行的,在Linux下可不可以被执行和文件的扩展并并没有什么关系,是和文件的权限相关的X代表可执行,只要具有这个权限,那么这个文件就是可执行文件,能不能执行成功则和文件的内容有关了。但是为了解释文件的内容,我们在Linux下还是通常会以适当的扩展名进行命名文件的。

*.sh:脚本或批处理文件

*Z *.tar *.gz *.bz2 *.zip *.tar.gz *.tar.bz:等经过打包压缩的文件

*.html *.php:网页相关文件

注:Linux下文件的扩展名只是为了让你了解改文件的可能用途而已。网络上传过来的文件其属性和权限很有可能是会被改变的。

Linux文件长度限制

单一文件或目录的最大容许文件名为255个字符;包含完整的路径名称及目录的完整文件名为4096个字符。

上面说了一些Linux文件的文件类型,下面就谈一谈FHS标准的目录设置。FHS根据文件系统使用的频繁与否是否允许用户随意改动,将目录定义成四种交互的形态,见下表1:

表1

 

可分享的(shareable)

不可分享的(unshareable)

不变的(static)

/usr(软件放置处)

/etc(配置文件)

/opt(第三方软件)

/boot(开机与内核文件)

可变动的(variable)

/var/mail(用户邮件邮箱)

/var/run(程序相关)

/var/spool/news(新闻组)

/var/lock(程序相关)

Linux文件系统最重要的一个目录那就是根(/)目录,Linux下所有的目录都是有根目录衍生出来的,同事它也与开机还原系统修复有关。所以FHS建议:根目录所在分区应该越越好(当然要适当),应用程序最好不要与根目录放在同一个分区内。一般根目录应该要有下面这些子目录的存在才好,如下表2:

表2:

目录

应放置文件内容

/bin

单用户模式下还能被操作的命令。root和一般账户使用,cat chmod,mv…

/boot

主要放置开机会使用到的文件,包括内核文件,开机菜单,开机配置文件等。Grub

/dev

任何设备和接口文件都在这个目录。

/etc

系统主要的配置文件。/etc/init.d/默认服务的启动脚本

/home

系统默认的用户主文件夹~代表目前用户的主文件夹

/lib

开机时会用到的函数库,以及/bin /sbin下面的命令调用的函数库

/media

可删除的设备,软盘光盘DVD暂时挂载在此

/mnt

挂载目录

/opt

第三方软件放置目录:KDE /usr/local

/root

系统管理员的主文件夹

/sbin

开机过程中所需要的命令

/srv

Service的缩写:www服务所需数据可以放在/srv/www/里面

/tmp

一般用户或者正在执行的程序暂时放置文件的地方。

开机过程中仅有根目录会被挂载,其他分区则是在开机完成之后才会持续进行挂载,正因为如此,根目录下与开机过程有关的目录不能够与根目录放置在不同的分区。有哪些目录呢?见表2红色标志。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值