18 dicembre 2008

Perle della Bash [18-12]

Man mano che nel sperimentare(spero con meno danni di quelli già fatti) la shell in particolare la bash e imparo comandi o trucchetti nuovi, sarò felice di condividerlo con tutti quelli che lo vorranno. Questo è anche un modo per motivare me stesso a imparare la shell, che di Gnu/Linux come io ritengo, è la stanza dei bottoni.

Scrivere uno script in bash è molto semplice basta aprire il vostro editor che usate di solito e iniziare a scrivere del codice come il seguente
#!/bin/bash

echo 'Ciao sono la shell sarò sempre al tuo fianco!'

ps ax | wc -l

echo 'bye.'

e salvare il listato con nome_script.sh, poi rendere lo script eseguibile con
:~$ chmod 755 nome_script.sh

e eseguirlo in questo modo
:~$ ./nome_script.sh.

Ma possiamo eseguire la stessa porzione di codice anche in un modo diverso che è quello interattivo. Cioè eseguire il tutto da shell senza scrivere una riga di testo nel nostro editor. esattamente scriviamo lo script senza #!/bin/bash nella shell cosi
:~$ echo 'Ciao sono la shell sarò sempre al tuo fianco!'

:~$ ps ax | wc -l

:~$ echo 'bye.'

e avremo l'output di quanto scritto nel Terminale stesso, niente di difficile vero?

Bene adesso continuiamo nel testare la nostra shell sempre in modo interattivo.




Se abbiamo l'esigenza di rimuovere tutte le righe bianche in un file di testo o in un nostro script sed e nostro amico.
:~$ cat poema.txt | sed /^$/d

tutt'altra cosa è quando non sappiamo dove si trova un determinato file(o anche più di uno) possiamo usare un comando che lo cerca nel sistema è una volta trovato lo elimina.



tipo questo comando che trova e rimuove tutti i file con estensione .bak(bakup).
:~$ rm $(find . -name '*.bak')

se invece abbiamo una directory piena zeppa di file e vogliamo trovare una certa stringa o parola che sia contenuta in ognuno di questi file, ecco quello che fa per noi.

:~$ ls | grep open | wc -l

cerca la stringa open in tutti i file contenuti nella directory corrente.

Certo sicuramente non ce niente di impegnativo in questi comandi, ma iniziare dalle cose piccole
è sempre il modo migliore per sperimentare e approfondire, soprattuto nei riguardi della shell.

Nessun commento: