Cette page n'est pas encore entièrement traduite. Les parties non encore traduites seront en anglais.

cli-app-icon_64.pngProgrammes en ligne de commande spécifiques à Haiku

Localisation :/boot/system/bin/
/boot/system/non-packaged/bin/
~/config/bin/
~/config/non-packaged/bin/


All commandline applications shipped with Haiku are in /boot/system/bin/. Your own or additionally installed commandline apps will appear there as well, or in ~/config/bin/, when installed from a .hpkg package. Otherwise you can put them into /boot/system/non-packaged/bin/ or ~/config/non-packaged/bin/. All these locations are part of the PATH variable and are therefore automatically found.
The following isn't an exhaustive list of all Haiku-specific CLI apps, it serves just to highlight a few of the most useful to give you a taste. Feel encouraged to explore what's in the bin/ folders on your own a bit. Executing an app with the parameter --help shows the usage of the command and all its various options.

index Concernant les attributs : listattr, catattr, addattr, rmattr, copyattr

Ces commandes sont utilisées pour afficher, lire, ajouter et supprimer des attributs de fichiers. Rappelez-vous que ces méta-données ne sont actuellement disponibles que sur les volumes formatés en BFS. Si vous déplacez un fichier vers un autre systèmes de fichiers, vous perdrez tous les attributs !
Toutes ces commandes sont décrites dans le sujet consacré aux attributs dans le Terminal.

index Concernant les index : lsindex, mkindex, reindex, rmindex

Avec ces commandes vous pouvez lister, créer, ré-indexer et retirer des attributs au mécanisme d'indexation BFS. Chaque volume a son propre index, souvenez-vous en quand copiez des fichiers d'un volume à l'autre.
Ces commandes sont décrites dans le sujet qui traite des Index.

index Concernant la gestion des paquets : package, pkgman

La commande package sert à gérer les paquets HPKG. Consultez l'article Installing applications pour apprendre les rudiments. Les paquets sont généralement construits automatiquement à partir de recettes élaborées depuis l'outil haikuporter.

pkgman is used to search, install, update and uninstall packages. Package repositories can be added, dropped and their package lists refreshed. A special kind of update is invoked with the parameter full-sync: It is more aggressive and also downgrades or removes packages, if necessary.
For more details on a parameter, append "--help", e.g. pkgman search --help.

index Commandes utiles dans les scripts

Voici quelques outils en ligne de commande qui sont particulièrement utiles pour les scripts (voir aussi le sujet sur le Bash et les Scripts).

alert

alert invoque la fenêtre d'alerte typique avec une icône ad-hoc, un texte explicatif et jusqu'à trois boutons. le titre du bouton pressé sera renvoyé avec un code d'état (commençant à 0). Voici un exemple et son résultat :

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

cli-alert.png

filepanel

filepanel affiche une boite de dialogue pour ouvrir ou enregistrer un fichier en permettant à l'utilisateur de choisir un fichier ou un emplacement. Vous obtiendrez comme valeur de retour, le fichier choisi ou le chemin du dossier. Parmi les paramètres disponibles, vous pouvez définir un répertoire de départ, un titre de fenêtre, un nom par défaut pour le fichier à enregistrer ou des restrictions aux types de fichiers autorisés. En voici un exemple :

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

cli-alert.png

hey

hey est un petit utilitaire pour envoyer des BMessages aux applications et afficher leurs réponses. Il peut être utilisé pour écrire des scripts d'applications, i.e. "contrôle à distance" d'un programme à partir d'un script ou de la ligne de commande. Son utilisation est un peu complexe... Mais grâce à la "BeOS Bible" de Scot Hacker, il y a un beau tutoriel pour hey pour Chris Herborth.

query

query est la version ligne de commande de la fenêtre de recherche. En fait, une façon rapide de créer une expression de recherche, est de construire une requête dans la fenêtre de recherche, de basculer vers les formules (by formula), et de copier le tout entre doubles quottes (") en paramètre à la commande query que vous appelez à partir du Terminal ou de votre script.

waitfor

waitfor est une méthode élégante pour attendre qu'une application ou une tâche particulière soit démarrée, ou terminée.

index Autres commandes

checkfs

checkfs est un outil important pour détecter les erreurs dans votre système de fichiers. Il suffit d'ajouter le nom du volume comme par exemple /Haiku ou du périphérique, et il va parcourir tous les fichiers et si possible, corriger des incohérences.

desklink

desklink vous permet d'installer une icône dans le cartouche de la Deskbar à partir de n'importe quel fichier, dossier, requête ou application. Vous pourrez également pourvoir le menu contextuel d'actions spécifiques à exécuter quand vous ferez un clic droit sur l'icône. Voici par exemple comment ajouter Screenshot avec diverses options (le "\" à la fin de la première ligne sert juste au saut de ligne dans Terminal) :

 desklink "cmd=Active window (2s):/bin/screenshot --window --border --delay 2" \
"cmd=Remove replicant:desklink --remove=screenshot" /bin/screenshot

cli-alert.png

diskimage

diskimage vous permet d'inscrire un ficher ordinaire en tant que periphérique disque. Par exemple, vous pouvez inscrire l'image disque "anyboot" d'Haiku, puis monter le volume qu'elle contient dans le Tracker et copier, éditer ou supprimer les fichiers avant de l'utiliser comme source dans le programme d'installation.

launch_roster

The launch_daemon starts all sorts of services and applications at boot-up. For some it was instructed to re-start them if they were quit. If you don't want that – maybe you'd like to test a modified Tracker, for example – you use launch_roster to stop the re-starting of the application before quitting it. Similarly, you can start it again or get info about it. Without parameter, launch_roster lists all apps/services that are under its control.
For example, this will stop the re-launching of the Deskbar:

launch_roster stop x-vnd.be-tskb

mountvolume
mount

mountvolume is preferred by many to mount local partitions and disks, because its usage is so easy: just call it with the name of the partition and you're done. Try --help for more options.

mount can additionally mount remote disks by using a network filesystem, like NFS4. You specify the used filesystem with the -t parameter and the remote location with the -p parameter. As filesystem parameter you can use anything you find in /system/add-ons/kernel/file_system (and corresponding file hierarchies under ~/config or "non-packaged", of course). You also have to create a folder as mountpoint. Here's an example:

mkdir -p /DiskStation
mount -t nfs4 -p "192.168.178.3:volume1" /DiskStation

open

open est un petit outils très pratique pour ouvrir n'importe quel fichier avec son application préférée, ou pour démarrer une application particulière à partir de sa signature sans avoir besoin de connaître son emplacement exact. Ça fonctionne également avec les URLs, et même avec les dossiers "virtuels" . et .. qui représentent respectivement le dossier courant et le dossier parent, qui seront ainsi ouvert dans le Tracker.

ramdisk

A ramdisk is like a harddisk running only in the computer's memory. That makes it very fast but also volatile, because its contents vanishes when you shut down the computer, or it crashes or you experience a blackout.
To create a ramdisk of 1 GiB, format to the name "RAMses" and mount it, you enter this in Terminal or create a script of it:

ramdisk create -s 1gb
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMses
mountvolume RAMses

Note: When creating a ramdisk, the ramdisk command prints out the path to it. If you create several disks, that path /dev/disk/virtual/ram/0/raw will change!

To preserve the contents, at least if no calamity like a blackout etc. strikes, a ramdisk can be set up to read/write an image on the harddisk. For that, you need to supply a file of the desired size that will be read from every time you start your ramdisk, and written to when you unmount it. To create an image file "RAMimage" of 500MiB and format it, do this:

dd if=/dev/zero of=RAMimage bs=500M count=1
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMimage

From now on, you start the ramdisk like this:

ramdisk create RAMimage
mountvolume RAMimage

It's very important to always cleanly unmount you ramdisk, either from Tracker or with unmount /RAMimage, or the changes won't be written back to the image file!