﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-为我所爱，奋斗一生-随笔分类-linux技术</title><link>http://www.blogjava.net/yuweixia2008/category/39523.html</link><description>java的点滴</description><language>zh-cn</language><lastBuildDate>Wed, 03 Jun 2009 13:38:23 GMT</lastBuildDate><pubDate>Wed, 03 Jun 2009 13:38:23 GMT</pubDate><ttl>60</ttl><item><title>vi的复制黏贴命令</title><link>http://www.blogjava.net/yuweixia2008/archive/2009/06/03/279860.html</link><dc:creator>希</dc:creator><author>希</author><pubDate>Wed, 03 Jun 2009 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/yuweixia2008/archive/2009/06/03/279860.html</guid><wfw:comment>http://www.blogjava.net/yuweixia2008/comments/279860.html</wfw:comment><comments>http://www.blogjava.net/yuweixia2008/archive/2009/06/03/279860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yuweixia2008/comments/commentRss/279860.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yuweixia2008/services/trackbacks/279860.html</trackback:ping><description><![CDATA[<p><font color="#660000" size="4">在GUI下：<br />
（1）可按i进入插入模式<br />
（2）使用鼠标拖动反选要粘贴的内容，按鼠标左键复制选定块到缓冲区<br />
（3）然后将光标移到要粘贴处，按鼠标中键（两键鼠标可同时按左右键），粘贴缓冲区内容。</font></p>
<p><font color="#660000" size="4" FONT>在纯文本终端下：<br />
（1）选定文本块，使用v进入可视模式；移动光标键选定内容<br />
（2）复制选定块到缓冲区，用y；复制整行，用yy<br />
（3）剪切选定块到缓冲区，用d；剪切整行用dd<br />
（4）粘贴缓冲区中的内容，用p<br />
<br />
在同一编辑窗打开第二个文件，用:sp [filename]<br />
在多个编辑文件之间切换，用Ctrl+w<br />
<br />
命令前面加数字表示重复次数，加字</font></p>
 <img src ="http://www.blogjava.net/yuweixia2008/aggbug/279860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yuweixia2008/" target="_blank">希</a> 2009-06-03 17:37 <a href="http://www.blogjava.net/yuweixia2008/archive/2009/06/03/279860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>剖析Linux系统启动过程</title><link>http://www.blogjava.net/yuweixia2008/archive/2009/05/25/277799.html</link><dc:creator>希</dc:creator><author>希</author><pubDate>Mon, 25 May 2009 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/yuweixia2008/archive/2009/05/25/277799.html</guid><wfw:comment>http://www.blogjava.net/yuweixia2008/comments/277799.html</wfw:comment><comments>http://www.blogjava.net/yuweixia2008/archive/2009/05/25/277799.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yuweixia2008/comments/commentRss/277799.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yuweixia2008/services/trackbacks/277799.html</trackback:ping><description><![CDATA[当用户打开PC的电源，BIOS开机自检，按BIOS中设置的启动设备(通常是硬盘)启动，接着启动设备上安装的引导程序lilo或grub开始引导Linux，Linux首先进行内核的引导，接下来执行init程序，init程序调用了rc.sysinit和rc等程序，rc.sysinit和rc当完成系统初始化和运行服务的任务后，返回init；init启动了mingetty后，打开了终端供用户登录系统，用户登录成功后进入了Shell，这样就完成了从开机到登录的整个启动过程。
<center><img src="http://www.5dmail.net/pic/2004/11/29/1027001.jpg"  alt="" /></center>
<p>&nbsp;&nbsp;&nbsp; 下面就将逐一介绍其中几个关键的部分： </p>
<p><br />
　　第一部分：内核的引导(核内引导)</p>
<p>　　Red Hat9.0可以使用lilo或grub等引导程序开始引导Linux系统，当引导程序成功完成引导任务后，Linux从它们手中接管了CPU的控制权，然后CPU就开始执行Linux的核心映象代码，开始了Linux启动过程。这里使用了几个汇编程序来引导Linux，这一步泛及到Linux源代码树中的&#8220;arch/i386/boot&#8221;下的这几个文件：bootsect.S、setup.S、video.S等。</p>
<p>　　其中bootsect.S是生成引导扇区的汇编源码，它完成加载动作后直接跳转到setup.S的程序入口。setup.S的主要功能就是将系统参数（包括内存、磁盘等，由BIOS返回）拷贝到特别内存中，以便以后这些参数被保护模式下的代码来读取。此外，setup.S还将video.S中的代码包含进来，检测和设置显示器和显示模式。最后，setup.S将系统转换到保护模式，并跳转到 0x100000。</p>
<p>　　那么0x100000这个内存地址中存放的是什么代码？而这些代码又是从何而来的呢？</p>
<p>　　0x100000这个内存地址存放的是解压后的内核，因为Red Hat提供的内核包含了众多驱动和功能而显得比较大，所以在内核编译中使用了&#8220;makebzImage&#8221;方式，从而生成压缩过的内核，在RedHat中内核常常被命名为vmlinuz，在Linux的最初引导过程中，是通过"arch/i386/boot/compressed/"中的head.S利用misc.c中定义的decompress_kernel()函数，将内核vmlinuz解压到0x100000的。</p>
<p>　　当CPU跳到0x100000时，将执行"arch/i386/kernel/head.S"中的startup_32，它也是vmlinux的入口，然后就跳转到start_kernel()中去了。start_kernel()是"init/main.c"中的定义的函数，start_kernel()中调用了一系列初始化函数，以完成kernel本身的设置。start_kernel()函数中，做了大量的工作来建立基本的Linux核心环境。如果顺利执行完start_kernel()，则基本的Linux核心环境已经建立起来了。</p>
<p>　　在start_kernel()的最后，通过调用init()函数，系统创建第一个核心线程，启动了init过程。而核心线程init()主要是来进行一些外设初始化的工作的，包括调用do_basic_setup()完成外设及其驱动程序的加载和初始化。并完成文件系统初始化和root文件系统的安装。</p>
<p>　　当do_basic_setup()函数返回init()，init()又打开了/dev/console设备，重定向三个标准的输入输出文件stdin、stdout和stderr到控制台，最后，搜索文件系统中的init程序（或者由init=命令行参数指定的程序），并使用 execve()系统调用加载执行init程序。到此init()函数结束，内核的引导部分也到此结束了，</p>
<p>&nbsp;&nbsp;&nbsp; 第二部分：运行init </p>
<p><br />
　　init的进程号是1，从这一点就能看出，init进程是系统所有进程的起点，Linux在完成核内引导以后，就开始运行init程序，。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件，它有若干行指令所组成。在Redhat系统中，inittab的内容如下所示(以&#8220;###"开始的中注释为笔者增加的)：</p>
<p>　　#<br />
　　# inittab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This file describes how the INIT process should set up<br />
　　#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the system in a certain run-level.<br />
　　#<br />
　　# Author:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Miquel van Smoorenburg,</p>
<p>　　#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Modified for RHS Linux by Marc Ewing and Donnie Barnes<br />
　　#</p>
<p>　　# Default runlevel. The runlevels used by RHS are:<br />
　　#&nbsp;&nbsp; 0 - halt (Do NOT set initdefault to this)<br />
　　#&nbsp;&nbsp; 1 - Single user mode<br />
　　#&nbsp;&nbsp; 2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)<br />
　　#&nbsp;&nbsp; 3 - Full multiuser mode<br />
　　#&nbsp;&nbsp; 4 - unused<br />
　　#&nbsp;&nbsp; 5 - X11<br />
　　#&nbsp;&nbsp; 6 - reboot (Do NOT set initdefault to this)<br />
　　#<br />
　　###表示当前缺省运行级别为5(initdefault)；<br />
　　id:5:initdefault:</p>
<p>　　###启动时自动执行/etc/rc.d/rc.sysinit脚本(sysinit)<br />
　　# System initialization.<br />
　　si::sysinit:/etc/rc.d/rc.sysinit</p>
<p>　　l0:0:wait:/etc/rc.d/rc 0<br />
　　l1:1:wait:/etc/rc.d/rc 1<br />
　　l2:2:wait:/etc/rc.d/rc 2<br />
　　l3:3:wait:/etc/rc.d/rc 3<br />
　　l4:4:wait:/etc/rc.d/rc 4<br />
　　###当运行级别为5时，以5为参数运行/etc/rc.d/rc脚本，init将等待其返回(wait)<br />
　　l5:5:wait:/etc/rc.d/rc 5<br />
　　l6:6:wait:/etc/rc.d/rc 6</p>
<p>　　###在启动过程中允许按CTRL-ALT-DELETE重启系统<br />
　　# Trap CTRL-ALT-DELETE<br />
　　ca::ctrlaltdel:/sbin/shutdown -t3 -r now</p>
<p>　　# When our UPS tells us power has failed, assume we have a few minutes<br />
　　# of power left.&nbsp; Schedule a shutdown for 2 minutes from now.<br />
　　# This does, of course, assume you have powerd installed and your<br />
　　# UPS connected and working correctly.<br />
　　pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"</p>
<p>　　# If power was restored before the shutdown kicked in, cancel it.<br />
　　pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"</p>
<p>　　###在2、3、4、5级别上以ttyX为参数执行/sbin/mingetty程序，打开ttyX终端用于用户登录，<br />
　　###如果进程退出则再次运行mingetty程序(respawn)<br />
　　# Run gettys in standard runlevels<br />
　　1:2345:respawn:/sbin/mingetty tty1<br />
　　2:2345:respawn:/sbin/mingetty tty2<br />
　　3:2345:respawn:/sbin/mingetty tty3<br />
　　4:2345:respawn:/sbin/mingetty tty4<br />
　　5:2345:respawn:/sbin/mingetty tty5<br />
　　6:2345:respawn:/sbin/mingetty tty6</p>
<p>　　###在5级别上运行xdm程序，提供xdm图形方式登录界面，并在退出时重新执行(respawn)<br />
　　# Run xdm in runlevel 5<br />
　　x:5:respawn:/etc/X11/prefdm -nodaemon</p>
<p>以上面的inittab文件为例，来说明一下inittab的格式。其中以#开始的行是注释行，除了注释行之外，每一行都有以下格式： <br />
　　id:runlevel:action:process</p>
<p>　　对上面各项的详细解释如下：</p>
<p>　　1. id</p>
<p>　　id是指入口标识符，它是一个字符串，对于getty或mingetty等其他login程序项，要求id与tty的编号相同，否则getty程序将不能正常工作。</p>
<p>　　2. runlevel</p>
<p>　　runlevel是init所处于的运行级别的标识，一般使用0－6以及S或s。0、1、6运行级别被系统保留：其中0作为shutdown动作，1作为重启至单用户模式，6为重启；S和s意义相同，表示单用户模式，且无需inittab文件，因此也不在inittab中出现，实际上，进入单用户模式时，init直接在控制台（/dev/console）上运行/sbin/sulogin。在一般的系统实现中，都使用了2、3、4、5几个级别，在Redhat系统中，2表示无NFS支持的多用户模式，3表示完全多用户模式（也是最常用的级别），4保留给用户自定义，5表示XDM图形登录方式。7－9级别也是可以使用的，传统的Unix系统没有定义这几个级别。runlevel可以是并列的多个值，以匹配多个运行级别，对大多数action来说，仅当runlevel与当前运行级别匹配成功才会执行。</p>
<p>　　3. action</p>
<p>　　action是描述其后的process的运行方式的。action可取的值包括：initdefault、sysinit、boot、bootwait等：</p>
<p>　　initdefault是一个特殊的action值，用于标识缺省的启动级别；当init由核心激活以后，它将读取inittab中的initdefault项，取得其中的runlevel，并作为当前的运行级别。如果没有inittab文件，或者其中没有initdefault项，init将在控制台上请求输入runlevel。</p>
<p>　　sysinit、boot、bootwait等action将在系统启动时无条件运行，而忽略其中的runlevel。</p>
<p>　　其余的action（不含initdefault）都与某个runlevel相关。各个action的定义在inittab的man手册中有详细的描述。</p>
<p>　　4. process</p>
<p>　　process为具体的执行程序。程序后面可以带参数。</p>
<p>　　第三部分：系统初始化</p>
<p>　　在init的配置文件中有这么一行：</p>
<p>　　si::sysinit:/etc/rc.d/rc.sysinit</p>
<p>　　它调用执行了/etc/rc.d/rc.sysinit，而rc.sysinit是一个bash shell的脚本，它主要是完成一些系统初始化的工作，rc.sysinit是每一个运行级别都要首先运行的重要脚本。它主要完成的工作有：激活交换分区，检查磁盘，加载硬件模块以及其它一些需要优先执行任务。</p>
<p>　　rc.sysinit约有850多行，但是每个单一的功能还是比较简单，而且带有注释，建议有兴趣的用户可以自行阅读自己机器上的该文件，以了解系统初始化所详细情况。由于此文件较长，所以不在本文中列出来，也不做具体的介绍。</p>
<p>　　当rc.sysinit程序执行完毕后，将返回init继续下一步。</p>
<p><br />
第四部分：启动对应运行级别的守护进程 </p>
<p><br />
　　在rc.sysinit执行后，将返回init继续其它的动作，通常接下来会执行到/etc/rc.d/rc程序。以运行级别3为例，init将执行配置文件inittab中的以下这行：</p>
<p>　　l5:5:wait:/etc/rc.d/rc 5</p>
<p>　　这一行表示以5为参数运行/etc/rc.d/rc，/etc/rc.d/rc是一个Shell脚本，它接受5作为参数，去执行/etc/rc.d/rc5.d/目录下的所有的rc启动脚本，/etc/rc.d/rc5.d/目录中的这些启动脚本实际上都是一些链接文件，而不是真正的rc启动脚本，真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下。而这些rc启动脚本有着类似的用法，它们一般能接受start、stop、restart、status等参数。</p>
<p>　　/etc/rc.d/rc5.d/中的rc启动脚本通常是K或S开头的链接文件，对于以以S开头的启动脚本，将以start参数来运行。而如果发现存在相应的脚本也存在K打头的链接，而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志)，则将首先以stop为参数停止这些已经启动了的守护进程，然后再重新运行。这样做是为了保证是当init改变运行级别时，所有相关的守护进程都将重启。</p>
<p>　　至于在每个运行级中将运行哪些守护进程，用户可以通过chkconfig或setup中的"System Services"来自行设定。常见的守护进程有：</p>
<p>　　amd：自动安装NFS守护进程<br />
　　apmd:高级电源管理守护进程<br />
　　arpwatch：记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库<br />
　　autofs：自动安装管理进程automount，与NFS相关，依赖于NIS<br />
　　crond：Linux下的计划任务的守护进程<br />
　　named：DNS服务器<br />
　　netfs：安装NFS、Samba和NetWare网络文件系统<br />
　　network：激活已配置网络接口的脚本程序<br />
　　nfs：打开NFS服务<br />
　　portmap：RPC portmap管理器，它管理基于RPC服务的连接<br />
　　sendmail：邮件服务器sendmail<br />
　　smb：Samba文件共享/打印服务<br />
　　syslog：一个让系统引导时起动syslog和klogd系统日志守候进程的脚本<br />
　　xfs：X Window字型服务器，为本地和远程X服务器提供字型集<br />
　　Xinetd：支持多种网络服务的核心守护进程，可以管理wuftp、sshd、telnet等服务</p>
<p>　　这些守护进程也启动完成了，rc程序也就执行完了，然后又将返回init继续下一步。</p>
<p>&nbsp;&nbsp;&nbsp; 第五部分：建立终端 </p>
<p><br />
　　rc执行完毕后，返回init。这时基本系统环境已经设置好了，各种守护进程也已经启动了。init接下来会打开6个终端，以便用户登录系统。通过按Alt+Fn(n对应1-6)可以在这6个终端中切换。在inittab中的以下6行就是定义了6个终端：</p>
<p>　　1:2345:respawn:/sbin/mingetty tty1<br />
　　2:2345:respawn:/sbin/mingetty tty2<br />
　　3:2345:respawn:/sbin/mingetty tty3<br />
　　4:2345:respawn:/sbin/mingetty tty4<br />
　　5:2345:respawn:/sbin/mingetty tty5<br />
　　6:2345:respawn:/sbin/mingetty tty6</p>
<p>　　从上面可以看出在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序，mingetty程序能打开终端、设置模式。同时它会显示一个文本登录界面，这个界面就是我们经常看到的登录界面，在这个登录界面中会提示用户输入用户名，而用户输入的用户将作为参数传给login程序来验证用户的身份。</p>
<p>　　第六部分：登录系统，启动完成</p>
<p>　　对于运行级别为5的图形方式用户来说，他们的登录是通过一个图形化的登录界面。登录成功后可以直接进入KDE、Gnome等窗口管理器。而本文主要讲的还是文本方式登录的情况：</p>
<p>　　当我们看到mingetty的登录界面时，我们就可以输入用户名和密码来登录系统了。</p>
<p>　　Linux的账号验证程序是login，login会接收mingetty传来的用户名作为用户名参数。然后login会对用户名进行分析：如果用户名不是root，且存在/etc/nologin文件，login将输出nologin文件的内容，然后退出。这通常用来系统维护时防止非root用户登录。只有/etc/securetty中登记了的终端才允许root用户登录，如果不存在这个文件，则root可以在任何终端上登录。/etc/usertty文件用于对用户作出附加访问限制，如果不存在这个文件，则没有其他限制。</p>
<p>　　在分析完用户名后，login将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其它信息，比如：主目录是什么、使用何种shell。如果没有指定主目录，将默认为根目录；如果没有指定shell，将默认为/bin/bash。</p>
<p>　　login程序成功后，会向对应的终端在输出最近一次登录的信息(在/var/log/lastlog中有记录)，并检查用户是否有新邮件(在/usr/spool/mail/的对应用户名目录下)。然后开始设置各种环境变量：对于bash来说，系统首先寻找/etc/profile脚本文件，并执行它；然后如果用户的主目录中存在.bash_profile文件，就执行它，在这些文件中又可能调用了其它配置文件，所有的配置文件执行后后，各种环境变量也设好了，这时会出现大家熟悉的命令行提示符，到此整个启动过程就结束了。</p>
<img src ="http://www.blogjava.net/yuweixia2008/aggbug/277799.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yuweixia2008/" target="_blank">希</a> 2009-05-25 11:06 <a href="http://www.blogjava.net/yuweixia2008/archive/2009/05/25/277799.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>完美解读Linux中文件系统的目录结构</title><link>http://www.blogjava.net/yuweixia2008/archive/2009/05/19/271553.html</link><dc:creator>希</dc:creator><author>希</author><pubDate>Tue, 19 May 2009 08:04:00 GMT</pubDate><guid>http://www.blogjava.net/yuweixia2008/archive/2009/05/19/271553.html</guid><wfw:comment>http://www.blogjava.net/yuweixia2008/comments/271553.html</wfw:comment><comments>http://www.blogjava.net/yuweixia2008/archive/2009/05/19/271553.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yuweixia2008/comments/commentRss/271553.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yuweixia2008/services/trackbacks/271553.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">1、什么是文件系统
<p style="text-indent: 2em">
<p style="text-indent: 2em">当您使用Linux的时候，如果您通过ls &#8211;l / 就会发现，在/下包涵很多的目录，比如etc、usr、var、bin ... ... 等目录，而在这些目录中，我们进去看看，发现也有很多的目录或文件。文件系统在Linux下看上去就象树形结构，所以我们可以把文件系统的结构形象的称为树形结构。
<p style="text-indent: 2em">linux文件系统的最顶端是/，我们称/为Linux的root，也就是 Linux操作系统的文件系统。Linux的文件系统的入口就是/，所有的目录、文件、设备都在/之下，/就是Linux文件系统的组织者，也是最上级的领导者。
<p style="text-indent: 2em">
<p style="text-indent: 2em">2、文件系统的类型
<p style="text-indent: 2em">
<p style="text-indent: 2em">LINUX有四种基本文件系统类型：普通文件、目录文件、连接文件和特殊文件，可用file命令来识别。
<p style="text-indent: 2em">
<p style="text-indent: 2em">普通文件：如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等，可用cat、less、more、vi、emacs来察看内容，用mv来改名。
<p style="text-indent: 2em">
<p style="text-indent: 2em">目录文件：包括文件名、子目录名及其指针。它是LINUX储存文件名的唯一地方，可用ls列出目录文件。
<p style="text-indent: 2em">
<p style="text-indent: 2em">连接文件：是指向同一索引节点的那些目录条目。用ls来查看是，连接文件的标志用l开头，而文件面后以"-&gt;"指向所连接的文件。
<p style="text-indent: 2em">
<p style="text-indent: 2em">特殊文件：LINUX的一些设备如磁盘、终端、打印机等都在文件系统中表示出来，则一类文件就是特殊文件，常放在/dev目录内。例如，软驱A称为/dev/fd0。LINUX无C：的概念，而是用/dev/had来自第一硬盘。
<p style="text-indent: 2em">
<p style="text-indent: 2em">3、目录结构的详细解说
<p style="text-indent: 2em">
<p style="text-indent: 2em">文件系统的组织结构分析，我们能分析什么呢？也就是当我们列/目录时，所看到的/usr、/etc ... ... /var 等目录是做什么用的，这些目录是不是有些特定的用途。无论哪个哪个版本的Linux系统，都有这些目录，这些目录应该是标准的。当然各个Linux发行版本也会存在一些小小的差异，但总体来说，大体还是差不多。
<p style="text-indent: 2em">言归正传，下面飘扬将讲到本文最核心的部分：linux文件系统的目录结构。
<p style="text-indent: 2em">
<p style="text-indent: 2em">/ bLinux文件系统的入口，也是处于最高一级的目录；
<p style="text-indent: 2em">/bin 系统所需要的那些命令位于此目录，比如 ls、cp、mkdir等命令；功能和/usr/bin类似，这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里。
<p style="text-indent: 2em">/boot Linux的内核及引导系统程序所需要的文件目录，比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下，GRUB或LILO系统引导管理器也位于这个目录；
<p style="text-indent: 2em">/dev 设备文件存储目录，比如声卡、磁盘... ...
<p style="text-indent: 2em">/etc 系统配置文件的所在地，一些服务器的配置文件也在这里；比如用户帐号及密码配置文件；
<p style="text-indent: 2em">/home 普通用户家目录默认存放目录；
<p style="text-indent: 2em">/lib 库文件存放目录
<p style="text-indent: 2em">/lost+found 在ext2或ext3文件系统中，当系统意外崩溃或机器意外关机，而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里，并修复已经损坏的文件系统。 有时系统发生问题，有很多的文件被移到这个目录中，可能会用手工的方式来修复，或移到文件到原来的位置上。
<p style="text-indent: 2em">/mnt 这个目录一般是用于存放挂载储存设备的挂载目录的，比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统，把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了；比如光驱可以挂载到/mnt/cdrom 。
<p style="text-indent: 2em">/opt 表示的是可选择的意思，有些软件包也会被安装在这里，也就是自定义软件包，比如在Fedora Core 5.0中，OpenOffice就是安装在这里。有些我们自己编译的软件包，就可以安装在这个目录中；通过源码包安装的软件，可以通过 ./configure --prefix=/opt/目录 。
<p style="text-indent: 2em">/proc 操作系统运行时，进程信息及内核信息（比如cpu、硬盘分区、内存信息等）存放在这里。/proc目录伪装的文件系统proc的挂载目录，proc并不是真正的文件系统，它的定义可以参见 /etc/fstab 。
<p style="text-indent: 2em">/root Linux超级权限用户root的家目录；
<p style="text-indent: 2em">/sbin 大多是涉及系统管理的命令的存放，是超级权限用户root的可执行命令存放地，普通用户无权限执行这个目录下的命令，这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的；我们记住就行了，凡是目录sbin中包含的都是root权限才能执行的。
<p style="text-indent: 2em">/tmp 临时文件目录，有时用户运行程序的时候，会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。
<p style="text-indent: 2em">/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。
<p style="text-indent: 2em">/var 这个目录的内容是经常变动的，看名字就知道，我们可以理解为vary的缩写，/var下有/var/log 这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录；/var/lib 用来存放一些库文件，比如MySQL的，以及MySQL数据库的的存放地；
<p style="text-indent: 2em">
<p style="text-indent: 2em">4、一些重要子目录的解说
<p style="text-indent: 2em">
<p style="text-indent: 2em">下面飘扬再补充几个比较常见且很重要的目录。
<p style="text-indent: 2em">/etc/init.d 这个目录是用来存放系统或服务器以System V模式启动的脚本，这在以System V模式启动或初始化的系统中常见。比如Fedora/RedHat；
<p style="text-indent: 2em">/etc/xinit.d 如果服务器是通过xinetd模式运行的，它的脚本要放在这个目录下。有些系统没有这个目录， 比如Slackware，有些老的版本也没有。在Rehat/Fedora中比较新的版本中存在。
<p style="text-indent: 2em">/etc/rc.d 这是Slackware发行版有的一个目录，是BSD方式启动脚本的存放地；比如定义网卡，服务器开启脚本等。
<p style="text-indent: 2em">/etc/X11 这是X-Windows相关的配置文件存放地。
<p style="text-indent: 2em">
<p style="text-indent: 2em">/usr/bin 这个目录是可执行程序的目录，普通用户就有权限执行；当我们从系统自带的软件包安装一个程序时，他的可执行文件大多会放在这个目录。比如安装gaim软件包时。相似的目录是/usr/local/bin；有时/usr/bin中的文件是/usr/local/bin的链接文件；
<p style="text-indent: 2em">/usr/sbin 这个目录也是可执行程序的目录，但大多存放涉及系统管理的命令。只有root权限才能执行；相似目录是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等；
<p style="text-indent: 2em">/usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录；一般是通过源码包安装的软件，如果没有特别指定安装目录的话，一般是安装在这个目录中。这个目录下面有子目录。自己看看吧。
<p style="text-indent: 2em">/usr/share 系统共用的东西存放地，比如 /usr/share/fonts 是字体目录，/usr/share/doc和/usr/share/man帮助文件。
<p style="text-indent: 2em">/usr/src 是内核源码存放的目录，比如下面有内核源码目录，比如 linux 、linux-2.xxx.xx 目录等。有的系统也会把源码软件包安装在这里。比如Fedora/Redhat，当我们安装file.src.rpm的时候，这些软件包会安装在 /usr/src/redhat相应的目录中。
<p style="text-indent: 2em">/var/adm 比如软件包安装信息、日志、管理信息等，在Slackware操作系统中是有这个目录的。在Fedora中好象没有；自己看看吧。
<p style="text-indent: 2em">/var/log 系统日志存放，分析日志要看这个目录的东西；
<p style="text-indent: 2em">/var/spool 打印机、邮件、代理服务器等假脱机目录；
<p style="text-indent: 2em">
<p style="text-indent: 2em">5、附录：目录结构的简明查阅手册
<p style="text-indent: 2em">
<p style="text-indent: 2em">(1)&#8220;/&#8221;根目录部分有以下子目录：
<p style="text-indent: 2em">
<p style="text-indent: 2em">/usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序，譬如，Netscape。
<p style="text-indent: 2em">/var 目录包含在正常操作中被改变的文件：假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等
<p style="text-indent: 2em">/home 目录包含用户的文件：参数设置文件、个性化文件、文档、数据、EMAIL、缓存数据等。这个目录在系统省级时应该保留。
<p style="text-indent: 2em">/proc 目录整个包含虚幻的文件。它们实际上并不存在磁盘上，也不占用任何空间。（用ls &#8211;l 可以显示它们的大小）当查看这些文件时，实际上是在访问存在内存中的信息，这些信息用于访问系统
<p style="text-indent: 2em">/bin 系统启动时需要的执行文件（二进制），这些文件可以被普通用户使用。
<p style="text-indent: 2em">/sbin 系统执行文件（二进制），这些文件不打算被普通用户使用。（普通用户仍然可以使用它们，但要指定目录。）
<p style="text-indent: 2em">/etc 操作系统的配置文件目录。
<p style="text-indent: 2em">/root 系统管理员（也叫超级用户或根用户）的Home目录。
<p style="text-indent: 2em">/dev 设备文件目录。LINUX下设备被当成文件，这样一来硬件被抽象化，便于读写、网络共享以及需要临时装载到文件系统中。正常情况下，设备会有一个独立的子目 录。这些设备的内容会出现在独立的子目录下。LINUX没有所谓的驱动符。
<p style="text-indent: 2em">/lib 根文件系统目录下程序和核心模块的共享库。
<p style="text-indent: 2em">/boot 用于自举加载程序（LILO或GRUB）的文件。当计算机启动时（如果有多个操作系统，有可能允许你选择启动哪一个操作系统），这些文件首先被装载。这个目录也会包含LINUX核（压缩文件vmlinuz），但LINUX核也可以存在别处，只要配置LILO并且LILO知道LINUX核在哪儿。
<p style="text-indent: 2em">/opt 可选的应用程序，譬如，REDHAT 5.2下的KDE （REDHAT 6.0下，KDE放在其它的XWINDOWS应用程序中，主执行程序在/usr/bin目录下）
<p style="text-indent: 2em">/tmp 临时文件。该目录会被自动清理干净。
<p style="text-indent: 2em">/lost+found 在文件系统修复时恢复的文件
<p style="text-indent: 2em">
<p style="text-indent: 2em">(2)&#8220;/usr&#8221;目录下比较重要的部分有：
<p style="text-indent: 2em">/usr/X11R6 X-WINDOWS系统（version 11, release 6)
<p style="text-indent: 2em">/usr/X11 同/usr/X11R6 （/usr/X11R6的符号连接）
<p style="text-indent: 2em">/usr/X11R6/bin 大量的小X-WINDOWS应用程序（也可能是一些在其它子目录下大执行文件的符号连接）。
<p style="text-indent: 2em">/usr/doc LINUX的文档资料（在更新的系统中，这个目录移到/usr/share/doc）。
<p style="text-indent: 2em">/usr/share 独立与你计算机结构的数据，譬如，字典中的词。
<p style="text-indent: 2em">/usr/bin和/usr/sbin 类似与&#8220;/&#8221;根目录下对应的目录（/bin和/sbin），但不用于基本的启动（譬如，在紧急维护中）。大多数命令在这个目录下。
<p style="text-indent: 2em">/usr/local 本地管理员安装的应用程序（也可能每个应用程序有单独的子目录）。在&#8220;main&#8221;安装后，这个目录可能是空的。这个目录下的内容在重安装或升级操作系统后应该存在。
<p style="text-indent: 2em">/usr/local/bin 可能是用户安装的小的应用程序，和一些在/usr/local目录下大应用程序的符号连接。
<p style="text-indent: 2em">(3)&#8220;/proc&#8221;目录的内容：
<p style="text-indent: 2em">/proc/cpuinfo 关于处理器的信息，如类型、厂家、型号和性能等。
<p style="text-indent: 2em">/proc/devices 当前运行内核所配置的所有设备清单。
<p style="text-indent: 2em">/proc/dma 当前正在使用的DMA通道。/proc/filesystems 当前运行内核所配置的文件系统。
<p style="text-indent: 2em">/proc/interrupts 正在使用的中断，和曾经有多少个中断。
<p style="text-indent: 2em">/proc/ioports 当前正在使用的I/O端口。 </p>
<img src ="http://www.blogjava.net/yuweixia2008/aggbug/271553.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yuweixia2008/" target="_blank">希</a> 2009-05-19 16:04 <a href="http://www.blogjava.net/yuweixia2008/archive/2009/05/19/271553.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux忘记root密码，进入单用户模式修改密码 </title><link>http://www.blogjava.net/yuweixia2008/archive/2009/05/13/270329.html</link><dc:creator>希</dc:creator><author>希</author><pubDate>Wed, 13 May 2009 01:06:00 GMT</pubDate><guid>http://www.blogjava.net/yuweixia2008/archive/2009/05/13/270329.html</guid><wfw:comment>http://www.blogjava.net/yuweixia2008/comments/270329.html</wfw:comment><comments>http://www.blogjava.net/yuweixia2008/archive/2009/05/13/270329.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yuweixia2008/comments/commentRss/270329.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yuweixia2008/services/trackbacks/270329.html</trackback:ping><description><![CDATA[<p>一、关于lilo <br />
1. 在出现 lilo: 提示时键入 linux single <br />
&nbsp;&nbsp;&nbsp; 画面显示 lilo: linux single <br />
2. 回车可直接进入linux命令行 <br />
3. 用password命令修改密码</p>
<p>二、关于 grub <br />
1. 在出现grub画面时，用上下键选中你平时启动linux的那一项，然后按e键 <br />
2. 再次用上下键选中你平时启动linux的那一项(类似于kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/)，然后按e键 <br />
3. 修改你现在见到的命令行，加入single，结果如下： <br />
&nbsp;&nbsp;&nbsp; kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/&nbsp; single<br />
4. 回车返回，然后按b键启动，即可直接进入linux命令行 <br />
5.用passwq命令修改密码</p>
<img src ="http://www.blogjava.net/yuweixia2008/aggbug/270329.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yuweixia2008/" target="_blank">希</a> 2009-05-13 09:06 <a href="http://www.blogjava.net/yuweixia2008/archive/2009/05/13/270329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 文件和目录的属性</title><link>http://www.blogjava.net/yuweixia2008/archive/2009/05/12/270145.html</link><dc:creator>希</dc:creator><author>希</author><pubDate>Tue, 12 May 2009 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/yuweixia2008/archive/2009/05/12/270145.html</guid><wfw:comment>http://www.blogjava.net/yuweixia2008/comments/270145.html</wfw:comment><comments>http://www.blogjava.net/yuweixia2008/archive/2009/05/12/270145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yuweixia2008/comments/commentRss/270145.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yuweixia2008/services/trackbacks/270145.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 目录1、 Linux 文件的属性概说；2、 关于inode；2.10 inode 相同的文件是硬链接文件；    2.11 创建硬链接，硬链接和源文件关系；    2.12 软链接的创建，及软接与源文件的关系；     3、文件类型；    4、文件的权限；    4.1 关于权限位；        4.2 改变权限的命令 chmod ；        &n...&nbsp;&nbsp;<a href='http://www.blogjava.net/yuweixia2008/archive/2009/05/12/270145.html'>阅读全文</a><img src ="http://www.blogjava.net/yuweixia2008/aggbug/270145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yuweixia2008/" target="_blank">希</a> 2009-05-12 09:17 <a href="http://www.blogjava.net/yuweixia2008/archive/2009/05/12/270145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>