快速业务通道

对话 UNIX: 使用 fish全攻略

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-11
r" 和 `$var` 呢?它遵守几条简单的规则:

如果变量包含空格,那么空格会被保留,变量总是作为单一参数,见 图 4.

图 4. fish 按原样保留字符串中嵌入的空格

fish 按原样保留字符串中嵌入的空格

如果最外边的引号是双引号,那么展开所有变量.
如果最外边的引号是单引号,那么不展开变量.
我们来看看这些规则的实际应用.

命令 1 创建四个 文件,一个文件的名称包含空格.命令 3 和 4 删除 file 变量指定的文件.命令 6 和 7 删除 twofiles 变量指定的两个文件.仔细看一下命令 6:值没有放在引号(单引号或双引号)中,不保留空格.因此,命令 7 把此变量展开成两个参数并删除两个文件.命令 9 和 10 重复命令 6 和 7 中的场景.

命令 11 和 12 演示空格规则.尽管在命令 12 中变量没有放在双引号中,但是 fish 在命令 11 中保留空格.非常好.

命令 14 到 16 演示 fish 的嵌套引号规则.现在,再看一下命令 11、15 和 16.shell 使用颜色编码显示匹配的引号,以此确保语法正确.再看一下命令 9 和 11.后一个命令在文件名上显示下划线,这表示此文件存在.在命令 9 中没有下划线,这提示用户某些地方出错了.

fish 的首字母代表 Friendly,对用户友好是它的主要目标.

对于新手非常有帮助的一个特性

说到对用户友好,就不能不提到 fish 的制表符补全 特性,这个新颖的特性对于 UNIX 新用户和专家都极其有帮助.为了体验制表符补全,请按下面的示例操作.在每行的末尾按 Tab 键.

如果您不确定一个命令名的拼写,可以在输入几个字母之后按 Tab,就会看到可能的完整命令的列表,见 图 5.(在您的系统上显示的命令列表可能与这里显示的不一样.此列表取决于 PATH 环境变量和您的 UNIX 系统的内容).


图 5. 按 Tab 补全命令名

按 Tab 补全命令名


注意 CLI 中的红色文本.如果 fish 不认识一个命令名,就用红色显示它.按 Tab,就会显示以目前输入的字母开头的所有应用程序名(以及简短的描述).在空提示行上按 Tab,就会看到 PATH 中的所有应用程序.

如果想了解一个命令的可用选项,那么在连字符(-)或双连字符(--)后面按 Tab,见 图 6.


图 6. 还可以通过按 Tab 补全一个选项

还可以通过按 Tab 补全一个选项

此时,fish 会显示可用的选项.shell 维护许多常用命令和选项的索引,您很可能能够得到所需的帮助.但是,定制的或更复杂的实用程序可能缺少这种数据.可以阅读 fish 文档,了解关于编写自己的补全特性的更多信息.

还可以在输入选项的几个字母之后按 Tab,见 图 7.shell 会显示所有匹配的选项.


图 7. 还可以输入选项的一部分

还可以输入选项的一部分

如果您不知道一个命令处理的操作数类型,fish 在许多情况下可以提供帮助,但并不是在所有情况下都可以.例如,如果输入 set(或 vared,即 fish 变量编辑器)和一个空格,然后按 Tab,fish 会显示可用变量的列表.set 的操作数是一个变量.同样,如果输入 type 和一个空格,然后按 Tab,fish 会显示内置函数的列表,这些函数扩展文件系统上可用的实用程序.

在一般情况下,fish 中的所有内置函数都有上下文相关的操作数补全.请试一下 cd,见 图 8.


图 8. 许多命令是上下文相关的,可以显示适当的参数

许多命令是上下文相关的,可以显示适当的参数

cd 函数是一个 fish 函数,它的操作数是一个现有的目录.在输入 cd 之后按 Tab,fish 会显示 CDPATH 中的每个目录包含的所有现有目录.

另一个智能化补全与 ssh 相关.输入 ssh 和一个空格,然后按 Tab,就会看到从 Secure Shell 已知主机文件(通常在 ~/.ssh/known_hosts 中)获取的已知主机名列表:

fish-1) ssh
login.example.com (Hostname)
host1.example.com (Hostname)

fish shell 还会补全文件名和目录名.同样,它会在您输入路径名时突出显示正确的元素.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号