linux目录树?linux 文件

大家好,今天给各位分享linux目录树的一些知识,其中也会对linux 文件进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

Linux可不可以装在逻辑分区中

可以的在linux里没主分区逻辑分区这么一说。。你可以把windows里的逻辑分区格式化成linux的分区,然后在上面安装 linux,不过会自动安装grub引导一般。。可以上百度搜下教程装linux和xp是不一样的俄

先分区再装系统

由于Linux无法安装在Windows的分区上,所以必须在硬盘中分割出一块领地专供Linux使用,这里推荐用分区魔术师进行无损分区。为了方便讲述,这里先举一个实例来说明:装有Windows XP计算机有一个30GB的硬盘,共分三个区(C盘、D盘、和E盘),其中E盘有16.6GB(有约7GB可用空间)。我们的目标是将7GB的可用空间剥离出来专供Red Hat使用。

1.首先在Windows XP里启动分区魔术师,从主窗口可以看到磁盘分区的详细信息。单击右侧详细窗格里的分区E以选中它。

2.单击左侧任务列表里的“调整一个分区的容量”命令,即可弹出一个“调整容量/移动分区”对话框。

3.在该对话框的顶部有一个条状图表示分区E的使用情况,其中左侧的黑色条部分表示已用空间,右侧的绿色条部分表示可用空间。可以用鼠标直接拖曳绿色条部分对E盘容量进行调整。很显然,E盘的最小容量就是已用空间的容量(在小就要破坏原有数据了),减小的容量就成了自有空间。

4.单击“确定”按钮,回到主界面,此时我们可以看到新划分出的7GB自由空间。接下来的步骤非常重要。尽管这7GB的磁盘空间已经是“自由身”,但是它还是属于Windows的扩展分区,所以要将这7GB的自由空间从Windows扩展分区里划分出去。

5.单击扩展分区以选中它,如图1所示。用类似的方法将这7GB自由空间从Windows扩展DOS分区里划分出去。现在我们已经从Windows XP的领地里割出一块7GB的自由空间供Linux专用。

图1将自由空间从扩展分区里划分出去

注意,一定要将自由空间从Windows扩展分区里划分出去,这是因为Linux的分区格式和Windows并不完全兼容。如果Red Hat所使用的磁盘空间属于Windows扩展分区,就会导致“水土不服”。很多朋友反映装上了Red Hat以后,发现Windows速度变得奇慢,就会归咎于Red Hat,其实根本原因在于分区的时候没有将自由空间从扩展分区里剥离出去。

实现Windows与Linux双重引导有多种方法:

◆对于具有双硬盘的用户,可以将Linux安装在第二个硬盘上(Windows自然是安装在第一个硬盘上),并且确保将GRUB(LILO)安装在第二个硬盘的主引导扇区,然后每次开机时在BIOS里指定从哪个硬盘引导即可。

◆最常用的方法是借助Linux的引导装载管理器GRUB(LILO),自动接管双重系统的启动选单。

◆可以借助Windows XP的NT引导程序ntldr、boot.ini来实现双重启动。这种方法的优点是今后删除Linux比较方便,而且符合我们的使用习惯;缺点是实现起来相对比较复杂,需要获取Linux系统的引导映像文件。

◆可以选择不安装Linux的引导装载管理器(或者不要安装在主引导扇区),但是要记住在安装过程中一定要创建Linux启动盘。今后需要时,用这张启动盘引导系统进入Linux。

这里介绍了四种双重系统的实现方案,本文将分别介绍比较常见的第二和第三种方法。

使用Linux引导管理器

Linux有GRUB和LILO两种引导管理器。从Red Hat 7.2版本开始,GRUB取代LILO成为了默认的启动装载程序,可见GRUB有其过人之处。相对来说,GRUB的使用和配置更加简单,功能更加强大,而且是今后的发展方向。所以此处推荐大家使用GRUB作为双重系统的引导管理器。

假设使用Red Hat Linux 9.0的安装光盘进行安装。首先是修改系统BIOS设置,以启用光盘开机,然后用第一张Linux安装光盘引导系统,等出现欢迎屏幕时按回车,即可进入图形化安装界面。

1.选择定制安装

安装过程非常简单,一开始会提示选择安装语言(自然要选择熟悉的简体中文),然后系统会提示进行鼠标、键盘配置。一般Linux会自动检测出相关设备,无需更改。

接下来将进入安装类型选择页面,一共有五个选项,分别是个人桌面、工作站、服务器、定制和升级现存系统。这里我们选择自由度最高的“定制”安装类型,如图2所示。

图2选择安装类型

2.创建Linux分区

创建Linux分区是难点。此处选择“用Disk Druid手工分区”,在接下来的页面上选中刚刚划分出来的7GB自由空间,然后单击“新建”按钮,即可创建Linux分区。对于初学者,可以只分三个分区:

(1)引导分区

在弹出的“添加分区”对话框上,在剩余空间创建引导分区,挂载点为/boot,容量可以是100MB,文件系统是ext3,如图3所示。

图3创建引导分区

(2)交换分区

必须要创建交换分区。交换分区是一个特殊的分区,类似于Windows XP里的页面文件,它没有挂载点的概念。此处只需选择文件类型为swap,假设内存容量是128MB,则交换分区容量可以设为256MB。

(3)根分区

在弹出的“添加分区”对话框上,选择挂载点为“/”,选择文件系统为ext3,可以将剩余的容量全部分配给根分区(注意应该适当留一点空间,否则系统会报错),容量大小不低于1.5GB。

Linux环境下没有Windows的C、D盘符概念,每一个Linux分区必须挂载到Linux目录树上才可以使用。这里有一个特殊的分区,就是根目录/,这个目录是必须的,它是Linux目录树的根。

3.Linux引导管理器的配置

创建好Linux分区,接下来就是重头戏——Linux引导管理器的配置。图4就是引导装载程序配置界面。由图4可以看到,图中的引导系统列表里已经出现了两个选项,一个Windows XP(此处认作DOS),另一个自然就是Red Hat了。在这个安装向导页面,可以做以下设置:

图4引导装载器的配置

(1)改变默认启动系统

Linux引导管理器默认引导Linux,可以在这里加以修改,例如可以勾选Windows XP(此处是DOS)前面的“默认”复选框,也可以在安装完成后,修改/boot/grub/menu.ist文件达到同样目的。

(2)添加别的操作系统

有时候,GRUB不一定能够检测出系统里的所有操作系统,这时候就需要进行人工添加。单击如图4所示页面上的“添加”按钮,即可打开一个“映像”对话框,可以在“标签”文本框输入该操作系统的名称,例如“Windows 98”,在“设备”下拉列表指定该操作系统的系统分区所在的位置,并确定是否选择该操作系统为默认引导系统。

(3)编辑默认项目标签

可能大家早就看不惯Red Hat居然还把Windows XP看成是DOS。不过单击图4页面上的“编辑”按钮可以指定其标签,如图5所示。

图5指定启动选单的名称

完成了这一步,Windows与Linux双重系统安装就大局已定。接下来的操作比较简单,按照屏幕提示即可轻松完成。不过,千万别忘记创建一张Linux启动盘,以备不时之需。

使用ntldr实现双重引导

使用ntldr引导Windows和Linux双系统,要比GRUB麻烦得多。这是因为Windows无法识别Linux分区,所以不能检测出Red Hat Linux的存在。为了能够让ntldr乖乖“听话”,需要对其进行“手术”。

为了方便大家理解,先对Windows引导管理器的原理做一简单介绍。ntldr是由配置文件boot.ini提供工作参数的,该文件位于Windows XP系统分区的根目录下,具有隐藏、系统、只读属性。我们只需要将Red Hat Linux的引导记录作为一个文件备份到C盘的根目录下,并相应地在boot.ini文件里添加一个项目来指向它们,就可以实现双重系统了。

假设要进行Windows XP和Red Hat Linux双重启动,最好先安装Red Hat Linux,再安装Windows XP。道理很简单,如果先安装Windows XP,那么后安装的Red Hat会自作主张用它的引导管理器强占ntldr的地盘,导致无法用ntldr来引导多重系统。下面介绍如何保存Red Hat Linux 9.0引导扇区。

1.在Red Hat环境下备份引导扇区

安装完小红帽以后(假设安装在/dev/hda6分区)别忙着安装Windows XP,先进入小红帽,打开终端窗口,在里面键入以下命令:

dd bs=512 count=1 if=/dev/hda6 of=bootsect.rh

该命令的作用就是把Red Hat Linux引导扇区保存为一个bootsect.rh文件,可以将其备份到软盘上。

然后安装Windows XP(假设安装在C盘上)。安装完成以后,再把这个bootsect.rh文件拷贝到C盘根目录下。编辑C盘根目录下的boot.ini文件(注意事先去除其系统、只读属性),在里面添加下面命令:

C:\bootsect.rh="Red Hat Linux 9.0"

保存该文件,请别忘了将boot.ini、bootsect.rh件设置回系统、隐藏和只读属性,以免今后误操作。

需要指出的是,如果先安装Windows XP也可以,不过要记住两点:

(1)在安装Linux引导管理器时,切记不要把引导管理器安装在主引导记录上(以免覆盖Windows的引导管理器);

(2)千万记住要制作一张Linux引导盘。

后面的任务就简单了,安装完Red Hat Linux,用Linux启动盘引导系统进入Red Hat Linux,然后用同样的dd命令制作bootsect.rh文件。

2.在Windows XP环境下备份Linux引导扇区

尽管在Red Hat环境下备份Linux引导扇区比较简单,但是对于大多只熟悉Windows的朋友来说,还是显得有些麻烦。所以本文将介绍如何在Windows环境下备份Linux引导扇区。这里可以分两步走,首先是找出Linux引导扇区的扇区数,然后再将该扇区保存为一个备份文件。

(1)用分区魔术师查找Linux的起始扇区

要在Windows环境下保存Linux分区的引导扇区,就必须知道该引导扇区的扇区号。借助分区魔术师,在分区魔术师8.0的主窗口里定位Linux的/boot分区,用鼠标右键单击该/boot分区,选择“Properties”选单项。然后在打开的“Partition Properties”对话框切换到“Partition Info”标签页,找到“First physical sector”(第一物理扇区)的扇区数,如图6所示,本例是53014500。

图6查看引导扇区的扇区号

(2)用Dskprobe备份引导扇区

知道了Linux引导扇区号,就可以借助磁盘工具来备份。这里推荐大家使用Dskprobe,它位于Windows 2000/XP安装光盘里的\SUPPORT\TOOLS目录下的SUPPORT.cab压缩包下。

先关闭分区魔术师,然后双击Dskprobe.exe图标启动Dskprobe。由于启动后并未读入任何数据,所以显示的是全零的扇区信息。接下来单击程序界面上的“Drives”选单→“Pysical Drive”选单项,弹出如图7所示的“Open Pysical Drive”对话框。

图7选择合适的硬盘

可以看到该对话框里“Available Physical Drives”列表框里列出了两块磁盘,如果是单硬盘系统,将只列出PhysicalDrive0(第一块物理硬盘)。双击所需的物理硬盘,可以看到“Close Handle”和“Set Active”这两个按钮被激活,先单击“Set Active”按钮,然后再单击“OK”按钮,即可返回到主界面。

单击主界面上的“Sectors”选单→“Read”选单项,打开“Read Sectors”对话框。在“Starting Sector”文本框里输入刚才通过分区魔术师的扇区数(本例是53014500),在“Number of”文本框里输入1,然后单击“Read”按钮,则显示如图8所示的界面,这就是Linux的/boot分区的引导扇区的内容。

图8 Linux分区引导扇区内容

单击“File”选单→“Save as”选单项,指定保存位置(C盘根目录)、文件名(假设是bootsect.rh)即可,然后在boot.ini文件里添加合适的项C:\bootsect.rh="Red Hat Linux 9.0"即可。一切就绪以后,再重启系统。此时出现了Windows XP启动选单,可以根据需要选定进入哪个系统。

关于Linux文件系统的目录树结构

Linux操作系统中的主要目录及目录内容由文件系统层次结构标准(英语:Filesystem Hierarchy Standard,FHS)定义。

在FHS中,所有的文件和目录都出现在根目录"/"下,即使他们存储在不同的物理设备中。但是请注意,这些目录中的一些可能或可能不会在Linux系统上出现,这取决于系统是否含有某些子系统,例如 X Window系统的安装与否。

下面是FHS中所定义的一些目录,和目录的描述:

/bin二进制可执行命令

/dev设备特殊文件

/etc系统管理和配置文件

/etc/rc.d启动的配置文件和脚本

/home用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

/lib标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件

/sbin系统管理命令,这里存放的是系统管理员使用的管理程序

/tmp公用的临时文件存储点

/root系统管理员的主目录

/mnt系统提供这个目录是让用户临时挂载其他的文件系统。

/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

/proc虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/var某些大文件的溢出区,比方说各种服务的日志文件

/usr最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:

/usr/x11r6存放x window的目录

/usr/bin众多的应用程序

/usr/sbin超级用户的一些管理程序

/usr/doc linux文档

/usr/include linux下开发和编译应用程序所需要的头文件

/usr/lib常用的动态链接库和软件包的配置文件

/usr/man帮助文档

/usr/src源代码,linux内核的源代码就放在/usr/src/linux里

/usr/local/bin本地增加的命令

/usr/local/lib本地增加的库

如何用c语言列出目录树

给你一个参考:

相关函数:opendir

表头文件:#include<ftw.h>

定义函数:int ftw(const char*dir, int(*fn)(const*file, const struct stat*sb, int flag), int depth)

函数说明:ftw()会从参数dir指定的目录开始,往下一层层地递归式遍历子目录。ftw()会传三个参数给fn(),第一个参数*file指向当时所在的目录路径,第二个参数是*sb,为stat结构指针,第三个参数为旗标,有下面几种可能值

FTW_F一般文件

FTW_D目录

FTW_DNR不可读取的目录,此目录以下将不被遍历

FTW_SL符号连接

FTW_NS无法取得stat结构数据,有可能是权限问题

最后一个参数depth代表ftw()在进行遍历目录时同时打开的文件数。ftw()在遍历时每一层目录至少需要一个文件描述词,如果遍历时用完了depth所给予的限制数目,整个遍历将因不断地关文件和开文件操作而显得缓慢

如果要结束ftw()的遍历,fn()只需返回一非零值即可,此值同时也会是ftw()的返回值。否则ftw()会试着走完所有的目录,然后返回0

返回值:遍历中断则返回fn()函数的返回值,全部遍历则返回0,若有错误发生则返回-1

附加说明:由于ftw()会动态配置内存使用,请使用正常方式(fn函数返回非零值)来中断遍历,不要在fn函数中使用longjmp()

示例:

/*列出/etc/X11目录下的子目录*/

#include<sys/stat.h>

#include<unistd.h>

#include<ftw.h>

int fn(const char*file, const struct stat*sb, int flag)

{

if(flag== FTW_D)

printf("%s--- directory\n", file);

else

printf("%s\n",file);

return 0;

}

int main()

{

ftw("/etc/X11",fn,500);

}

阅读剩余
THE END