在本章中,我们将详细讨论Unix中的文件管理. Unix中的所有数据都组织成文件.所有文件都组织到目录中.这些目录被组织成一个称为文件系统的树状结构.
当您使用Unix时,无论如何,您都会花费大部分时间处理文件.本教程将帮助您了解如何创建和删除文件,复制和重命名文件,创建链接等等.
在Unix中,有三种基本类型的文件和减号;
普通文件 : 普通文件是系统上包含数据,文本或程序指令的文件.在本教程中,您将看一下使用普通文件.
目录 : 目录存储特殊文件和普通文件.对于熟悉Windows或Mac OS的用户,Unix目录等同于文件夹.
特殊文件 : 某些特殊文件可以访问硬件,如硬盘驱动器,CD-ROM驱动器,调制解调器和以太网适配器.其他特殊文件类似于别名或快捷方式,使您可以使用不同的名称访问单个文件.
要列出存储在当前目录中的文件和目录,请使用以下命令 :
$ ls
以下是上述命令的示例输出 :
$ls bin hosts lib res.03 ch07 hw1 pub test_results ch07.bak hw2 res.01 users docs hw3 res.02 work
命令 ls 支持 -l 选项,它可以帮助您获取有关所列文件的更多信息 :
$ls -l total 1962188 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01 -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3 $
以下是所有列出的列的信息 :
第一栏 : 表示文件类型和文件上给出的权限.以下是所有类型文件的说明.
第二栏 : 表示文件或目录占用的内存块数.
第三列 : 表示文件的所有者.这是创建此文件的Unix用户.
第四列 : 表示所有者的组.每个Unix用户都有一个关联组.
第五栏 : 表示文件大小(以字节为单位).
第六列 : 表示上次创建或修改此文件的日期和时间.
第七列 : 表示文件或目录名.
在 ls -l 列表示例中,每个文件行开始使用 d , - 或 l .这些字符表示列出的文件的类型.
Sr.No. | 前缀&描述 |
---|---|
1 | - 常规文件,例如ASCII文本文件,二进制可执行文件或硬链接. |
2 | b 阻止特殊文件.阻止输入/输出设备文件,例如物理硬盘驱动器. |
3 | c 字符特殊文件.原始输入/输出设备文件,例如物理硬盘驱动器. |
4 | d 包含其他文件列表的目录文件目录. |
5 | l 符号链接文件.任何常规文件的链接. |
6 | p 命名管道.进程间通信的机制. |
7 | s 用于进程间通信的套接字. |
元字符在Unix中具有特殊含义.例如, * 和?是元字符.我们使用 * 匹配0个或多个字符,问号(?)与单个字符匹配.
例如&减号;
$ls ch*.doc
显示所有文件,其名称以 ch 开头,以 .doc结尾 :
ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc c
此处, * 作为与任何字符匹配的元字符.如果要显示所有以 .doc 结尾的文件,则可以使用以下命令 :
$ls *.doc
一个不可见的文件是一个,其中第一个字符是点或句点字符(.). Unix程序(包括shell)使用大多数这些文件来存储配置信息.
隐藏文件的一些常见示例包括文件 :
.profile : Bourne shell(sh)初始化脚本
.kshrc : Korn shell(ksh)初始化脚本
.cshrc : C shell(csh)初始化脚本
.rhosts : 远程shell配置文件
要列出不可见文件,请指定 -a 选项 ls :
$ ls -a . .profile docs lib test_results .. .rhosts hosts pub users .emacs bin hw1 res.01 work .exrc ch07 hw2 res.02 .kshrc ch07.bak hw3 res.03 $
单点(.) : 这代表当前目录.
双点(..) : 这表示父目录.
您可以使用 vi 编辑器在任何Unix系统上创建普通文件.你只需要给出以下命令 :
$ vi filename
上面的命令将打开一个具有给定文件名的文件.现在,按 i 键进入编辑模式.一旦进入编辑模式,就可以开始在文件中编写内容,如下面的程序 :
这是unix文件. ...我是第一次创建它..... 我要将此内容保存在此文件中.
完成程序后,请执行以下步骤 :
按 esc 键退出编辑模式.
按两个键 Shift+ ZZ 一起完全退出文件.
现在您将使用 filename
$ vi filename $
您可以使用 vi 编辑器编辑现有文件.我们将简要讨论如何打开现有文件 :
$ vi filename $
打开文件后,您可以按 i 键进入编辑模式,然后您可以继续编辑文件.如果你想在文件中移动到那里,那么首先你需要通过按 Esc 键退出编辑模式.在此之后,您可以使用以下键在文件内移动&减去;
l 移动到右侧的关键.
h 键移动到左侧.
k 键在文件中向上移动.
j 键移动文件中的下行.
因此,使用上述键,您可以将光标定位在您想要编辑的位置.定位后,您可以使用 i 键进入编辑模式.完成文件中的编辑后,按 Esc ,最后按两个键 Shift+ ZZ 一起完全退出文件.
你可以使用 cat 命令查看文件的内容.下面是一个简单的例子,可以看到上面创建的文件的内容 :
$ cat filename This is unix file....I created it for the first time..... I'm going to save this content in this file. $
您可以使用 -b 选项以及 cat
$ cat -b filename 1 This is unix file....I created it for the first time..... 2 I'm going to save this content in this file. $
您可以使用 wc 命令获取文件中包含的行,单词和字符总数的计数.下面是一个简单的例子,可以看到有关上面和下面创建的文件的信息;
$ wc filename 2 19 103 filename $
以下是所有四列的详细信息 :
第一栏 : 表示文件中的总行数.
第二列 : 表示文件中的总字数.
第三列 : 表示文件中的总字节数.这是文件的实际大小.
第四栏 : 表示文件名.
您可以一次提供多个文件并获取有关这些文件的信息.以下是简单的语法 :
$ wc filename1 filename2 filename3
要制作文件的副本,请使用 cp 命令.该命令的基本语法是 :
$ cp source_file destination_file
以下是创建现有文件文件名的副本的示例.
$ cp filename copyfile $
现在,您将在当前目录中找到另一个文件 copyfile .此文件与原始文件文件名完全相同.
更改名称文件,使用 mv 命令.以下是基本语法 :
$ mv old_file new_file
以下程序将现有文件 filename 重命名为 newfile .
$ mv filename newfile $
mv 命令将现有文件完全移动到新文件中.在这种情况下,您只能在当前目录中找到 newfile .
删除现有文件,使用 rm 命令.以下是基本语法 :
$ rm filename
小心 : 文件可能包含有用的信息.使用此删除命令时,始终建议您务必小心.最好使用 -i 选项以及 rm 命令.
以下示例说明如何完全删除现有文件文件名.
$ rm filename $
您可以使用下面给出的命令一次删除多个文件 :
$ rm filename1 filename2 filename3 $
在正常情况下,每个Unix程序都打开了三个流(文件)当它开始和减去时;
stdin : 这被称为标准输入,相关的文件描述符为0.这也表示为STDIN. Unix程序将读取STDIN的默认输入.
stdout : 这称为标准输出,相关的文件描述符为1.这也表示为STDOUT. Unix程序将在STDOUT中写入默认输出
stderr : 这称为标准错误,相关的文件描述符为2.这也表示为STDERR. Unix程序将在STDERR上写下所有错误消息.