UNIX培训教程(一)——Solaris操作系统培训教程
%nohup ftp remote < ftp_command > message & telnet 远程终端访问 命令格式:
telnet [hostname|IP address] IO重新导向
UNIX所有的程式执行时,均需要资料的输入以及输出资料.一般而言,资料是从键盘输入,并将资料输出到萤幕上,这就叫做标准输入及标准输出,而我们可以更改标准出输出入.
A. 更改标准输入 —— 在命令後方加\,即可从
B. 更改标准输出 —— 在命令後方加\
C. 更改标准输出 —— 在命令後方加\,功能与B.相似,只不过这会将资料加在文档後方.
D. 管道 —— 在两个命令中间加上'|',即可将前方指令的输出当成後方指令
D. 管道 —— 在两个命令中间加上'|',即可将前方指令的输出当成後方指令的输入. 例子: cd /tmp
ls -l > /tmp/ls.out cat /tmp/ls.out more /tmp/ls.out rm /tmp/ls.out ls | more
ls | wc -l (word count, count line number,算出文档数目)
3.3 VI基本命令
vi是在工作站上广泛使用的编辑软件。对初学者而言,常因其特殊的使用方法,而不得其门而入;对已经在使用 vi 的使用者来说,也常见因对 vi 的不熟悉或不够了解,而无法发挥出 vi 强大的编辑能力,以下将简单介绍 vi 的使用方法。不必死记硬背,多实际操作几次就能记住常用的命令。
? 版权所有
第 11 页 共 33 页
UNIX培训教程(一)——Solaris操作系统培训教程
? 进入vi
直接执行 vi编辑程序即可: %vi test
此刻屏幕上会出现 vi 的编辑屏幕,同时 vi 会将文件复制一份至内存中的缓冲区 (buffer) 。 vi会保留在硬盘中的文件不变,而先对缓冲区的文件作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。 ? 离开vi
若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令离开vi。
:q! 离开vi,并放弃刚在缓冲区内编辑的内容。 :wq 将缓冲区内的资料写入硬盘中,并离开vi。 :ZZ 同wq。 :x 同wq。
:w 将缓冲区内的资料写入硬盘中,但并不离开vi。
:q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容。此指令可与:w 配合使用。 ? vi 的操作模式
vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode) 。当使用者进入 vi 后,即处在指令模式下,此刻键入的任何字符都被视为 指令。在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入 模式。 1.1 输入模式
如何进入输入模式
a (append) 由光标之后加入资料。 A 由该行之末加入资料。 i (insert) 由光标之前加入资料。 I o (open)
由该行之首加入资料。
新增一行于该行之下以供输入资料。
O 新增一行于该行之上以供输入资料。 如何离开输入模式
《ESC》 结束输入模式。
1.2 指令模式
1.2.1光标的移动
h j k
向左移一个字符。 向上移一个字符。 向下移一个字符。
? 版权所有 第 12 页 共 33 页
UNIX培训教程(一)——Solaris操作系统培训教程
l 0 $ ^ H M L G + - ( ) { } nG n+ n-
向右移一个字符。 移至该行之首 移至该行之末。
移至该行的第一个字符处。 移至屏幕的第一列。 移至屏幕的中间那列。 移至屏幕的最后一列。 移至该文件的最后一列。 移至下一列的第一个字符处。 移至上一列的第一个字符处。 移至该句之首。 (注一) 移至该句之末。
移至该段落之首。 (注二) 移至该段落之末。
移至该文件的第 n 列。
移至光标所在位置之后的第 n 列。 移至光标所在位置之前的第 n 列。
注一:句子(sentence)在vi中是指以『!』、『.』或『?』结束的一串字。
注二:段落(paragraph)在vi中是指以空白行隔开的文字。 1.2.2屏幕的移动
1.2.3 删除、复制及修改指令介绍 (此单元较少使用)
d(delete)、c(change)和y(yank)这一类的指令在 vi 中的指令格式为: Operator + Scope = command (运算子) (范围)
运算子:
d 删除指令。删除资料,但会将删除资料复制到内存缓冲区。
y 将资料(字组、行列、句子或段落)复制到缓冲区。
p 放置(put)指令,与 d 和 y 配和使用。可将最后delete或yank的资料放置于光标所在位置的行列下。
c 修改(change)指令,类似delete与insert的组合。删除一个词组、句子等的资料,并插入新输入的资料。 范围:
e 由光标所在位置至该字符串的最后一个字符。 w 由光标所在位置至下一个字符串的第一个字符。 b 由光标所在位置至前一个字符串的第一个字符。
? 版权所有
第 13 页 共 33 页
UNIX培训教程(一)——Solaris操作系统培训教程
$ 由光标所在位置至该行的最后一个字符。 0 由光标所在位置至该行的第一个字符。
) 由光标所在位置至下一个句子的第一个字符。 ( 由光标所在位置至该句子的第一个字符。 { 由光标所在位置至该段落的最后一个字符。 } 由光标所在位置至该段落的第一个字符。 1.2.3.1 整行动作
dd 删除整行。
D cc
以行为单位,删除光标后的所有字符。 修改整行的内容。
yy yank 整行,使光标所在该行复制到内存缓冲区。 1.2.3.2 删除与修改
x 删除光标所在该字符。 X 删除光标所在之前一字符。 dd 删除光标所在该行。
r 符。
如: ra 将光标所在字符以 a 取代之。
R s S
进入取代状态,直到《ESC》为止。
删除光标所在的字符,并进入输入模式直到《ESC》。 删除光标所在的该行资料,并进入输入模式直到用接于此指令之后的字符取代(replace)光标所在字
《ESC》。
1.2.3.3 移动与复制
利用 delete 及 put 指令可完成资料移动的目的。 利用 yank 及 put 指令可完成资料复制的目的。
yank 和 delete 可将指定的资料复制到内存缓冲区,而通过 put 指令可将缓冲区内的资料复制到屏幕上。 例:
移动一行 .
1.2.3.3.1.1.1 在该行执行 dd
1.2.3.3.1.1.2 光标移至目的地 1.2.3.3.1.1.3 执行 p 复制一行
1.2.3.3.1.1.4 在该行执行 yy 1.2.3.3.1.1.5 光标移至目的地
1.2.3.3.1.1.6 执行 p
1.2.3.4 指令重复
在指令模式中,可在指令前面加入一数字 n,则此指令动作会重复执行 n 次。 例:
删除10行 .10dd
复制10行 .10yy
.光标移至目的地 .p
? 版权所有
第 14 页 共 33 页
UNIX培训教程(一)——Solaris操作系统培训教程
指标往下移10行 .10j
1.2.3.5 取消前一动作(Undo) 即复原执行上一指令前的内容。
u 恢复最后一个指令之前的结果。 U 恢复光标该行的所有改变。 1.2.3.6 查找
在vi中可查找某一字符串,使光标移至该处。 /字符串 往光标之后寻找该字符串。 ?字符串 往光标之前寻找该字符串。 n 往下继续寻找下一个相同的字符串。 N 往上继续寻找下一个相同的字符串。 1.2.3.7 资料的连接
J 句子的连接。将光标所在的下一行连接至光标该行的后面。 若某行资料太长亦可将其分成两行,只要将光标移至分开点,进入输入模式 (可利用 a、i等指令)再按《Enter》即可。 1.2.3.8 环境的设定
:set nu 设定资料的行号。 :set nonu 取消行号设定。 :set ai 自动内缩。
:set noai 取消自动内缩。
1.2.3.9 自动内缩(automatic indentation)
在编辑文件或程序时,有时会遇到需要内缩的状况,『:set ai』即提供自动内缩的功能,用下例解释: .vi test
.(进入编辑屏幕后)
this is the test for auto indent
《Tab》start indent ← :set ai (设自动内缩) 《Tab》data 《Tab》data
《Tab》data ← :set noai (取消自动内缩) the end of auto indent.
.注:
1.2.3.10.1
读写资料
将缓冲区的资料写入硬盘中。
将第10行至第20行的资料写入test文
:w :10,20w test
件。
:10,20w>>test 将第10行至第20行的资料加在test文件之后。
:r test 将test文件的资料读入编辑缓冲区的最后。 1.2.3.10.2 删除、复制及移动
:10,20d 删除第10行至第20行的资料。
:10d
删除第10行的资料。
:%d 删除整个编辑缓冲区。 :10,20co30 将第10行至第20行的资料复制至第30行之
? 版权所有
第 15 页 共 33 页