vi文字处理器

vi文字处理器

每个系统管理员都应该至少要学会一种文字接口的文书处理器,以方便系统日常的管理行为。在 Linux 上头的文字处理软件非常的多,不过,鸟哥还是建议使用 vi 这个正规的文书处理器。 这是因为 vi 几乎在任何一个 Unix Like 的机器都存在,学会他,轻松很多啊! 此外,后来 GNU 计划有推出 vim 这个 vi 的进阶版本,可以用的额外功能更多了! vi 是未来我们进行 shell script 程序的编写与服务器设定的重要工具。

vi与vim

前面讲了这么多命令与操作,都是直接在命令行输入,如果我们想要记录一些东西在文件中应该怎样呢?那就是使用文本编辑器。

最常用的文本编辑器就是vi与vim。vim是vi的进阶版,

vi的使用

vi分为三种模式:一般模式,编辑模式,命令模式

  • 一般模式

    用vi 文件名 打开一个文件的时候就是一般模式,你可以使用『上下左右』按键来移动光标,您可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理您的文件数据。

  • 编辑模式

    在一般模式中可以处理删除、复制、贴上等等的动作,但是却无法编辑的! 要等到您按下『i, I, o, O, a, A, r, R』等字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下上述的字母时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,才可以输入任何字来输入到您的档案中!而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

  • 命令模式

    在一般模式当中,输入『 : 或 / 或 ? 』就可以将光标移动到最底下那一行,在这个模式当中, 可以提供您『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号 等等的动作则是在此模式中达成的!

    :q quit

    :q! 强制退出(可以不用保存)

    :w 保存

    :wq 保存并退出

    :e! 回到上一次保存的样子

对于初学者来说会编辑保存退出就行了。

alias是别名的意思,但是我们发现不可以man alias,但是在root权限下输入alias可以看到一些使用方法。

那我们怎么设置别名呢?首先要进入root用户,然后不妨输入alias ls=‘ls -l’然后可以试试ls,没错,现在的ls就是ls -l 了,是不是很方便呢。我们可以设置alias vi=‘vim’因为vim既然是vi的进阶版,说明他功能更强大,我们肯定主要使用vim。

那我们怎么查看我们设置的别名呢?

vim扩展功能

  • 区块选择

    之前vi操作都是单个字符,如果我们想要删除一段字符,就得一直按delete,很麻烦,但是在vim中有了区块选择的功能。区块选择主要分为三种选择方式。

    v 字符选择,会将光标经过的地方反白选择!选择连续的信息,可以是第一行的后半部分和第二行的前半部分

    V 行选择 一行或几行的选择

    Ctrl + v 区块选择 是一个矩形区域

    选中后使用y可以将选中的部分复制。选中后使用d可以删除选中的部分。复制后在标准模式下使用p可以粘贴。

  • 多文档编辑

    • :n编辑下一个文档
    • :N编辑上一个文档
    • :files 列出这个vim开启的所有档案

    使用vim doc1 doc2来同时编辑两个文档

  • 多窗口功能

    在标准模式下输入『:sp {filename}』就可以开启多窗口了,快试试把(注意在sp 和 filename之间有一个空格哦),在命令行下的多窗口是不是很酷。您还可以利用『[ctrl]+w+j』及『[ctrl]+w+k』 在两个窗口之间移动呢!

    多窗口情况下的按键功能 :

    1. :sp [filename] :开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示)。
    2. [ctrl]+wj : 按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j ,则光标可移动到下方的窗口。
    3. [ctrl]+wk:同上,不过光标移动到上面的窗口。
    4. [ctrl]+wq:其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+wj 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+wq 啊!

DOS与linux的换行字符

DOS 使用的断行字符为 ^M$ ,我们称为 CR 与 LF 两个符号。 而在 Linux 底下,则是仅有 LF ($) 这个断行符号。这个断行符号对于 Linux 的影响很大喔! 为什么呢?

我们说过,在 Linux 底下的指令在开始执行时,他的判断依据是 『Enter』,而 Linux 的 Enter 为 LF 符号, 不过,由于 DOS 的断行符号是 CRLF ,也就是多了一个 ^M 的符号出来, 在这样的情况下,如果是一个 shell script 的程序档案,呵呵~将可能造成『程序无法执』的状态~ 因为他会误判程序所下达的指令内容啊!这很伤脑筋吧!

那怎么办啊?很简单啊,将格式转换成为 Linux 即可啊。我们可以透过简单的指令来进行格式的转换。

  • dos2unix [-kn] file [newfile] 2是to的缩写
  • unix2dos [-kn] file [newfile]

参数:

-k :保留该档案原本的 mtime 时间格式 (不更新档案上次内容经过修订的时间)

-n :保留原本的旧档,将转换后的内容输出到新档案,如: dos2unix -n old new

我在 vi 这个程序当中,不想离开 vi ,但是想执行 ls /home 这个指令,vi 有什么额外的功能可以达到这个目的:事实上,

可以使用[ :! ls /home ]不过,如果你学过后面的章节之后,你会发现,执行[ ctrl + z ]亦可暂时退出 vi 让你在指令列模式当中执行指令喔!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Little BigUs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值