Visualizzazione post con etichetta bash. Mostra tutti i post
Visualizzazione post con etichetta bash. Mostra tutti i post

Generazione di anagrammi su linux

Non so se si era capito ma apprezzo gli anagrammi...  
Esalando Prassi per esempio, piaccia o non piaccia, è uno dei banali anagrammi del mio cognome.
Se siete curiosi di sapere quali anagrammi cela il vostro nome, il nome di un vostro amico o una qualsiasi frase vi suggerisco di farvi un giro sul motore anagrammatico del Gaunt. [1]

Se poi siete dei maniaci come me potrete trovare soddisfazione installando il generatore di anagrammi an.

fuseftp e sshfs

Montare file sistem remoti comincia a diventare un'abitudine a cui trovo difficile rinunciare
Ringrazio tanto gli sviluppatori idi fuseftp e sshfs, due applicazioni davvero utili che consentono, banda permettendo di connettere al proprio pc cartelle remote accessibili via ftp o ssh.

La modalita' di utilizzo e' molto simile nei due casi: ecco due semplici esempi:


# create una directory su cui montare l'albero di cartelle remoto
mkdir ftpremotedir
# montate il fs
fuseftp --cache=memory ftpremotedir/ yourserver:/path/to/remotedir
# e all'occorrenza smontatelo
fusermount -u ftpremotedir



# create una directory su cui montare l'albero di cartelle remoto
mkdir sshremotedir
# montate il fs
sshfs ale@example.com:/path/to/remotedir sshremotedir/
# e all'occorrenza smontatelo
fusermount -u sshremotedir

Ack: uno strumento raffinato per curiosare nei file di testo

Nel mondo unix lo strumento principe per cercare stringhe nei file di testo e' sempre stato grep

Il programma grep (acronimo di global / regular expression / print) e' uno strumento che non puo' mancare nella cassetta degli attrezzi di uno sviluppatore. Anni e anni di sviluppo ne hanno affinato le potenzialita'. La pagina di manuale di grep e' una vera fonte di nuovi ed interessanti utilizzi per questo capolavoro di software.

Nel mio lavoro mi sono spesso giovato dalla definizione di un alias che mi permette di adattare grep alle mie esigenze:

[ale@chandra ~]$grep grep .bashrc
alias grep="grep --color --exclude-dir=.svn --exclude={*.pyc,*~,*.pyo}"

Questo alias mi garantisce un output colorato, esclude le directory svn e file che non mi interessano.

Nonostante il mio infinito rispetto per grep, ultimamente devo ammettere di usarlo meno del solito. La regione di tutto cio' e' che ho cominciato ad usare ack (link).

Ack, a differenza di grep, e' meno "general purpose": mentre grep cerca in ogni file, ack evita di perdere tempo in file binary, in cartelle di sistemi di revisione del codice (svn, git, mercurial, ecc...) e in file di backup. Inoltre ha gia' di default l'output colorato, e la cosa non guasta di certo! Praticamente tutte le cose che ho dovuto specificare nel mio alias, ack le fa di default. Ma non e' finita :)

Caratteristica peculiare di ack e' la possibilita' specificare tipi di file per gruppi. Per esempio uno sviluppatore plone trarra' vantaggio dall'opzione --plone (che restringe la ricerca a file con estensione py, cpy, pt, metadata, ecc... ) mentre uno sviluppatore c++ potra usare il flag --cpp (che ricerca nei file cpp, cc, h ecc...). Ovviamente tali gruppi sono personalizzabili.

Come se non bastasse, ack di default analizza ricorsivamente la directory corrente, mentre grep di default analizza lo standard input, cosa che si adatta sicuramente di piu' alle mie esigenze.

Ma non voglio andare oltre nell'illustrarvi le peculiarita' di questo software. Mi limito ad invitarvi a provarlo sicuro che anche voi, come me, ne apprezzerete la comodita'.

Ack homepage: http://petdance.com/ack/

Snellire la procedura di installazione dei driver nVidia per Linux

Ecco come snellire l'installer nVidia
Il comportamento di default dello script di installazione dei driver nVidia per linux e' una vera piaga: chiede in continuazione una marea di cose francamente evitabili e ha delle esigenze particolari.

Il comportamento predefinito, infatti, e' di abortire l'installazione se una istanza di Xorg e' attiva o se il runlevel non e' quello delle sessioni text only (2 o 3, a seconda delle distro).
Per fortuna ci sono delle opzioni furbe che permettono di farlo rigare dritto.
Per condividere questa informazione con voi e per evitare tutte le volte di riguardarci io stesso, ho deciso di tenerne nota in questo articolo, consegnando al mondo questo comando magico:


sh NVIDIA-Linux-x86-180.11-pkg1.run -aqN --no-x-check --no-runlevel-check


Ecco spiegato il significato di questa riga di comando


NVIDIA-Linux-x86-180.11-pkg1.run e' il driver che vi sarete scaricati dal sito nVidia in qualche modo. Ovviamente

-a : accetta la licenza
-q : non mi stressare con troppe domande ("quiet")
-N : no network, evita di perdere tempo inutile ad andare in rete a cercare un driver precopilato che non esiste ...
--no-x-check: non controlla che X stia girando
--no-runlevel-check : non pone eccezioni sul runlevel

L'elenco completo di queste opzioni (sono veramente tante) si puo' ottenere con il comando

sh NVIDIA-Linux-x86-180.11-pkg1.run -A


Note conclusive
Quanto scritto non e' detto che rimanga valido per versioni future dei driver

La procedura descritta sopra e' stata testata piu' volte da me medesimo e non ha mai causato problemi, ma ovviamente non e' detto che la stessa cosa valga per voi...

Dovessero esserci dei problemi fatemi sapere, non tanto perche' possa metterci una pezza, ma giusto perche' sono curioso :D

safe-rm: proteggetevi dalle distrazioni

La potenza di una shell e' enorme, ed eventuali errori si pagano cari

A volte puo' capitare di eliminare un file od una directory involontariamente a causa di stanchezza, distrazione. Il piu' delle volte il colpevole e' il comando rm, un comando di basso livello, molto ligio al dovere e forse viene utilizzato talmente tanto da sottovalutarne la pericolosita'.

Anche io sono uno di quelli che ha perso dei dati a causa di uno script che invocava un rm azzardatamente. Per fortuna avevo un backup recente e ho recuperato in fretta quanto ho perso. Ma quell'esperienza mi ha messo sul chi va la'!


Una soluzione a queste tragedie, tipiche del Venerdi' pomeriggio e che vi possono rovinare il weekend, e' safe-rm, un programma molto semplice che si comporta in maniera identica ad rm, ma permette di specificare una serie di file o directory in una lista (a livello globale e per utente).

safe-rm e' uno script perl di meno di 200 leggibilissime righe che potete scaricare da qui

Un consiglio per utilizzare al meglio urpmi

Mai capitato che urpmi si bloccasse durante il download di un pacchetto?
Con l'arrivo di Mandriva 2009 urpmi scarica di default i pacchetti utilizzando aria2c, una specie di download manager in grado di scaricare i frammenti di un pacchetto da piu' server in modo da ottimizzare la velocita' del download.

Purtroppo non sempre tutto fila liscio...


Capita a volte che il download fallisca, spesso quando avete gia' scaricato mega di dati. Una semplice soluzione e' di utilizzare programmi alternativi per il download, ad esempio wget e curl.

Come?

urpmi --wget nomepacchetto
urpmi --curl nomepacchetto

urpmi --auto-select --wget
urpmi --auto-select --curl

urpmi --auto-update --wget
urpmi --auto-update --curl


Qualora vi trovaste particolarmente bene con una di queste soluzioni vi consiglio di definire un alias nel file .bashrc di root, inserendo una riga simile a questa:

alias urpmi="urpmi --wget"
alias urpmi="urpmi --curl"


Buon aggiornameto/installazione!

Rimuovere kernel obsoleti

Un simpatico trucchetto per semplificarsi la vita
Quando si installa un nuovo kernel e' buona prassi conservare quello vecchio: dovesse andare storto qualcosa nell'aggiornamento. [1]
I gestori dei pacchetti lo sanno e, a differenza di quanto succede per un software normale, ad esempio firefox, dopo l'aggiornamento non rimuovono i pacchetti vecchi.
Capita, per questo motivo, di avere svariate versioni del kernel inutilizzate installate sulla propria macchina.
Per eliminarle tutte senza diventare matti tra dipendenze, interfacce grafiche e via dicendo vi do un simpatico consiglio, che funziona su Mandriva ma e' facilmente riscalabile ad altre distribuzioni. Il comando magico e':
urpme `rpm -qa|grep kernel|grep X.Y.ZZ`
X.Y.ZZ e' la versione obsoleta del kernel. Vi faccio notare che nel comando di prima sono stati utilizzati gli apici retroversi, che permettono di inserire all'interno di un comando l'output di un altro comando.

Prima di procedere potreste voler controllare i pacchetti che vengono rimossi. A tal fine e' sufficiente dare il comando contenuto tra gli apici retroversi, il quale vi restituira' in output i pacchetti incriminati e destinati ad essere rimossi.

[1] Per esempio puo' succedere che su un nuovo kernel non si riescano a compilare driver esterni, soprattutto nel caso dei driver proprietari.

Riga di comando VS Interfaccia grafica

Ovvero quando la tanto temuta shell surclassa per semplicita' le goffe interfacce grafiche

Oggi ho installato picasa sul mio portatile. Uso linux come sistema operativo (Mandriva Spring, nell'attesa che tra pochi giorni esca la 2008...) e l'installazione e' filata liscia, dimostrandosi di una banalita' mostruosa, grazie all'utilizzo di soli due comandi!
E' stato sufficiente reperire il seguente comando sul sito di google:
urpmi.addmedia -v google http://dl.google.com/linux/rpm/stable/i386 with hdlist.cz
Dopo pochissimo, ho potuto installare picasa con il semplicissimo comando:
urpmi picasa
Avessi dovuto fare la stessa cosa con l'interfaccia grafica, che Mandriva mette a disposizione e che nei miei giorni di noviziato mi e' stata tanto utile e cara, avrei dovuto eseguire un numero di operazioni molto maggiore con conseguente rischio di commettere errori. La serie di operazioni necessarie e' descritta nello stesso nello stesso sito di google, e come vedete fa spavento! O per meglio dire brilla la semplicita' della riga di comando!

Quando dicono che linux e' complesso e difficile da usare io sorrido, pensando a situazioni come queste e ad altre che incontro quotidianamente durante il mio lavoro. Con altri sistemi operativi non saprei come fare certe operazioni o le svolgerei molto piu' lentamente.
La difficolta' di un gesto e' relativa, l'abitudine e la pratica permettono di svolgere con estrema naturalezza, quasi sovrappensiero, lavori oggettivamente complessi. Pensate a quando guidate un automobile, o ad un atleta professionista!

Io ritengo che parecchie persone riterrebbero molto piu' semplice usare linux rispetto a windows se non si fossero gia' tanto impratichiti con quel sistema operativa. Prova ne sia che chi passa da win 98 o win XP a Vista rimane inizialmente spaesato, per poi magari preferire la nuova soluzione.