当前位置

10.1 文件基础

主标签

使用Linux系统的过程中,需要经常对文件和目录进行操作,而数据和程序大多以文件的形式保存。本节主要介绍文件与目录的基本概念以及文件和目录操作的命令。

10.1.1文件与目录的基本概念

1.文件与文件名

在多数操作系统中都有文件的概念。文件是Linux用来存储信息的基本解构,它是被命名(称为文件名)的存储在某种介质(如磁盘、光盘和磁带 等)上的一组信息的集合。Linux中的文件均为无无结构的字符流形式。文件名是文件的标识,DOS时代的文件名限制在了8.3,即文件名的长度最多只能有8个字符,而扩展名最多只能有3个字符;到了windows95时代文件名的支持到了128位;而Linux支持最多256个字符。Linux中没有扩展名的概念,只要您原意,你完全可以创建类似“...”、“libacl.so.1.0.4”这样的目录与文件,但是扩展名对于Linux中的文件分类也是十分有用的。我们应当选择有意义的文件名与扩展名。用户可能对某些大众已接纳的标准扩展名比较熟悉,例如:C语言编写的源代码文件总是具有C的扩展名。用户可以根据自己的需要,随意加入自己的文件扩展名。

Linux中也有一些特殊字符,如:!@^ 在Linux下也有一些特殊的文件它们以“.”开头,这些属于隐藏文件,我们用ls -a命令可以看见它们。

2.绝对路径和相对路径

在Linux下绝对路径是指从目录树的根/一直到文件所在目录的完整路径。如:/home/epaul/test.txt是一个绝对路径。相对路径指目标文件相对于当前目录的位置。如当前目录为/home/epaul,用相对路径表示/etc/group文件为../../etc/group。

在Linux中“.”、“..”分别代表当前目录和上级目录。而“~”可以代表家目录(/home/$USER)。

举几个例子:

当前目录为/home/epaul/work,/home/epaul/目录下有另外的music目录,我们切换当前目录到/etc/epaul/music以下几种方法是等价的:

$cd ../music/            相对路径表示法
$cd /home/epaul/music/   绝对路径表示法
$cd ~/music/             用~代表家目录表示法

3.文件类型

在Linux下文件分为普通文件、目录文件、连接文件、和设备文件。
[list=1]
[*]普通文件是我们接触最多的,普通文件又分为:字符文件、C语言源文件,mp3文件、脚本文件等等。我们可以通过file *命令查看当前目录下文件的类型。
[*]目录也是一种文件,不同于普通文件的是,目录中记录是是一些文件和目录的名字地址。也就是说我们通常修改一个文件的名称其实只是修改目录文件中的一条记录。
[*]连接文件是Linux下的一种特殊文件,类似于windows下的快捷方式,而连接的功能要强大的多。连接本身不包括内容,他指向别的文件和目录。
[*]Linux下的所有设备都用文件来标识,这是Linux一个重要的特点与优点。设备文件存放于/dev目录下,设备文件根据其读取方式的差别又分为块设备和字符设备。块设备的存取是以块为最小单位的,块的读取可以随即进行,块的大小可以在格式化的时候定义;而字符设备则是按顺序一个一个地传递字符。常见的块设备有硬盘如:/dev/hda1,字符设备有终端等。Linux中还有一个特殊的设备文件:/dev/null,它并不是一个真正的设备,当我们传递数据给它时,会将这些数据清除。
[/list]

4.文件权限

Linux系统中的每个文件和目录都有访问许可权限,每个权限分为只读、只写、可执行三种。以文件为例,只读权限标识只允许读取其中内容而禁止修改于执行,只写代表只允许写入内容而无读取权限,可执行权限表示允许将该文件作为一个程序执行。通常我们遇到的会是三种权限的组合,如拥有只读、只写组成读写权限。

文件权限又分为三种不同的类型:文件所有者,同组用户,其它用户。所有者一般是文件的创建者。用ls -l命令会得到当前目录下文件的详细信息,包括文件权限。如:

 
 [paulin@epaul work]$ ls -l
  total 8
  -rwxrw-r-x    1 paulin   paul            0 12月 26 20:43 test.bin
  drwxr-xr-x    2 paulin   paul         4096 12月 26 20:42 testdir
  -rw-r--r--    1 paulin   paul         3052 12月 26 20:41 test.txt

左边一列是文件权限,共分为四个部分,第一个部分是第一个字符,代表文件类型,第二、三、四部分都为三个字符。

如上例种的test.bin的权限:

-rwxr-xr-x 可分为:- rwx rw- r-x
[list]
[*]- 代表文件类型为普通文件。
[*]rwx 代表文件所有者的权限为可读可写可执行。
[*]rw- 代表同组用户权限为可读可写但不可执行。
[*]r-w 代表其它用户权限为可读可执行但不可写。
[/list]

10.1.2操作文件的命令

1.新建文件与目录

touch命令可以用来新建文件,其用法为:“touch 文件名”。

mkdir命令可以新建目录,其用法为:“mkdir 目录名”。如:

[paulin@epaul paulin]$ mkdir sampdir

2.cat命令与操作文件

1)cat命令最基本的用法为用法为:“cat 文件名”用来查看文件的内容。

cat命令还可以通过管道符联合more程序来查看一屏无法显示完成的文件,如cat filename.txt | more 。

2)cat重定向,cat与>符号一起使用(如cat > filename.txt)可以重定向标准输出到文件。输入此命令后按回车键([ENTER])转到一个空行,可以连续输入多行,输入完成后按CTRL+D组合键退出cat,这个时候刚刚输入就将重定向到filename.txt。cat与重定向符号>的组合也可以这样来用,如:cat filename.txt > file2.txt,这时输出将被重定向到file2.txt。

3.文件查看

除了cat命令外其它的文件查看命令还有more、less、head、tail等。

当用cat查看较长的文件时候可能一屏看不完,这个时候我们可以用more或者less来代替cat,more可以通过空格键转到下一屏,而less种用p。more和less命令都可以用q来退出。head和tail命令分别用来查看文件的头部和尾部。

4.修改文件权限

一个文件的访问权限可以通过chmod命令来设定。chown命令用来更改某个文件或目录的所有者。chgrp命令用来更改某个文件或目录的用户组。

评论

在这里,我看好多写的都与第五章内容相同了,应该放在哪好点?