Hack per la shell

Da Wiki di NetBSD Italia.

(Differenze fra le revisioni)
m (Micro-pause: aggiungo il $ in modo da renderlo compatibile con le convenzioni)
m (Installare un pacchetto in modalita' silenziosa: comandi compatibili con le convenzioni e piccolissimi miglioramenti)
Riga 23: Riga 23:
'''NOTA''': csh e' l'unica shell che supporta gli argomenti per gli alias, motivo per cui, al fine di ottenere lo stesso comportamento, l'unica soluzione e' quella di utilizzare le funzioni.
'''NOTA''': csh e' l'unica shell che supporta gli argomenti per gli alias, motivo per cui, al fine di ottenere lo stesso comportamento, l'unica soluzione e' quella di utilizzare le funzioni.
-
== Installare un pacchetto in modalita' silenziosa ==
+
== Installare un pacchetto in modalità silenziosa ==
-
Questo semplice comando consente di installare un pacchetto visualizzando su schermo solo i messaggi dell'infrastruttura di [[pkgsrc]] escludendo tutti quelli legati alla compilazione del pacchetto o al ''fetching'' dei sorgenti. Per eventuali errori o altro e' possibile consultare l'output completo del processo di installazione all'interno del file ''full.out'', creato all'interno della directory corrente.
+
Questo semplice comando consente di installare un pacchetto visualizzando su schermo solo i messaggi dell'infrastruttura di [[pkgsrc]] escludendo tutti quelli legati alla compilazione del pacchetto o al ''fetching'' dei sorgenti. Per eventuali errori o altro è possibile consultare l'output completo del processo di installazione all'interno del file ''full.out'', creato all'interno della directory corrente.
-
  make 2>&1 | tee full.out |grep ^=
+
  $ make 2>&1 | tee full.out |grep ^=
Per sopprimere totalmente l'output usare invece il seguente comando:
Per sopprimere totalmente l'output usare invece il seguente comando:
-
  make 2>&1 > full.out
+
  $ make 2>&1 > full.out
[[Categoria:Hacking]]
[[Categoria:Hacking]]

Versione delle 20:54, 16 mar 2008

Raccolta di hack, fantasie e virtusismi per la shell :-) Tutti i membri della comunità sono invitati a contribuire all'evoluzione di questa pagina lasciando, come una firma digitale personalizzata dallo stile e dall'originalità, il proprio script.

Micro-pause

Questo comando riproduce, ogni 10 minuti, 5 beep a distanza di 1 secondo ciascuno utilizzando la campanella di sistema.

$ while true ; do sleep 600 ; for i in $(seq 1 5) ; do \
printf '\a' ; sleep 1 ; done ; done

L'obiettivo è ricordarsi di effettuare delle micro-pause periodiche per allentare le tensioni muscolari. Un vero software indicato per questo genere di attività è wip/workrave.

Trovare un pacchetto

Piccolo accorgimento che emula la funzione di ricerca base del famigerato pkgfind(1). Le uniche differenze significative sono il fatto che quest'ultimo, oltre ad essere decisamente piu' lento (dato che effettua una "vera" ricerca, anziche' sfruttare il meccanismo di globbing) non mostra i cosiddetti distfiles contenuti nella directory pkgsrc/distfiles. A suo favore, invece, c'e' la capacita' di distinguere fra maiuscole e minuscole (al prezzo dell'installazione di un pacchetto, pkgtools/pkgfind, appunto). Di seguito sono riportate le versioni per le shell piu' diffuse le quali di norma vanno inserite nel relativo file di inizializzazione dell'interprete:

  • sh(1) (e shell Bourne in generale)
$ pkgdir() { ls -1d /usr/pkgsrc/*/*$1* |cut -d'/' -f 4-; }
% alias pkgdir 'ls -1d /usr/pkgsrc/*/*\!^* |cut -d'/' -f 4-'

NOTA: csh e' l'unica shell che supporta gli argomenti per gli alias, motivo per cui, al fine di ottenere lo stesso comportamento, l'unica soluzione e' quella di utilizzare le funzioni.

Installare un pacchetto in modalità silenziosa

Questo semplice comando consente di installare un pacchetto visualizzando su schermo solo i messaggi dell'infrastruttura di pkgsrc escludendo tutti quelli legati alla compilazione del pacchetto o al fetching dei sorgenti. Per eventuali errori o altro è possibile consultare l'output completo del processo di installazione all'interno del file full.out, creato all'interno della directory corrente.

$ make 2>&1 | tee full.out |grep ^=

Per sopprimere totalmente l'output usare invece il seguente comando:

$ make 2>&1 > full.out
Strumenti personali