vi 一次可以编辑多个文件,若 vi 启动时没有指定文件名,则 vi 将创建一个无名的工作 文件,待用户生存时由用户指定文件名。
若用户指定的文件不存在,则 vi 就创建一个新文件。 若用户对文件的修改不生存,则原文件不发生作用。
设 vi 编辑的文件为 file,则 vi 在工作时,在与被编辑文件相同的目次内创建一个名 为.file.swp 的暂时文件,若没有指定文件名,则在当前目次下创建.swp 暂时文件.
vi 竣事对当前文件编辑后,对应的暂时文件被主动删除,但当 vi 非正常退出时,此暂时文件就会被残留下来,在下次再编辑此文件时会出现错误信息。Vi 的整个 工作过程和被编辑的文件无关,只是在生存的时间才修改被编辑的文件。 工作模式
vi 有三种工作模式:下令模式、编辑模式和下令项模式.
(1)下令模式:当进入 vi 时,它处在下令模式。在这种模式下,用户可通过 vi 的下令 对文件内容举行处置惩罚,如删除、移动、复制等,也可通过插入下令进入编辑模式。
(2)编辑模式:用户可在下令模式下通过 o,O,a,A,i,I 等下令使 vi 进入编辑模式。 在编辑模式下,用户能在光标处输入内容,或通过光标键移动光标,也可通过按 Esc 键返回 下令模式。
(3)下令项模式或叫底行模式:在**下令项模式下用户输入冒号“:”**后,光标会跳到底行, 输入相关下令后可完成指定操作。
rpm
红帽系列的系统都以 rpm 和 yum/dnf 作为软件包管理工具,Ubuntu 的软件包管理工具为 dpkg 和 apt 相关的工具,它们都将在系统安装时被主动安装。
1.概述
(Red Hat Package Manager)
基于 GPL 。它最初用于 Red Hat Linux 系统。
2.分类
sed 是个流编辑器,其功能是对它的输入流举行按指定格式的转换。
sed 利用脚本语言对输入流举行加工,脚本可以在下令行或文件中输入。在工作时它只对输入流处置惩罚一遍。
sed 的输出对象为标准输出,若输出到文件可利用输出重定向。
sed [options] { scripts } [input-file]
basename -a /usr/bin/ /usr/include/stdio.h #输出 bin 和 stdio.h
basename -a -s .h /usr/bin/ /usr/include/stdio.h #输出 bin 和 stdio
复制代码
bash的其他扩展
1)参数或变量条件扩展
${#var}:变量 var 值的长度。
v a r : o f f 、 {varff}、 varff、{varff:len}:var 中从 off 开始长度为 len 的子串。
KaTeX parse error: Expected '}', got '#' at position 5: {var#̲val}、{var##val}:从 var 头部去除由模式 val 匹配的最小和最大部门,返回剩余 部门。
KaTeX parse error: Expected '}', got 'EOF' at end of input: {var%val}、{var%%val}:从 var 尾部去除由模式 val 匹配的最小和最大部门,返回剩 余部门。
v a r / p a t t e r n / s t r 、 {var/pattern/str}、 var/pattern/str、{var//pattern/str}:pattern 为像文件扩展一样被扩展的匹配模式,var 也被扩展,且将 pattern 在 var 中的最大匹配更换为 str。前者仅举行首次匹配更换,后者将进 行全部的匹配更换。如果 pattern 的首字符为#/%,则从行首/尾举行匹配和更换。当 str 为 NULL 时,删除匹配的串。如果 var 为*或@,则更换将在位置参数上依次举行
2)“{ }”扩展与路径名扩展
如 a{a, b, c,}d 将被更换为 aad,abd,acd,这种更换常用在下令 行参数更换中。
mkdir /home/zh3/a{1,2,3}dir
#将在/home/zh3/创建 a1ddir、a2dir 和 a3dir 目录。
复制代码
3) ′ s t r ′ 和 'str'和 ′str′和"str"与字符串扩展
转义字符会按照 ANSI C 的标准被更换