自己是个Linux的小菜鸟,一直都想好好学学Linux,但是总也坚持不下来,迄今仍处于刚入门的阶段。虽然断断续续地学了一些基础知识,但是很容易就忘记了。因此,决定把看过的一些资料,再加上网上查到的一些内容,对Linux的一些基本知识与概念归纳整理一番,以便加深记忆。 如果有哪里描述不准确的地方,也希望好心人指出。
1、Linux中的磁盘分区与目录
    文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。Linux的文件结构是单个的目录树结构,所有的一切都由根目录开始,用‘/’代表,延伸至各级子目录;不像Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。
对于Linux的磁盘分区与目录的关系描述如下:
    ①任何一个分区都必须挂载到某个目录上。 
    ②目录是逻辑上的区分,分区是物理上的区分。 
    ③磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。
    ④根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。 
        Linux基础知识总结_第1张图片
    假设当前系统目录结构(根目录下二级目录分为/etc、/dev、/bin…/home)如上图所示,假设硬盘分了两个区partition1、partition2(关于硬盘分区相关内容下面介绍),partition1是挂载到根目录,partition2则是挂载到/home这个目录。 这也就是说,当我的数据放置在/home内的各次目录时,数据是放置到partition2分区中的。
---------------------------------------------挂载的概念-----------------------------------------
    当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录上,而这个目录就称为“挂载点(mount point)”,这样才可以读取这些设备,而这些对应的动作就是“挂载”。
--------------------------------------------------------------------------------------------------
2、Linux硬盘分区与设备标识 
    要分区,首先要对一些基本概念进行了解。在Linux系统中,每个装置都被当成一个文件来对待,各硬件装置在Linux中都有对应的文件名。
   举例来说,IDE接口的硬盘的文件名即为/dev/hd[a-d],SCSI硬盘或SATA硬盘的文件名则表示为/dev/sd[a-d],其中括号内的字母为a-d当中的任意一个。如:hda就是第一块IDE硬盘,sdb就是第二块SCIS或SATA硬盘。用hda1、hda2、hda5、hda6..来标识不同的分区。sda1、sda2、sda5的意思也是如此。
   其中,字母a 代表第一块硬盘,b代表第二块硬盘,依次类推。而数字1 代表一块硬盘的第一个分区、2 代表第二个分区,依次类推。0 到3 对应的是主分区(Primary Partition)或扩展分区(Extension Partition)。从4开始,对应的都是硬盘的逻辑分区(Logical Partition)。一块硬盘即使只有一个主分区,逻辑分区也是从5开始编号的,这点应特别注意。
-------------------------------------主分区、扩展分区、逻辑分区---------------------------------
    硬盘分区主要分为主分区(Primary Partion)和扩展分区(Extension Partion)两种,且主分区和扩展分区数目之和不能大于四个。主分区一经创建,格式化后可立即使用。扩展分区创建之后,无法直接格式化使用,必须再进行二次逻辑分区(Logical Partion)划分且格式化后才能使用。逻辑分区划分没有数量上的限制。
    ①主分区和扩展分区最多可以有四个(硬盘的限制);
    ②扩展分区最多只能有一个(操作系统的限制);
    ③逻辑分区是在扩展分区内连续划分出来的分区;
    ④能够被格式化后,作为数据存取的分区为主分区与逻辑分区。扩展分区无法格式化;
    ⑤逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号), SATA硬盘则有11个逻辑分区(5号到15号)。
-------------------------------------------------------------------------------------------------

3、Linux各目录介绍
    上面提到过,Linux的文件结构是单个的目录树结构,所有的一切都由根目录开始,用‘/’代表,延伸至各级子目录;Linux各种发行版的目录结构基本一致,各个目录简单介绍如下:
/        根目录,所有的目录都挂在这个目录下面。 

/bin     作为基础系统所需要的最基础的命令就是放在这里。比如 ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。
/boot    用来存放与Linux系统启动有关的程序,比如启动引导装载程序等。Linux的内核及引导系统程序所需要的文件,比如 vmlinuz、initrd.img 文件都位于这个目录中;在一般情况下, GRUB或LILO系统引导管理器也位于这个目录;启动装载文件存放位置,如kernels、initrd、grub。一般独立分区。

/dev      该目录包含了Linux系统中使用的所有外部设备,/cdrom该目录在刚安装系统时是空的,可以将光驱文件系统挂在这个目录下。

/etc     系统的配置文件存放地。一些服务器的配置文件也在这里;比如用户帐号及密码配置文件以及各种服务的启动文件。比较重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。

/home   存放普通用户的数据,是普通用户的宿主目录,比如用户user的主目录就是/home/user。一般独立分区,这样即使重装系统,也不会丢失自己的文件资料。

/lib     库文件存放地。存放开机会用到的函数库,以及bin和sbin底下的指令需要的库文件。作用类似windows里的.dll文件。尤其重要的是/lib/modules/这个目录, 因为该目录会放置核心相关的模块(驱动程序)。

/mnt      临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义

/opt    可选的应用程序包。

/proc   操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见 /etc/fstab。

/root     系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中。

/sbin     系统管理命令,和bin类似,是一些可执行文件,不过不是所有用户都需要的,一般是系统管理所需要使用得到的。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些服务器软件程序,一般则放置到/usr/sbin/当中;本机自行安装的软件所产生的系统执行文件(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs 等等。

/tmp    公用的临时文件存储点。一般系统重启不会被保存。

/usr      Unix Software Resource的缩写,Unix操作系统软件资源所放置的目录。其中包含:
------------------------------------------------
        /usr/bin        绝大部分的用户可使用指令(与/bin的不同,是否与开机有关)
        /usr/sbin       非系统正常运作所需要的系统指令
        /usr/share      放置共享文件的地方。/usr/share/man、/usr/share/doc...
        /usr/include    linux下开发和编译应用程序所需要的头文件
        /usr/lib         /usr/bin/ 和/usr/sbin/的库文件
        /usr/src        源代码,linux内核的源代码就放在/usr/src/linux里
        /usr/local/bin  本地增加的命令
        /usr/local/lib   本地增加的库
        /usr/X11R6     X Window System重要数据所放置的目录
-------------------------------------------------
/var     用来存放Linux系统中经常变化的数据以及日志文件。 
……
4、Linux分区规划
    初学Linux最头疼的就是在安装系统时不知道如何去进行分区,自己对这块也是理解的不太透彻,基本上就是按照网上的资料对系统做个最简单的分区,做练习之用。对于更复杂的Linux服务器,该如何进行合理的规划还需要向高手请教。以下是自己摘取了“鸟哥的私房菜”中的有关说明,并结合自己的实践,整理的一点笔记:
    初次安装,最简单的方式是仅分为[/与swap]两个分区,由此避免因分区错误造成无法安装。例如/usr是Linux的可执行程序及相关的文件摆放的目录,容量需求较大,万一分区时容量给的不够大,就会出现麻烦!但是这种分区方式的弊端是,一旦某个小细节出错,可能造成整个根目录毁掉(因此只做练习之用还行)。
    对于较麻烦一点的分区方案,就是先分析这部主机的未来用途,然后根据用途去分析需要较大容量的目录, 以及读写较为频繁的目录,将这些重要的目录分别独立出来而不与根目录放在一起,那当这些读写较频繁的磁盘分区槽有问题时,至少不会影响到根目录的系统数据。
我的系统环境如下:
   Linux版本CentOS-5.3-i386;硬盘空间  40G;内存 512M;
   在虚拟机vmware 6.5环境下进行安装。安装时跳过系统预设的默认分区,进行自定义分区。考虑分区的合理性,并且主要是个人练习之用,做如下规划。并预留了一部分空间为以后练习分区之用。
   /      根目录,建议大小为5GB以上。分配10G
   /boot   存放与Linux系统启动有关的程序。分配100M
----------------------------------------------------------------------------------------------
    对于旧主板上面安装新的大容量磁盘时,会出现磁盘容量误判,因此即使可以安装,但是在开机时,由于BIOS捉到的硬盘是不对的,所以使用硬盘开机可能就会出现无法开机。
   但是BIOS捉到的磁盘容量不对,但是至少在整颗磁盘前面的分区还可以读到!因此,只要将这个磁盘最前面的容量分出一个小分区,并将这个区与系统启动文件的放置目录摆在一起,就是/boot 这个目录,就可以解决了。/boot给100M Bytes左右即可!/boot要放在整块硬盘的最前面。
------------------------------------------------------------------------------------------------
   /home   用户文件存放目录。 分配5G
   swap    内存置换空间!由于swap并不会使用到目录树的挂载, 所以swap不需要指定挂载点。这与操作系统的类型有关,Linux下需要一个EXT2或EXT3格式的硬盘分区作为根分区,还需要一个SWAP 格式的交换分区,大小与内存大小有关。一般为内存的1.5-2倍大小。我这里分配了1G
   安装过程分区图如下所示(姑且认为1G=1000M):Linux基础知识总结_第2张图片

   在添加分区的挂载点为/boot时,勾选强制为主分区选项,系统会自动将/boot这个特殊目录移到磁盘最前面,所以会看到/boot所在的磁盘分区槽为/dev/sda1,而起始磁柱则为1号。 

参考资料:
鸟哥的私房菜第三版
http://www.iteye.com/topic/816268
http://www.linuxso.com/linuxrumen/5122.html
http://wenku.baidu.com/view/c97b49bfc77da26925c5b0b9.html
http://linux.chinaunix.net/techdoc/beginner/2007/03/30/953684.shtml
.............