cli-app-icon_64.pngApplicazioni su riga di comando specifiche per Haiku

Percorso:/boot/system/bin
/boot/common/bin
~/config/bin


Tutte le applicazioni da riga di comando fornite con Haiku si trovano in /boot/system/bin. Le applicazioni dell'utente, insieme a quelle installate tramite pacchatti .hpkg, compariranno anche esse in questo percorso o, al più, su ~/config/bin. In alternativa, copia i file applicativi in /boot/system/non-packaged/bin/ o ~/config/non-packaged/bin/ Tutti questi percorsi fanno parte della variabile PATH e pertanto sono trovati automaticamente.
La seguente lista non comprende tutte le applicazioni da riga di comando specifiche per Haiku, serve semplicemente per evidenziare le più utili e per dare un'idea. È consigliato esplorare il contenuto delle cartelle bin/ per farsi un'idea più approfondit. In genere, eseguendo un'applicazione con il parametro --help viene mostrato l'uso e tutte le sue opzioni.

index Correlati agli attributi: listattr, catattr, addattr, rmattr, copyattr

Questi comandi servono per visualizzare, leggere, aggiungere o rimuovere attributi dai file. È importante ricordare che questi metadati sono attualmente supportati soltanto dai volumi formattati in BFS, spostare questi file su un altro filesystem eliminerà tutti gli attributi.
Tutti questi comandi sono descritti nel capitolo Gli attributi nel Terminale.

index Correlati all'indice: lsindex, mkindex, reindex, rmindex

Con questi comandi è possibile visualizzare, creare, reindicizzare e rimuovere attributi dall'indice del BFS. Ogni volume ha il proprio indice, è utile tenerlo a mente quando si copia un file da un volume all'altro.
Questi comandi sono descritti nel capitolo L'indice del filesystem.

index Correlati alla gestione dei pacchetti: package, pkgman

Il comando package è utilizzato per gestire i pacchetti in formato HPKG. Alcune informazioni introduttive sono disponibili alla sezione Installazione di applicazioni. Tipicamente, lo strumento haikuporter è quello utilizzato per crare i pacchetti dalle cosiddette "ricette" (recipe).

pkgman è utilizzato per cercare, installare, aggiornare e rimuovere i pacchetti software. I repository di pacchetti possono essere aggiunti, rimossi e le liste dei pacchetti in essi contenuti essere aggiornate. Un tipo speciale di aggiornamento viene avviato attraverso il parametro full-sync: è più aggressivo e, laddove sia necessario, può anche ripristinare le versioni precedenti dei pacchetti o rimuoverli.
Per ulteriori dettagli su un parametro specifico, accoda "--help" all'invocazione, per esempio pkgman search --help

index Comandi utili per lo scripting

Ecco qui alcune applicazioni particolarmente utili nello scripting (leggere il capitolo La bash e lo "scripting").

alert

alert si occupa di far apparire una semplice finestra di notifica con un'icona predefinita, del testo esplicativo e un massimo di tre pulsanti. Ritornerà il titolo del pulsante premuto e lo stato di uscita (che comincia con uno 0), l'esempio è stato creato con la riga:

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

cli-alert.png

filepanel

filepanel visualizza una finestra che permette di selezionare un percorso utilizzato per aprire o salvare file. Come valore di ritorno si otterrà il percorso del file o della cartella selezionata. Esistono diversi parametri utilizzabili, ad esempio per impostare la cartella di partenza, il titolo della finestra, il nome di default per il salvataggio oppure le restrizioni ai diversi tipi di file selezionabili. Ecco qui un esempio:

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

cli-filepanel.png

hey

hey è un piccolo strumento che invia messaggi BMessages alle applicazioni e ne riporta la risposta. Può essere utilizzata per gestire le applicazioni attraverso uno script, per esempio per il "controllo remoto" di un programma da uno script o da riga di comando. Il suo utilizzo può essere piuttosto complesso... questo post sul blog di Humdinger rappresenta una buona introduzione, ma per un profondo approfondimento, fai riferimento alla BeOS Bible di Scot Hacker, che riporta un tutorial sull'uso di hey scritto da Chris Herborth.

notify

notify mostra un pannello di notifica con un messaggio. Sono possibili diversi parametri, descritti attraverso il comando notify --help. Una notivia è anche utile per mostrare i progressi di una particolare azione. Quando lo fai, è importante scegliere un messageID ed utilizzare sempre quello quando intendi aggiornare la progressione (un numero in virgola mobile tra 0.0 e 1.0, che verrà mostrato attraverso un valore percentuale). In caso contrario, vedrai accumularsi diversi pannelli di notifica, laddove gli aggiornamenti siano più rapidi del tempo di dismissione delle notifiche, come impostato nelle prferenze.
Un esempio:

notify --type progress --group "--group" --title "--title" --icon /boot/home/bebook.hvif \
--messageID MyMessageID --progress .75 "Keep waiting"

cli-notification.png

query

query è la versione su riga di comando del pannello Trova. Infatti, un modo rapido per generare i termini di ricerca è creare una query nel pannello Trova, selezionando per formula, e aggiungendo le doppie virgolette (") in testa e in coda, successivamente si incolla l'intera stringa dopo il comando query nel Terminale o nello script che si sta realizzando.

waitfor

waitfor è un semplice metodo per aspettare che una particolare applicazione venga avviata o terminata.

index Altri comandi

checkfs

checkfs è un'applicazione importante per verificare la presenza di errori nel filesystem. Basta aggiungere il nome del volume, ad esempio /Haiku, o del dispositivo e il programma esaminerà ogni file e correrreggerà eventuali inconsistenze dove possibile.

desklink

desklink può aggiungere un'icona per qualsiasi file, cartella, query o applicazione da mostrare nella Deskbar. Offre anche un'opzione che permette di mostrare un menù contestuale quando, per eseguire azioni speciali, si fa clic con il tasto destro su un'icona. Per esempio, digita nel terminale quanto segue per aggiungere alla Deskbar il programma su riga di comando screenshot con le varie opzioni (il "\" nella prima riga serve semplicemente per segnalare l'andata a capo al Terminale):

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

cli-alert.png

diskimage

Tramite diskimage puoi registrare un file come un dispositivo disco. Per esempiom puoi registrare un file immagine di Haiku, montarla tramite il Tracker e copiare, modificare o cancellare file prima di utilizzarla come immagine di partenza per una installazione attraverso il Programma di Installazione.

launch_roster

Il launch_daemon si occupa di avviare tutti i servizi e le applicazioni all'avvio. Per alcuni di questi servizi, si occupa di riavviarli nel caso venissero chiuse. Se non è ciò che desideri – magari perché vuoi provare una versione modificata del Tracker, ad esempio – puoi utilizzare launch_roster per fermare il riavvio di un'applicazione, prima di chiuderla. Allo stesso modo puoi avviarla nuovamente o recuperare alcune informazioni su di essa. Il parametro log stampa un riepilogo di registro di tutti gli eventi relativi a launch_daemon related.
Senza alcun parametro, launch_roster mostra una lista di tutte le applicazioni e i servizi sotto il suo controllo.
L'esempio qui sotto impedisce il riavvio automatico della Deskbar:

launch_roster stop x-vnd.be-tskb

mountvolume
mount

mountvolume è spesso preferito per montare partizioni e dischi, in quanto estremamente semplice da usare: invocalo specificando semplicemente il nome della partizione da montare e il gioco è fatto. Prova il parametro --help per una lista delle altre opzioni.

mount può anche montare dischi remoti utilizzando un file system di rete, come NFS4. Specifica il tipo di file system mediante il parametro -t e la posizione remota mediante il parametro -p. Come file system puoi scegliere tra tutti quelli che trovo al percorso /system/add-ons/kernel/file_system (come anche il percorso speculare sotto ~/config oppure, naturalmente, "non-packaged"). Ricordati di creare una directory da usare come mountpoint. Qui di seguito un esempio:

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

open

open è un'applicazione semplice ma anche molto pratica. Permette di aprire qualsiasi file con la sua applicazione preferita o avviare uno specifico programma a partire dalla sua firma senza la necessità di conoscerne l'esatto percorso. Il comando funziona anche con gli URL e con le cartelle "virtuali" (. indica la cartella corrente e .. indica la cartella superiore) aprendo la cartella direttamente nel Tracker.

ramdisk

Un disco RAM (ramdisk) è come un disco rigido, solo che risiede nella memoria del computer. Questo lo rende estremamente veloce, ma anche volatile, in quanto il suo contenuto viene perduto quando spegni il computer, quando va in crash o quando si verifica un blackout.
Per creare un disco RAM da 1 GiB, formattarlo con il nome "RAMses" e montarlo, immetti questi comandi da Terminale, oppure crea uno script che li contiene:

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

Nota: quando crei un disco RAM, il comandoramdisk restituisce il suo percorso. Se crei più dischi, il percorso/dev/disk/virtual/ram/0/raw cambierà!

Per preservarne il contenuto, almeno nel caso non vi sia una calamità imprevista come, appunto, un blackout, un disco RAM può essere configurato per leggere/scrivere da un'immagine su disco rigido. A tale scopo, devi fornire un file delle dimensioni desiderate e take file verrà letto all'avvio del disco RAM e scritto quando lo smonti. Per creare un'immagine "RAMimage" di 500MiB e per formattarla, immetti questi comandi:

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

Da questo momento in poi, il comando di avvio del disco RAM sarà il seguente:

ramdisk create RAMimage
mountvolume RAMimage

È estremamente importante smontare correttamente il disco RAM, tramite il Tracker oppure il comandounmount /RAMimage. Se non lo fai, le modifiche apportate non verranno trascritte nel file immagine!