在学习Linux前首选需要明白,Linux是一个与大家习惯使用的Windows完全不同的操作系统,也许你已经习惯了开机后右手就放到鼠标上开始操作、习惯了开始菜单、习惯了“Ctrl+C”和“Ctrl+V”,那么这些在Linux中都不是必需的,虽然在Linux中也可以使用图形界面操作,但是这绝对不是必需的!你需要习惯所有一切的操作都通过键盘来完成,需要习惯所有的配置都是通过修改配置文件完成的。
在开始学习Linux的安装前,首先从最基本的磁盘、文件系统、目录在Linux中的概念开始。
和其他操作系统一样,Linux可以将磁盘划分为多个分区,每个分区可以被当做一个独立的磁盘使用。在Linux中可以将磁盘划分为以下三种类型的分区。
主分区可以标记为活动,用于操作系统的引导。在一块磁盘上最多可以划分4个主分区。主分区上可以用于存放操作系统所需文件,也可以用于存放用户数据。
为了解决一块磁盘只能划分4个分区而引入了扩展分区,只有在主分区小于4个时才可以划分扩展分区,在一块磁盘上最多只能有一个扩展分区。扩展分区不能用于保存任何数据,必须在扩展分区中进一步划分逻辑分区,用户数据只能保存在逻辑分区中。
在扩展分区中可以建立多个逻辑分区。逻辑分区的分区信息作为一个链表存在,所以在理论上讲可以建立的逻辑分区的数目不受限制。
在Windows中所有的主分区和逻辑分区都是采用英文字母标记,如C盘、D盘等,而在Linux中计算机大多数的硬件设备都是以文件方式进行管理,这些硬件设备都被映射到“/dev”目录下对应的文件中。磁盘分区也不例外,在“/dev”目录中会将每个磁盘分区映射为一个文件,这些文件采用字母加数据的形式,其格式如下。
/dev/xxyN
其中“xx”表示分区名所在磁盘的设备类型,一般hd代表IDE接口的磁盘(包括IDE接口的光盘驱动器);sd代表SCSI或SATA接口的磁盘(包括SCSI或SATA接口的光盘驱动器以及U盘);fd代表软盘驱动器。“y”表示分区所在硬盘是当前接口的第几个设备,比如第一个SCSI硬盘就是“/dev/sda”、第二个SCSI硬盘就是“/dev/sdb”。“N”表示分区的序号,前4个分区(主分区或扩展分区)使用 1~4表示;逻辑分区从5开始,如图 2-27所示。
图2-27 磁盘分区
在分区完成后,用户并不能直接使用这些分区,需要格式化后再通过mount命令(有关mount命令见第7章 )挂载后才可以使用。比如使用mount命令将“/dev/sdb2”挂载到“/mnt/disk”目录,那么所有保存到“/mnt/disk”目录的数据就会被保存到“/dev/sdb2”分区中。
文件系统是一种存储和组织计算机文件及数据的方法,文件系统使得对数据的访问和查找变得容易。文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。
在Windows中有FAT、FAT32、NTFS等文件系统,在Linux中推荐使用的是ext3(第三版Extende File System,扩展文件系统)。目前ext文件系统最新的版本是ext4,但是大多数发行版中还只支持ext3。
Linux操作系统默认可以操作FAT、FAT32两种文件系统,由于一些原因默认情况下不支持NTFS系统。目前对于Linux操作系统中还是推荐使用ext3文件系统。ext3是一种日志文件系统,在对该系统数据进行写操作前,将会把写操作的内容写入一个日志文件中,一旦操作被意外中止,系统将能够在重新启动时根据日志记录完成该写操作。
在Linux的文件系统中,文件是存储信息的基本结构。文件、目录、硬件设备都以文件的形式表现,文件名可以由字符、数据、圆点、下画线组成,长度不能超过256个字符。在Windows中通过圆点区分文件名及扩展名,扩展名对于Windows来说非常重要。在Linux中通过圆点区分文件名及扩展名可以帮助用户区分文件类型,但并没有像Windows那样有实际的约束力(不会影响文件在系统中的执行),用户可以根据自己的需要随意给文件加入自己的扩展名。Linux中的常见的文件可以分为以下4种类型。
(1)普通文件,比如文本文件、图片文件、视频文件、Shell脚本文件。
(2)目录文件,在Windows中目录和文件是两种不同类型的数据,而在Linux中目录被视为文件的一种。
(3)链接文件,类似于Windows中的快捷方式,在查看时文件名后面会通过箭头“→”指向实际的文件,如图 2-28所示。
图2-28 链接文件
(4)特殊文件,Linux中的一些设备,如磁盘、打印机等,都是通过文件在文件系统中表现出来,这类文件就是特殊文件。特殊文件通常存放在“/dev”目录中。
目前大部分的文件系统都是采用流行的树形目录结构来组织文件,这样的结构中会有一个文件系统的根,然后在根下有若干的分杈(目录),在这些目录下还可以有目录或文件。Linux系统也是采用这样的树形目录结构(如图 2-29所示),在有足够权限的情况下用户可以进入任何目录,在目录下建立目录或文件,复制及移动目录或文件。下面是Linux中关于目录的几个概念。
图2-29 目录结构
(1)当前目录(工作目录),当用户登录到Linux系统后,无论做任何操作都会处于某个目录之中,此类目录就被称为当前目录。用户可以使用“cd”命令随时切换当前目录,如果不清楚当前目录可以通过“pwd”命令查看当前目录。
· 查看当前目录。
[root@srv ~]# pwd
/root
· 进入/home目录。
[root@srv ~]# cd /home
· 查看当前目录。
[root@srv ~]# pwd
/home
(2)用户家目录(用户主目录),在Windows中每个用户有一个配置文件目录,如果系统安装在C盘,在Windows Vista之前的系统中该目录在“C:\Documents and Settings”目录下以用户名为名称的目录中;在Windows Vista之后的系统中该目录在“C:\Users” 目录下以用户名为名称的目录中。在Linux中每个用户也有一个家目录,如果是管理员(root用户)其家目录是“/root”;如果是普通用户其家目录在“/home” 下以用户名为名称的目录中。每次用户登录到Linux后,默认的当前目录就是该用户的家目录,如图 2-30所示。
图2-30 用户家目录
(3)路径,从一个目录到另一个目录或文件的道路被称为路径。在Linux中路径一般主要由目录名称组成,目录名称之间使用斜杠“/”分隔。在路径中还有四种特殊的目录名称分别是:“.”表示当前目录;“..”表示当前目录的父级目录;“~”表示当前用户的家目录;“-”表示上一个工作目录。
· 进入/home/charles目录。
[root@srv ~]# cd /home/charles
· 进入当前目录的上一级目录。
[root@srv ~]# cd ..
· 查看当前目录。
[root@srv ~]# pwd
/home
· 进入当前用户的家目录。
[root@srv ~]# cd ~
· 查看当前目录。
[root@srv ~]# pwd
/home/charles
· 返回上一个工作目录。
[root@srv ~]# cd -
· 查看当前目录。
[root@srv ~]# pwd
/home
进入某一个目录或打开某个文件时,可以通过“绝对路径”及“相关对路径”两种方式。绝对路径指的是目标目录或文件从根开始的路径,必须以“/”开头;相对路径指的是目标目录或文件相对于当前目录路径。在如图 2-29所示的目录结构中,假设当前用户是charles;当前目录是“/etc/rc”,现在想进入“/home/charles/mail”目录可以通过以下几种方式。
· 使用绝对路径。
[root@srv ~]# cd /home/charles/mail
· 使用相对路径。
[root@srv ~]# cd ../../home/charles/mail
· 使用特殊路径。
[root@srv ~]# cd ~/mail
在实际应用中使用“绝对路径”还是“相对路径”并没有一个统一的规定,可以根据自己的习惯或者选择一种方便的方式。