Dec 112011
 

di
Frank Harris-Smith

Bash è in giro dalla preistoria, di sicuro prima del rilascio di GNU/Linux, avvenuto la prima volta nel 1991.

Il mio primo incontro personale con Bash è stato nel 1993. Questo era due anni prima del rilascio di Microsoft Windows 95 e Windows 3.1 era solo un brutto scherzo. La compagnia di sviluppo software con cui stavo lavorando stava usando SCO Unix in esecuzione su sistemi i486 per far funzionare Chioschi per la visualizzazione, la stampa e la vendita di spartiti.

Il mio secondo incontro con Bash è stato più di un decennio più tardi, quando ho iniziato a fare esperimenti con GNU/Linux. Avevo trovato un CD nel retro di un libro con Linux RedHat 7.2 su di esso, che utilizzava un vecchio kernel che aveva alcune funzioni mancanti. Come l’accedere a una macchina fotografica digitale o ad un semplice dispositivo di memoria USB. Così ho scritto uno script Bash per montare e accedere alla telecamera. Poi un paio di script per accedere a un dispositivo simile ad un Palm Pilot (My Sony Clie ‘) ed agli standard USB FlashDrive.


L’aver avuto un paio di “incontri” con Bash fa di me una sorta di esperto? La risposta è no. Onestamente, io sono più per il risolvere il problema nel momento in cui si presenta. Io non sono un programmatore né voglio programmare.

Cosa posso portare sul piatto quando si tratta di un articolo su Bash? La mia capacità di “risolvere per X” e le ricerche che ho fatto per preparare il mio prossimo divertente progetto – robotica. Per fare questo ho bisogno di usare Bash intelligentemente e di scrivere scrips. Alcuni problemi richiedono un bel po’ di lavoro per essere risolti, che è dove entra in gioco il divertimento Così ho fatto qualche ricerca su Google e fatto altre ricerche.

Ok, basta parlare di me.

Bash è obsoleta? Niente affatto. Potrebbe essere in giro dal 1989, ma se si vuole fare qualcosa “out of the box”, Bash è probabilmente il più forte strumento nella vostra cassetta degli attrezzi. In quasi tutte le distribuzioni GNU/Linux Bash è la shell di default. Anche la maggior parte delle distribuzioni Unix hanno Bash come default.

Si potrebbe utilizzare altre shell. Ma perché? Bash è la più potente e flessibile. Se “la necessità è la madre dell’invenzione”, allora visto che nessuno è venuto in mente nulla meglio di Bash, direi che Bash è buona per quello che deve fare. Tutti sembrano abbastanza felice con Bash.

Il vostro sistema GNU/Linux usa bash ?

Un modo semplice per verificare se la vostra Distro Linux di default utilizaz Bash è aprire una finestra di terminale. Bash utilizza un prompt unico, il carattere $. In questo modo:

bash

abbastanza semplice

Le pagine man del sistema Linux sono un ottimo modo per rinfrescare la memoria. E’ molto utile per cercare la sintassi di un comando, o il nome di una variabile, o qualunque piccolo dettaglio di cui non si è sicuri. Basta dare man bash nel vostro terminale.

man bash

Prima di andare in un modo frenetico a digitare nel terminale, ecco un semplice elenco di combinazioni Bash che renderanno la vita più facile, oltre ad aiutarvi a prevenire la sindrome del tunnel carpale.

Le combinazioni di tasti in Bash

Il tasto Tab esegue il completamento dei nomi dei file ed è particolarmente utile per navigare le directory con nomi lunghi. È possibile correggere errori di battitura con i tasti freccia sinistra e destra e persino andare all’inizio o alla fine di una riga.

Ecco il manuale di riferimento ufficiale Bash, da gnu.org. Qui troverete un completo, anche se un po’ difficile da seguire, manuale, specialmente se siete nuovi nello sporcarsi le mani “sotto il cofano”.
La ricerca mi ha portato ad un paio di buoni tutorial per Bash, uno dei quali potrebbe essere di aiuto anche a voi. Il primo è più orientato al principiante mentre il secondo è di un livello più avanzato.

Bash guide for Beginners
Bash guide on Greg’s wiki

Bash ha un numero di comandi inclusi. Funzioni che sono molto utili per aiutarvi a compiere la vostra missione. Eccone solo un assaggio:

15 Useful Bash Shell Built-in Commands (con esempi)

Linux (e Unix) sono basati su file di testo che possono essere utilizzati per trattare con l’hardware che non ha driver per Linux o per svolgere funzioni personalizzate come il controllo di una periferica, come un robot o automatizzare un mount. Qui ci sono tre links che ho trovato essere informativi.

Bash scripting Tutorial

Steve Parker’s shell scripting guide

Linux Shell Scripting Tutorial


Tutto questo sembra complicato. Molto meno complicato di quello che potrebbe essere se una certa filosofia non fosse stata seguito, la filosofia Unix/Linux

  • Fare una cosa e farla bene – Scrivere programmi che fanno una cosa e la fanno bene. Scrivere programmi che possano lavorare insieme. Scrivere programmi per gestire flussi di testo, perché questa è un’interfaccia universale.
  • Tutto è file – Facilità d’uso e sicurezza sono offerte trattando l’hardware come un file.
  • Piccolo è bello.
  • Memorizza i dati e la configurazione in file di testo – I File di testo sono un’interfaccia universale. Facile da creare, salvare e passare ad un altro sistema.
  • Utilizzare gli script di shell per aumentare la portabilità – Utilizza script di shell per automatizzare le attività comuni nei vari sistemi Unix/Linux.
  • Utilizzare catene di Programmi per completare un’attività complessa – L’utilizzo di pipe nella shell ed i filtri per fare catene delle piccole utilità che svolgono un compito alla volta.
  • Scegliere la portabilità rispetto all’efficienza
  • E:

kiss

In confronto le persone a Redmond, Washington, negli Stati Uniti mettono tutti i loro dati di configurazione in un database di grandi dimensioni denominato il Registro di sistema. Molto complesso e molto difficile da capire. Li hanno anche chiamati “vespai”, un nome appropriato considerare che la voglia di modificare il Registro a mano è la stessa di avvicinarsi a mani nude ad un nido di vespe.

Preferisco di gran lunga la semplicità di Linux

Popular Posts:

Flattr this!

  8 Responses to “Io e Bash – La Bourne-Again SHell”

  1. It’s not “Me and Bash”.

    It is “Bash and I”.

    Us techheads wouldn’t be caught dead posting:
    $ “hello world” echo

    So why is acceptable to mangle the English language? Hmmm…

    • No, it’s not acceptable, i agree.
      My fault.

      • Frank, you were bulldozed by Smithy, who spoke too soon You’re doing fine.

        “Me and BASH” is awkward; “BASH and Me” would be better. (As in, “The Story of BASH and Me”.)

        “BASH and I”, however, is Just Plain Wrong, except with a following verb. (Simple usage test: Delete the noun, and listen. Here, it’s about “Me”, not “I”. “The Story of I”? You’ve gotta be kidding! 🙂

        More importantly: Less than perfect English had better be acceptable in on-line writing, if we’re to get the benefit of good information from other than polished grammatarians.

        Most importantly: Thank you for a very good and very readable article!

        Cheers from
        –Dick

  2. Smithy, isn’t it : “So why is IT acceptable to mangle the English language? Hmmm…” 🙂

  3. When I see mangled sentences like, “An easy way to verify your Distro of Linux defaults to Bash is open a terminal Windows.” it’s hard for me to conclude anything except that the author is indifferent to the quality of the article. The title grammar is only the first in an embarrassing series of sloppy errors. I’m sorry to report that I did not even read through to the end, so if this article suddenly became readable and interesting I will have missed it… >-/

  4. Never saw “bash” anywhere on any unix since 1985 ‘till linux got into full swing around 2000. NO, MOST Unix’es (aix, hpux, at&t, sco,irix,etc) DO NOT DEFAULT TO BASH, they use sh, csh, ksh, ANYthing but bash. Even SCO never went that way, although you could likely get it, but I’ll bet what you actually used was sh….

    These days you can likely get a copy for most, but it’s certainly not the default except on linux…

  5. Nevermind the English lessons…

    I started using Bash about a century ago when my company moved from HP-1000 systems to HP-9000 running HP-UX. Now-a-days, though, I have moved to Zsh. If Bash has everything, Zsh has everything^2.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*