㈠ 如何在linux上实现文件系统的自动检查和修复
我在本教程中将介绍如何借助fsck工具,实现文件系统的自动检查。 系统一启动,就触发文件系统自动检查机制 如果你希望系统一启动,就自动触发fsck,那么有一些方法可以设置在启动过程中实现无人值守的fschk,这些方法具体取决于特定的Linux发行版。 在Debian、Ubuntu或Linux Mint上,编辑/etc/default/rcS,如下所示。 $ sudo vi /etc/default/rcS # 启动过程中,自动修复出现不一致性的文件系统 FSCKFIX=yes 在CentOS上,使用下列内容,编辑/etc/sysconfig/autofsck(要是它没有,就创建)。 $ sudo vi /etc/sysconfig/autofsck AUTOFSCK_DEF_CHECK=yes 强制定期检查文件系统 如果文件系统很庞大,你可以强制定期检查文件系统,而不是每次系统启动时检查文件系统。为了实现这个操作,先要借助tune2fs命令,找到文件系统配置。下面这个命令行显示了文件系统相关参数的当前值。请注意:/dev/sda1是文件系统超级块所在的分区。 $ sudo tune2fs -l /dev/sda1 从tune2fs的输出结果中,我们不仅可以看到文件系统的状态(干净与否),还可以看到与文件系统检查有关的一些参数。"Maximum mount count"(最大挂载次数)这个参数是指文件系统检查被触发后的挂载次数。"Check interval"(检查时间间隔)这个参数显示了两次文件系统检查之间的最长时间。在大多数Linux发行版上,这些参数并不是默认情况下被设置的,这意味着并不进行任何定期的文件系统检查。 如果想强制每隔30次挂载就检查文件系统,请运行下面这个命令。 $ sudo tune2fs -c 30 /dev/sda1 如果想强制每隔3个月就检查文件系统,请使用下面这个命令。 $ sudo tune2fs -i 3m /dev/sda1 现在确认刚添加上去的文件系统检查条件已正确设置。 $ sudo tune2fs -l /dev/sda1 . . . Last mount time: n/a Last write time: Fri Mar 14 22:29:24 2014 Mount count: 20 Maximum mount count: 30 Last checked: Mon Mar 3 20:55:08 2014 Check interval: 7776000 (3 months) Next check after: Sun Jun 1 21:55:08 2014 强制下一次系统重启时,进行一次性的文件系统检查 如果你想在下一次系统重启时触发一次性的文件系统检查,可以使用这个命令。 $ sudo touch /forcefsck 一旦你在类似上面的顶层目录(/)中创建了一个名为forcefsck的空文件,它就会在你下一次重启时,强制进行文件系统检查。系统成功启动后,/forcefsck则会自动被清除。
㈡ 如何实现Windows与Linux文件系统互访的解决办法
实现Windows与Linux文件系统互访枝誉的解决办法:
1、按照Alt+F2 打开快捷窗口
㈢ linux支持的文件系统有哪些
比如Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。
Linux操作系统使用虚拟文件系统(VFS)向上和用户进程文件访问系统调用接口,向下和具体不同文件系统的实现接口。VFS屏蔽了具体文件的实现细节,向上提供统一的操作接口。通过VFS可以实现任意的文件系统,这些文件系统通过文件访问系统调用都可以访问。所以Linux系统核心可以支持十多种文件系统类型。
(3)实现linux文件系统扩展阅读:
EXT是皮睁延渗衫伸文件系统(英语:Extended file system,缩写为 ext或 ext1),也译为扩展文件系统,一种文件系统,于1992年4月发表,是为linux核心所做的第丛握腔一个文件系统。采用Unix文件系统(UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。它是在linux上,第一个利用虚拟文件系统实现出的文件系统,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系统
EXT3是第三代扩展文件系统(英语:Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。它是很多Linux发行版的默认文件系统。Stephen Tweedie在1999年2月的内核邮件列表中,最早显示了他使用扩展的ext2,该文件系统从2.4.15版本的内核开始,合并到内核主线中。
㈣ 300来行代码带你实现一个能跑的最小Linux文件系统
Linux作为一个类UNIX系统,其文件系统保留了原始UNIX文件系统的表象形式,它看起来是这个样子:
它其实是一棵目录树(没有画全):
然而,虽然所有的UNIX系统以及类UNIX系统的文件系统看起来一样,但是它们的实现却是不尽相同。
作为普通用户,了解文件系统的基本操作就够了;作为应用开发人员,了解文件系统的POSIX接口足矣,但是作为一个对操作系统有着浓厚兴趣的爱好者而言,自己可能就是一个新的文件系统的潜在实现者,所以必须一窥究竟,看看如此外观的文件系统到底是如何实现的。
网上已经有了很多关于UNIX/Linux文件系统实现的资源,但是无一例外,都太复杂了,除了整体的源码分析外,几乎就是针对某个特定文件系统的详解了,如此复杂的这些对于初涉该领域的满腔热情者无疑是一盆冷水,很多人因此望而却步。
几乎所有的关于Linux文件系统实现的资源都在用不同的语言解释上面的这些问题,这很容易陷入细节的泥潭。
本文以Linux内核为例,用一种稍微不同的方式去描述文件系统的实现。嗯,我会分3个部分来介绍Linux内核的文件系统:
本文中,我会通过一个实实在在的文件系统实现的例子,试图阐述 实现一个文件系统,哪些是必须的,哪些不是必须的。 这是一个任务驱动的过程,从简单的例子开始。
读过本文之后,相信会对Linux文件系统的实现有一个总体上的宏观把握,然后再去反复推敲上述的细节问题,重读网上的那些经典资源,相信会事半功倍。
当然,在给出最简单的tinyfs实现之前,还是会有一个总体的介绍。
如果我们把本文最初描述的那个在几乎所有UNIX/类UNIX系统中长的一模一样的文件系统表面刨开,在Linux内核中,文初的那棵树其实它长下面的样子(其实在大多数类UNIX系统中,它们长得都差不多):
【这张图基于我一张手绘图修改而成】
我们看到,Linux系统的文件目录树就是靠上图中的这一系列的链表穿针引线给串在一起的,就像缝制一件衣服一样,最终的成衣就是我们看到的Linux系统目录树,而缝制这件成衣的线以及指导走线的规则便是VFS本身了。
现在只要记住两个重要链表:
然后读完本文之后再去结合代码深入分析它们是如何串起整个文件系统的。
VFS之所有可以将机制大相径庭的完全不同的文件系统对外统一成一个样子,完全就是依靠了它的统一的对POSIX文件调用的接口,该接口的结构看上去是下面的样子:
注意上图最下面的那个椭圆,如果要实现一个文件系统,这个椭圆里的东西是关键,它完成了穿针引线的大部分工作。
现在让我们纵向地看一下一个完整的文件系统实现都包括什么,我指的是从POSIX系统调用开始,一直到数据落盘。Linux内核关于文件系统IO,完整的视图如下所示:
注意VFS提供的三类接口:
一个文件系统如果能实现上面三类接口,那它就是个完整的文件系统了。
我们恰好可以从设计并实现一个最基本的这样的文件系统开始。一个基本的文件系统,其着重点在于上图中红色的部分,而其它部分则不是必不可少的,但是却是让该文件系统变得优秀(而不仅仅是可用)所必须的。
为什么要实现这么一个文件系统,难道没人已经做了这个工作吗?做这个工作的意义何在?
原因如下:
然而确实,我没有找到简单的 最小文件系统 实现,也许你会说Linux内核自带的ramfs难道不就是一个现成的吗?的确算一个,但它有两个问题导致你无法领略实现一个文件系统的全过程,注意,我说的可是全过程:
为了 追求完整, 如果你把如何组织一块内核作为ramfs的底层介质这部分代码全部看完,如果你把libfs.c里的库实现全部看完,我想ramfs也就不算一个 足够简单 的文件系统实例了。
看到了么?要想代码简单,你就不得不使用libfs.c里的现成的例程,这将损失你实现一个文件系统的完整性体验,反之,要想完整实现一个文件系统,你可能不得不自己写大量的代码,这却并不简单。
如何既完备,又足够简单呢?
对于我这种编程水平渣渣的内核爱好者而言,如何在堵车的一个多小时内完成一个可以编译通过的文件系统(我承认完全能跑是我回到家后又调试了一个多小时才完成的...),这对于我而言,是一个挑战,但我要试一试,没想到就成功了。所以才有了今天的分享。
我从最底层的介质结构的设计开始。
我并没有真实的硬件介质,也并不打算编写专门的 格式化程序 去格式化一块内存区域,所以我直接用大数组定义一块内存,它便是我的模拟介质了,我的tinyfs的文件格式如下:
这个文件系统的格式非常的Low:
之所以这么Low是因为它只是一个开始, 当这个文件系统实现并且能跑之后,你会发现它因为Low而带来的不足和一些代价,而弥补这些不足正好是优化的动机,带着你逐步实现一个更加不Low的文件系统,在实现的过程中,你会窥见并掌握Linux内核文件系统的全貌和细节。 完美的学习过程,OK!
下面是代码:
review代码后,你可能已经发现了几个问题:
嗯,其实这些问题目前而言还都不是问题,它们并不阻碍这个文件系统的真实性,它用起来是那么的真实。
没有任何规范规定一个文件系统存储格式必须有什么或者必须没有什么,文件系统格式只是一个 看上去还可以的信息持久化记录格式 ,只要下次能根据某些信息将文件读取出来,任何格式都是OK的。
之所以很多人会认为一个文件系统的格式必须要符合某种规范,完全是因为人们看的最多的那些文件系统ext3,ext4,ntfs等恰好是那样做的罢了。不过事实证明,那样做确实是很好的。在可用的玩具完成之后,就要考虑 性能,健壮性,可扩展性 等这些工程因素了。而ext3/4,ntfs,xfs则充分考虑了这些。
逐渐的,权威变成了规范,至少成了一种范式或者模式,这是计算机领域常有的事,见怪不怪。
我们来使用下这个文件系统:
OK,挂载成功。
这里又有疑问了,为什么是none挂载,而不是一个块设备,比如/dev/sda1之类的。
这是因为我根本没有将介质(其实是一块连续的内存)抽象成块设备,如果引入块设备抽象,势必要导出device层操作接口,这样做并不困难,但却太麻烦,且块设备抽象和文件系统的实现核心无关。本文不是讲块设备的,加之班车上的堵车时间有限,故不做抽象。
好了,现在让我们来折腾下/mnt目录,该目录就是我的tinyfs的挂载目录了,在其下读写文件,就是在tinyfs的内存介质上读写文件:
除了最后一个删除目录的操作,其它的都OK,这也是预期之中,毕竟删除目录是TODO嘛。
一共300来行的代码(省去了很多异常判断和处理,真实情况下,这些要占据80%的代码量),非常容易读懂,你会发现这个文件系统实现是如此之low,然而却能看起来像真的一样。
这意味着完成和完美真的是两回事!
很多最终看起来很大型的东西,都是都这种刚刚完成可以用开始的。
很明显,这个代码没有使用块层来和底层介质通信,而是直接操作了底层介质,也就是那块连续的内存。因为我用内存模拟介质,尚且OK,如果底层真的有一个类似磁盘那样的慢速介质,每次操作直接读写block将是不可接受的。但如果你想获得性能上的提升,就必须使用块层的缓存机制,以及pagecache机制。
所以,方向很明确,我们有了一个todolist:
这些todo完成,意味着对Linux内核文件系统实现原理的彻底掌握,从一个简单的刚刚可用的tinyfs开始(这花不了多少时间),到整理出一份todolist,到完成这些todo,这便是一个任务驱动的学习过程。
回过头来看Linux文件系统IO的纵向视图:
这次注意蓝色部分,我们的TODO就是要补充这部分的实现。
好了,换一个视角看VFS。
我们把Linux内核内存中的VFS看作是磁盘等慢速介质中特定文件系统的缓存,这是一个典型的 分级存储结构, 就好像CPU cache和内存的关系一样。
在这个视角下,如何完成上图蓝色框框中的部分,可参考的现成范式就太多了。但无论如何都要解决的是:
Linux内核已经给了我们一个现成的答案:
当然,如果你觉得这些不够好,你也可以设计你自己的。总之,这是一块非常独立的工作,正如我图中所示,这部分工作的目标是,在文件系统刚好可以工作后, 让事情变得更加完美有趣!
㈤ Linux支持的文件系统有哪些Linux基础课程
Linux支持的文件系统有哪些?主要包括:EXT、EXT2、EXT3、EXT4、JFS、Btrfs等,下面为大家重点介绍一下文件系统的特点,快跟着我来看看吧。
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux
用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
1、EXT:专门为Linux核心做的第一个文件系统,单个文件最大限制:未知,该文件系统最大支持2GB的容量。
2、EXT2:由Remy
Card设计,用以代替ext,是Linux内核所用的文件系统,单个文件最大限制2TB,该文件系统最大支持32TB的容量。
3、EXT3:一个日志文件系统,单个文件最大限制16TB,该文件系统最大支持32TB的容量。
4、EXT4:Theodore
Tso领导的开发团队实现,Linux系统下的日志文件系统,单个文件最大限制和敬16TB,该文件系统最大支持1EB的容量。
5、JFS2:一个樱棚肢字节级日志文件系统,该文件系统主要是为满足服务器脊世的高吞吐量和可靠性需求而设计、开发的,单个文件最大限制16TB,该文件系统最大支持1PB的容量。
㈥ 如何在 Linux下实现一个文件系统
linux系统下也有开发C的很多开发工具的,一般工程可用make文件但最简单的直接用命令行编译就可以了gcc -o 你的执行文件名 main.c func1.c func2.c fun3.c就可以直接用你的4个C源文件生成你要的执行文件了
㈦ 如何实现Windows与Linux文件系统互访的解决办法
在Windows系统之间,可以通过共享目录的方式,让远程系统直接访问。其实这里是Windows提供一种远程文件系统机制,NAS协议的一种——CIFS协议。如果是Linux系统呢,同样有另外一种NAS协议——NFS协议来实现远程访问。那么这两种NAS协议能否互通呢?答案是否定的。虽然二者不能互通,但是,在Linux系统上面已经有了CIFS协议的服务端和客户端的实现,这样,无论是Linux给Windows共享还是Windows给Linux共享都可以借助这些已有的实现来做到了。
相反的,Windows上面有没有NFS的客户端或者服务端,也有,但是不常用,这里就不详细介绍了。
这里主要围绕着Linux上面使用CIFS协议来阐述如何实现两个系统之间的跨文件系统,跨操作系统共享。按照上面的描述,有两种方式来实现共享。Linux分别作为CIFS的服务端和客户端。下面分别就这两种方式来说明操作步骤和简单的原理介绍:
一、Samba软件实现共享Linux文件系统给Windows用户
Samba软件被誉为10大最有价值的开源软件之第五位。其获取方式非常容易,配置使用也非常简单。下面以fedora系统为例,先看一下本地是否已经安装好samba,如果/etc/init.d/smb 文件存在,则说明已经安装好了samba软件,否则使用如下命令安装:
复制内容到剪贴板
yum install samba
安装完成后,修改配置文件,打开:/etc/samba/smb.conf,在文件末尾加上如下配置:
复制内容到剪贴板
[root]
comment = root
path = /
creat mask = 64
writeable = yes
browseable = yes
valid users = root
这个配置的意思是,创建一个名为root的共享,将根文件目录“/”共享袭销给用户。允许登录的用户名是root。
然后给samba系统添加root用户,使用如下命令:
复制内容到剪碰弯贴板
smbpasswd -a root
按照提示设置root用户的密码。
重新启动samba服务。
复制内容到剪贴板
service smb restart
检查smb进程是否已经运行:
复制内容到剪贴板
root 1787 0.0 0.4 33068 4784 ? Ss 21:51 0:00 smbd
root 1788 0.0 0.2 33068 2580 ? S 21:51 0:00 \_ smbd
在需要访问该Linux系统的Windows客户机上面,打开Windows的资源管理器,在地址栏输入:\\192.168.1.110
会发现,提示有一个共享root,双击访问时,提示输入用户名和密码,输入此前配置的root用户和密码即可访问。这里就是Samba软件实现了CIFS的服务端,Windows资源管理作为客户端访问远程的共享文件系统。为了更为方便的使用该文件系统,还可以将该共享映射成一个本地的盘符,让Windows上面的各种工具像使用本地磁盘一样使用该目录。所有在Windows上面对该共享做的操作都会实时同步到Linux系统上面。
二、Linux访问Windows的共享
上面的借助于Samba的方式是大家常用的。还有一种,Windows系统天然就是一个CIFS的服务端和客户端,既然Windows系统可以给Windows系统共享目录,那么Linux系统能否访问这些共享呢?答案是肯定的,由于有强大的VFS支撑,Linux支持挂载和访问各种文件系统。mount工具支持挂在CIFS甚至NTFS的文件系统。如果是Windows本机上面的Linux虚拟机,那么可以直接通过虚拟机管理软件,如Vmware直接共享本地的磁盘分区给Linux系统,Linux系统根据Windows的磁盘分区的文件系统类型挂载即可。这里不详述该方案。
进入本段的正题,首先我们需要共享一个Windows的拍吵游目录:
下面以Windows XP为例,Windows 7未做验证,应该类似。在共享之前,首先需要确保Windows系统的server服务处于启动状态,如下图:
选择需要共享的目录,右键,属性,选择“共享”页,如下图:
配置共享
选择在网络上共享这个文件夹,并指定共享名。根据需要选择是否允许远程用户修改该文件夹。这样这个文件夹就被共享给远程访问了。
在Linux系统下挂载该共享:
复制内容到剪贴板
[root@f2 ~]# mount -t cifs -o username="Test" //192.168.1.100/sourcecode /root/sourcecode
Password for Test@//192.168.1.100/sourcecode:
按照要求输入指定用户的密码即可。
此时,Windows的共享sourcecode目录就已经挂载到Linux系统上面了,Linux系统可以像访问本地目录一样访问该目录了。
这种方法应该是更好的访问方式,因为一般而言,我们操作的文件和工作空间都是在Windows上面的,只有少数时候,需要在Linux上面进行编译,调试。但是用起来稍显麻烦。注意,此前曾遇到过Windows系统与虚拟出来的Linux系统之间无法传输数据的问题,原因是Windows系统的防火墙未开启。
通过以上两种方法解决如何实现Windows与Linux文件系统互访的问题,希望能帮到大家,谢谢阅读。
㈧ 如何实现Windows与Linux文件系统互访的解决办法
1. 可以通过ssh:在linux上安装openssh或者ssh包,如果发起者是windows,需要安装xshell软件。
linux只见可以通过肢行ssh ipaddress port的格式发起访问;可以用察喊scp user_name@ipaddr:/dir/filename . 将文件拷贝到本地,或者反过来将文件拷贝到远历没哗程:scp /dir/filename username@ipaddr:/dir2/
从windows到linux:windows上安装lrzsz包,用xshell建立ssh连接(22端口),建立远程终端。在命令行输入rz或者sz,来传输文件。
2. ftp方式
可以在linux上安装ftp服务端,比如vsftpd包。从windows发起ftp访问。
3. samba方式
在linux上安装samba,简单的设置/etc/samba/smb.conf就可以从windows上以共享文件的方式访问linux文件系统了。
㈨ 如何在Linux上实现文件系统的自动检查和修复
我在本教程中将介绍如何借助fsck工具,实现文件系统的自动检查。
系统一启动,就触发文件系统自动检查机制
如果你希望系统一启动,就自动触发fsck,那么有一些方法可以设置在启动过程中实现无人值守的fschk,这些方法具体取决于特定的Linux发行版。
在Debian、Ubuntu或Linux Mint上,编辑/etc/default/rcS,如下所示。
$ sudo vi /etc/default/rcS
# 启动过程中,自动修复出现不一致性的文件系统
FSCKFIX=yes
在CentOS上,使用下列内容,编辑/etc/sysconfig/autofsck(要是它没有,就创建)。
$ sudo vi /etc/sysconfig/autofsck
AUTOFSCK_DEF_CHECK=yes
强制定期检查文件系统
如果文件系统很庞大,你可以强制定期检查文件系统,而不是每次系统启动时检查文件系统。为了实现这个操作,先要借助tune2fs命令,找到文件系统配置。下面这个命令行显示了文件系统相关参数的当前值。请注意:/dev/sda1是文件系统超级块所在的分区。
$ sudo tune2fs -l /dev/sda1
从tune2fs的输出结果中,我们不仅可以看到文件系统的状态(干净与否),还可以看到与文件系统检查有关的一些参数。"Maximum mount count"(最大挂载次数)这个参数是指文件系统检查被触发后的挂载次数。"Check interval"(检查时间间隔)这个参数显示了两次文件系统检查之间的最长时间。在大多数Linux发行版上,这些参数并不是默认情况下被设置的,这意味着并不进行任何定期的文件系统检查。
如果想强制每隔30次挂载就检查文件系统,请运行下面这个命令。
$ sudo tune2fs -c 30 /dev/sda1
如果想强制每隔3个月就检查文件系统,请使用下面这个命令。
$ sudo tune2fs -i 3m /dev/sda1
现在确认刚添加上去的文件系统检查条件已正确设置。
$ sudo tune2fs -l /dev/sda1
. . .
Last mount time: n/a
Last write time: Fri Mar 14 22:29:24 2014
Mount count: 20
Maximum mount count: 30
Last checked: Mon Mar 3 20:55:08 2014
Check interval: (3 months)
Next check after: Sun Jun 1 21:55:08 2014
强制下一次系统重启时,进行一次性的文件系统检查
如果你想在下一次系统重启时触发一次性的文件系统检查,可以使用这个命令。
$ sudo touch /forcefsck
一旦你在类似上面的顶层目录(/)中创建了一个名为forcefsck的空文件,它就会在你下一次重启时,强制进行文件系统检查。系统成功启动后,/forcefsck则会自动被清除。
㈩ Linux 文件系统管理
3.1Linux 文件系统类型
不同的操作系统使用不同类型的文件系统,为了与其他的操作系统兼容,以相互交换数据,
通常,每种操作系统都支持多种类型的文件系统。
Linux 中保存数据的磁盘分区通常采用EXT2/EXT3 文件系统,而实现虚拟存储的swap 分区
采用swap 文件系统,同时Linux 内核支持十多种不同的文件系统。
1. EXT2 和EXT3 文件系统
EXT(Extended File System,扩展文件系统)是专为Linux 设计的文件系统。在Linux 发展
早起,起到重要中用,但在稳定性、速度和兼容性方面存在缺陷。
EXT2 是为解决EXT 系统存在的缺陷而设计的可扩展、高性能的文件系统。
EXT3 是EXT2 的增强版本,在EXT2 的基础上,增加了文件系统的日志管理功能。
EXT3 文件系统具有的特点:
(1) 高效性:当系统因为异常断电或系统崩溃,重新启动时不需要检查文件系统的一致
性,只需要根据文件系统的日志,快速检测并恢复文件系统到正常状态。
(2) 数据的完整性:可以保持数据域文件系统状态的高度一致性,避免意外关机对文件
系统造成的破坏。
(3) 数据的存取速度更快:EXT3 文件系统的日志功能对磁盘驱动器的读/写进行优化,
使读/写系统的速度更快。
(4) 数据易于转换
2. swap 文件系统
用于Linux 的交换分区。在Linux 中,使用整个交换分区来提供虚拟内存。
3. VFAT 文件系统
VFAT 是Linux 对DOS、Windows 系统下的FAT 文件系统的统称。
4. NFS 文件系统
NFS 即网络文件系统,用在UNIX 或Linux 系统间通过网络进行文件共享。
5. SMB 文件系统
SMB 是Samba 的缩写,是另一种网络文件系统,用于在Windows 和Linux 系统之间共享文
件和打印机。
6. ISO9660 文件系统
CD-ROM使用的标准文件系统。
此外,Linux 支持的文件系统还有minix、msdos、ncpfs、hpfs、umsdos 等。
3.2 Linux 的目录和文件
1.Linux 系统的目录结构
Linux 文件系统由文件和目录组成,文件是专门用来存储数据的对象,目录是一种用来组织
文件和其他目录的容器。Linux 和DOS、Windows 系统一样,使用树形目录结构来组织和管
理文件。
1. / 文件系统的入口,最高一级目录;
2. /bin 基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls, cp, mkdir等。
这个目录中的文件都是可执行的,一般的用户都可以使用。
3. /boot 包含Linux内核及系统引导程序所需要的文件,比如vmlinuz initrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;
4. /dev 设备驱动程序文件存储目录,比如声卡、磁盘等,是Linux文件系统的一个闪亮的特性-所有对象都是文件或目录。仔细观察这个目录你会发现hda1, hda2等,它们代表系统主硬盘的不同分区。
5. /etc 存放系统程序或者一般工具的配置文件。
如安装了apache2之后,配置文件在/etc/apache2/目录下。
/etc/init.d这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V模式启动或初始化的系统中常见。
6. /home 普通用户默认存放目录Linux是多用户环境,所以每一个用户都有一个只有自己可以访问的目录(当然管理员也可以访问)。它们以/home/username的方式存在。这个目录也保存一些应用对于这个用户的配置,比如IRC, X等。
7. /lib 库文件存放目录这里包含了系统程序所需要的所有共享库文件,类似于Windows的共享库DLL文件。
8. /var 这个目录的内容是经常变动,因为存储的文件,如数据库,数据文件大小是在不断的增大。
/var/log这是用来存放系统日志的目录。
/var/www目录是定义Apache服务器站点存放目录;/var/lib用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;
/var/log系统日志存放,分析日志要看这个目录的东西;
/var/spool打印机、邮件、代理服务器等假脱机目录;
9. /lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
Linux应该正确的关机。但有时你的系统也可能崩溃掉或突然断电使系统意外关机。那么启动的时候fsck将会进行长时间的文件系统检查。Fsck会检测并试图恢复所发现的'不正确的文件。被恢复的文件会放置在这个目录中。所恢复的文件也许并不完整或并不合理,但毕竟提供了一些恢复数据的机会。
10. /media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录 ;CDROM/DVD自动挂载后,也会在这个目录中创建一个目录,类似cdrom的目录。这个只有在最新的发行套件上才有. 10. /mnt /mnt这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。比如光驱可以挂载到/mnt/cdrom。
11. /opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过./configure --prefix=/opt/,将软件安装到opt目录。
这个目录包含所有默认系统安装之外的软件和添加的包。
12. /proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。
这是系统中极为特殊的一个目录,实际上任何分区上都不存在这个目录。它实际是个实时的、驻留在内存中的文件系统。
13. /root Linux超级权限用户root的家目录;
14. /sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令;
这个目录和
/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的; 我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。
15. /tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。
许多程序在这里建立lock文件和存储临时数据。有些系统会在启动或关机时清空此目录。
16. /usr 这个是系统存放程序的目录,比如命令、帮助文件等。
这个目录下有很多的文件和目录。
当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。
如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。