使用 KIO 实现网络透明性
Kioslave 是进程外协议处理插件,可让您访问各种服务,就像它们是本地文件系统的一部分一样。它们可以通过 Konqueror 文件管理器和大多数 KDE 应用程序中的任何标准文件对话框进行访问。使用 Kio 的应用程序无需知道如何访问远程主机或设备——ioslave 会处理所有事情。这为 KDE 应用程序提供了强大而灵活的网络透明性。
KDE 包含大量基本 kioslave。一些 KDE 附加应用程序安装了自己的 kioslave。您可以随时添加新的 kioslave,并且所有 KDE KIO 感知应用程序都将与它们一起工作。如果您将 Konqueror 用作 Web 浏览器,您已经在使用 KIO,因为 HTTP、HTTPS 和 FTP 协议都作为 kioslave 实现。
KDE fish kioslave 提供了一个图形界面,用于通过安全 Shell (SSH) 操作文件。Fish 应该可以与任何符合 POSIX 标准的 UNIX 系统一起工作,前提是它有一个 Bourne 兼容的 shell 作为 /bin/sh 和基本文件操作实用程序,如 cat、chgrp、chmod、chown、cp、dd、env、expr、grep、ls、mkdir、mv、rm、rmdir、sed 和 wc。如果 Perl 可用,则会改用 Perl。在这种情况下,只需要 env 和 /bin/sh,并且使用 Perl 的优点是速度更快。我使用 fish 登录到 Linux、FreeBSD、Mac OS X 和 Solaris,都同样成功。
本文讨论的大部分内容也适用于 ftp 和 sftp kioslave,它们向用户呈现几乎相同的界面。
在这里,我想使用 fish 登录到我的 Apple Macintosh 电脑,抓取一些文件并将它们复制到本地。因为它运行的是 UNIX 的变体,带有 env 和 Perl,并且运行了 sshd,所以 fish 可以很好地与它一起工作。要登录到远程主机,请键入
fish://username@host
到 Konqueror 地址栏中。如果您的远程 sshd 正在自定义端口上监听,您可以在 URL 的末尾指定此端口
fish://username@host:9999
如果这是您第一次尝试通过 SSH 连接到此主机,Konqueror 会弹出一个对话框,指出它无法验证主机的真实性,并要求您输入以继续。选择“是”以表明您要继续连接到此主机。然后 SSH 会将此主机的指纹缓存在您的 ~/.ssh/known_hosts 文件中。
除非您设置了用于无密码登录的 SSH 密钥,否则 Konqueror 会显示一个对话框,要求您输入密码。勾选“记住密码”框会将密码保存到您的 KWallet 中。如果您计划经常访问此主机,这可能非常方便。
现在我已登录并正在查看远程主机上的主目录。我需要从这里存储的图像文件中找到我想要的图像。由于我的数码照片库很大,因此没有一个图像被描述性地命名,而且不幸的是,在无法查看图像的情况下,我真的不知道我想要哪一个。
fish 真正闪光的领域之一是它允许您以与预览本地文件非常相似的方式预览远程文件的方式。KDE 的预览机制灵活而强大,使您能够看到图像、PDF 文件、字体和 office 文档的预览,以及收听音频文件的预览。
要启用通过 fish 的预览,请从 Konqueror 设置菜单中选择“配置 Konqueror...”。在出现的对话框中导航到“预览 & 元数据”。在“互联网协议”下,勾选 fish 旁边的框。将“最大文件大小”下方的滑块调整为适合您正在使用的连接速度的合理值。如果您通过互联网访问主机,您可能不希望 Konqueror 尝试生成 100MB TIFF 文件的缩略图。单击“确定”,您就完成了。
要微调您想要查看预览的特定文件类型,请查看“查看”菜单中的“预览”。在这里,您可以为显示预览启用各种文件类型,还可以快速切换全局启用和禁用预览。如果您在调整这些设置时打开了 Konqueror 窗口,您可能需要单击“重新加载”才能看到任何更改。
现在我可以查看我的图像的预览了,并且我已经找到了我想要的图像。我可以将它拖放到打开的 Krita 窗口中进行编辑,然后在之后将我的更改直接保存到远程主机。或者,我也可以简单地将文件复制到本地以进行进一步处理,也可以使用拖放操作。
Fish 非常适合远程网站的简单维护。当您从 Konqueror 熟悉的文件管理界面进行操作时,移动、重命名和更改远程文件权限等任务变得容易。
更改 Web 服务器上文件的权限是一项常见任务。通常,在您的 Linux 机器上创建的文件的默认权限可能过于严格,并且当人们尝试通过 Web 访问文件时会导致 Forbidden 错误消息。要通过 fish 更改文件的权限,请右键单击该文件并选择“属性”。在“权限”选项卡上,为“组”和“其他”权限选择“可读取”,然后单击“确定”。如果您要更改 CGI 的权限,您还需要勾选标记为“是可执行文件”的框。
在 KDE 3.5 中,Kate 获得了将一组工作文档保存为会话以便以后轻松恢复的功能。当与 fish 结合使用时,这至少对我来说,是终极 Web 开发环境。
要在 Kate 中打开与我的网站关联的所有 HTML、CSS 和其他文件,我可以将它们从 Konqueror 窗口中拖放到远程主机的 fish 会话中。以这种方式拖放多个文件会导致它们作为单独的文件打开,我可以在“文档”窗格中在它们之间导航。
如果您更喜欢使用更面向 GUI 的 Web 开发工具,而不是在 Kate 中手动编辑文件,那么功能齐全的集成 Web 开发环境 Quanta Plus 也支持 KIO。
您可以使用“文件”→“打开”对话框来利用 KIO 网络透明性。所有标准 KDE 文件对话框都支持 kioslave。要通过 fish 加载文件,请从“文件”菜单中选择“打开”。在文件对话框顶部的位置栏中,键入您的 fish URL
fish://canllaith@canllaith.org
导航到与您的网站或保持其他项目关联的文件所在的位置,然后打开您想要成为会话一部分的文件。要一次打开多个文件,请按住 Ctrl 键并单击要打开的每个文件一次。选择完文件后,单击“打开”。
如果您计划经常访问此远程主机,您可以将快捷方式添加到对话框左侧的图标栏中。选择您想要快捷方式指向的目录,然后将其拖到图标栏。您可以通过右键单击快捷方式并选择“编辑条目”来编辑此快捷方式的名称、图标和其他属性。
一旦 Kate 加载了您想要另存为会话的文件,请从“会话”菜单中选择“另存为”。输入您的新会话的名称——因为我正在保存与我的网站相关的各种文件,所以我将我的会话称为 canllaith.org。
将来,当您想要快速加载这组远程文件时,您可以从“会话”菜单中选择已保存的会话。我一次又一次地使用这个工具。在完成一天的网站工作并从目录树中的各个位置打开各种远程文件后,我只需将它们另存为会话,并带有日期和简短的描述性名称。下次,记住我停在哪里以及我正在处理哪些文件会更容易一些。
KDE 附带的 smb kioslave 可让您浏览 Microsoft Windows smb 文件共享。它需要您安装 libsmbclient。如果您在 Konqueror 中导航到 smb:/(或使用下面描述的巧妙的 Alt-F2 快捷方式),您将看到找到的任何 Windows 工作组,并且您可以浏览它们以查找您想要的主机。您还可以直接使用以下方式指定主机或主机的特定共享
smb://username@hostname/share
与 fish 类似,如果您不指定用户名,Konqueror 会提示您输入用户名和密码对,您可以将其与 KWallet 一起保存。如果您始终在您的 Samba 网络上使用特定的用户名/密码对,而不是必须为您访问的每个主机单独保存密码,您可以将此配置为由 KDE 自动提供。在 KDE 控制中心中,导航到“互联网 & 网络”→“本地网络浏览”。在这里,您可以输入您希望 KDE 用于其 Samba 客户端的默认用户名和密码对。
除了将快捷方式添加到“文件”对话框之外,您还可以将桌面快捷方式添加到您想要经常访问的主机。要为 smb URL 创建桌面快捷方式,请右键单击 KDE 桌面,然后从上下文菜单中选择“创建新链接”→“链接到位置 (URL)...”。在标记为“输入链接到位置 (URL):”的框中填写您想要创建快捷方式的共享的 smb://(或 fish)URL。KDE 会在文件名框中填写合适的名称,或者您可以选择自己的名称。单击“确定”,您就完成了。
除了通过 Konqueror 地址栏和 KDE 标准文件对话框访问 kioslave 之外,您还可以使用 KDE 运行命令框快速加载 kioslave。尝试按 Alt-F2 调出“运行命令”框,然后键入help:/kwrite。将启动一个 Konqueror 窗口,向您显示 KWrite 手册。这适用于所有 kioslave,并且是查找帮助页面或快速加载远程 URL 的便捷方式,如果您像我一样,倾向于拥有一个相当杂乱的屏幕。
KDE 附带了许多其他有趣的 kioslave,您可以从 kde-apps.org 下载其他第三方作品,作为可以针对最新 KDE 版本编译的源代码。要找到它们,请在 KDE-apps.org 搜索页面上搜索“kio”。如果您想编译您下载的 kioslave,您需要有一个可用的 C++ 编译器以及为 KDE 和 Qt 安装的适当的开发库。通常,这些库与 KDE 运行时库分开打包。
要找出您已安装了哪些 kioslave,请键入help:/kioslave在“运行命令”框或 Konqueror 地址栏中。这是 KDE 帮助 kioslave,它允许您通过 Konqueror 访问已安装的 KDE 程序的帮助文档。一些更有趣的 kioslave 包括
cgi: 此 kioslave 执行 CGI 程序,而无需运行 Web 服务器。它对于 CGI 脚本的离线本地测试非常方便。
locate: Kubuntu 默认包含 kio-locate,您可以从 KDE-apps.org 下载其他发行版的源代码。kio-locate 是 locate 或 slocate 的 kioslave。在任何启用 KIO 的字段中键入locate: 查询词会显示来自 locate 数据库的结果。当与“文件”对话框结合使用时,这非常方便。想要在 KSpread 中打开该预算电子表格,但您意识到您不太记得将它保存在哪里,直到您启动应用程序之后?无需离开“文件”对话框,locate:/就能解救您。
tar: 此 kioslave 允许您浏览 tar、tar.bz2 和 tar.gz 存档的内容。它已注册为 KDE 中这些文件的默认处理程序。这使每个 KDE 应用程序都可以透明地处理加载和保存到存档的文件,而无需提取它们。启用预览后,很容易找到您想要的文件,即使存档中有数百甚至数千个文件。
zip: 此 kioslave 允许您浏览 zip 存档的内容,就像 tar kioslave 对 tar 存档所做的那样。
info/man: info 和 man kioslave 提供了友好的界面来阅读 man 和 info 页面。特别是 info kioslave 通过鼠标驱动的浏览器界面使页面导航更加容易,该界面比命令行工具更易于使用。
audiocd: 此 kioslave 提供了一个简单的界面,用于使用拖放操作从音乐 CD 中抓取和编码文件为 Ogg、MP3 或 flac。
Konqueror 作为 Web 浏览器和文件管理器都具有惊人的灵活性,这主要归功于其通过 kioslave 的可扩展性。上面介绍的 kioslave 只是冰山一角。尝试使用help:/kioslave中列出的那些,看看 Konqueror 还能做什么。
Jes Hall 是来自新西兰的 KDE 开发人员,她热衷于帮助开源软件为那些原本无法获得生活改变信息和工具的人们带来这些信息和工具。她欢迎发送至 jhall@kde.org 的评论。