文件管理

来源:互联网 发布:淘宝详情页视频下载 编辑:程序博客网 时间:2024/06/05 08:51

文件管理

1 文件的类型

这里写图片描述

2 系统目录

这里写图片描述
这里写图片描述
这里写图片描述

3 路径的概念

3.1 路径

我们使用计算机的时候,需要知道文件放在那里,而表示文件位置的方式就叫做路径。

3.2 绝对路径

在Linux中,绝对路径是从“/”开始的,比如:/usr/bin。如果一个路径是从“/”开始的,那么就是一个绝对路径。

3.3 相对路径

相对路径是针对当前路径为参照物的,和绝对路径不同。其中“./”表示当前路径,“..”表示上一级目录。

4 文件的增删改查

4.1 新建

4.1.1 新建文件

4.1.1.1 touch命令

作用:
快速新建一个文本文件

常用选项:

参数:
文件名字

示例:
1. 新建一个文本文件a.txt,touch a.txt
这里写图片描述
2. 批量新增文本文件,touch b.txt c.txt d.txt
这里写图片描述

4.1.1.2 vi/vim命令

作用:
vi和vim基本一致,vim是vi的升级版,最主要区别是vim有语法提示。

常用选项:

参数:
文件名称

说明:
vi/vim是一款编辑器,按字母“i”进入输入模式,按“Esc”+“:”+“wq”保存退出。这里我们对vim只做一个简单的介绍,下面一节将做详细的讲解。

示例:
1. 新建一个文件,vim e.txt
这里写图片描述
按“i”进入编辑模式
这里写图片描述
这里写图片描述
按“Rsc”+“:”+“wq”保存退出
这里写图片描述
查看一下
这里写图片描述

4.1.2 新建目录

4.1.2.1 mkdir命令

作用:
新建目录,支持单个和批量新建

常用选项:
-p 递归创建目录

参数:
目录名称

示例:
1. 新建目录a,mkdir a
这里写图片描述
2. 递归新建目录,mkdir -p b/c/d
这里写图片描述

4.1.3 复制

4.1.3.1 cp命令

作用:
复制文件、文件夹内容

常用选项:
-r 复制文件夹内容时递归复制

格式:
cp 源文件 目标文件
cp -r 源文件夹 目标文件夹

示例:
1. 复制文件a.txt并命名为d.txt,cp a.txt d.txt
这里写图片描述
2. 复制/etc文件夹以及里面的内容到/tmp目录下,cp –r /etc /tmp
这里写图片描述

4.2 修改

4.2.1 修改文件内容

修改文件也是使用vi/vim文本编辑器,操作方式和使用vi/vim新建文件类似,这里不再赘述。

4.2.2 修改文件名

4.2.2.1 mv命令

作用:
修改文件、目录的名称

常用选项:

格式:
mv 原文件名 新文件名
示例:
1. 修改文件a.txt的文件名为aa.txt,mv a.txt aa.txt
这里写图片描述
2. 修改目录a的文件名为aa,mv a aa
这里写图片描述

4.3 查看

4.3.1 查看文件列表

4.3.1.1 ls命令

参考上一节课《3.小试牛刀:Linux的几款基础命令》

4.3.2 查看文件内容

4.3.2.1 cat命令

作用:
查看文件内容,cat显示全部的文件内容,适合查看小文件。

常用选项:
-n 对输出的行进行编号
-b 对非空的输出行进行编号
-s 不输出多行的空格

参数:
文件名

说明:
cat命令除了可以查看文件内容外,还可以搭配重定向输出来合并文件。

示例:
1. 查看文件a.txt的内容,cat a.txt
这里写图片描述
2. 合并文件a.txt和b.txt的内容到文件c.txt,cat a.txt b.txt > c.txt
这里写图片描述

4.3.2.2 more命令

作用:
分页方式查看文件内容,这是和cat命令最大的区别。

常用选项:

格式:
more 文件名

说明:
进入查看模式后,回车是翻一行,空格键是翻一页,q键退出查看模式。需要注意的是,more命令只能向前翻页/行,不能后退。

实例:
1. 查看/etc/passwd文件,more /etc/passwd
这里写图片描述

4.3.2.3 less命令

作用:
less的功能和more一致,不过less可以向后翻页/行

常用选项:

格式:
less 文件名

说明:
less的翻页键更加灵活,向上翻页(PageUp),向下翻页(PageDown、、空格键),向上翻行(↑),向下翻行(↓、回车键),向左翻一列(←),向右翻一列(→)。

实例:
1. 使用less命令查看/etc/passwd文件,less /etc/passwd
这里写图片描述

4.3.2.4 head命令

作用:
用于显示文件内容的头部几行。默认显示前10行内容。

常用选项:
-n 显示前几行

格式:
head -n 文件名

示例:
1. 显示/etc/passwd前5行内容,head -5 /etc/passwd
这里写图片描述
2. 显示/etc/passwd前10行内容,head /etc/passwd
这里写图片描述

4.3.2.5 tail命令

作用:
和head命令相反,显示文件内容尾部几行。默认情况下,显示尾部10行内容。

常用选项:
-n 显示尾部几行
-f 动态追加

格式:
tail -n 文件名

示例:
1. 显示/etc/passwd尾部5行内容,tail -5 /etc/updatedb.conf
这里写图片描述
2. 显示/etc/profile尾部10行内容,tail -5 /etc/profile
这里写图片描述

4.4 删除

4.4.1 rm命令

作用:
删除文件、目录

常用选项:
-r 删除目录时,递归删除
-f 强制删除,不提示确认信息

格式:
rm -f 文件名

说明:
rm –rf 使用时一定要谨慎,删除之前一定要先查看目录里面的具体内容,确认准确后执行删除操作。

示例:
1. 删除a.txt文件(有提示),rm a.txt
这里写图片描述
2. 删除b.txt文件(无提示),rm -f b.txt
这里写图片描述
3. 删除/tmp下的目录etc,rm –rf etc
这里写图片描述

5 文本编辑器vi/vim

因为vi和vim类似,vim是vi的升级版,我们这里以vim作为主要讲解对象。

5.1 vim的三个模式

这里写图片描述

5.2 vim命令

作用:
vim是一款强大的文本编辑器。

常用选项:

  • 命令模式

    • 基础操作:
      i 当前字符之前插入 (光标前)
      I 行首插入 (行首)
      a 当前字符之后插入 (光标后)
      A 行尾插入(行尾)
      o 下一行插入 (另起一行)
      O 上一行插入(上一行插入)
      x 向后删除一个字符
      X 向前删除一个字符
      u 撤销一步 每按一次就撤销一次
      r 替换
      w/e 或者(Ctrl + 左右方向键)左右方向键要快
      gg 快速定位到文件首行
      G 快速定位到文件尾行
      数字 + gg 快读定位到某行
      / + 参数 查找匹配给定参数的字符串,按n查找下一个,按N查找上一个

    • 行操作:
      输入home键或^(Shift + 6)将光标移动到行首
      输入end键或$(Shift + 4)将光标移动到行尾
      dd 删除一行
      数字 + dd 删除多行
      d + G 删除光标后面所有内容
      yy 复制一行
      数字 + yy 复制多行
      p 将复制行粘贴到光标处
      d + home 或^(Shift + 6) 删除到行首
      d + end或$(Shift + 4) 删除到行尾

    • 列模式操作:
      在命令模式下,按Ctrl + v进入列操作,可以批量操作。
      流程如下:

      1. Ctrl + v进入列操作
      2. 按下大写I(插入)、d(删除)、r(替换)
      3. 输入需要插入、删除或替换的内容
      4. 按Esc结束
  • 命令行模式
    输入“:”,进入命令行模式

    • 基础操作:
      w 保存
      q 没有修改内容,退出
      q! 不管修改内容没有,强制退出
      wq 保存退出
      wq! 强制保存退出(一般用在没有修改权限的文件中)
      x 保存退出(等于wq)
      x! 强制保存退出(等于wq!)

    • 特殊操作:
      set nu 显示行号
      set nonu 取消行号
      noh 取消高亮显示
      数字 定位到某行
      !命令 在vim命令行模式执行其他命令(一般用在不想退出vim编辑器,而直接查看其他命令的执行结果)
      r 文件名 读取另外一个文件内容,并追加到光标处

    • 文本替换:
      s 分隔符 旧内容 分隔符 新内容(分隔符可以自定义,一般使用“/”)
      % s 分隔符 旧内容 分隔符 新内容(“%”扫描所有内容,不加“%”只扫描当前行)
      n1,n2 s 分隔符 旧内容 分隔符 新内容 分隔符 g(“n1,n2”扫描n1到n2行;“g”匹配所有的,不加“g”是匹配第一次出现的)
      举例:
      :s/o/a 当前行的o替换成a
      :%,s/o/a 文档中第一次出现的o换成a
      :%,s/o/a/g 文档中所有的o换成a
      :1,3s/o/a 文档1-3行中第一次出现的o换成a
      :1,3s/o/a/g 文档1-3行中的o换成a

示例:

  1. 在文件中查找字符产root
    输入/root
    这里写图片描述
    回车
    这里写图片描述
    按n查找下一个(注意绿色区域)
    这里写图片描述
    按N查找上一个(注意绿色区域)
    这里写图片描述

  2. 利用列模式批量加注释
    vim mima打开文件
    这里写图片描述
    Ctrl + v进入列编辑模式,“可视 块”字样出现,表示已进入列模式
    这里写图片描述
    使用方向键选中要添加注释的位置
    这里写图片描述
    按下大写I,进入编辑模式,并输入“#”
    这里写图片描述
    按Esc后,刚才选中的区域已批量加上“#”
    这里写图片描述

  3. 利用列模式批量删除行
    进入列模式后,并选中要删除的字符
    这里写图片描述
    按d删除所选字符
    这里写图片描述
    按D删除所选区域整行
    这里写图片描述

  4. 利用列模式批量替换
    进入列模式后,并选中要替换的字符
    这里写图片描述
    按r,并输入“a”,会发现所有选择的字符都替换成了“a”
    这里写图片描述

  5. 文档中所有的“root”替换成“raat”
    输入:%,s/root/raat/g
    这里写图片描述
    回车,并回答“yes”,继续回车
    这里写图片描述

5.3 vim多开

格式:
-o 上下分屏多开
-O 左右分屏多开

说明:
Ctrl + w + w,切换文件屏幕

示例:
1. 上下分屏多开,vim –o /etc/passwd /etc/ /etc/profile
这里写图片描述

5.4 diff命令

作用:
对比两个文本文件,并显示差异。

常用选项:

格式:
diff 文件A 文件B

示例:
1. 比较file1和file2文件
这里写图片描述
尖角符号“<”指向左边,意思是右边的文件比左边的文件少尖角符号旁边的字符;尖角符号“>”指向右边,意思是左边的文件比右边的文件少尖角符号旁边的字符。
还有另外一种判定方法,看一下上图的“3c3”、“6d5”、“18a17”字样,
“3c3”:
c表示行号能对应上,但是对应的内容不一样,上例中file1第3行是“daemon:x:2:2:daemon:/sbin:/sbin/nologin”,而file2的第3是“xxxxxxxxxxxxxxxxxx”。
“6d5”:
d表示左边的文件比右边的文件多,上例中file1文件第6行是“sync:x:5:0:sync:/sbin:/bin/sync”,而对应右边的file2文件是第5行,也就是少一行。
“18a17”:
a表示右边的文件比左边的文件多,上例中表示file2第17行是内容“unbound:x:996:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin”,而对应左边的文件没有这一行,对应左边的行号是18

5.5 vimdiff

作用:
作用和diff类似,功能更强大,界面更友好。

常用选项:

格式:
vimdiff file1 file2

说明:
vimdiff的更多介绍,请参考网友的博客:http://blog.csdn.net/wind19/article/details/5768972

示例:
1. 比较file1和file2文件的差异
这里写图片描述

5.6 iconv命令

作用:
文件编码的转换,一般用在文本文件的编码和系统编码不一致的情况。

常用选项:
-f, –from-code=名称 原始文本编码
-t, –to-code=名称 输出编码
-l, –list 列举所有已知的字符集
-o, –output=FILE 输出文件

参数:
文件名

示例:
1. 转换c.txt的文件编码,iconv –f gb2312 –t utf-8 -o /tmp/newc.txt
这里写图片描述

6 文件查找和过滤

6.1 grep命令

作用:
在文档中搜索指定的字符串所在行,并列出来。

常用选项:
-v 反选,显示没有匹配到的部分
-I 忽略大小写
^# 以#开头的字符串
#$ 以#结尾的字符串
^$ 空行
-n 打印结果时,加上行号
[a..z] 包含a到z
{a,b} 包含a、b

示例:
1. 找出/etc/passwd文件中包含“root”的所有行,grep “root” /etc/passwd
这里写图片描述
2. 上例取反,grep -v “root” /etc/passwd
这里写图片描述
3. 和其他命令搭配使用,cat /etc/passwd | grep “root”
这里写图片描述

6.2 find命令

作用:
在目录结构中搜索文件,并执行指定的操作。

常用选项:
-name 按照文件名查找文件。 “名称”
-perm 按照文件权限来查找文件。666 777 等
-prune 使用这一选项可以使find命令不在当前指定的目录中查找(排除) 如果同时使用-depth选 项,那么-prune将被find命令忽略
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-user 按照文件属主来查找文件
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
-group 按照文件所属的组来查找文件
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
-mtime -n +n 按照文件的更改时间来查找文件,
- n 表示文件更改时间距现在n天以内
+ n 表示文件更改时间距现在n天以前
-type 查找某一类型的文件
b - 块设备文件
d - 目录
c - 字符设备文件
p - 管道文件
l- 符号链接文件
f - 普通文件
-size n [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
-exec 对匹配的文件执行该参数所给出的其他linux命令, 相应命令的形式为:命令 {} \;,注意{ }和\;之间的空格,{}代表查到的内容,\;是固定的结束符号。
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount 在查找文件时不跨越文件系统mount点。
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

参数:
pathname find命令所查找的目录路径。例如用 . 表示当前目录,用 / 表示系统根目录。
-print find命令将匹配的文件输出到标准输出。

示例:

  • name选项,name选项可以单独使用,也可以和其他选项混用

    1. 查找/tmp目录下所有的.txt文件,find /tmp -name “.txt”
      这里写图片描述
  • perm选项,按照文件的权限来查找文件

    1. 查找当前目录权限为755的文件
      这里写图片描述
  • prune选项,用来指出需要忽略的目录,如果-depth和-prune同时使用,-prune会被忽略。必须使用 -o -print 参数,才能看到效果

    1. 查看apps目录里面的内容,但是排除apps里面的bin目录,find ./apps -path “./apps/bin” -prune -o -print
      这里写图片描述
    2. 测试-depth和-prune一起使用的情况
      这里写图片描述
      有个警告,表示-depth会覆盖-prune的效果。
  • user选项和nouser,通过文件的所属用户搜索,nouser是user的取反。

    1. 在当前目录查找属于用户tss的文件,find ./ -user tss
      这里写图片描述
  • exec选项,使用exec我们可以把查找到的结果做进一步处理,比如查看文件的属性、删除等操作。
    语法结构:
    这里写图片描述

    1. 查找当前目录的.txt文件,并查看这些文件的属性,find ./ -name “.txt” -exec ls -al {} \;
      这里写图片描述
    2. 查找当前目录的*.txt文件,并把它们拷贝到/opt下面,
      find ./ -name “*.txt” -exec cp -r {} /opt \;
      这里写图片描述
  • mtime/atime/ctime选项,按照更改时间来查找文件,可以使用mtime,atime或ctime选项。
    mtime:文件最后一次修改的时间
    atime:最后一次访问时间
    ctime:文件的最后一次变化时间,也就是修改时间

    1. 查找当前目录下5天内修改过的文件,find ./ -mtime -5
      这里写图片描述
    2. 查找当前目录下5天之前修改过的文件,find ./ -mtime +5
      这里写图片描述
  • type选项,根据文件的类型来查找文件
    可选参数:
    b 块设备文件
    d 目录
    c 字符设备文件
    p 管道文件
    l 符号链接文件
    f 普通文件
    ! 取反

    1. 在/etc目录下查找目录,find /etc -type d | head -5
      这里写图片描述
  • size选项,按照文件大小来查找文件
    文件大小单元:
    b 块(512字节)
    c 字节
    w 字(2字节)
    k 千字节
    M 兆字节
    G 吉字节
    比较符使用:
    -a and 并且
    -o or 或者
    + 超过
    - 低于

    1. 在/etc目录下查找大于1M的文件,find /etc -size +1M
      这里写图片描述
    2. 在/etc目录下查找大于1000b的文件,find /etc -size +1000b
      这里写图片描述
原创粉丝点击