• 第六天 vim编辑的使用和Xmanager远程工具的使用


    1.1 vim主要模式介绍,vim命令模式

    使用命令

     1 vim [file name]

    有三种主要模式:命令模式、编辑模式、命令行模式

    在vim中主要使用快捷键进行操作,详见:http://www.cnblogs.com/xiaogan/p/5732780.html

    这篇文章看完,基本搞定!!!基本的vim设置如下:(将代码复制后,保存为.vimrc 文件,保存在用户目录下即可)

    set nu
    syntax on
    set softtabstop=4
    set shiftwidth=4
    set expandtab
    set guioptions-=T
    set nobackup
    set formatoptions=tcrqn
    set cindent
    set smartindent
    set incsearch
    set autoindent
    set fileencodings=ucs-bom,utf-8,chinese
    set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI

    vim中还有一个视图模式,当要在多行进行相同操作时使用:

    第一步:将光标移动到要操作行的对应位置

    第二步:ctrl + v 进入视图模式

    第三步:移动光标选中要操作的其他行

    第四步:输入大写的i,填写要添加的内容,然后Esc退出即可

    若要删除,同样如此;

    1.2 实战-解决vim打开之后乱码乱行的问题-----(转码工具 iconv 的使用)

    从windows中上传一个文本文档到Linux中,查看其内容,会发现是乱码。因为两个系统使用的编码不一致,而造成的。一般在windows中中文编码使用的是GB2312,而在Linux中中文编码使用的是UTF-8或其他

    第一步:从windows中上传文本文档到Linux中查看

    首先,修改VMware虚拟网络设置为host-only,已确保Linux虚拟机与Windows宿主机通信。

    然后,查看windows中VMnet1网卡的IP地址与虚拟机网卡IP地址是否在一个网段

    互相ping一下,看看能不能ping通,注意:windows中的防火墙,需要关掉,不然linux虚拟机可能会ping不到

    启动xmanager的xshell,连接虚拟机192.168.171.128

    成功后,使用rz命令,将刚刚在windows中新建的a.txt(a.txt中有输入中文文本)文本传到虚拟机中

    然后,在linux中查看一下

     

    看出现乱码了吧?!

    这就用到了今天需要的工具,iconv

    查看一下,系统是否安装了这个软件包:

     1 which iconv 

    查看软件包版本:(注:那个·是键盘左上角,1左边的键)

    rpm -qf `which iconv`

    若没有安装,使用如下命令,进行安装:(注:已默认将RHEL7.2镜像文件挂载到/mnt目录下

    rpm -ivh /mnt/Packages/glibc-common-2.17-105.el7.x86_64.rpm 

    然后,使用命令iconv对上传的文件a.txt进行转码:

    iconv -f GB2312 a.txt -o aaa.txt

    在查看一下新生成的文件,Ok一切搞定!!!

    附:iconv帮助文档

    [root@xiaogan ~]# iconv --help
    Usage: iconv [OPTION...] [FILE...]
    Convert encoding of given files from one encoding to another.
    
     Input/Output format specification:
      -f, --from-code=NAME       encoding of original text
      -t, --to-code=NAME         encoding for output
    
     Information:
      -l, --list                 list all known coded character sets
    
     Output control:
      -c                         omit invalid characters from output
      -o, --output=FILE          output file
      -s, --silent               suppress warnings
          --verbose              print progress information
    
      -?, --help                 Give this help list
          --usage                Give a short usage message
      -V, --version              Print program version
    
    Mandatory or optional arguments to long options are also mandatory or optional
    for any corresponding short options.
    
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/libc/bugs.html>.

     不必要看懂每一个英文,根据文档能知道个大概就可以了,都是猜的,慢慢就知道什么意思了,没事的时候在翻翻词典

    有--help知道

    iconv的

    -f  --from-code=NAME  参数为指定原文件编码格式(GB2312编码适用于汉字处理)

    -o  --output=FILE        参数 指定转码后新生成的文件名和路径

    -t --to-code=NAM E     可指定 新生成文件使用的编码

    -I --list                      可查看已知的所有编码格式名称

    -c                             忽略无效的字符输出

    -s  --silent                 保持沉默,即抑制警告

     

    1.3 xmanager远程工具的使用

    Xmanager Enterprise 4 可使用xshell远程连接主机,可使用xftp向已连接的主机传输文件

    当传输小文件的时候,可在xshell终端中输入rz,系统会弹出对话框,选择要上传的文件(不支持大文件,会断开的)

    自己摸索吧

    1.4 实战:在RHEL6.5中恢复误删除的文件----extundelete命令的使用

    背景:为什么误删除的文件可以恢复?!为什么删除比复制快?!

    每个文件多有一个inode号,inode号对应该文件在物理存储上的位置

    当新建一个文件时,系统会为这个文件分配一个inode号,并在对应的物理存储占有位置。

     

    当删除文件时, 只是删除了这个文件的文件名,而inode和物理内存中还留存有其信息

     

    但,当在该磁盘中发生新建操作时,可能新建文件会覆盖已删除文件对应的物理存储

    所以,为了避免在误删除后,文件被覆盖,应卸载需要恢复文件的分区,或以只读方式挂载。

    Let't Go!!!

    下载extundelete
    http://sourceforge.net  开源软件发布中心

    第一步:打开RHEL6.5虚拟机之前,先给虚拟机添加一个硬盘

    剩下的一路默认就可以了,然后开机

    第二步:查看/dev目录下硬盘是否已添加

    ls /dev/sd*

    如图:新添加的硬盘名为 sdb

    第三步:对新添加的硬盘进行分区

    fdisk /dev/sdb

    输入m,查看帮助信息,n是创建一个新的分区,p是查看分区表,w是将修改同步到硬盘

    只有输入了w以后,你的操作才会生效哦!!!

    添加一个1G的分区操作如下(红色箭头)

    第四步:查看分区时候成功

    ls /dev/sdb*

    若没有显示,需要更新分区表:

    partx -a /dev/sdb 

    第五步:格式化新建的分区,挂载

    格式化命令命令如下:

    mkfs.ext4 /dev/sdb1
    or
    mkfs -f ext4 /dev/sdb1

    mkdir /sdb1            #在根目录下新建sdb1的挂载点 sdb1
    mount /dev/sdb1 /sdb1  #将格式化后的分区,挂载到新建的挂载点
    df -T  | tail -1       #查看挂载 只查看最后一行就好,-T 查看分区文件格式

    第六步:准备实验环境

    安装tree的软件包 

    rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64

    (注:/mnt目录挂载的是RHEL6.5的iso安装镜像)

    注:d是一个空文件夹

    第七步:删除/sdb1目录下所有文件,然后卸载

    (注:在误删除文件后,应立刻卸载误删文件对应的分区,以免有新建操作覆盖掉误删除的文件)

     

     第八步:安装恢复需要的软件包extundelete

    使用Xmanager Enterprise 4中的xshell和xftp将下载的extundelete软件包上传到linux中,并进行安装

    tar -jxvf extundelete-0.2.4.tar.bz2

    然后,进入解压后生成的目录,开始安装

    cd extundelete-0.2.4
    ./configure

    这时会报错,因为我们有个包没有装,使用命令

    rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

    (注:/mnt目录挂载的是RHEL6.5的iso安装镜像)

    然后,继续:

    如果不知道怎么装,可以 vim README

     第九步:安装完成后,开始文件恢复

    首先通过命令查看/dev/sdb1结点信息

    extundelete /dev/sdb1 --inode 2
    [root@xiaogan test]# extundelete /dev/sdb1 --inode 2
    NOTICE: Extended attributes are not restored.
    Loading filesystem metadata ... 9 groups loaded.
    Group: 0
    Contents of inode 2:
    0000 | ed 41 00 00 00 10 00 00 38 a1 a3 57 34 a1 a3 57 | .A......8..W4..W
    0010 | 34 a1 a3 57 00 00 00 00 00 00 02 00 08 00 00 00 | 4..W............
    0020 | 00 00 00 00 11 00 00 00 4b 00 00 00 00 00 00 00 | ........K.......
    0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    0080 | 1c 00 00 00 30 b2 c6 2d 30 b2 c6 2d 24 e3 5c a2 | ....0..-0..-$..
    0090 | 21 46 a3 57 00 00 00 00 00 00 00 00 00 00 00 00 | !F.W............
    00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    00b0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    00d0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    00f0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
    
    Inode is Allocated
    File mode: 16877
    Low 16 bits of Owner Uid: 0
    Size in bytes: 4096
    Access time: 1470341432
    Creation time: 1470341428
    Modification time: 1470341428
    Deletion Time: 0
    Low 16 bits of Group Id: 0
    Links count: 2
    Blocks count: 8
    File flags: 0
    File version (for NFS): 0
    File ACL: 0
    Directory ACL: 0
    Fragment address: 0
    Direct blocks: 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    Indirect block: 0
    Double indirect block: 0
    Triple indirect block: 0
    
    File name                                       | Inode number | Deleted status
    .                                                 2
    ..                                                2
    lost+found                                        11             Deleted
    passwd                                            12             Deleted
    hosts                                             13             Deleted
    test.txt                                          14             Deleted
    a                                                 7377           Deleted

    有四种方式:

    第一种通过inode恢复

    extundelete /dev/sdb1 --restore-inode 12

    第二种通过文件名恢复

    extundelete /dev/sdb1 --restore-file passwd

    第三种恢复目录

    extundelete /dev/sdb1 --restore-directory b

    第四种恢复所有

    extundelete /dev/sdb1 --restore-all 

    通过tree 命令查看一下!!!

    发现:extundelete 不会恢复空文件或空目录!!!!!

  • 相关阅读:
    JavaScript技巧大全
    rs.open sql,conn 与conn.execute(sql)的区别
    ASP.NET中常用的优化性能的方法(1)
    JavaScript实现图片的不间断连续滚动
    Windows下安装和配置netbeans以使用C/C++全过程
    hdu Hat's Fibonacci
    hdu Big Number
    hdu Buy the Ticket
    acm steps chapter3总结
    如何从U盘引导安装win7/xp
  • 原文地址:https://www.cnblogs.com/xiaogan/p/5738297.html
Copyright © 2020-2023  润新知