RH033Unit7.docx
《RH033Unit7.docx》由会员分享,可在线阅读,更多相关《RH033Unit7.docx(13页珍藏版)》请在冰点文库上搜索。
![RH033Unit7.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/3fd23e51-bebb-4b20-834a-819c7ab86201/3fd23e51-bebb-4b20-834a-819c7ab862011.gif)
RH033Unit7
RH033—Unit7VI编辑器基本操作和打印相关事项
一、启动VI编辑器
1、VI编辑器是Linux和UNIX里一个标准且都会内建的文字编辑器。
由于在Linux和UNIX的系统里,所有的设定都是储存在设定档里的,所以学会一个文字编辑器来编辑这些设定档是非常重要的。
2、启动VI编辑器:
vi filename
· 如果要编辑的档案已经存在,就开启已存在的那个档案并且显示档案的内容用来做编辑。
· 如果要编辑的档案不存在,VI编辑器就会在第一次存档时建立这个新档案。
例:
下面的例子是打开已存在的档案
vi test #下面是test档案内容
Thististestfile!
!
~ #这个~表示的是这行没有任何内容,包括连空格都没有
~
~
~
"test" 1L,25C #注释:
“档案名称”,总行数L,总字数C
:
q #退出VI编辑器
例:
下面的例子是打开一个不存在的档案
vi test1 #可以看到,这个档案内容是空的
~
~
~
~
"test1" [New File] #这里说明这个档案是一个新的档案
按a键进入插入模式,可以随意输入一个内容,再按ESC键,返回命令模式
:
w #保存
这时就可以在当前界面的最下面看到
"test1" [New] 1L, 22Cwritten #提示这是一个新档案,并显示出档案的总行数和总字数已经写入的信息。
二、介绍VI编辑器的三种模式
1、Commandmode(命令模式) 注:
在《鸟哥的Linux私房菜-基础学习篇》中这个模式表示为:
一般模式;
·当进入VI编辑器里,预设进入命令模式;在命令模式下,界面最下面都常是一些提示信息或者是空白的;
·在命令模式里,主要可以移动VI编辑器里的光标;
·可以修改、删除、复制、粘贴、搜索关键字等功能;
2、Insertmode(插入模式)注:
在《鸟哥的Linux私房菜-基础学习篇》中这个模式表示为:
编辑模式;
·在命令模式下输入a键,就可以进入插入模式;
·如果在界面的最下面,出现——INSERT——表示当前在插入模式下;
·在插入模式下可以输入新的字串作为档案内容;
·在插入模式下,按下ESC键就可以返回命令模式;
3、exmode(Extendedmode)(延伸模式)注:
在《鸟哥的Linux私房菜-基础学习篇》中这个模式表示为:
命令模式;
·在命令模式下(鸟哥中是一般模式),输入:
冒号键就可以进入这个模式了;
·这个模式下可以做,退出、存档的动作;
·搜索及替换的动作;
三、介绍在VI编辑器内移动光标
1、在命令模式下
·h 向左移动光标
·j 向下移动光标
·k 向上移动光标
·l 向右移动光标
键盘上的方向键也可以移动光标
·w 可以跳到下一个单词第一个字母上
·b 可以跳到上一个单词第一个字母上
·( 可以跳到上一个句子第一个字母上
·) 可以跳到下一个句子第一个字母上
·{ 可以跳到上一个段落第一个字母上
·} 可以跳到下一个段落第一个字母上
四、介绍进入VI编辑器的插入模式(编辑模式)
在命令模式下(鸟哥书中指的是:
一般模式)进入插入模式(编辑模式)的按键如下:
·a 进入插入模式后光标会往后一格
·i 进入插入模式后光标会停在原地不动
·A 进入插入模式后光标会停在光标所在行的最后面
·I 进入插入模式后光标会停在光标所在行的最前面
·o 进入插入模式后会在光标所在行的下面新增一行空白
·O 进入插入模式后会在光标所在行的上面新增一行空白
·r 执行后,再输入一个字母可以替换当前光标所在的字母
·R 可以进入替换模式,就是输入的字母会替换掉光标所在位置上的字母
五、介绍在VI下使用Esc键离开插入模式
1、在插入模式下按Esc键可以返回到命令模式(一般模式)。
2、无法从插入模式回到命令模式,或是其它问题,可以多按几次 Esc键。
注:
三种模式的转换方法如下图所示:
六、在VI的命令模式下如何修改、删除、复制
修改
删除
复制
行
cc
dd
yy
字母
cl
dl
yl
单词
cw
dw
yw
七、在VI中在复制后如何做粘贴的动作
1、在命令模式下使用p(小写)键或P(大写)键都可以做粘贴的动作,但要贴上什么?
只要之前有做过修改、删除、复制就可以将删除掉的字元做贴上的动作。
2、如果删除或复制的是一整行
·p(小写) 会将删除或是复制的那一整行贴在目前这一行的下面;
·P(大写) 会将删除或是复制的那一整行贴在目前这一行的上面;
3、如果删除或复制的是一个字母或是单词
·p(小写) 会将删除或是复制的那一个字母或单词贴在光标的后面;
·P(大写) 会将删除或是复制的那一个字母或单词贴在光标的前面;
八、在VI中撤消之前的修改操作
在命令模式下:
·u 可以撤消最近一次的修改,可以多次操作撤消多步操作;
·Ctrl-r 取消最后一次的撤消;也就是取消u键的撤消操作,也可以多次执行;
·U 针对目前光标所在的行撤消所有变动;
注:
如果档案已保存离开,再次打开后,将无法撤消修改。
九、在VI中搜索特定关键字
在命令模式下:
·/text 使用/向下搜索特定的关键字
·?
text 使用?
向上搜索特定的关键字
·n 当搜索到关键字后,同方向继续搜索关键字
·N 当搜索到关键字后,反方向继续搜索关键字
十、介绍一个VI中命令模式下的一些技巧
1、dtc 先输入dt再输入某个字母,例如:
c 那么VI编辑器就会把光标往后第一次遇到c之间的字母全都删掉,不包括c;
2、rc 先输入r再输入某个字母,例如:
c 那么VI编辑器就会用c将光标所在的字母替换掉;
3、x 可以直接删除光标所在的那个字母;
4、数字dd 可以指定一次删除的行数,例:
5dd 就是删除5行;
5、数字yy 可以指定一次复制的行数,例:
5yy 就是复制5行;
6、数字x 可以指定一次删除的字母数量,例:
5x 就是删除5个字母,包含光标所在位置的字母;
7、R 输入R后屏幕下面会提示--REPLACE--这时可以直接输入文字来取代光标所在位置的文字,直到按下Esc键回到命令模式;
十一、介绍VI编辑器延伸模式下的操作
注:
在进入延伸模式前,必须先进入命令模式。
在下面可以看到所有指令前面都有冒号开头,表是输入冒号后就是进入了延伸模式。
1、:
w 输入":
w"保存
2、:
q 离开
3、:
wq 保存离开
4、!
强制的意思
· :
w!
强制保存,如果修改了一个只读档,想要保存,需要强制保存,注:
这种特殊权限只有root可以使用。
· :
q!
强制离开,在修改过档案后,如果想不保存就离开,需要强制离开。
· :
wq!
强制保存离开 注:
这种权限只有root可以使用。
十二、介绍Linux下的打印系统
1、Linux下的打印系统称为:
CommonUNIXPrintingSystem,简称:
CUPS
2、如果打印机是直接接在本地的Linux主机上,称为:
本地打印机(Localprinter);
如果打印机是接在网络上的或是通过另一台主机共享出来的打印机,称为:
网络打印机(NewworkPrinter);
3、Linux的打印系统如下所述:
·Linux的打印系统支持的档案有许多,例如:
网页档案、PDF档、JPG图片等;
·当打印的文件要打印时需要先传入到Queue(队列)里,因为要打印的文件可能非常多,所以要先排队,在Queue里的排序规则是按先进先出法排列;
·再传送到InputFilter(输入过滤器);
·最后传送到打印机输出;
流程如下图:
·这里主要介绍Queue这段,在Queue排队到打印的文件如果已经开始处理会变成Active的状态,如果是还未开始打印的都可以做搬移、插入、删除的管理,Queue的内容储存在/var/spool/cups目录里。
·接下来,如果以Queue为中心点可以分为两段:
(1)第一段是文件要传入到Queue这段(Documents到Queue);
(2)第二段是文件要传到InputFilter这段(Queue到InputFilter),;
这两段的作用:
假设现在打印机暂时出现故障,但在Queue中还有许多文件在排队等待打印,这里如果不将第二段关闭起来,Queue中的文件还会继续向下传递到InputFilter中,倒致Queue中的文件未打印出来而流失掉,所在这时需要尽快关闭第二段保证Queue中的文件不会流失掉,以便将Queue中的文件移到另一个Queue中做打印处理,而关闭第一段是防止再有使用者将要打印的文件传到Queue中,提示使用者这台打印机已出现故障不能使用了。
十三、介绍管理打印工作的指令
通过实例说明指令:
1、在terminal中,执行system-config-printer,打开图形界面的设置打印机的窗口(如下图),在这里新增两台打印机
点选“New”来新增打印机,首先提示要添加一个Queue,直接点选“Forward(继续)”,这时要求输入一个Queue(队列)的名称,设定完名称后,点选“Forward”,这里名称设定为“ok”,如下图:
这步设定打印机的类型,点选后打开的列表中是Linux所支持的几种网络系统的打印机,这里设定为本地打印机(Locally-connected),点选/dev/lp0设定打印机相对应的路径,点选“Forward”,如下图:
这里设定打印机型号,先选择品牌,再选择具体的型号,也就是安装打印机的驱动程序,这里选择HP的2000C型号的打印机,进到一下步,如下图
接下来,点选完成,就完成了,打印机的安装,点选完成后,会提示是否打印测试页,选“否(NO)”不打印。
这时,可以看到第一台打印机“OK”在Default(预设)栏位是打勾的,代表预设会用OK这台打印机打印,第一台打印机安装好后,现在来安装第二台打印机,名称命为:
HP,安装方法同上。
安装好两台打印机后,点选“Apply(应用)”,将两台打印机的设定启用,就可以看到test变成了黑色了,表明可以开始打印了。
如下图:
2、下面来介绍一些基本指令来对打印机做操作,指令简要说明了如下表:
打印系统
CommandUNIXPrintingSystem
配置打印
System-config-printer
(在terminal中执行打开图形设定界面)
基本打印命令
BSD(FreeBSD)
SystemV
lpr
(打印档案)
lp
(打印档案)
lpq
(预设只能查看默认打印机的打印队列)
lpstat
(可以查询所有打印机的打印队列)
lprm
(删除一个打印任务)
cancel
(删除一个打印任务)
移动一个任务
lpmove
设定优先权
lp
在基本的打印机指令里主要分为两种派系BSD(FreeBSD)和SystemV,这两种派系只有基本指令不太相同,但是指令的功能是一样的,在BSD里,现在在root的家目录中passwd.test和readme两个档案,就使用这两个档案来做打印。
指令如下:
[root@localhost~]#lprreadme 打印readme档案,在这里可以多打印几个档案,为下面的指令做练习使用(不必担心我们没真正接打印机,不会打印出来的.);
[root@localhost~]#lpq 查询打印的结果,可以看到readme档案已经进入到了OK打印机的队列里了,取得打印的Rank是active表示已经开始处理了、Job编号是1;
[root@localhost~]#lp passwd.test 在SystemV里则使用lp指令打印passwd.test档案;
[root@localhost~]#lpstat 查看队列里的内容,可以看到passwd.test档案的队列是在ok打印机里,队列编号是2;
由于之前安装打印机时,预设的打印机是ok这台,所以打印的时候,默认都会使用OK这台打印机;
指定另一台非预设的打印机打印,指令如下:
[root@localhost~]#lpr–Phpreadme 其中-P(大写)表示指的要选择指定的打印机,后直接输入打印机名称“这里为hp”(注:
打印机名称前不加空格),readme是要打印的档案。
[root@localhost~]#lpq -Php 查询hp打印机的队列,因为lpq只能查询默认打印机的队列,所以要查看其它的打印机队列需要使用-P参数指定要查询的打印机。
[root@localhost~]#lp–dhp passwd.test 使用lp指令加上-d的参数,指定要使用的打印机来打印档案,这里是使用hp打印机打印passwd.test档案。
[root@localhost~]#lpstat 打印指令执行后,可以使用lpstat指令查看队列,这个指令可以看到所有打印机的队列,例如这里可以查看ok和hp两个打印机的队列。
[root@localhost~]#lprm2 例如这个例子中共有四个需要打印的工作JobID从1到4,假设要删除编号为2的任务,前面的指令就是要删除编号为2的那个任务,再次使用lpstat查看,就看到到编号为2的任务了。
[root@localhost~]#cancel4 删除编号为4的任务,删除后使用lpstat查看编号4的任务已没有了。
其实,所有的打印工作的任务都存在/var/spool/cups目录中,这时,可以使用ls–l/var/spool/cups 查看这个目录,就可以发现以下这些档案,如下图:
这时,可以使用less指令,分别查看第一个打印的档案和/var/spool/cups/d00001-001这个编号为1的档案,他们的内容是一样的。
下面继续介绍一些如何搬移队列里的打印任务:
在其中一台打印机出现故障时,例如OK这台打打印机出故障了,而OK这台打印机的队列中还有未打印的文件,这就要将这部分未打印的文件移到HP这台打印机的队列中去,以完成打印的工作,可以使用下面的指令来做搬移的工作:
搬移之前,先要查看好目前OK打印机的队列中有哪些未打印的任务。
[root@localhost~]#lpmoveok-5hp 将ok队列中的ok-5任务搬移动HP的队列中,注:
这里只能搬移非Active状态的任务,在依据上述步聚做下来后,需要再使用ok打印机做一个文件的打印才能看到ok队列中编号为5任务,搬移后,再使用lpstat指令查看,就可以看到编号为5的任务被移到了hp的队列。
下面介绍如何设定打印的优先权:
[root@localhost~]#lp -i6–q51 其中-i表示是任务编号为ID缩写,-i7是指定编号为7的那个打印任务;-q51表示将前面指定的那个任务的优先权设定为51(因为,预设的设定下所有任务的优先权为50),优先权设为51就会将这个任务插入到最前面去,这里使用lpq查看队列,可以看到编号为7的任务排到了最上面。
如果想让刚插入进来的任务立即做打印工作,步聚如下:
[root@localhost~]#disableok 停用打印机的队列,这里的OK是打印机名称;
[root@localhost~]#/usr/bin/enable ok 重新启用打印机队列,这里的OK是打印机名称,(注:
这里的enable指令必须指定路径,这是因为在环境变数里设定的enable指令会优先执行另一个enable的程式,所以如果直接使用将会出错)。
这里就看到刚刚调整优先权的任务立即变成了active状态。
这里使用的disable 和enable其实就是在开关前面提到的第二段(从Queue到InputFilter)。
使用accept和reject 可以开关前面提到的第一段(从Documents到Queue)。
当第一段关闭时,用户要求打印文件时,将会提示不能打印的信息。
[root@localhost~]#reject ok 将OK打印机的第一段关闭;这时,再打印文件,将会出现不能打印的信息,也就是无法将文件放入到队列中去;
[root@localhost~]#accept ok 开启ok打印机的第一段;这时,就可以将要打印的文件放到OK打印机的队列中了;
十四、介绍一些有关打印的工具
首先介绍一下,为什么打印机可以看懂电脑上的文件并且打印出来,这是因为各打印机的厂商都会开发出相应打印机的驱动程式,这个驱动程式就是将电脑上的文件转换成打印机可以识别的格式。
这里,先介绍一种档案格式“PostScript”,这种档案格式是早期被用来当作最终被输出的格式,并且许多打印机都可以看懂这种档案格式,因此,在打印这种PostScript格式档案时,不需要安装额外的打印机驱动程式,下面就介绍一些有关PostScript格式的转换工具。
1、enscript 将纯文字档格式转换成PostScript格式
例:
[root@localhost~]#enscript readme -p readme.ps 转换成功后可以看到提示信息总共有几页的内容转成了postscript档案。
2、ggv 可以用来显示postscript和pdf格式的档案
例:
[root@localhost~]#ggvreadme.ps 查看readme.ps这个postsceipt档案内容
3、ps2pdf PostScript格式转换成PDF的格式
例:
[root@localhost~]#ps2pdf readme.ps > readme.pdf
4、pdf2ps 将pdf格式转换成PostScript格式
例:
[root@localhost~]#pdf2ps readme.pdf > readme1.ps
5、mpage 可以将多页合成一页来打印。
例:
[root@localhost~]#mpage–4 readme.ps > mpage.readme.ps 其中-4表示要将4页合成1页来打印,>后面表示将4页合成1页后,导入到后面的档案上。
合成后的效果如下图: