# 命令行程序

用户指南

## Haiku专用命令行程序

位置： |  | /boot/system/bin/ ~/config/bin/ ~/config/non-packaged/bin/

所有 Haiku 附带的命令行程序都放置在 /boot/system/bin 目录。您自己的或额外安装的通过 .hpkg 安装的命令行程序将放置在 ~/config/bin 目录。或者您也可以将它们放置在 ~/config/non-packaged/bin/。所有这些位置都是 PATH 变量的一部分，并且可以自动被发现。
下面给出的列表并没有包含所有的用于 Haiku 的命令行程序，它只是给出了最常用的几个以方便您的尝试使用。您需要勇敢地去探索 bin/ 文件夹中的命令。以 `--help` 参数来运行命令行程序，这样会给出该命令的用途和相应的参数选项。

### 关于文件属性的命令： listattr, catattr, addattr, rmattr, copyattr

这些命令用于显示，读取，添加和删除文件的属性；需要注意的是，这些元数据仅仅可用于BFS格式的磁盘和分区，而且移动文件到其他的文件系统将会把其相关的属性移除！
上面的命令在终端中的属性会有相关的描述。

### 关于文件索引的命令：lsindex, mkindex, reindex, rmindex

利用这些命令，您可以对BFS的索引属性进行排序，新建，重新索引和删除等操作。由于每个卷都有自己独立的索引，所以在不同的卷之间拷贝文件时尤其要注意。
上述这些命令在索引主题中会有详细的描述。

### 有用的脚本命令

下面是一些非常有用的命令行工具，尤其适用于撰写脚本（详情请参阅 Bash和脚本）。

alert

alert 该命令将会打开一个带有预定义图标，说明注记和三个按钮的典型警示窗口，并且在终端中返回已选中按钮的标题和退出状态（以0开始）。例如，下面就是一个例子：

    alert --idea "FantasticApp(tm) installed successfully!
    Would you like a link to it?" "On Desktop" "In Deskbar" "No thanks"

filepanel

filepanel 显示一个装载或者保存文件的面板，并且让用户选择相应的文件和位置。同时您将会获取到一个文件或者文件的路径作为返回值。并且还有几个参数可供使用，例如，设置起始目录，窗体的标题，默认保存的文件名。下面是一个例子：

    filepanel -s -t "Save your logfile" -d ~/config/settings -n Fantastic.log

waitfor |  | waitfor 是一个用于等待特殊的程序或者进程启动或者终止的非常好的方式。
query |  | query 是查询面板的命令行版本。实际上，一个创建搜索项目的快速方式是在搜索面板创建一个查询，选择 by formula ，在查询词的前后添加双引号（`"`），然后在终端或者脚本中的 query 命令之后粘贴所要查找的整个查询词。

### 其他命令

checkfs |  | checkfs 是一个非常重要的工具，主要用于检查文件系统中的错误。只需在该命令之后添加磁卷或者设备名，它就会遍历所有的文件，然后修复所有可能出现不一致的地方。

desklink

desklink 可以为任何文件，文件夹，查询或者程序在桌面栏托盘中安装图标。它也可以为相应的图标提供一个右键菜单。例如，尝试下面的脚本，为 Screenshot 添加不同的选项 （第一行中的"`\`" 用于在终端中进行换行）：

    desklink "cmd=Active window (2s):/boot/system/apps/Screenshot --window --border --delay 2" \
    "cmd=Remove replicant:desklink --remove=Screenshot" /boot/system/apps/Screenshot

diskimage |  | diskimage 可用于注册普通文件作为磁盘设备。例如，您可以注册 Haiku anyboot 镜像，将其挂载在文件浏览器中，并且可以在安装器使用之前，编辑和移动其中的文件。
open |  | open 是一个非常小巧的工具。通过它，您可以以默认的程序打开任何文件，或者利用程序的签名还打开该程序而无需知道它的路径。它也可以用于打开网页，甚至“虚拟” 的目录， `.` 用于当前目录或者 `..` 用于上层目录，并且可以在 Tracker 中打开相应的文件夹。