在许多操作系统中都有文件的概念,文件是Linux用来存储信息的基本结构,所有的Linux文件都是无结构的字符流,Linux要求文件名的长度要限制在255 个字符以内,与windows不同,Linux有自己独特的文件组织方式,在windows中,目录的组织是以硬盘分区为基本进行构建的,每个磁盘分区都有自己的一套目录的结构,而Linux是以根目录(/)为基础进行组织的,所有的目录均放在根目录下,但是这些目录不一定在同一个磁盘分区下,甚至不是在同一个磁盘上。Linux下其实并没有目录这一概念,所有的目录都被视为文件,文件分为三种,普通文件,目录文件和设备文件,但是为了区分,下文所称目录是指目录文件,而文件是指普通文件,而设备文件暂时不讨论。本文将从三方面介绍Linux下对目录及文件的管理,首先将介绍Linux的目录结构,然后介绍一下Linux下对文件的权限管理,最后再介绍一下对目录和文件操作的相关命令。
一、 Linux下的目录结构
Linux也是采用树型的目录结构,所有的文件和目录都是被放到根目录下的,也就是/目录下,下面对根目录下的各个子目录进行简单的介绍。
/bin 存放系统必备的工具集
/boot 系统启动的必须文件,引导文件及配置文件。
/dev 系统设备文件,
/ect
启动和正常运行
Linux
系统所需的配置文件存放的路径,几乎所有的系统配置信息均存放于此
/home 普通用户的个人信息,每个用户在此目录都有一个与用户名同名的目录,需要经常维护
/initrd 系统启动时目录,一般为空
/lib
存放共享动态链接库文件
/lost+find
/misc 不能归类的文档及资料
/mnt 挂载外设目录
/opt 安装第三方软件的目录
/proc 虚拟文件系统,反应内存中进程的信息,不占用硬盘空间
/sbin 超级用户的工具集
/root 超级用户的home目录
/tmp 临时文件目录,全局可写。权限为1777
/usr 所有用户共用的工具及文件及头文件等,比较大,大部分数据在此目录下,一般除了安装软件之外都是不变的
/var
目录是
Linux
系统存储可变数据的地方。可变数据包括锁文件、日志文件、邮件箱、周边同作数据和快取内存数据。
此外,在
Linux
下,
.
代表当前目录,
..
代表当前上当的上层目录。
二、 Linux下对文件的权限管理
在Linux下,所有的文件和目录都是有主的,都属于一定的用户和组,所谓的权限,都是围绕着文件所有者和群组来说的。可以用ls –l命令来查看文件的属性。假如文件名为mydoc,则用ls –l 查看的结果可能如下:
-rwxrw---- 1 test root 45 Aug 7 03:43 mydoc
其中-rwxrw----、test、root与权限管理有关,首先看一下-rwxrw---,第一个-表示mydoc是一个普通文件,除此之外,还可能为d,b,c,l等,各有不同的含义,表示了文件的不同类型,如目录文件或者链接文件等,后面九个字符分成三组,每三个一组,分别表示文件所有者,所属于的组以及其它人对文件的权限。其中,r表示有读权限,w表示有写权限,x表示有执行权限(在Linux下,并不是依靠文件的扩展名来表示文件是否可以被执行,如在windows下,.exe,.com,.bat表示文件可以被执行),如果为-,说明对此文件没有相应的权限。若有读权限,对应数字4,若有写权限,对应数字为2,若有执行权限,对应数字为1,若没有相应权限,则对应数字0,如-rwxrw----转化成数字形式为760。
相应的,Linux提供了相应的命令来改变相应的权限。与用户权限有关的命令有chown,chgrp和chmod,下面分别给予介绍。chown是改变文件的所有者,命令格式为chown <用户名称> <文件名称>,呵呵,当然你得改变此文件的权限,至少应该是文件所有者或超级用户。chgrp是改变文件所属于的群组,也就改变了相应的权限,命令格式为chgrp <组名称> <文件名>。chmod 是改变相应文件的权限,有两种使用方法,一种方法是采用数字形式(算法上文已有介绍),命令格式为chmod <数字> <文件名>,另外一种方法是用字母法,用u,g,o分别代表所有者,群组和其它人,+表示添加相应权限,-表示去掉相应权限,r,w,x仍然表示读、写和执行权限。比如chmod g+x,o-w mydoc表示组群组加上执行权限,给其它人去掉写权限。关于权限的其它内容,将在别的文件中介绍。
三、 文件相关操作命令
简单总结了一下,对文件或目录的操作,大体分为三类,如有不当,读者可以给予补充。
第一类为基本操作类,命令有mkdir,rmdir,rm,cp,cd,mv等,cd为切换工作目录指令,mkdir为创建目录,rmdir为删除目录,rm为删除文件或目录,其中-r选项可以删除子目录,-f表示强制删除,慎用。cp为文件拷贝命令,mv为文件搬移命令。
第二类命令为文件显示命令。常见的有cat(显示文件或连接两个和多个文件),more(在终端按屏显示文件,注意只能向后翻阅文件),less(与more基本相同,不同之处有在于既可以向后又可以向前翻阅文件),head(显示文件的前几行,可以指定行数),tail(显示文件的最后几行,可以指定几行),od(按照进制显示文件)。
第三类为文件查找与比较命令。grep(查找字符串工具),find(在目录结构中搜索文件并执行指定操作),locate(用于查找文件,速度比find要快,但是要搜索资料库,这个资料库由crontab程序来创建),sort(对文件中的各行进行排序),uniq(文件经过处理后,输出文件可能出现重复的行,可以用uniq命令进行删除),wc(统计指定文件中的字节数、字数、行数并显示统计结果),comm(对有序的文件进行比较),diff(逐行比较两个文字文件,列出其不同之处)。
此外,文件的压缩和打包命令可以归于文件操作命令,限于篇幅原因,将在以后专门进行介绍,关于各个命令的详细选项和使用细则,可以用man和info命令进行学习。也可以从网上搜索各个命令的使用方法。