文件系统

2017-12-20  本文已影响0人  li_li_li_1202

在Linux操作系统中,文件的概念包括文件的组织和管理、操作系统中文件的表示,以及文件存储的过程等。

一、文件系统结构

Linux文件系统的结构层次鲜明,就像一棵倒立的树。文件系统结构从一个主目录开始,称为根目录。根目录下可以有任意多个文件和子目录,并且可以按任意的方式组织在一起。


典型的Linux文件结构.png

二、基本操作

熟悉了文件的系统结构,下面将详细介绍一下在Linux系统中文件目录的表示方法以及一些基本的操作命令。

1、文件或目录的表示方法

Linux下的文件或者目录通过路径来表示,路径有两种表示方式:

2、命令

下面介绍Linux下目录操作和文件操作命令的使用,包括目录创建、删除和查看,以及文件的查看、复制、删除和比较等。这些操作都是文件的基本操作,掌握它们有助于快速管理文件系统。

2.1 查看当前所在目录的绝对路径 pwd

使用pwd命令可以确定当前所在目录的绝对路径

  xuqing@master: ~ $ pwd

执行此命令的输出结果为"/home/xuqing",这也是当前用户的主目录。

2.2 创建新目录 mkdir

用mkdir命令创建一个新目录,注意是新建目录而不是文档,其语法格式如下:
mkdir [选项] <目录名>

2.2.1 创建文件
2.3 改变目录 cd

cd命令用于改变目录,其语法格式如下:
cd [目录名]

2.4 列目录内容 ls

ls命令的语法格式如下:
ls [选项] [目录或文件]

2.5 列目录内容 ll

ll命令能以长格式的方式显示所有文件。

2.5.1 查看文件完整内容 cat

cat命令用于查看完整的文件内容,注意cat命令是针对的文档,这个要跟目录区分开来,其语法格式如下:
cat [option] <file>

2.5.2 查看多于一页的文件内容 more 或 less

命令more或less来分页显示文件,其中more的语法格式如下:
more [option] <file>

2.5.3 head命令

head命令用于查看文件头部内容,其语法格式如下:
head [option] <file>

2.5.4 tail命令

tail命令用于查看文件尾部的内容,用法跟head类似,其语法格式如下:
tail [option] <file>

2.6 查看文件大小 du

du命令可以查看文件或者目录的大小,其语法格式如下:
du [option] <file>

2.6.1 查看磁盘大小 df
2.7 文件复制 cp

cp命令是复制命令,其语法格式如下:
cp [option] <file1> <file2>

2.8 文件移动或重命名 mv

mv命令可以实现转移文件和重命名文件,其语法格式如下:
mv [option] <file1> <file2>

2.9 文件删除 rm

删除文件的命令是rm,其语法格式如下:
rm [option] <file>

2.10 比较文件 diff

Linux中,diff命令用来比较两个文件的内容,通过把其中一个文件转换成另一个文件的命令形式来显示这两个文件之间的区别,其语法格式如下:
diff [option] [file1] [file2]

2.11 删除重复行 uniq

用命令uniq删除文件中所有连续的重复行(连续出现才被称为重复行,不连续行出现不被认为是重复行),只留下一行。该命令不改变文件的内容,只是把结果输出到屏幕或者文件中,其语法格式如下:
uniq [option] [input-file] [output-file]

3、访问权限

所谓文件安全,也就是常说的文件保护。文件保护分为基于密码的文件保护、基于文本加密的文件保护和基于访问权限的文件保护。我们主要讨论基于访问权限的文件保护。

3.1 访问权限的分类和用户类别

在Linux中每一个文件或目录都包含有访问权限。

3.2 访问权限设置

在Linux中,可以使用命令chmod来改变文件或目录的访问权限,其语法格式如下:
chmod [option] [mode] <file>

mode,是权限标记,可以有符号标记和八进制数两种格式。由[who][operator][permission]三部分组成。
(1) 符号标记法修改权限
[who]

  chmod o-rwx abn
  chmod g=r abn
  chmod -R a-w test

(2) 八进制数法修改权限
使用八进制数法修改权限
chmod命令中的mode用三个八进制abc表示,其中:

4、高级处理

下面将介绍一些高级的文件处理操作,包括正则表达式、文件查找、文件压缩与解压、文件备份与还原等。

4.1 正则表达式

正则表达式,又称规则表达式(Regular Expression)。在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。正则表达式的部分操作符及其含义

4.2 文件内容的查找

搜索文件内容的命令有grep、egrep和fgrep。三个命令中,fgrep命令是执行速度最快的,不过有较多的限制;egrep是最慢的,但却是最灵活的,完全支持正则表达式;grep具有合理的速度和部分正则表达式支持。

4.2.1 grep、egrep、fgrep命令

三种命令的语法格式如下:
grep [option] [mode] [file]
egrep [option] [mode] [file] 等价于grep -E
fgrep [option] [mode] [file]等价于grep -F

4.2.2 关于引号的使用

三者是等价的。

两者是等价的。

第一条:查找abn文件中含有$hello字符串的行;
第二和第三条:查找abn文件中包含变量hello所代表的内容行;

4.2.3 应用实例

使用grep命令将stdio.h文件中包含字符串“include”的行都显示出来;
使用grep命令查找以字符串“#ifndef”开头的行;
使用grep命令搜索/usr/include目录下以.h为扩展名的文件且包含stdio.h的行;

grep -n 'include' stdio.h
grep '^#ifndef' /usr/include/stdio.h
grep 'stdio.h' /usr/include/*.h

5、文件查找

在Linux中,用find命令查找文件,其语法格式:
find [file] [option] [pathname]

  find -name stdio.h /usr/include

6、文件排序

排序是指按照一定的标准对集合里的元素指定顺序。Linux中的文件内容排序使用sort命令,其语法格式如下:
sort [option] [file]

7、文件压缩与解压缩

在Linux中,利用gzip命令的来压缩和解压文件,其语法格式如下:
gzip [option] [file]

8、文件备份和还原

在Linux操作系统中,利用tar命令可以将一个目录压缩成一个普通的文件(称为档案文件),需要还原时,可以再次使用tar命令从档案中释放文件。
tar命令的语法格式如下:
tar [option] [file]

注意:-f后面必须要紧跟要使用的文件夹名;-xz表示还原解压。

9、文件补丁的制作

在开发过程中,当程序发布以后,难免要对源代码进行修改升级。在Linux上可以很方便地制作源码补丁,然后将补丁发给用户,由用户进行打补丁和重新编译程序,从而实现程序的升级。
制作补丁文件可以使用diff命令;打补丁可以使用另一个命令patch。

9.1 补丁制作

diff命令可以完成比较功能,生成补丁文件。其语法格式如下:
diff [option] <oldfile> <newfile> > <patchfile>

9.2 打补丁

打补丁时使用patch命令,该命令就是利用diff制作的补丁文件实现源文件和目标文件的转换。patch命令的语法格式如下:
patch [option] [源文件 [补丁文件]]
使用-u选项制作补丁后,补丁文件中含有旧文件和新文件的信息,因此可以使用如下格式:
patch [option] < [补丁文件]
此格式要求运行patch所在的目录跟diff生成补丁时的目录一致。

附:


1、which command
在环境变量PATH的范围内查找命令command,显示命令的路径或alias。
2、whereis command
在标准路径中查找一个命令的二进制码、源码及联机手册所在的位置。



上一篇 下一篇

猜你喜欢

热点阅读