• Shell命令编辑与查找文件



      如今,Linux 系统的大多数配置仍通过编辑纯文本文件来完成。甚至当使用图形工具处理配置文件时,也无法完全完成使用纯文本文件所完成的工作。其结果是有时还是需要使用一种文本编辑器来手工配置文件。同样,一些文档文件类型(比如 HTML 和 XML)也是可以手工进行编辑的纯文本文件。

      在成为成熟的程序员之前,需要学会使用一种纯文本编辑器。事实上,大多数专业的Linux服务器甚至没有提供图形界面,而仅使用非图形文本编辑器来编辑纯文本配置文件。

    编辑文件:使用vim或vi

    vim和vi的区别

      Vim(Vi IMproved)和Vi(Visual Editor)都是文本编辑器,它们有一些相似之处,但也有一些重要的区别。Vim是Vi的现代化版本,它保留了Vi的基本编辑概念,但提供了更多的功能和灵活性,适用于更广泛的文本编辑需求。对于需要频繁进行文本编辑的人员,Vim通常是一个更好的选择,但对于只需偶尔编辑文本的用户来说,Vi可能足够了解决基本的编辑任务。

    就我的工作使用来说,能够使用命令行正常编辑文件就可以了,想要提升的话,再多了解一些命令来让自己高效的编辑文件,说实话大块文件和项目用命令行操作文件不如用可视化界面

    vim和vi命令的使用流程

      Vi的基本流程:

    1. 打开文件:

    • 打开终端窗口,并输入以下命令来启动Vi并打开一个文件:
    vi 文件名
    
    • 1

      其中,"文件名"是要编辑的文件的名称。如果文件不存在,Vi将创建一个新文件。

    2. 进入Vi的正常模式:

    • 当第一次打开文件时,Vi会进入正常模式。在正常模式下,无法直接输入文本,但可以执行各种命令。

    3. 切换到插入模式:

    • 要开始编辑文本,需要切换到插入模式。在正常模式下,按下以下任一键来进入插入模式:
      • i:在当前光标位置之前插入文本。
      • I:在当前行的行首插入文本。
      • a:在当前光标位置之后插入文本。
      • A:在当前行的行尾插入文本。
      • o:在当前行的下方插入新的一行,并进入插入模式。
      • O:在当前行的上方插入新的一行,并进入插入模式。

    4. 编辑文本:

    • 在插入模式下,可以像在常规文本编辑器中一样输入和编辑文本。键入所需的文本。

    5. 退出插入模式:

    • 要退出插入模式并返回正常模式,按下Esc键。

    6. 保存文件:

    • 在正常模式下,要保存文件,可以输入以下命令:
    :w
    
    • 1

      或者,如果想另存为新文件,可以使用:

    :w 文件名
    
    • 1

    7. 退出Vi:

    • 要退出Vi并返回终端,可以在正常模式下输入以下命令:
    :q
    
    • 1

      如果已经对文件进行了更改并想保存这些更改,使用以下命令:

    :wq
    
    • 1

      如果要强制退出而不保存更改,可以使用:

    :q!
    
    • 1

      这只是Vi的基本使用流程。Vi还有许多高级命令和功能,可以用于搜索、替换、剪切、复制等操作。要深入了解Vi的功能,建议查看Vi的帮助文档或参考在线教程。刚开始可能会有点陌生,但随着练习,您将变得越来越熟练。

    在编辑器里快速移动

      · CtrH+f—向前翻页,一次一页。
      · Ctrl+b——向后翻页,一次一页。
      · Ctrl+d—一次向前翻半页。
      · Ctrl+u——次向后翻半页。
      · G—转到文件的最后一行。
      · 1G—转到文件的第一行。
      · 35G—转到任意行号(此时为35)。

    查找文件

      find 是一个强大的Linux命令,用于在文件系统中查找文件和目录。它可以按照不同的条件搜索文件,并且可以根据需要执行各种操作。以下是 find 命令的基本用法:

    find [起始目录] [匹配条件] [操作]
    
    • 1
    • [起始目录]:指定从哪个目录开始搜索文件,默认是当前目录。

    • [匹配条件]:用于指定搜索文件的匹配条件,例如文件名、文件类型、大小、修改时间等等。

    • [操作]:可以在找到文件后执行的操作,常见的操作包括 -print(将文件名打印到标准输出)、-delete(删除找到的文件)、-exec(执行自定义命令)等。

      以下是一些常见的 find 命令示例:

      1. 查找当前目录及其子目录下所有文件和目录:

    find
    
    • 1

      2. 在指定目录(例如 /home/user)中查找所有文件和目录:

    find /home/user
    
    • 1

      3. 查找所有以 .txt 结尾的文件:

    find /path/to/search -name "*.txt"
    
    • 1

      4. 查找所有大于1MB的文件:

    find /path/to/search -size +1M
    
    • 1

      5. 查找最近7天内修改过的文件:

    find /path/to/search -mtime -7
    
    • 1

      6. 查找并删除所有 .bak 文件:

    find /path/to/search -name "*.bak" -delete
    
    • 1

      7. 执行自定义命令来处理找到的文件(例如复制到另一个目录):

    find /path/to/search -name "*.jpg" -exec cp {} /path/to/destination \;
    
    • 1

      在上述示例中,{} 表示 find 找到的每个文件的占位符,\; 表示 -exec 命令的结束标记。

      在使用 find 命令时要小心,确保了解操作的影响,特别是在使用 -delete-exec 命令时,以免不小心删除或修改重要文件。

  • 相关阅读:
    【自动化测试】基于Selenium + Python的web自动化框架
    动态分区算法(头歌实验)第1关:首次适应算法。第2关:最佳适应算法。
    回归理性,直面低代码
    硼替佐米大鼠血清白蛋白RSA纳米粒|布立尼布小麦麦清白蛋白纳米粒|马赛替尼豆清白蛋白纳米粒(齐岳)
    【JAVA知识梳理】异常机制
    ToDoList待办事件(Vue实现)详解
    SQL语法基础-其他函数V
    直面创业,我敢闯
    运算符重载之日期类的实现
    JTS: 12 Descriptions 图形覆盖
  • 原文地址:https://blog.csdn.net/qq_43592352/article/details/132762313