WEB开发网
开发学院操作系统Linux/Unix 对话 UNIX: 简单的按键操作 阅读

对话 UNIX: 简单的按键操作

 2008-08-28 08:18:25 来源:WEB开发网   
核心提示: 图 2 提供了小型的“备忘单”,将常规 vi 命令模式光标移动与 ksh vi 行内编辑器命令模式移动进行比较,对话 UNIX: 简单的按键操作(8), 图 2. vi 命令模式备忘单命令行与 shell 脚本有时会用到 shell 脚本,其他一些时间则要用到命令行

图 2 提供了小型的“备忘单”,将常规 vi 命令模式光标移动与 ksh vi 行内编辑器命令模式移动进行比较。

图 2. vi 命令模式备忘单

对话 UNIX: 简单的按键操作

命令行与 shell 脚本

有时会用到 shell 脚本,其他一些时间则要用到命令行。如果需要定期执行某项任务,或者任务非常复杂、需要进行数据处理,同时不需要用户反复键入各种命令,则适合使用 shell 脚本。有时,某些任务只需要执行一次并且相对简单,则使用命令行可以很好地完成这类任务。

例如,假设存在下列字典列表:

# ls
fileA.tar.gz  fileAA.tar.gz fileB.tar.gz  fileBB.tar.gz

如果只需要解压缩文件,并使用 bzip2 重新压缩,然后将它们传送到 ATC-AIX2 上,那么与其键入 shell 脚本,不如使用命令行。可以将 shell 脚本视为一次输入多个命令行条目,因为从某种意义上来说,这就是实际情况。在命令行上键入命令时,就像将它们输入到脚本中,然后执行脚本。

您希望遍历目录中以 gz 结尾的文件,解压这些文件,然后使用 bzip2 重新压缩它们,再对这些文件使用 scp 命令,将它们复制到目标 ATC-AIX 服务器上。循环在命令行中的工作效果与在脚本中同样出色。当开始 loop…if 条件语句、case switch 语句,或其他代码块语句时,您正在运行的 ksh 只会将光标移动到下一行,但提示符将更改为 $PS2。当代码块完成时,将执行代码块并使用户返回 $PS1 提示符。

也就是说:

$PS1 提示符:等待下一个命令

$PS1 提示符:代码块开始

$PS2 提示符:代码块继续

$PS2 提示符:代码块继续

$PS2 提示符:代码块结束

代码块执行

$PS1 提示符:等待下一个命令

变量 PS2 的缺省值为 >。返回前一个解压缩后重新压缩的功能,您只需在 ksh 命令行中键入以下内容:

# for _FNAME in 'ls -1 *.gz'
> do
> gzip -d ${_FNAME}
> bzip2 ${_FNAME%*.gz}
> scp ${_FNAME%*.gz}.bz2 cormany@ATC-AIX2:/home/cormany
> done

完成代码块(也就是说,使用 done 结束循环)后按 Enter 键,将开始执行循环。在命令行上键入的循环将搜索当前工作目录下以 .gz 结尾的所有文件,将这些文件解压缩,然后使用 bzip2 重新压缩它们,最后将它们复制到 ATC-AIX2 上的 /home/cormany 目录中。就是如此简单。

结束语

在阅读本文之后,您应当能够学会以新的方法使用 Korn shell。掌握命令行可以简化您的工作,并帮助您更好地理解如何在工作中充分利用 shell 和命令行,从而摆脱使用它们的困扰。

上一页  3 4 5 6 7 8 

Tags:对话 UNIX 简单

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接