第七天 vim编辑器的使用与文件误删除恢复 您所在的位置:网站首页 viminfo文件可以删除吗 第七天 vim编辑器的使用与文件误删除恢复

第七天 vim编辑器的使用与文件误删除恢复

2023-10-12 06:54| 来源: 网络整理| 查看: 265

1.1 查看是否安装vim rpm -qf ‘which vim’rpm -qf ‘which vi’ #vim不等于vi,vim是vi的加强版不是同一个包

vim语法 vim [选项] 参数(文件)

vim的几种模式与切换 命令模式 -->esc 编辑模式 -->esc 命令行模式 按esc键切换首次进入为命令模式 按i进入编辑模式 输入:表示命令行模式

字符操作进入编辑模式 a i o A I Oi 当前字符之前插入(光标前)I 行首插入(行首)

a 当前字符之后插入(光标后)A 行尾插入(行尾)

o 下一行插入(另起一行)O 上一行插入(上一行插入)

x 向后删一个字符 等同于deleteX 向前上一个字符

u 撤销一步,每按一次就撤销一次

1.2行操作

home键或^ (shift 6) 行首 $ (shift 4)end键 行尾

删除dddd 删除一行 数字+dd 删除多行

如删除5行,使用5dd

删除光标后全部内容 d+G

复制粘贴yy 复制一行 数字+yy 复制N行p 将复制行粘贴

扩展:剪切 先删除,再粘贴删除到行首 d + HOME 或^ (shift+6)删除到行尾 d + END 或$ (shift+4)

 

1.2-1 V模式进入v模式 移动光标选择区域、编程的时候需要进行多行注释:1、ctrl+v 进入列编辑模式2向下或向上移动光标3把需要注释的行的开头标记起来4然后按大写的I5再插入注释符,比如"#"。6再按Esc,就会全部注释了。

删除:再按ctrl+v 进入列编辑模式;向下或向上移动光标 ;选中注释部分,然后按d, 就会删除注释符号。

1.2-2 VIM命令行模式操作

:w 保存 save:q 没有进行任何修改,退出 quit:q! 修改了,不保存,强制退出:wq 保存并退出 :wq! 强制保存并退出。

:!ifconfig 调用系统命令!+命令

1.3替换格式: %所有内容 s替换 旧的内容 新的内容 默认是每一行的第一个符合要求的词 (/g全部)

:% s/a/b 每一行的第一个a被替换成b:% s/a/b/g 将文本中所有的1替换成5

:2,3 s/a/b/g 全部 #替换2到3行 的5

我们怎么知道是第二行还是第三行呢?:set nu #显示行号set nonu #不显示行号

/ 正向查找 :/san n 往下查找,N 往上查找

我想要编辑写入我的网卡地址,但是我忘记了,我要查看一下,当前在vim编辑文档怎么办呢? 要退出文档吗? 这样好麻烦.

:!ifconfig 调用系统命令!+命令

定位:vim中定位到某行:gg 定位到行首G 定位到最后一行,行首#G 定位到某一行:# 定位到某一行#gg 定位到某一行 #代表行号

读取其他文件:r /etc/passwd保存退出 :wq1.3-3vim打开多个文件:[root@xuegod60 ~]# vim -o /etc/passwd /etc/hosts[root@xuegod60 ~]# vim -O /etc/passwd /etc/hostsctrl+ww 在文件之间进行切换

大写O左右分屏,小写的o上下分屏

在windows中编辑好的汉字文本文档,上传到Linux下打开乱码,解决方法安装工具iconv 安装包名glibc-common

通过iconv命令转码输入/输出格式规范:

-f, --from-code=名称 原始文本编码-o, --output=FILE 输出文件-l, --list 列举所有已知的字符集GB2312编码适用于汉字处理、格式: Iconv -f 编码 源文件 -o 转换后文件[root@xuegod60 ~]# iconv -f gb2312 san.txt -o new.txt¥列如

1.4 数据误删除恢复删除文件和文件夹rm -rf 文件名或目录名-r 递归删除(可以删除目录和目录里面的东西)-f 强行删除

ext4文件系统上删除文件,可以恢复: extundeletewindows恢复误删除的文件: final data v2.0 汉化版 和 easyrecovery

Linux文件系统由三部分组成:文件名,inode,block

a.txt -->inode -> block文件名 存放文件元数据信息 真正存放数据

查看inode号:常识: 每个文件,最少有一个inode号。[root@xuegod63 ~]# ls -i a.txt 393788 a.txt

查看inode中的文件属性; 通过stat命令查看inode中包含的内容[root@xuegod63 ~]# stat a.txt #查看inode信息: File: `a.txt' Size: 1720 Blocks: 8 IO Block: 4096 regular fileDevice: 802h/2050d Inode: 393788 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2015-10-25 10:21:07.368552471 +0800Modify: 2015-10-25 10:21:02.773527478 +0800Change: 2015-10-25 10:21:02.773527478 +0800

block块:真正存储数据的地方块 2M 数据 101M

为什么删除比复制快?因为删除只删除了文件名,元数据并未被删除误删除后:为了保证数据不被覆盖丢失,可以把误删除的那个分区卸载或只读挂载(因为写入数据会占用inode号,有可能会覆盖)

stat:查看设备inode号和块大小 ls -i 文件 :查看inode号编译安装工具 extundelete

安装tree可以查看目录结构 语法 tree 目录

extundelete 恢复方法

开始恢复:方法1:通过inode结点恢复方法二:通过文件名恢复方法三:恢复某个目录,如目录a下的所有文件:方法四:恢复所有的文件

准备测试文件后通过inode结点查看被删除的文件名字:[root@xuegod63 test]# extundelete /dev/sdb1 --inode 2

方法1:通过inode结点恢复[root@xuegod63 test]# extundelete /dev/sdb1 --restore-inode 12[root@xuegod63 test]# diff /etc/passwd RECOVERED_FILES/file.12 # 没有任何输出,说明一样

方法二,通过文件名恢复[root@xuegod63 test]# extundelete /dev/sdb1 --restore-file passwd

方法三:恢复某个目录,如目录a下的所有文件:[root@xuegod63 test]# extundelete /dev/sdb1 --restore-directory a[root@xuegod63 test]# tree RECOVERED_FILES/a/├── a.txt└── b└── a.txt

方法四:恢复所有的文件[root@xuegod63 test]# extundelete /dev/sdb1 --restore-all

[root@xuegod63 test]# tree RECOVERED_FILES/RECOVERED_FILES/├── a│ ├── a.txt│ └── b│ └── a.txt├── hosts└── passwd

这是删除前的数据:[root@xuegod63 ~]# tree /tmp/sda4//tmp/sda4/├── a│ ├── a.txt│ └── b│ ├── a.txt│ ├── c #空目录│ └── kong.txt #空文件├── hosts├── lost+found└── passwd

extundelete在恢复文件的时候能不能自动创建空文件和目录?答:不能。REHL7 xfs系统 可以的总结:方法1:通过inode结点恢复方法二:通过文件名恢复方法三:恢复某个目录,如目录a下的所有文件:方法四:恢复所有的文件

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有