本人从事IT行业已有十多年,有着丰富的实战经验,总结了大量的学习方法,更是积累了很多的学习资料,很高兴能在这里跟大家交流学习,希望能在这里跟大家共同进步和成长!
全套视频学习资料链接:
本节所讲内容:
4.1 vim的使用
4.2 实战:恢复ext4文件系统下误删除的文件
4.3 实战:使用xfs_undelete恢复误删除文件
4.4 实战:使用xmanager等远程连接工具管理Linux
vim命令模式
问:vi和vim是同一个软件包安装的吗?
答:NO,vim是vi的增加版,最明显的区别就是vim可以语法加亮,它完全兼容vi
查看一个命令,是哪个软件包,安装的:
[root@xuegod63 ~]# rpm -qf /usr/bin/vim
[root@xuegod63 ]# which vim
[root@xuegod63 ]# rpm -qf which vim #</strong><strong>反引号,esc按键下的键,反引号中可执行命令</strong></strong></p><p><strong><strong>[root@</strong><strong>xuegod63</strong><strong> ~]# rpm -qf </strong><strong>$</strong><strong>(which vi) #</strong><strong>$</strong><strong>(</strong><strong>可执行命令</strong><strong>)</strong></strong></p><p><strong><strong>$</strong><strong>() </strong><strong>与` 都可以进行命令替换,命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行
1.Vim常用4种模式.
正常模式(Normal mode,俗称命令模式) ,命令行模式(Command-line mode)
插入模式(Insert mode ,俗称编辑模式), 可视模式(Visual mode,俗称可视块模式)
[root@xuegod63 ~]# cp /etc/passwd a.txt
[root@xuegod63 ~]# vim a.txt
首次进入文件 —-正常模式(Normal mode,俗称命令模式)
按下I键,出现 “Insert” —-插入模式(Insert mode ,俗称编辑模式)
按Esc键,再输入冒号: —-命令行模式(Command-line mode)
例1从编辑模式到命令行模式怎样切换?
编辑模式->esc->命令模式->: ->命令行模式
注意在命令模式下,输入命令无效时,检查下输入法是不是中文输入法,切换为英文输入法
例2字符操作(怎样进入编辑模式?)
进入编辑模式 a i o A I O
说明:
i 当前字符之前插入 (光标前)
I 行首插入 (行首)
a 当前字符之后插入 (光标后)
A 行尾插入(行尾)
o下一行插入 (另起一行)
O上一行插入(上一行插入)
x 向后删除一个字符 等同于delete
X 向前删除一个字符
u 撤销一步 每按一次就撤销一次
ctrl+r 恢复,每按一次就恢复一次
r 替换
1、光标定位
hjkl 左下上右
0 和 home键表示切换到行首, \(和end键表示切换到行尾</strong></p><p><strong>gg 快速定位到文档的首行 , G定位到未行</strong></p><p><strong>3gg 或者 3G 快速定位到第3行</strong></p><p><strong>/string(字符串) -----找到或定位你要找的单词或内容然后敲回车,如果相符内容比较多,我们可以通过N、n来进行向上向下查找,并且vim会对查找到的内容进行高亮显示,取消高亮用 :noh </strong></p><p><strong>/^d ----尖括号^意思表示以什么开头 ,查找以字母d开头的内容</strong></p><p><strong>/bash\) —–\(意思表示以什么结尾,查找以字母bash结尾的内容</strong></p><p><strong><strong>vim + /etc/passwd</strong><strong> 打开文件后,光标会自动位于文件的最后一行。 了解一下这个技巧。</strong></strong></p><p><strong><strong>vim +23 /etc/passwd</strong><strong> 打开文件后,光标会自动位于文件的第23行,方便后期排错。</strong><strong>如:服务器启动报错,第23,有语法错误。使用vim +23 </strong><strong>/etc/passwd</strong><strong>可以快速定位到23行。</strong></strong></p><p><br></p><p><strong>分享心得:我更喜欢vim打开文件,然后按G,跳到最后。 因这个vim + a.txt 技巧不常用,过一段时间肯定会忘。Linux中有太多的小技巧,大家应该记那些常用的。</strong></p><p><br></p><p><strong>2、在正常模式对文本进行编辑</strong></p><p><strong>删除、复制、粘贴、撤销</strong></p><p><strong>yy复制整行 </strong></p><p><strong>复制N行: Nyy ,比如: 2yy ,表示复制2行</strong></p><p><strong>dd(删除,以行为单位,删除当前光标所在行)</strong></p><p><strong>删除N行: Ndd ,比如: 2dd ,表示删除2行</strong></p><p><strong>p : P粘贴</strong></p><p><strong>剪切: dd</strong></p><p><strong>x 删除光标所在位置的字符</strong></p><p><strong>D 从光标处删除到行尾</strong></p><p><strong>u 撤销操作 </strong></p><p><strong>ctrl+r 还原撤销过的操作,将做过的撤销操作再还原回去,也就是说撤销前是什么样,再还原成什么样</strong></p><p><strong>r 替换,或者说用来修改一个字符</strong></p><p><br></p><p><strong>总结:vim如何进入其它模式</strong></p><p><strong>a A o O i I 都是可以进行插入,编辑模式</strong></p><p><strong>: 进入命令行模式</strong></p><p><strong>ctrl+v 进入可视块模式</strong></p><p><strong>R 擦除、改写,进入替换模式</strong></p><p><strong>你进入以上模式后,想要退出 ,按esc</strong></p><p><br></p><p><strong><strong>编程</strong><strong>或修改服务器配置文件</strong><strong>的时候</strong><strong>,</strong><strong>需要进行</strong><strong>多行注释</strong><strong>,会使用Visual模式。</strong></strong></p><p><strong>1、进入Visual模式的批量删除,方法如下:</strong></p><p><strong><strong>删除:再按ctrl+v 进入</strong><strong>可视块模</strong><strong>式</strong><strong>;</strong><strong>向下或向上移动光标</strong><strong> ;</strong><strong>选中</strong><strong>部分内容</strong><strong>,然后按d, 就会删除注释符号。</strong></strong></p><p><strong><strong>例:将</strong><strong>sshd_config</strong><strong> 文件中17行到20行前面的#号删除</strong></strong></p><p><strong>[root@xuegod63 ~]# vim /etc/ssh/sshd_config</strong></p><p><strong>改:</strong></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><strong> 为:</strong></p><p><br></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><br></p><p><strong>2、进入Visual模式的批量修改,方法如下:</strong></p><p><strong><strong>1</strong><strong>)</strong><strong>、ctrl+v 进入列编辑模式</strong></strong></p><p><strong><strong>2)、</strong><strong>向下或向上移动光标</strong><strong>,</strong><strong>把需要注释</strong><strong>、编辑</strong><strong>的行的开头</strong><strong>选中</strong><strong>起来</strong></strong></p><p><strong><strong>4)、</strong><strong>然后按大写的</strong><strong>I</strong></strong></p><p><strong><strong>5)、</strong><strong>再插入注释符</strong><strong>或者你需要插入的符号</strong><strong>,比如"</strong><strong>#</strong><strong>"</strong></strong></p><p><strong><strong>6)、</strong><strong>再按Esc,就会全部注释</strong><strong>或添加</strong><strong>了</strong></strong></p><p><strong><strong>例:在</strong><strong>sshd_config</strong><strong> 文件中17行到20行前面加一个#号</strong></strong></p><p><strong>[root@xuegod63 ~]# vim /etc/ssh/sshd_config</strong></p><p><strong>改:</strong></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><br></p><p><strong>为:</strong></p><p> </p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><br></p><p><br></p><p><strong><strong>1、命令行模式</strong><strong>Command-line</strong><strong>操作技巧</strong></strong></p><p><strong><strong>:</strong><strong>w 保存 save</strong></strong></p><p><strong><strong>:</strong><strong>w</strong><strong>!</strong><strong> </strong><strong>强制</strong><strong>保存</strong></strong></p><p><strong><strong>:q </strong><strong>没有进行任何修改,</strong><strong>退出 quit</strong></strong></p><p><strong><strong>:q! </strong><strong>修改了,不保存,</strong><strong>强制退出</strong></strong></p><p><strong>:wq 保存并退出 </strong></p><p><strong><strong>:</strong><strong>wq!</strong><strong> 强制保存并退出</strong></strong></p><p><strong>:x 保存退出</strong></p><p><strong>:e! 复原,恢复到文件打开后,没有进行修改时的状态。 修改了很多,不想保存,想复原,按:e!</strong></p><p><strong>在正常模式下,按下大写的ZZ,也可以保存并退出</strong></p><p><br></p><p><strong><strong>例:</strong><strong> wq!</strong><strong> 强制保存并退出</strong></strong></p><p><strong>[root@xuegod63 ~]# ll /etc/shadow</strong></p><p><strong>----------. 1 root root 1179 9月 19 12:57 /etc/shadow</strong></p><p><strong>[root@xuegod63 ~]# vim /etc/shadow</strong></p><p><br></p><p><strong>例1:调用外部文件或命令</strong></p><p><strong><strong>语法:在命令行模式下输入: !</strong><strong>+</strong><strong>命令</strong></strong></p><p><strong>例:在vim编辑文档写要写入MAC地址。</strong></p><p><strong>[root@xuegod63 ~]# cp /etc/passwd a.txt</strong></p><p><strong>[root@xuegod63 ~]# vim a.txt</strong></p><p><strong><strong>:!ifconfig</strong><strong> </strong><strong> #在vim中调用ifconfig命令</strong></strong></p><p><strong>读取其他文件。(把其他文件中的内容追加到当前文档中)</strong></p><p><strong>:r /etc/hosts</strong></p><p><br></p><p><strong>2、文本替换</strong></p><p><strong><strong>格式 :</strong><strong> </strong><strong>范围(其中%所有内容) s分隔符 旧的内容 分隔符 新的内容 (分隔符可以自定义)</strong></strong></p><p><strong>默认是每一行的第一个符合要求的词 (/g全部)</strong></p><p><strong>[root@xuegod63 ~]# vim a.txt</strong></p><p><strong>:1,3 s/bin/xuegod #替换第1到3行中出现的第一个bin进行替换为xuegod</strong></p><p><strong>:1,3 s/bin/xuegod/g #替换第1到3行中查找到所有的bin进行替换为xuegod</strong></p><p><strong><strong>:3 s/xue/aaaaa</strong><strong>/g #只把第3行中所有xue替换为aaaaa了</strong></strong></p><p><strong>修改a.txt ,先在文件中随意插入几个do 和DO 字符</strong></p><p><strong><strong>:% s/</strong><strong>do</strong><strong>/</strong><strong>xuegod</strong><strong>/g</strong><strong> #</strong><strong>将文本中所有的</strong><strong>do</strong><strong>替换成</strong><strong>xuegod</strong></strong></p><p><strong><strong>:% s/</strong><strong>do</strong><strong>/</strong><strong>xuegod</strong><strong>/g</strong><strong>i</strong><strong> </strong><strong> #</strong><strong>将文本中所有的</strong><strong>do</strong><strong>替换成</strong><strong>xuegod, 并且忽略do的大小写</strong></strong></p><p><strong><strong>:% s</strong><strong>@xuegod@do@</strong><strong>g</strong><strong> </strong><strong>#</strong><strong>将文本中所有的</strong><strong>xuegod</strong><strong>替换成</strong><strong>do,替换时,也可以使用@做分隔符</strong></strong></p><p><br></p><p><strong>1、临时设置</strong></p><p><strong><strong>[root@xuegod63 ~]# vim a.txt</strong><strong> </strong></strong></p><p><strong>:set nu 设置行号</strong></p><p><strong>:set nonu 取消设置行号</strong></p><p><strong>:noh 取消高亮显示</strong></p><p><strong>2、永久设置环境</strong></p><p><strong>vim /etc/vimrc #设置后会影响到系统所有的用户</strong></p><p><strong>~/.vimrc #在用户的家目录下,创建一个.vimrc。这样只影响到某一个用户,没有自己建一个</strong></p><p><strong>例1:临时定制vim开启显示行号功能</strong></p><p><strong><strong>[root@xuegod63 ~]# </strong><strong>echo "</strong><strong>set nu</strong><strong>"</strong><strong> </strong><strong>> </strong><strong> /root/</strong><strong>.</strong><strong>vimrc</strong><strong> </strong></strong></p><p><strong><strong>[root@xuegod63 ~]# vim /etc/passwd</strong><strong> #发现默认已经有行号了</strong></strong></p><p><br></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><strong>3、vim打开多个文件</strong></p><p><strong>方法1:以上下形势,打开两个文档</strong></p><p><strong>[root@xuegod63 ~]# vim -o /etc/passwd /etc/hosts</strong></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p> <strong>注:输入 :qa 一次退出所有打开的文件</strong></p><p><strong>方法2:以左右方式打开两个文档</strong></p><p><strong>[root@xuegod63 ~]# vim -O /etc/passwd /etc/hosts</strong></p><p><strong>注:ctrl+ww 在两文档之间进行切换编辑。大写O左右分屏,小写的o上下分屏</strong></p><p><br></p><p><strong>比较两个文件内容</strong></p><p><strong>[root@xuegod63 ~]# cp /etc/passwd mima.txt</strong></p><p><strong>[root@xuegod63 ~]# echo aaa >> mima.txt </strong></p><p><strong>方法1:</strong></p><p><strong>[root@xuegod63 ~]# diff /etc/passwd mima.txt </strong></p><p><strong>40a41</strong></p><p><strong>> aaa</strong></p><p><strong>方法2:</strong></p><p><strong>[root@xuegod63 ~]# vimdiff /etc/passwd mima.txt</strong></p><p><br></p><p><strong>nano编辑器</strong></p><p><strong>emacs编辑器</strong></p><p><strong>GHOME编辑器gedit</strong></p><p><strong>例:</strong></p><p><strong>[root@xuegod63 ~]# gedit /etc/passwd</strong></p><p><br></p><p><strong>实验环境:centos8 现在系统默认使用的语言是汉语。(系统中必须安装好中文包)。</strong></p><p><strong><strong>将同目录下“a</strong><strong>aa</strong><strong>此文件在windows下打开正常-到linux下vim打开是乱码.txt”上传到Linux服务器上。使用ssh远程连接到Linux上,使用vim打开显示乱码。</strong></strong></p><p><strong>原因:编码的问题</strong></p><p><strong>通过iconv命令转码 </strong></p><p><strong>参数:</strong></p><p><strong>-f, --from-code=名称 原始文本编码</strong></p><p><strong>-t, --to-code=输出编码</strong></p><p><strong>-o, --output=FILE 输出文件名</strong></p><p><strong><strong>[root@xuegod63 ~]# mkdir test</strong><strong> #创建一个测试目录</strong></strong></p><p><strong>[root@xuegod63 ~]# cd test/</strong></p><p><strong>将测试的文件上传到Linux服务器上:</strong></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><br></p><p><strong>[root@xuegod63 ~]# iconv -f gb2312 -t utf8 aaa此文件在windows下打开正常-到linux下vim打开是乱码.txt -o abc.txt</strong></p><p><strong><strong>[root@xuegod63 ~]# cat </strong><strong>abc</strong><strong>.txt </strong></strong></p><p><strong>#!/bin/bash</strong></p><p><strong>echo "学神IT"</strong></p><p><br></p><p><br></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><strong><strong>[root@xuegod63 ~]# rm -</strong><strong>r</strong><strong>f /</strong><strong> #这个可以执行成功吗? 执行不成功的,</strong></strong></p><p><strong>rm: 在"/" 进行递归操作十分危险</strong></p><p><strong>rm: 使用 --no-preserve-root 选项跳过安全模式</strong></p><p><strong><strong>[root@xuegod63 ~]# rm -rf /*</strong><strong> #这个可以执行成功。</strong></strong></p><p><br></p><p><strong><strong>ext4文件系统上删除文件,可以恢复: extundelete ,ext3恢复使用:</strong><strong>ext3grep</strong></strong></p><p><strong><strong>windows恢复误删除的文件: final data v2.0 汉化版 和 </strong><strong>easyrecovery</strong><strong> </strong></strong></p><p><strong>xfs文件系统上删除文件,暂时没有太好的办法进行完全恢复,需要找专业数据恢复公司</strong></p><p><br></p><p><strong>扩展:</strong></p><p><strong>Linux文件系统由三部分组成:文件名,inode,block</strong></p><p><strong>windows也由这三部分组成。</strong></p><p><strong><strong>a.txt </strong><strong> </strong><strong>-->inode </strong><strong> -</strong><strong>-> block</strong></strong></p><p><strong>文件名 存放文件元数据信息 真正存放数据</strong></p><p><strong>查看文件文件名:</strong></p><p><strong>[root@xuegod63 ~]# cp /etc/passwd a.txt </strong></p><p><strong>[root@xuegod63 ~]# ls a.txt </strong></p><p><strong>a.txt</strong></p><p><br></p><p><strong>查看inode号:</strong></p><p><strong>常识: 每个文件,有一个inode号。</strong></p><p><strong>[root@xuegod63 ~]# ls -i a.txt</strong></p><p><strong> a.txt</strong></p><p><strong>查看inode中的文件属性; 通过stat命令查看inode中包含的内容</strong></p><p><strong>[root@xuegod63 ~]# stat a.txt #查看inode信息:</strong></p><p><strong>[root@xuegod63 ~]# ls -l a.txt </strong></p><p><strong>-rw-r--r-- 1 root root 1720 Oct 25 10:21 a.txt</strong></p><p><br></p><p><strong>block块:真正存储数据的地方</strong></p><p><strong>逻辑删除: </strong></p><p><strong>为什么删除比复制快?</strong></p><p><br></p><p><br></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p> </p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><br></p><p><strong>误删除文件后,第一件事要做什么??? 你不心删除把存了几十年的大片删除了。</strong></p><p><strong>避免误删除的文件内容被覆盖。 如何避免?</strong></p><p><strong><strong>卸载需要恢复文件的分区</strong><strong>或以只读的方式挂载</strong></strong></p><p><br></p><p><strong>下载extundelete</strong></p><p><strong><strong>http://sourceforge.net/</strong><strong> 开源软件发布中心</strong></strong></p><p><strong>准备测试分区:</strong></p><p><strong>先添加一块硬盘</strong></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span></p><p><br></p><p><br></p><p><strong><strong>[root@xuegod63 /]# fdisk /dev/sd</strong><strong>b #创建一个sdb1分区</strong></strong></p><p><br></p><p><strong>WARNING: DOS-compatible mode is deprecated. It's strongly recommended to</strong></p><p><strong> switch off the mode (command 'c') and change display units to</strong></p><p><strong> sectors (command 'u').</strong></p><p><br></p><p><strong><strong>Command (m for help): </strong><strong>p</strong><strong> #查看现有分区表</strong></strong></p><p><br></p><p><strong>Disk /dev/sda: 21.5 GB, bytes</strong></p><p><strong>255 heads, 63 sectors/track, 2610 cylinders</strong></p><p><strong>Units = cylinders of 16065 * 512 = bytes</strong></p><p><strong>Sector size (logical/physical): 512 bytes / 512 bytes</strong></p><p><strong>I/O size (minimum/optimal): 512 bytes / 512 bytes</strong></p><p><strong>Disk identifier: 0x000b8b35</strong></p><p><br></p><p><strong> Device Boot Start End Blocks Id System</strong></p><p><strong>/dev/sda1 * 1 26 83 Linux</strong></p><p><strong>Partition 1 does not end on cylinder boundary.</strong></p><p><strong>/dev/sda2 26 1301 83 Linux</strong></p><p><strong>/dev/sda3 1301 1428 82 Linux swap / Solaris</strong></p><p><br></p><p><strong><strong>Command (m for help): </strong><strong>n</strong><strong> #创建一个新分区</strong></strong></p><p><strong>Command action</strong></p><p><strong> e extended</strong></p><p><strong> p primary partition (1-4)</strong></p><p><strong><strong>p</strong><strong> #创建一个主分区</strong></strong></p><p><strong>Selected partition 4</strong></p><p><strong>First cylinder (1428-2610, default 1428): </strong></p><p><strong>Using default value 1428</strong></p><p><strong><strong>Last cylinder, +cylinders or +size{K,M,G} (1428-2610, default 2610): </strong><strong>+1G </strong><strong> #指定分区大小</strong></strong></p><p><br></p><p><strong><strong>Command (m for help):</strong><strong> w</strong><strong> #保存</strong></strong></p><p><strong>The partition table has been altered!</strong></p><p><br></p><p><strong>Calling ioctl() to re-read partition table.</strong></p><p><br></p><p><strong>WARNING: Re-reading the partition table failed with error 16: Device or resource busy.</strong></p><p><strong>The kernel still uses the old table. The new table will be used at</strong></p><p><strong>the next reboot or after you run partprobe(8) or kpartx(8)</strong></p><p><strong>Syncing disks.</strong></p><p><strong>[root@xuegod63 ~]#reboot</strong></p><p><strong>或</strong></p><p><strong>[root@xuegod63 ~]# partx -a /dev/sdb #获得新分区表</strong></p><p><strong>扩展:</strong></p><p><strong>如果在根下删除文件了,想恢复,怎么办? </strong></p><p><strong>方法1: 立即断电,然后把磁盘以只读方式,挂载到另一个电脑中进行恢复</strong></p><p><strong>方法2:把extundelete在虚拟机上(虚拟机系统要和服务器版本一样),提前安装好后再复制到U盘中,把U盘插入服务器,恢复时,恢复的文件要保存到U盘中,(不要让恢复的数据写到/下,那样会覆盖之前删除的文件)</strong></p><p><br></p><p><strong>使用新的分区表:</strong></p><p><strong><strong>[root@xuegod63 /]# mkdir /tmp/sd</strong><strong>b</strong><strong>1</strong><strong> #创建挂载点</strong></strong></p><p><strong><strong>[root@xuegod63 ~]# mkfs</strong><strong>.ext4</strong><strong> /dev/sdb1</strong><strong> #格式化</strong></strong></p><p><strong><strong>[root@xuegod63 ~]# mount /dev/sdb1 /tmp/sdb1</strong><strong> #挂载</strong></strong></p><p><br></p><p><strong>复制一些测试文件,然后把这些文件再删除,然后演示恢复:</strong></p><p><strong>[root@xuegod63 ~]# cp /etc/passwd /tmp/sdb1</strong></p><p><strong>[root@xuegod63 ~]# cp /etc/hosts /tmp/sdb1</strong></p><p><strong>[root@xuegod63 ~]# echo aaa > a.txt</strong></p><p><strong>[root@xuegod63 ~]# mkdir -p /tmp/sdb1/a/b/c</strong></p><p><strong>[root@xuegod63 ~]# cp a.txt /tmp/sdb1/a</strong></p><p><strong>[root@xuegod63 ~]# cp a.txt /tmp/sdb1/a/b</strong></p><p><strong>[root@xuegod63 ~]# touch /tmp/sdb1/a/b/kong.txt</strong></p><p><strong>安装tree命令:</strong></p><p><strong>[root@xuegod63 ~]# rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm</strong></p><p><strong>[root@xuegod63 ~]# tree /tmp/sdb1</strong></p><p><strong>/tmp/sdb1/</strong></p><p><strong>├── a</strong></p><p><strong>│ ├── a.txt</strong></p><p><strong>│ └── b</strong></p><p><strong>│ ├── a.txt</strong></p><p><strong>│ ├── c #空目录</strong></p><p><strong>│ └── kong.txt #空文件</strong></p><p><strong>├── hosts</strong></p><p><strong>├── lost+found</strong></p><p><strong>└── passwd</strong></p><p><br></p><p><strong>lost+found</strong></p><p><strong>使用标准的ext3/ext4档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。</strong></p><p><strong><strong>可以删除 </strong><strong>rm -rf lost+found</strong></strong></p><p><strong><strong>可以创建 mk</strong><strong>lost+found</strong></strong></p><p><br></p><p><strong>删除文件:</strong></p><p><strong>[root@xuegod63 ~]# cd /tmp/sdb1/</strong></p><p><strong>[root@xuegod63 sdb1]# ls</strong></p><p><strong>a hosts lost+found passwd</strong></p><p><strong>[root@xuegod63 sdb1]# rm -rf a hosts passwd </strong></p><p><br></p><p><strong>误删除文件后,第一件事要做什么???</strong></p><p><strong>如何避免误删除的文件内容被覆盖???</strong></p><p><strong><strong>卸载需要恢复文件的分区</strong><strong>:或以只读的方式挂载</strong></strong></p><p><strong><strong>[root@localhost ~]#</strong><strong>cd /root</strong></strong></p><p><strong>[root@localhost ~]# umount /tmp/sdb1</strong></p><p><br></p><p><strong><strong>上传</strong><strong>extundelete</strong><strong>到linux中:</strong></strong></p><p><strong><strong>从windows上传</strong><strong>extundelete</strong><strong>文件到linux,安装xmanager v5 或者CRT</strong></strong></p><p><strong>[root@xuegod63 ~]# rpm -ivh /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm </strong></p><p><strong>安装后,就有了rz命令和sz命令</strong></p><p><strong>rz : 上传windows中的文件到linux</strong></p><p><strong><strong>sz</strong><strong> </strong><strong>文件名 :下载,将linux中的文件传到windows</strong></strong></p><p><br></p><p><strong><strong>解压并安装</strong><strong>extundelet</strong></strong></p><p><strong>[root@centos63~]#mount /dev/sr0 /mnt</strong></p><p><strong>[root@centos63~]# vim /etc/yum.repos.d/Centos-6.repo</strong></p><p><strong>[CentOS6]</strong></p><p><strong>name=CentOS-server</strong></p><p><strong>baseurl=file:///mnt</strong></p><p><strong>enabled=1</strong></p><p><strong>gpgcheck=0</strong></p><p><strong><strong>[root@xuegod63]#</strong><strong> yum </strong><strong>-</strong><strong>y</strong><strong> </strong><strong>install </strong><strong>e2fsprogs-devel gcc gcc-c++ gcc-g77</strong></strong></p><p><strong>[root@xuegod63 extundelete-0.2.4]# tar xf extundelete-0.2.4.tar.bz2 </strong></p><p><strong>[root@xuegod63 ~]# cd extundelete-0.2.4</strong></p><p><strong><strong>[root@xuegod63 extundelete-0.2.4]# https://www.bilibili.com/read/cv/configure </strong><strong> #检查系统安装环境</strong></strong></p><p><strong><strong>[root@xuegod63 extundelete-0.2.4]# make</strong><strong> -j </strong><strong> </strong><strong>4 #编译,把源代码编译成可执行的二进制文件。 </strong></strong></p><p><strong><strong>-j 4 </strong><strong> 使用4进程同时编译,提升编译速度 或 使用4核CPU同时编译。</strong></strong></p><p><strong><strong>[root@xuegod63 extundelete-0.2.4]# make install</strong><strong> #安装</strong></strong></p><p><br></p><p><strong>install 和cp 有什么区别? </strong></p><p><strong>install 复制时可以指定权限 cp不可以</strong></p><p><strong>例:</strong></p><p><strong>[root@xuegod63 ~]# install -m 777 /bin/find /opt/find</strong></p><p><strong>[root@xuegod63 ~]# ll /opt/</strong></p><p><strong>方法1:通过inode结点恢复</strong></p><p><strong>方法二:通过文件名恢复</strong></p><p><strong>方法三:恢复某个目录,如目录a下的所有文件:</strong></p><p><strong>方法四:恢复所有的文件</strong></p><p><br></p><p><strong>[root@xuegod63 ~]# umount /tmp/sdb1/ </strong></p><p><strong><strong>[root@xuegod63 ~]# mkdir test</strong><strong> #创建一个目录使用于存放恢复的数据</strong></strong></p><p><strong>[root@xuegod63 ~]# cd test/</strong></p><p><br></p><p><strong>方法1:</strong></p><p><strong>通过inode结点查看被删除的文件名字:</strong></p><p><strong>[root@xuegod63 test]# extundelete /dev/sdb1 --inode 2</strong></p><p><strong>. 2</strong></p><p><strong>lost+found 11</strong></p><p><strong>passwd 12 Deleted</strong></p><p><strong>hosts 13 Deleted</strong></p><p><strong>a 7313 Deleted</strong></p><p><strong>扩展:ext4文件系统的分区根目录的inode值为2,xfs分区根目录的inode值为64</strong></p><p><strong><strong>[root@xuegod63 test]# ls -id /</strong><strong> #xfs文件系统</strong></strong></p><p><strong><strong>64</strong><strong> /</strong></strong></p><p><strong>[root@xuegod63 test]# mount /dev/sdb1 /tmp/sdb1/</strong></p><p><strong>[root@xuegod63 test]# ls -id /tmp/sdb1/</strong></p><p><strong><strong>2</strong><strong> /tmp/sdb1/</strong></strong></p><p><strong>[root@xuegod63 test]# umount /tmp/sdb1/</strong></p><p><br></p><p><strong><strong>方法1:</strong><strong>通过inode结点恢复</strong></strong></p><p><strong><strong>[root@xuegod63 test]# extundelete /dev/sdb1 --restore-</strong><strong>inode</strong><strong> 12</strong></strong></p><p><strong>NOTICE: Extended attributes are not restored.</strong></p><p><strong>Loading filesystem metadata ... 9 groups loaded.</strong></p><p><strong>Loading journal descriptors ... 63 descriptors loaded.</strong></p><p><strong>[root@xuegod63 test]# ls </strong></p><p><strong>RECOVERED_FILES</strong></p><p><strong><strong>[root@xuegod63 test]# diff /etc/passwd RECOVERED_FILES/file.12</strong><strong> </strong></strong></p><p><strong>#没有任何输出,说明一样</strong></p><p><strong>方法二,通过文件名恢复</strong></p><p><strong><strong>[root@xuegod63 test]# extundelete /dev/sdb1 --restore-</strong><strong>file </strong><strong>hosts</strong></strong></p><p><strong><strong>[root@xuegod63 test]# diff /etc/passwd RECOVERED_FILES/hosts</strong><strong> </strong></strong></p><p><strong>#没有任何输出,说明一样</strong></p><p><strong><strong>方法三:</strong><strong>恢复某个目录</strong><strong>,如目录a下的所有文件:</strong></strong></p><p><strong><strong>[root@xuegod63 test]# extundelete /dev/sdb1 --restore-</strong><strong>directory a</strong></strong></p><p><strong>[root@xuegod63 test]# tree RECOVERED_FILES/a/</strong></p><p><strong>RECOVERED_FILES/a/</strong></p><p><strong>├── a.txt</strong></p><p><strong>└── b</strong></p><p><strong>下面是原来的目录结构:</strong></p><p><strong>[root@xuegod63 ~]# tree /root/sdb1-back/a/</strong></p><p><strong>/root/sdb1-back/a/</strong></p><p><strong>└── b</strong></p><p><strong> ├── a.txt</strong></p><p><strong><strong> ├── </strong><strong>c</strong></strong></p><p><strong><strong> </strong><strong>└── </strong><strong>kong.txt</strong></strong></p><p><br></p><p><strong><strong>方法四:</strong><strong>恢复所有的文件</strong></strong></p><p><strong>[root@centos6 test]# rm -rf RECOVERED_FILES/</strong></p><p><strong><strong>[root@xuegod63 test]# extundelete /dev/sdb1 --restore-</strong><strong>all</strong></strong></p><p><strong>[root@centos6 test]# tree RECOVERED_FILES/</strong></p><p><strong>删除前后的数据:</strong></p><p><br></p><p><span class="cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected"><span class="cke_image_resizer"></span></span><strong><strong>eextundelet在恢复文件的时候能不能自动创建空文件和目录</strong><strong>?</strong></strong></p><p> <strong><strong>答:</strong><strong>不能。</strong></strong></p><p><br></p><p><br></p><p><strong><strong>XFS文件系统的取消删除工具——</strong><strong>xfs_undelete</strong><strong>。</strong></strong></p><p><strong><strong>xfs</strong><strong>_</strong><strong>undelete尝试恢复xfs文件系统中标记为已删除的所有文件。</strong></strong></p><p><br></p><p><strong><strong>恢复的文件存储在子目录中的另一个文件系统中,默认情况下,相当于当前目录xfs</strong><strong>_</strong><strong> undelete。文件名无法恢复,它被作为删除时间、inode编号和猜测的文件扩展名。</strong></strong></p><p><br></p><p><strong>环境需求</strong></p><p><strong>先添加一块硬盘,后面会用到</strong></p><p><strong>xfs_undelete是一个小的Tcl脚本,因此需要一个Tcl解释器。它使用了Tcl-8.6的一些特性,所以至少需要这个版本,tclib包用于解析命令行。</strong></p><p><br></p><p><strong><strong>下载t</strong><strong>cl8.6</strong><strong>,t</strong><strong>cllib</strong><strong>和x</strong><strong>fs_undelete</strong></strong></p><p><strong></strong></p><p><strong>https://core.tcl-lang.org/tcllib/technote/cd3a11cde64a19fcd</strong></p><p><strong></strong></p><p><br></p><p><strong><strong>上传软件包到ce</strong><strong>ntos7</strong><strong>系统</strong></strong></p><p><strong><strong>安装t</strong><strong>cl</strong></strong></p><p><strong>[root@xuegod63 ~]# tar xvf tcl8.6.11-src.tar.gz</strong></p><p><strong>[root@xuegod63 ~]# cd tcl8.6.11/unix/</strong></p><p><strong>[root@xuegod63 ~]#https://www.bilibili.com/read/cv/configure</strong></p><p><strong>[root@xuegod63 ~]# echo \)?
[root@xuegod63 ~]# make -j 4 && make install
[root@xuegod63 ~]# echo \(?</strong></p><p><strong>时间很长</strong></p><p><br></p><p><strong><strong>使t</strong><strong>clsh</strong><strong>全局生效加入p</strong><strong>ath</strong><strong>变量</strong></strong></p><p><strong><strong>[root@xuegod63 ~]# mv </strong><strong>/</strong><strong>root/tcl8.6.11 /root/tcl</strong></strong></p><p><strong><strong>[root@xuegod63 ~]# vim /etc/profile</strong><strong> # 在文件最后追加以下内容,永久生效</strong></strong></p><p><strong>export PATH=/root/tcl/unix/:\)PATH
[root@xuegod63 ~]# source /etc/profile #重新加载配置文件,使用配置生效
[root@xuegod63 ~]# echo \(PATH</strong></p><p><br></p><p><br></p><p><strong><strong>安装t</strong><strong>cl</strong><strong>lib</strong></strong></p><p><strong>[root@xuegod63 ~]# tar xf tcllib-1.20.tar.gz</strong></p><p><strong>[root@xuegod63 ~]# cd tcllib-1.20/</strong></p><p><strong>[root@xuegod63 tcllib-1.20]# https://www.bilibili.com/read/cv/configure</strong></p><p><strong>[root@xuegod63 tcllib-1.20]# echo \)?
[root@xuegod63 tcllib-1.20]# make -j 4 && make install
[root@xuegod63 tcllib-1.20]# echo $?
安装xfs_undelete
[root@xuegod63 tcllib-1.20]# cd
[root@xuegod63 ~]# unzip xfs_undelete-master.zip
[root@xuegod63 ~]# cd xfs_undelete-master/
[root@xuegod63 xfs_undelete-master]# https://www.bilibili.com/read/cv/xfs_undelete -h #查看帮助信息
挂载点创建一些测试文件,文件里要有内容,然后删除几个
[root@xuegod63 xfs_undelete-master]# cd
[root@xuegod63 ~]# gdisk /dev/sdb
[root@xuegod63 ~]# mkfs.xfs /dev/sdb1
[root@xuegod63 ~]# mkdir /testsdb1
[root@xuegod63 ~]# mount /dev/sdb1 /testsdb1
[root@xuegod63 ~]# mkdir /testsdb1/kong
[root@xuegod63 ~]# touch /testsdb1/kong.txt
[root@xuegod63 ~]# cp /etc/passwd /testsdb1/
[root@xuegod63 ~]# cp /etc/passwd /testsdb1/kong
[root@xuegod63 ~]# echo “hello world” > /testsdb1/hello.txt
[root@xuegod63 ~]# ls /testsdb1
[root@xuegod63 ~]# rm -rf /testsdb1/*
[root@xuegod63 testsdb1]# cd
[root@xuegod63 ~]# umount /testsdb1
[root@xuegod63 ~]# cd xfs_undelete-master/
[root@xuegod63 xfs_undelete-master]# https://www.bilibili.com/read/cv/xfs_undelete /dev/sdb1
[root@xuegod63 xfs_undelete-master]# cd xfs_undeleted/
[root@xuegod63 xfs_undeleted]# ls
[root@xuegod63 xfs_undeleted]# head 2021-06-08-11-02_68.txt
hello world
直接执行脚本首先会以只读的方式重新挂载,然后恢复,恢复的不是原文件名,但是内容是一样的。
注意需要进入目录才能看到
注意:不会恢复目录和空文件
也可以恢复数据到指定的目录
[root@xuegod63 xfs_undeleted]# cd ..
[root@xuegod63 xfs_undelete-master]# https://www.bilibili.com/read/cv/xfs_undelete -o /opt /dev/sdb1
安装以后打开
1、xshell使用方法
例1:连接一台新的服务器
例2:调整xshell字体大小
例3:调整rz和sz命令的默认路径
例4:解决Xshell中小键盘无法打出数字的问题
例5:解决Xshell不能使用退格、删除键的问题
2、xftp使用方法
例1:上传一个文件夹到Linux服务器上
3、xstart使用方法
方法1:使用xshell直接运行图形界面的程序
例1:[root@xuegod63 ~]# gnome-terminal
例2:[root@xuegod63 ~]# firefox &
方法2:使用xstart调用桌面
注:使用MK给的xmanger5安装后,后期运行,提示更新到新版本, 你不要更新,更新,有可能序列号就不能使用了。
https://www.netsarang.com/zh/free-for-home-school/
也可以下载官方免费版
更多学习资料以及视频资料请移步至公众号【学神来啦】

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/170688.html