Come avviare le applicazioni GUI dal terminale
Sappiamo tutti come avviare app dalla GUI facendo doppio clic sull’icona o facendo clic sull’app nel Dock, e ci sono numerosi modi per farlo, e tutti sono relativamente veloci. Tuttavia, se trascorri una discreta quantità di tempo con la riga di comando, è bello poter avviare anche app per Mac direttamente da lì. Il terminale ha anche la sua giusta quota di applicazioni che vengono eseguite in modalità basata su testo, ma forse volevi modificare un file di testo nell’applicazione GUI TextWrangler di Mac OS X piuttosto che in nano o vim basati su testo.
Dimostreremo come avviare qualsiasi applicazione grafica Mac dalla riga di comando di MacOS X, incluso come aprire determinati file dalla riga di comando con un’applicazione GUI e come modificare e aprire quei file con accesso root se necessario.
Apertura di applicazioni Mac OS X dalla riga di comando
Il comando Terminale per avviare le applicazioni gui di MacOS è opportunamente chiamato “aperto” ed ecco come funziona più semplicemente:
open -a ApplicationName
Verrà aperta l’applicazione definita denominata “ApplicationName”.
Ma open è molto più potente di così. Se digiti semplicemente “apri” al prompt dei comandi, restituirai il file della guida di base con i dettagli su come utilizzare correttamente il comando con una varietà di flag e sintassi.
Sebbene il comando di apertura esista in tutte le versioni di Mac OS X, le funzionalità variano in qualche modo a seconda della versione di MacOS / Mac OS X in esecuzione sul Mac. Tuttavia, nelle versioni moderne, ecco cosa vedrai:
$ open
Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b
Help: Open opens files from a shell.
By default, opens each file using the default application for that file.
If the file is in the form of a URL, the file will be opened as a URL.
Options:
-a Opens with the specified application.
-b Opens with the specified application bundle identifier.
-e Opens with TextEdit.
-t Opens with default text editor.
-f Reads input from standard input and opens with TextEdit.
-F --fresh Launches the app fresh, that is, without restoring windows. Saved persistent state is lost, excluding Untitled documents.
-R, --reveal Selects in the Finder instead of opening.
-W, --wait-apps Blocks until the used applications are closed (even if they were already running).
--args All remaining arguments are passed in argv to the application's main() function instead of opened.
-n, --new Open a new instance of the application even if one is already running.
-j, --hide Launches the app hidden.
-g, --background Does not bring the application to the foreground.
-h, --header Searches header file locations for headers matching the given filenames, and opens them.
In altre parole, la sintassi di un semplice comando di esempio potrebbe essere simile alla seguente, aprendo “NomeApplicazione” con il file che si trova nel percorso “/file/a/apri”:
open -a ApplicationName /file/to/open
Noterai che non hai bisogno del percorso completo del nome dell’applicazione, ma avrai bisogno del percorso completo del nome di un file.
L’utilizzo è probabilmente autoesplicativo per chi ha esperienza nell’ambiente della riga di comando, ma per chi è nuovo al Terminale, non confonderti troppo, è facile da usare e ti spiegheremo. Ad esempio, se vuoi modificare /etc/motd con TextWrangler per cambiare il tuo messaggio del giorno, ma odi gli editor della riga di comando nano e vi, ecco cosa dovresti digitare:
$ open -a TextWrangler /etc/motd
Ora puoi modificare questi file nella familiare GUI. open è abbastanza intelligente da sapere che quando applichi il flag -a, stai avviando un’applicazione, quindi non è necessario inserire il percorso completo. Ovviamente, avrà comunque bisogno del percorso completo del file che stai modificando.
Ci sono molti altri usi per il comando apri oltre alla semplice modifica di file di testo, quindi usa la tua immaginazione e sii creativo. open potrebbe essere particolarmente utile per gli amministratori di sistema che lo utilizzano in uno script di shell, magari per avviare una specifica applicazione GUI in un momento programmato.
Vale anche la pena notare che se stai avviando un’app con spazi nel suo nome, ti consigliamo di aggiungere una barra rovesciata dopo ogni parola, l’apertura di Adobe Photoshop CS sarebbe simile a questa:
$ open -a Adobe Photoshop CS
Avvio di applicazioni GUI come root dalla riga di comando
Puoi persino aprire i file con sudo usando il comando open se devi modificare un file come root, ad esempio:
sudo open -a TextEdit /tmp/magicfile
Questo avvierà il file di destinazione nell’applicazione desiderata come utente root, dando privilegi di root completi per modificare e modificare il file, il che è molto utile per modificare molti file di sistema. Ovviamente, non modificare alcun file di sistema se non sai cosa stai facendo.
Creazione di alias di shell per applicazioni GUI lanciate di frequente
Quindi è una specie di seccatura digitare ripetutamente un comando completo o scriverlo tutto più e più volte, giusto? Bene, semplifichiamo le cose assegnando un alias a un’app che viene lanciata frequentemente. Prenderemo come esempio la suddetta applicazione Adobe Photoshop perché il nome del file è lungo, quindi ecco come lo faremo con la shell Bash predefinita per Mac OS X:
Per prima cosa avvia il profilo o .bash_profile in un editor di testo:
$ nano .profile
o
$ open -e .profile
Ignorando qualsiasi altra cosa che potrebbe essere in questo file (potrebbe anche essere vuoto), aggiungi quanto segue a una nuova riga:
alias photoshop="open -a Adobe Photoshop CS"
Questo crea un alias, quindi il comando “apri -a AdobePhotoshop CS” è ora abbreviato in “photoshop”. Salva il tuo .profile e sei sulla buona strada! Puoi usare il comando alias con open per quasi tutto, assicurati solo di scegliere un alias per un comando che non esiste già.
Il comando open è molto utile come puoi vedere, se hai altri ottimi usi per esso in Mac OS X, assicurati di farcelo sapere nei commenti.