[BGLug VS] Problemi con la shell

Emiliano Giovanni Vavassori testina@sssup.it
Ven 10 Ago 2007 23:36:35 CEST


Il giorno Fri, Aug 10, 2007 at 11:14:55PM +0200, Alberto Bonacina ha scritto:
> 1)Come si fa a creare un file di testo (per esempio con estensione .txt 
> o .tex) e poi "entrare" nel file per modificarlo/salvarlo direttamente 
> da shell?

Quelli che hai usato fin'ora (credo echo e cat) non ti bastano per
*modificare* un file di testo, ma hai bisogno di un editor di testo vero
e proprio (non è completamente corretto, ma semplifico per non mettere
troppa carne al fuoco).

Ce ne sono un'infinità, credo i più usati siano
Vim (http://www.vim.org) e Emacs (http://www.gnu.org/software/emacs).
Entrambi questi due sono molto complessi da imparare ma sono molto più
potenti di altri editor e sono disponibili sia su linea di comando che
in ambiente grafico. Puoi sempre usare l'editor grafico del tuo Desktop
Environment (kedit su KDE o gedit su GNOME) oppure, da linea di comando,
usare altri editor un pochino più 'friendly' ma (ovviamente) meno
potenti: nano, pico e joe fra gli altri. Credo che nano sia installato
di default in tutte le distribuzioni (o quasi).

L'uso tipico di nano è:
$ nano -w nomefile.txt

Se il file esiste, ne vedrai il contenuto e lo potrai modificare; in
caso contrario, il file verrà creato e potrai ugualmente scrivere a tuo
piacimento. I comandi per usare correttamente nano sono presentati nella
parte bassa della sua schermata. Ed esiste sempre la manpage.

> per ora riesco solo ad entrare  in un file di testo già esistente con il 
> comando cat, non riuscendo però a modificarlo, e a eliminarlo con il 
> comando rm.

cat manda in standard output il contenuto del file e ci puoi fare ben
poco se non con un filtro (concetto un po' complesso e che forse non è
il caso di approfondire ora). Ti basti sapere che cat è uno strumento
'read-only'.

Giusto per darti un esempio di cosa si può fare,
$ sed -i -e 's/pippo/pluto/g' nomefile.txt
Sostituisce tutte le occorrenze di 'pippo' nel file 'nomefile.txt' con
'pluto'. Ovviamente ha ben poco di interattivo e devi avere conoscenza
delle Regular Expressions.

> 2)Come si fa per eliminare una directory?
> per ora so solo crearla con il comando mkdir

O la svuoti del suo contenuto e poi usi:
$ rmdir nomedir

Oppure, più semplicemente:
$ rm -r nomedir

Prima di lanciare il comando controlla 4 volte cosa stai cancellando!
Per maggiori informazioni sull'opzione '-r' di rm, `man rm`.
 
> So perfettamente che per fare tutte queste cose basterebbe fare due clic 
> con il mouse e utilizzare un editor di testo ma lo spirito di conoscenza 
> mi spinge a chiedermi come si può fare da shell.

Molto di più di quello che ti immagini, ma credo sia cosa buona e giusta
che tu proceda a piccoli passi.

Se vuoi una mia personale opinione, investi tempo su un editor di testo
complesso (emacs o vim, consiglio il secondo) e, dopo esserti fatto una
cultura sui comando *nix, su 'sed' e 'awk'. Ci sono un sacco di pagine
che ne parlano sulla rete.

Ciao, a presto e happy bashing,
-- 
Emiliano Giovanni Vavassori - http://syntaxerrormmm.altervista.org/
GuIT --- Home page: http://www.guit.sssup.it/
Please, no Word or PowerPoint attachments. Do so only if it's
extremely necessary.

-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
Url:         http://lists.linux.it/pipermail/bglugvs/attachments/20070810/23c05805/attachment.pgp 


Maggiori informazioni sulla lista BglugVS