个性化阅读
专注于IT技术分析

Unix和Linux文件管理和操作详细解读

上一章Unix和Linux教程请查看:Unix/Linux操作系统基本概念和使用

在本章中我们将详细讨论Unix/linux中的文件管理,Unix中的所有数据都组织成文件,并且所有文件都组织到目录中,这些目录被组织成树状结构称为文件系统。

1、Unix/Linux文件管理基本概念

当我们以某种方式使用Unix时,我们的大部分时间花在处理文件上。本教程将帮助你了解如何创建和删除文件,复制和重命名这些文件,以及创建到它们的链接等等,其中Unix中有三种基本类型的文件:

  • 普通文件——普通文件是系统上包含数据、文本或程序指令的文件,在本教程中我们将了解如何使用普通文件。
  • 目录——目录存储特殊文件和普通文件,对于熟悉Windows或Mac OS的用户来说,Unix目录相当于文件夹。
  • 特殊文件——有些特殊文件提供对硬件的访问,如硬盘驱动器、CD-ROM驱动器、调制解调器和以太网适配器。其他特殊文件类似于别名或快捷方式,允许您使用不同的名称访问单个文件。

2、列出所有文件

要列出存储在当前目录中的文件和目录使用以下命令

$ls

下面是上述命令的示例输出:

$ls

bin        hosts  lib     rest
cat       hw1    pub     test_results
copp   hw2    resss  users
docs       hw3    revv  work

命令ls支持-l选项,该选项将帮助你获得有关所列文件的更多信息:

$ls -l
total 1962188

drwx------  2 uname uname   4096 11月 17 15:30 .sunpinyin/
-rwxrwxr-x  1 uname uname   8520  4月 25  2019 temp*
-rw-rw-r--  1 uname uname    126  4月 25  2019 temp.c
-rw-rw-r--  1 uname uname    200  3月  3  2019 Tom.h
drwxrwxr-x  4 uname uname   4096  4月  7  2019 .vim/

以下是关于列出的所有列的信息:

  • 第一列—表示文件类型和对文件的权限,下面是所有类型文件的描述。
  • 第二列—表示文件或目录占用的内存块的数量。
  • 第三列—表示文件的所有者,这是创建该文件的Unix用户。
  • 第四列是所有者的所属组,每个Unix用户都有一个相关联的组。
  • 第5列—表示文件大小(以字节为单位)。
  • 第六列—表示最后一次创建或修改此文件的日期和时间。
  • 第七列—表示文件或目录名。

在ls –l列表示例中每个文件行都以d、-或l开头,这些字符表示所列文件的类型如下。

编号 前缀 & 描述
1 常规文件如ASCII文本文件、二进制可执行文件或硬链接。
2 b 块特殊文件,块输入/输出设备文件,如物理硬盘驱动器。
3 c 字符特殊文件,原始输入/输出设备文件,如物理硬盘驱动器。
4 d 目录文件,其中包含其他文件和目录的列表。
5 l 符号链接文件,链接到任何常规文件。
6 p 命名管道,进程间通信的机制。
7 s 套接字用于进程间通信。

3、元字符匹配

元字符在Unix中有特殊的意义,例如*和?元字符。我们使用*来匹配0个或多个字符,问号(?)与单个字符匹配如:

$ls ch*.c

这显示所有文件,其名称以ch开头以.xml结尾,在这里*作为元字符工作与任何字符匹配。如果希望显示所有以.xml结尾的文件,那么可以使用ls *.xml。

4、隐藏文件

一个不可见或隐藏的文件是:它的第一个字符是点或句点字符(.)。Unix程序(包括shell)使用大部分这些文件来存储配置信息,隐藏文件的一些常见示例包括以下文件:

(1).profile——Bourne shell (sh)初始化脚本

(2).kshrc——Korn shell (ksh)初始化脚本

(3).cshrc – C shell (csh)初始化脚本

(4).rhosts——远程shell配置文件

要列出不可见或隐藏的文件使用ls –a:

$ ls -a

.       cpro              gson-2.5.jar              
..      .dbus             .gvfs                  
.bashrc        .dmrc             hello                   
c              .eclipse          hello.c  

其中单点(.)表示当前目录,双点(..)——表示父目录。

5、创建文件

你可以使用vi或vim编辑器在任何Unix系统上创建普通文件,你只需给出以下命令:

$ vi/vim filename

上面的命令将打开一个具有给定文件名的文件,接着按i键进入编辑模式。一旦进入编辑模式,就可以开始在文件中写入内容。完成内容编辑后请遵循以下步骤:

  • 按下esc键退出编辑模式。
  • 同时按两个键Shift + ZZ将完全从文件中取出。

这样你就可以在当前目录中创建一个filename的文件。

6、编辑文件

我们可以使用vi编辑器编辑现有文件,我们将简要讨论如何打开现有文件:

$ vi filename

文件打开后我们可以通过按下键i进入编辑模式,然后继续编辑文件。如果你想在一个文件中移动到这里和那里,那么首先你需要通过按下Esc键退出编辑模式,在此之后可以使用以下键移动文件内部:

  • l键移动到右边。
  • h键移动到左边。
  • k键在文件中向上移动。
  • j键移动文件下行。

使用上面的键你可以将光标定位到你想要编辑的任何位置,定位好之后就可以使用i键进入编辑模式。完成文件中的编辑之后,按下Esc以及最后两个键Shift + ZZ一起从文件中完全退出来。

7、显示文件的内容

可以使用cat命令查看文件的内容,下面是一个简单的示例,用于查看上面创建的文件的内容:

$ cat filename
content...
$

可以使用cat命令的-b选项显示行号如:

$ cat -b filename
1   content...
$

8、计算文件字数

可以使用wc命令获得文件中包含的行、单词和字符的总数。下面是一个简单的示例,用于查看关于上面创建的文件的字数信息:

$ wc filename
2  19 103 filename
$

下面是所有四列的详细信息:

  • 第一列—表示文件中的总行数。
  • 第二列—表示文件中的总字数。
  • 第三列—表示文件中的总字节数,这是文件的实际大小。
  • 第四列—表示文件名。

你可以提供多个文件并一次获取关于这些文件的信息,下面是简单的语法

$ wc filename1 filename2 filename3

9、复制文件

使用cp命令复制文件,命令的基本语法是:

$ cp source_file destination_file

将source_file文件复制到destination_file文件,这样你可以在当前目录中找到另一个文件destination_file(如果没有指定其它路径),此文件与原始文件文件名完全相同。

10、重命名文件

要更改文件的名称请使用mv命令,以下是基本的语法:

$ mv old_file new_file

下面的程序将把现有的文件文件名重命名为newfile。

$ mv filename newfile
$

mv命令将把现有文件完全移动到新文件中,在这种情况下我们只能在当前目录中找到newfile。

11、删除文件

删除现有文件使用rm命令,以下是基本的语法:

$ rm filename

注意一个文件可能包含有用的信息,建议在使用此删除命令时要小心。使用rm命令最好是配合使用-i选项,下面的示例演示如何完全删除现有的文件文件名。

$ rm filename
$

你可以使用下面给出的命令一次删除多个文件:

$ rm filename1 filename2 filename3
$

12、Unix标准流

在正常情况下每个Unix程序在启动时都会打开三个流(文件):

  • stdout——这称为标准输入,相关的文件描述符为0,这也表示为STDIN,Unix程序将从STDIN读取默认输入。
  • stdout——这称为标准输出,相关的文件描述符为1,这也表示为STDOUT,Unix程序将在标准输出时写入默认输出。
  • stderr——这称为标准错误,相关的文件描述符为2,这也表示为STDERR,nix程序将在STDERR中写入所有的错误消息。
赞(0) 打赏
未经允许不得转载:srcmini » Unix和Linux文件管理和操作详细解读
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏