首页 > 系统相关 >Linux 文本文件编辑相关命令2

Linux 文本文件编辑相关命令2

时间:2024-07-28 21:50:48浏览次数:15  
标签:文件 命令 vim 编辑 num 文本文件 Linux 字符串 光标

Linux 文本文件编辑相关命令简介

〇、前言

本文介绍了如何通过 vim 命令,对文本文件进行打开、编辑、保存等相关操作,并通过简单的示例演示了常用用法。

一、关于文本文件的操作

1.1 打开,查看(cat)、编辑(vim)

打开文本文件,有查看和编辑两种状态。

1.1.1 仅查看 cat

可以使用 cat 命令,加上文件的绝对路径或者进入目标路径加上文件名,如下示例:

  // 例如要查看此文件:/etc/test/system.config
  cat /etc/test/system.config
  // 或者
  cd /etc/test
  cat system.config

1.1.2 编辑 vim

使用 vim 命令,同样是加上绝对路径或进入目标路径加上文件名,如下示例:

  // 例如要编辑此文件:/etc/test/system.config
  vim /etc/test/system.config
  // 或者
  cd /etc/test
  vim system.config

另外还有个 vi 命令,它实际上是 vim 的前身,vim 全部包含了 vi 的功能,并进行了许多扩展和改进,因此更推荐使用 vim。

另外,为了便于操作并增加可读性,可以添加行号

  // 在通过 vim 打开文件之后,执行如下命令:
  // 【临时显示行号】两个命令均可:
  :set nu
  :set number
  // 【临时隐藏行号】两个命令均可:
  :set nonu // no + nu
  :set nonumber // no + number
  // 【永久显示行号】需要在配置文件中修改,加上默认的命令
  // 1)通过 find 命令,查找 vimrc 配置文件的路径
  find / -name vimrc // 结果:/etc/vimrc
  // 2)编辑配置文件
  vim /etc/vimrc
  // 在文件最后新增行加入命令:
  set nu
  // 最后用命令【:wq】保存并退出即可

1.1.3 文件内容翻页

命令 简介
Ctrl+u 向文件首翻半屏
Ctrl+d 向文件尾翻半屏
Ctrl+b 向文件首翻一屏
Ctrl+f 向文件尾翻一屏
z 将当前行翻滚到屏幕顶部
nz 将本文件第 n 行翻滚到屏幕顶部

1.2 编辑文本内容

1.2.1 插入文本内容

通过 vim 命令打开文件后,实际上是无法编辑的,还要通过命令来进入编辑状态。

这个命令很简单,就是一个英文字母,如下六个类型:

a 在当前光标选中的字符,之后插入字符
A 在当前光标所在行的行尾插入字符,行尾包含空格
i 在当前光标选中的字符,之前插入字符
I 在当前光标所在行的行首插入字符,行首不包含空格
o 在当前光标所在行的下方插入一个空行,并在空行中输入字符
O 在当前光标所在行的上方插入一个空行,并在空行中输入字符

1.2.2 查找

文本内容查找,可以有两种方式,通过“/”、grep 命令。

1)通过“/”加要查询字符串,需要在文件中查找

下面例举几个示例:

语法 简介 示例(abc 代表普通字符串)
/+字符串 简单的匹配字符串 /abc
/^+字符串 开头为指定字符串 /^abc
/字符串+$ 结尾为指定字符串 /abc$
?+字符串 简单查询,当前位置开始往前查找,锁定第一个 ?abc

快捷键:

  n:往上查找;

  N:往下查找。

2)通过 grep 命令在不打开文件的情况下查找文本内容

grep 的名称来源于“global regular expression print”,意为全局正则表达式打印。

  // 基本语法:
  grep [选项] '模式' 文件名
  // [选项]:是可选的,用于定制grep的行为
  // '模式':是要搜索的字符串或正则表达式
  // 文件名:是要搜索的文件名或目录名

常用的选项:

选项 简介
-i 忽略大小写
-v 反向匹配,选择不匹配的行
-r 或 -R 递归搜索,在当前目录及子目录中的文件搜索
-l 只输出包含匹配行的文件名
-n 显示匹配行及其行号
-c 只输出匹配的行数
-o 只输出匹配的部分
-A num 显示匹配行之后的 num 行
-B num 显示匹配行之前的 num 行
-C num 或 --context=num 显示匹配行前后各 num 行
-e 指定多个模式
-f 从文件中获取模式
--color 或 --colour 高亮显示匹配部分

几个简单的示例:

  // 简单查找
  // 在 text2.txt 中查找包含 345 字符串的所有行
  grep '345' /etc/test/text2.txt

  // 反向匹配,即不包含目标字符串的行
  // 在 text2.txt 中查找不包含 345 字符串的所有行
  grep -v '345' /etc/test/text2.txt

 

  // 反向匹配,即不包含目标字符串的行
  // 在 text2.txt 中查找以 4~5 结尾的所有行
  grep '[4-5]$' /etc/test/text2.txt

选线组合使用:(递归搜索的同时,只返回文件名)

  // 列出 /path/to/directory 目录及其子目录中,所有包含 pattern 的文件名
  grep -rl 'pattern' /path/to/directory/

grep 参考:https://www.cnblogs.com/huangjiabobk/p/18106391         

1.2.3 替换

一般模式

从查看状态进入替换模式,有如下几个快捷键:

r:仅替换当前选退出编辑状态;

R:连续替换后续光标选中的字符串,直至单击 Esc 键退出编辑;

cc:清空当前行,然后自动进入 insert 模式,可直接输入字符串;

cw:删除从光标位置开始往后的单词,即至下一个空格为止或遇到标点符号为止;

~:切换光标选中字符的大小写

命令模式

命令 简介
:s/str_old/str_new/gi 仅当前行中,用 string_new 替换掉 string_old,最后的配置 i 标识不区分大小写
:row_start,row_ends/str_old/str_new/gi
注:row_end 后边有个额外的字母 s
根据行号扩大范围,从 row_start 行到 row_end 行,用 string_new 替换掉 string_old
:g/str_old/str_new/gi 当前文件中全文搜索,用 string_new 替换掉 string_old

注:可再打开文件后,临时通过【:set nu】显示行号。

示例:【:3,4s/345/666/g】如下图,替换前后:

1.2.4 删除(剪切)

删除实际上是的效果就是剪切,通过快捷键【p】粘贴到光标之后。

命令 简介
x 删除光标选中的一个字符
X 删除光标选中位置前的一个字符
dd 删除光标所在的行,光标回到上一行的开始
ndd 从光标所在行开始,往后删除 n 行
dG 删除从光标所在行开始,往后知道文件结尾的全部行
dnG 删除从光标所在行开始,到文件中第 n 行的全部行
D 删除当前行中,光标位置之后的全部字符
:num_start,num_endd 删除从 num_start 到 num_end 之间的全部行

示例:

文件查看状态输入【2dd】,从光标所在行开始,往后删除 2 行:

文件查看状态输入【:9,10d】,按行号删除第 9 到 10 行:

1.2.5 复制和粘贴

命令 简介
yy 复制当前行至剪切板
nyy 从当前行开始,复制 n 行至剪切板
yw 复制从光标位置开始的一个单词,即至下一个空格或标点符号为止的字符串
p 粘贴,将剪切板中的内容,粘贴到光标位置之
P 粘贴,将剪切板中的内容,粘贴到光标位置之

示例:

文件查看状态下,输入【2yy】复制当前行开始往后两行,再输入命令【P】,粘贴到光标位置之前,前后结果如下图:

1.2.6 撤销和恢复

文件查看状态下,如下快捷键:

u:撤销上一步编辑操作;

Ctrl+r:恢复上一步撤销操作。

1.3 保存和退出

命令 简介
:wq 保存并退出
:wq! 保存并强制退出
:q 不保存退出
:q! 不保存强制退出
:w 保存,不退出
:w! 强制保存,不退出
:w filename 另存为,filename 为新的文件名
x! 保存并退出
ZZ 直接退出

参考:  https://blog.csdn.net/qinfuan2017/article/details/79728906   https://blog.csdn.net/qq_29689343/article/details/116162089          

标签:文件,命令,vim,编辑,num,文本文件,Linux,字符串,光标
From: https://www.cnblogs.com/Leo_wl/p/18328921

相关文章

  • Linux(虚拟机)的介绍
    Linux介绍常见的操作系统Windows:微软公司开发的一款桌面操作系统(闭源系统)。版本有dos,win98,winNT,winXP,win7,winvista.win8,win10,win11。服务器操作系统:winserver2003,winserver8,winserver2012Mac:苹果公司开发的一款系统(闭源系统),界面风格很不错。对于系统底层的优......
  • Linux系统中的Vim编辑器
    本章将和大家分享Linux系统中的Vim编辑器。废话不多说,下面我们直接进入主题。一、Vim入门帮助Vim带有完整的帮助文档:进入Vim后输入“:help”即可访问二、Vim模式介绍 与大部分其它编辑器不同,进入Vim后,缺省状态下键入的字符并不会插入到所编辑的文件之中。Vim的模式(m......
  • Linux Kernel CFI机制简介及测试禁用
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。环境说明  无前言  当我们为android移植linux的驱动程序的时候,总会遇到一些错误,这些错误有一部分就是android内核开启的安全的机制导致的。本文就会介绍一种......
  • 绝对实用Linux命令行下的文件夹逐层创建术,从小白到大神的必学技能
    哈喽,大家好,我是木头左!基础篇:初识Linux文件系统在深入了解如何在Linux中逐层创建文件夹之前,需要对Linux的文件系统有一个基本的认识。Linux文件系统以其树状结构而著称,其中/(根目录)是所有其他目录和文件的起点。每个分区、设备、目录都可以被挂载在这个树中的某个节点上。文件......
  • Linux文件权限管理
    1.文件权限位说明Linux文件或目录的基本权限位是由九个字符来控制的,每三位字符为一组。前三位是用户权限位中三位表示用户组权限位后三位表示其他用户权限位rwxr-xr-xuser(用户)group(用户组)others(其他用户)代表字符为u代表字符为g代表字符为o2.文件权限详细说明......
  • Linux常用打包压缩命令
    压缩命令应用场景tar大部分使用tar即可。创建,查看,解压,解压到指定目录gzip一般配合其他命令使用zip+unzip一般用于解压zip格式的压缩包1.tar打包压缩命令1.1命令详解【功能说明】在Linux系统里,tar是将多个文件打包在一起,并且可以实现解压打包的文件的命令。是系统管理......
  • Linux网络:传输层协议TCP(三)滑动窗口及流量控制
    目录一、关于滑动窗口在TCP中的应用1.1什么是滑动窗口,为什么要有滑动窗口1.2滑动窗口的实现1.3滑动窗口针对丢包重传的处理机制二、流量控制一、关于滑动窗口在TCP中的应用1.1什么是滑动窗口,为什么要有滑动窗口在上一篇博文中博主阐述了确认应答ACK策略,对每一个对......
  • 基因编辑技术之“速”力量:让单倍体育种技术迭代升级
    作物品种改良主要得益于育种过程带来的遗传获得。传统育种技术受制于表型观察准确性和遗传累赘效应等影响,其育种目标随机且费时费力,需要多个世代的自交才能获得性状稳定的品种。因此,生产上迫切需要高效、快速、精准改良作物性状的技术来加速作物的育种进程。单倍体诱导(haploidin......
  • Linux内核-异常输出调用栈CallTrace与Ftrace工具集
    1dump_stack函数打印内核调用堆栈。举个例子:我们定义四个函数aaa、bbb、ccc、ddd,然后bbb中调用aaa,ccc中调用bbb,ddd函数谁都不调用。在入口函数中,我们调用ccc与ddd函数,看看堆栈打印效果如何:#include<linux/module.h>#include<linux/kernel.h>#include<linux/init.h>#incl......
  • Blender 4.2 LTS (macOS, Linux, Windows) - 开源 3D 创意软件 (渲染 建模 雕刻)
    Blender4.2LTS(macOS,Linux,Windows)-开源3D创意软件(渲染建模雕刻)创造的自由Blender获得GNUGPL许可,由其贡献者拥有。因此,Blender永远是免费和开源软件。使命以免费/开源软件的形式将世界上最好的3DCG技术交到艺术家手中。想象每个人都应该自由地创......