La Shell di Mac OS X

Una persona sana di mente può mai mettersi a scrivere un articolo sulla Shell di Mac OS X a mezzanotte in punto!!??

Ovviamente no… ma visto che il blog inizia ad avere 50-60 visitatori assoluti al giorno mi fa ben sperare di non essere solo e che ci siano altri “malati” come me 😀

Partiamo con un pò di nozioni di base dato che molti dei fortunati possessori di un Macintosh non hanno mai utilizzato una shell ( Terminale ). Mac OS X viene fornito con la shell di default Bourne Again SHell, comunemente detta bash, ma include anche altri tipi di shell come TENEX C shell (tcsh), Korn shell (ksh) ecc..

Spero abbiate già l’iconcina del Terminale sul vostro Dock, altrimenti spostate l’icona Terminale dalla subdirectory Utility di Applicazioni in modo da avere un veloce accesso alla command line.

Chiunque abbia mai usato un Sistema Operativo UNIX-like per scopi che non siano solo di gioco o per farsi bello con gli altri 😀 ha avuto modo di scoprire tale strumento fino a tal punto da non poterne più fare a meno. Non esagero quando dico che è indispensabile, soprattutto nel caso in cui il nostro Sistema Software deve compiere particolari task e/o automatismi che da interfaccia grafica sarebbero molto più complessi, se non addirittura impossibili..

Un altro mio articolo sui principali comandi shell può esservi di aiuto nel capire cosa è possibile fare, e spero vi renda così curiosi da iniziare a smanettare con la vostra shell 😀

In questo articolo volevo mostrarvi qualche piccolo esempio sull’uso della shell, ed in particolare in riferimento all’ambiente Mac OS X.

Esempio 1


#!/bin/sh
# Script nw opens a new Terminal window
osascript << EOF
tell app "System Events"
  keystroke "n" using command down
end tell
EOF

Questo piccolo esempio usa il comando osascript per invocare un AppleScript, il quale a sua volta interagisce con il System Events e serve per emulare l’effetto che si ha premendo ⌘-N , cioè aprendo un altra finestra Terminale

 

Esempio 2


#!/bin/sh
# Script opens a new Terminal Tab in existing window
osascript << EOF
tell app "System Events"
  keystroke "t" using command down
end tell
EOF

Quest’altro piccolo esempio invece emula ⌘-T, cioè apre una nuova tab sul Terminale già in uso.

 

Esempio 3


#!/bin/sh
# Script Run Vim
osascript << EOF
tell app "Terminal"
set number of rows of first window to 34
set number of columns of first window to 96
set custom title of first window to "Vim Editor :D"
EOF
vim $@

Quest’ultimo esempio vi mostra come aprire Vim utilizzando uno shell script.

Per poter eseguire questi script, dobbiamo renderli eseguibili. Supponiamo di aver chiamato quest’ultimo esempio RunVim, dobbiamo dare il seguente comando ( sempre da shell ):


chmod +x RunVim

L’ora tarda e la dolce visione del mio cuscino non mi permettono di andare oltre.. ma il prossimo articolo sarà sui parametri di personalizzazione della nostra Shell.