文章目录

  • 一、Linux文件与目录概要
    • 1.目录树
    • 2.命名规范
    • 3.目录配置标准——FHS
    • 4.文件类型
  • 二、使用命令行进行目录操作
    • 1.创建目录
    • 2.删除目录
    • 3.改变工作目录
    • 4.显示目录内容
  • 三、使用命令行进行文件操作
    • 1.文件内容显示
    • 2.文件内容查找
    • 3.文件内容比较
    • 4.文件内容排序
    • 5.文件内容统计
    • 6.文件查找
    • 7.文件(目录)复制、删除和移动
    • 8.链接文件创建
    • 9.文件压缩与解压缩

一、Linux文件与目录概要

1.目录树

根目录“/”注意几个特殊的目录:“.”表示当前目录,也可以便用“./”来表示。“…”表示上一层目录,也可以用“…/”来表示。“~”表示当前用户的主目录。

Windows系统中每个磁盘分区都有一个独立的根目录,有几个分区就有几个目录树,它们之间的关系是并列的,各分区采用盘符(如C、D、E)进行区分和标识,通过相应的盘符访问分区。每个分区的根目录用反斜杠()表示。

Linux操作系统使用单一的目录树结构, 整个系统只有一个根目录,各个分区被挂载到目录树的某个目录中,通过访问挂载点目录,即可实现对这些分区的访问。

2.命名规范

可以包含空格等特殊字符,但必须使用引号
不可以包含“/”字符
还应避免特殊符:*?><;&![ ] ’ " ` (){}。

3.目录配置标准——FHS

FHS规范在根目录(/)下面各个主要目录应该放什么样的文件。FHS定义了两层规范。第1层是根目录下面的各个目来应这放什么文件,第2层则针对/usr及/var两个目录子目录来定义,列如/var/log放置系统登录文件,/usr/share放置共享数据。

linux系统安装时就已创建了完整而固定的目录结构,并指定了目录的作用和存放的文件类型。常见的系统目录简介如下:

/bin:存放用于系统管理维护的常用实用命令文件。
/boot:存放用于系统启动的内核文件和引导装载程序文件。
/dev:存放设备文件。
/etc:存放系统配置文件,如网络配置、设备配置、X Window系统配置等。
/home: 各个用户的主目录,其中的子目录名称即为各用户名。
/lib:存放动态连接共享库(其作用类似于Windows里的.dll文件)。
/media:为光盘、软盘等设备提供的默认挂载点。
/mnt: 为某些设备提供的默认挂载点。
/root: root 用户主目录。不要将其与根目录混淆。
/proc系统自动产生的映时。查看该目录中的文件可获取有关系统硬件运行的信息。
/sbin: 存放系统管理员或者root用户使用的命令文件。
/usr: 存放应用程序和文件。
/var: 保存经常变化的内容,如系统日志、打印。

4.文件类型

使用ls -l命令以长格式列目录时,每行第1个字符代表文件类型。其中-表示普通文件,d表示目录文件,c表示字符设备文件,b表示块设备文件,l表示符号链接文件。

1.普通文件
也称为常规文件,内核对这些文件没有进行结构化,只是作为有序的字符序列把它提交给应用程序,由应用程序自己组织和解释这些数据。

2.目录文件
利用它可以构成文件系统的分层树形结构。目录文件也包括数据,但与普通文件不同的是内核对这些数据加以结构化,即它是由成对的“索引节点号/文件名”构成的列表。
将文件添加到一一个目录中时,该目录的大小会增大,以便容纳新文件名。当删除文件时,目录的尺寸并未减少,内核对该目录项做上特殊标记,以便下次添加一个文件时重新使用它。

3.设备文件
除了存放在文件索引节点中的信息外,它们不包含任何数据,系统利用它们来标识各个设备驱动器,内核使用它们与硬件设备通信。设备文件又可分为两种类型:字符设备文件和块设备文件。
Linux将设备文件置于/dev目录下,系统中的每个设备在该目录下有一个对应的设备文件,并有一些命名约定。例如串口COMI1的文件名为/dev/ttyS0, /dev/sda5对应第一个SCSI硬盘(或SATA硬盘)第5个逻辑分区,光驱表示为/dev/cdrom,软驱表示为/dev/fd0。Linux 还提供伪设备( 实际没有的)文件,如/dev/null、/dev/zero。

4.链接文件
存放的数据是文件系统中通向文件的路径。链接文件有两种,分别是符号链接(Symbolic Link )和硬链接(Hard Link)。
符号链接文件类似于Windows系统中的快捷方式,其内容是指向质文件的路径。原文件删除后,符号链接就失效了,删除符号链接文件并不影响原文件。
硬链接是对原文件建立的别名。建立硬链接文件后,即使删除原文件,硬链接也会保留原文件的所有信息。因为实质上原文件和硬链接是同一个文件,二者使用同一个索引节点,无法区分原文件和硬链接。

二、使用命令行进行目录操作

1.创建目录

如果在目录命名前没有加任何路径就在该录下创建;如果给出了一个存在的路径,将会在指定的路径下创建。语法格式如下:

mkdir 选项 目录名

使用以下命令在自己主目录之外的位置创建一个目录。

zxpCLinuxPC1:~$ sudo mkdir /usr/testl
[sudo] password for zxp:

在自己的主目录中创建目录,则不必用sudo命令。
另外-p表示要建立的目录的父目录尚未建立,将同时创建父目录。

2.删除目录

使用rmdir命令从目录中删除一个或多个空的子目录:

rmdir 选项 目录名

选项-p表示递归删除目录,当子目录被删除后父目录为空时,也同被删除。如果是非空目录,则保留下来。

3.改变工作目录

cd命令用来改变工作目录。当不带任何参数时,返回到用户的主目录。cd 目录名
pwd命令用于显示当前工作目录的绝对路径,没有任何选项或参数,语法格式如下:pwd

4.显示目录内容

Is命令列出指定目录的内容:ls 选项 目录或文件
默认情况下输出条目按字母顺序排列。如果没有给出参数,则将显示当前目录下所有子目录和文件的信息。其选项及其含义如下:

-a:显示所有的文件,包括以“.”开头的文件。
-c:按文件修改时间排序。
-i: 在输出的第1列显示文件的索引节点号。
-l:以长格式显示文件的详细信息。输出的信息分成多列,依次是文件类型与权限、链接数、 文件所有者、所属组、文件大小、建立或最近修改的时间、文件名。
-r:按逆序显示ls命令的输出结果。
-R:递归地显示指定目录的各个子目录中的文件。

至于目录的复制,删除和移动的用法请参见后面的命令行文件操作。

三、使用命令行进行文件操作

1.文件内容显示

cat命令连接文件并打印到标准输出设备上,常用来显示文件内容。语法格式如下:

cat 选项 文件名1 文件名2

该命令有两项功能。一是用来显示文件的内容。它依次读取由参数文件1所指明的文件将它们的内容输出到标准输出上。二是用来连接两个或多个文件,如cat fl f2>f3,将文件f1和f2的内容合并起来,然后通过输出重定向符>将它们的内容存入文件f3中。

less命令也用来分页显示文件内容,但功能比more更强大,其语法格式如下:less 选项 文件名
less的功能比more更灵活。例如,用<Pgup>、<Pgdn>键可以向前向后移动一页,用上下光标键可以前后移动一行。

2.文件内容查找

grep命令用来查看指定的文件中是否包含这些关键词。如果没有指定文件,它们就从标准输入中读取。在正常情况下,每个匹配的行被显示到标准输出上。如果要搜索的文件不止一个,则在每一行输出之前加上文件名。
可以使用选项对匹配方式进行控制,如选项-i表示忽略大小写,-x强制整行匹配,-w强
制关键字完全匹配,-e用于定义正则表达式。下面给出一个例子:

zxp@LinuxPC1:~$ grep -i 'home' /etc/passwd
syslog:x:100:103: : /home/syslog:/bin/ false
saned:x:108:116: : /home/ saned:/bin/false
zxp:x:1000:1000:zxp.,, :/home/ zxp:/bin/bash
zhang:x:1001:1001:zhang.,, :/home/ zhang: /bin/bash
laozi:x:1002:1002:laozi.. :/home/laozi: /bin/bash
test:x:1003:1003:test,,, :/home/test:/bin/bash
wang:x:1004:1004: :/home/wang:
lisi:x:1005:1005:.11 :/home/lisi:/bin/bash

还可以使用选项对查找结果输出进行控制,如选项-m定义多少次匹配后停止搜索,-n指定输出的同时打印行号,-H为每一匹配项打印文件名,-r在指定目录中进行递归查询。

3.文件内容比较

(1)comm命令对两个已经排好序的文件进行逐行比较,只显示它们共有的行。语法格式如下:

comm -123 文件1 文件2

选项-1表示不显示仅在文件1中存在的行,选项-2表示不显示仅在文件2中存在的行,选项-3表示不显示在comm命令输出中的第1列、第2列和第3列。
(2) diff命令逐行比较两个文件,列出它们的不同之处,并且提示为使两个文件一致需要修改哪些行。如果两个文件完全一样, 则该命令不显示任何输出。语法格式如下:

diff 选项 文件1 文件2

4.文件内容排序

sort命令用于对文本文件的各行进行排序。语法格式如下:

sort 选项 文件名列表

sort命令将逐行对指定文件中的所有行进行排序,并将结果显示在标准输出上。如果不指定文件名或者使用“-”表示文件,则排序内容来自标准输入。

5.文件内容统计

wc命令用于统计出指定文件的字节数、字数、行数,并输出结果。语法格式如下:

wc 选项 文件名列表

如果没有给出文件名,则从标准输入读取数据。如果多个文件一起进行统计,则最后给
出所有指定文件的总统计数。
wc命令输出列的顺序和数目不受选项顺序和数目的影响,输出格式如下:

行数 字数 字节数 文件名

选项-c表示统计字节数,-l表示统计行数,-w 表示统计字数。

6.文件查找

find命令用于在目录结构中搜索满足查询条件的文件并执行指定操作。语法格式如:

find 路径... 匹配表达式

find命令从左向右分析各个参数,然后依次搜索目录。find将在“_”“(”“)”或者“!”前面的字符串视为待搜索的文件,在这些符号后面的字符串为参数选项。如果没有设置路径,那么find搜索当前目录;如果没有设置参数选项,那么find默认提供-print选项,即将匹配的文件输出到标准输出。

复杂的匹配表达式由下列成分组成:操作符、选项、测试表达式以及动作:

  • 选项-depth可以使find命令先匹配所有的文件,再在子目录中查找,-regextype用于选择要使用的正则表达式类型,-follow表示遇到符号链按文件就跟踪至全链接所指向的文件。
  • 测试表达式针对具体的一个文件进行匹配测试,返回true(真)或者 false (假)。例如,选项-name表示按照文件名查找文件,-user 表示按照文件所有者来查找文件,-type 指定查找某一类型的文件(b指块设备文件,d为目录,c为字符设备文件,l 为符号链接文件,f为普通文件)。
  • 动作则是对某文件进行某种动作, 返回true或者false。最常见的动作就是打印到屏幕( -print )。
  • 上述3部分又可以通过操作符(组合在一起形成更大更复杂的表达式。操作符按优先级排序,包括:括号“()”、 “非”运算符(!或-not)、 “与”运算符(-a或-and)、“或”运算符(-o或-or)、并列符号逗号(,)。未指定操作符时默认使用-and。

例如,查找当前目录下(波浪号~代表了用户的主日录$HOME )文件名后缀为txt的文件可执行以下命令:

zxp@LinuxPC1:~$ find ~ -name "*.txt" -print
/home/ zxp/ vmware-tools-distrib/doc/open source licenses. txt
/home/ zxp/ . config/libreoffice/4/user/uno_ packages/cache/1og.txt

find使用动作-exec可以对查找到的文件调用外部命令进行处理,注意语法格式比较特殊,外部命令之后需要“{} ;” 结尾,必须由一个“;” 结束,通常Shell都会对“;”进行处理,所以用“;”防止这种情况。注意后一个花括号“}” 和“/”之间有一个空格。

find 路径 匹配表达式 -exec 外部命令 {} \;

在下面的例子中使用grep命令。find 命令首先匹配所有文件名为“passwd*" 的文件,例如passwd, passwd.old, passwd.bak,然后执行grep命令看看在这些文件中是否存在一个名为“wang” 的用户。

zxp@LinuxPC1:~$ sudo find /etc -name "passwd*" -exec grep "wang" {} \;
wang:x:1004:1004::/home/wang:

7.文件(目录)复制、删除和移动

(1) cp命令将源文件或目录复制到目标文件或目录中。语法格式如下:

cp 选项 源文件或目录 目标文件或目录

如果参数中指定了两个以上的文件或目录,且最后一个是目录,则cp命令视最后一个为目的目录,将前面指定的的文件和目录复制到该目录下,如果最后不是已存在的目录,cp命令将给出错误信息。
(2)rm命令可以删除一个目录中的一个或多个文件和目录,也可以将某个目录及其下属的所有文件和子目录删除。该命令对于链接文件,只是删除整个链接文件,而原有文件保持不变。语法格式如下:

rm 选项 文件列表

(3) mv命令用来移动文件或目录,还可在移动的同时修改文件或目录名。语法格式如下:

mv 选项 源文件或目录 目标文件或目录

选项-i表示交互模式,当移动的目录已存在同名的目标文件时,用覆盖方式写文件,在写入之前给出提示。

选项-f在目标文件已存在时,不给出任何提示。

8.链接文件创建

建立符号链核文件的语法格式如下:

ln -s 目标(原文件或目录)  链接文件

建立硬链接文件的语法格式如下:

ln 目标(原文件) 链接文件

9.文件压缩与解压缩

(1)gzip命令用于对文件进行压缩和解压缩。 它用Lempel-Ziv 编码减少命名文件的大小,压缩的文件扩展名是.gz。

gzip 选项 压缩文件名/解压缩文件名

(2) unzip 命令用对win格式的压编文件进行解压缩

unzip 选项 压缩文件名

(3) tar命令用于对文件和目录进行打包

tar 选项 文件或目录名

参考书目《Ubuntu Linux 操作系统》

Linux文件与目录常用操作相关推荐

  1. Linux的vx开头的文件,微博 Qzone 微信 Linux文件及目录常用命令,进来瞅瞅

    一.Linux中的目录结构 l /bin :系统命令目录 l /dev :系统设备目录 l /home :用户的家 /home/lau l /lib :系统库文件 .so 动态库 .a静态库 l /m ...

  2. Linux文件及目录常用命令

    一.Linux中的目录结构 l /bin :系统命令目录 l /dev :系统设备目录 l /home :用户的家 /home/lau l /lib :系统库文件 .so 动态库  .a静态库 l / ...

  3. linux目录命令改目录名,Linux命令详解——文件和目录常用命令-linux修改文件名...

    文件和目录常用命令 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 &g ...

  4. Linux快捷键及文件和目录的操作

    1.快捷键 首先我们可以输入指令histroy查看以往输入的命令,ubuntu的光标盖住的是光标后边的字符 (1) ctrl+p可以向上遍历以往输入的命令 ctrl+n可以向下遍历以往输入的命令 (2 ...

  5. linux 获取文件父目录权限,Linux 文件权限中,操作一个文件需要父目录的那些权限?...

    eudore:linux 文件权限中,操作一个文件需要父目录的那些权限? 是否需要检查每级目录?想找到一份完整规范正确的指导,自己在写检查 linux 用户文件权限的代码. 例如读取一个文件 /hom ...

  6. linux文件目录基本操作实验结论,实验 Linux文件和目录操作

    实验Linux文件和目录操作(1) 一.实验内容 练习Linux文件和目录操作命令. 二.实验目的 掌握文件与目录管理命令 掌握文件内容查阅命令 三.实验题目 1. 文件与目录管理 (1) 查看Cen ...

  7. linux文件目录操作实验报告,实验 Linux文件和目录操作

    实验Linux文件和目录操作(1) 一.实验内容 练习Linux文件和目录操作命令. 二.实验目的 掌握文件与目录管理命令 掌握文件内容查阅命令 三.实验题目 1. 文件与目录管理 (1) 查看Cen ...

  8. 【Ubuntu入门到精通系列讲解】文件和目录常用命令速查

    目标 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 &g ...

  9. 第七章、Linux 文件与目录管理

    第七章.Linux 文件与目录管理 1. 目录与路径 1.1 相对路径与绝对路径 1.2 目录的相关操作: cd, pwd, mkdir, rmdir 1.3 关於运行档路径的变量: $PATH 2. ...

  10. 鸟哥的Linux私房菜(基础篇)- 第七章、Linux 文件与目录管理

    第七章.Linux文件与目录管理 最近升级日期:2009/08/26 在第六章我们认识了Linux系统下的文件权限概念以及目录的配置说明.在这个章节当中,我们就直接来进一步的操作与管理文件与目录吧!包 ...

最新文章

  1. 文化创意企业纷纷跨界融合,软件资产管理奠定安全基础
  2. ObservableCollection和List的区别总结
  3. 特征工程-统计数据特征
  4. 分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)
  5. azkaban的操作指南
  6. JSP的9个内置对象-response
  7. 如何使用svconfigeditor.exe编辑WCF Service配置文件-配置一个基本的Endpoint(一)
  8. java面向对象(第一章课后作业)02
  9. 抢占云安全管理高地 启明星辰先发云SOC
  10. 塔菲克蓝牙适配器驱动_TAFIQ蓝牙适配器4.0驱动下载
  11. J2Cache的学习
  12. 文字栅格化剪切蒙版——创建文字遮罩效果的两种方法——梦幻游乐园
  13. mysql 左连接写法_mysql左连接复杂正确写法
  14. 台式计算机如何设置无线网络,台式电脑怎么设置无线网络
  15. DBCP连接池配置优化分析
  16. 解除360的系统压缩
  17. ae渲染存在偏移_E3依旧是最好选择.千元游戏渲染主机该如何搭配
  18. python对dataframe时序数据按时间顺序读取
  19. http请求头部(header)详解
  20. 首发苹果 M2!MacBook Pro 正式开售,更像是一个增强版的 A15?

热门文章

  1. unity 获取 AudioSource 分贝值
  2. 职业学校计算机课评课,中职计算机评课稿
  3. 购书网站前端实现(HTML+CSS+JavaScript)
  4. 天津大学网页设计与制作答案合集
  5. 16.Linux网络编程
  6. Cisco思科交换机Vlan划分
  7. 基于C语言的端口扫描工具设计与实现
  8. Centos7端口查看命令
  9. [原创]MASM32新手指南
  10. 小马哥linux网络培训,linux基础入门