Come avviare le applicazioni GUI dal terminale

Sappiamo tutti come avviare le applicazioni dalla GUI con un doppio clic sull'icona o facendo clic sull'app nel Dock, e ci sono molti modi per farlo, e sono tutti relativamente veloci. Se trascorri una discreta quantità di tempo con la riga di comando, è bello poter avviare le app Mac direttamente da lì. Inoltre, il Terminale ha una buona dose di applicazioni che girano in modalità testuale, ma forse hai voluto modificare un file di testo nell'app per la GUI di OS X TextWrangler invece del testo basato su nano o vim.

Dimostreremo come avviare qualsiasi app grafica per Mac dalla riga di comando di OS X, incluso come aprire file specifici dalla riga di comando con un'app 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 lanciare le app gui OS X è opportunamente chiamato 'open' ed ecco come funziona nel modo più semplice:

open -a ApplicationName

Ciò aprirà l'app definita "ApplicationName".

Ma open è molto più potente di così. Se si digita 'apri' al prompt dei comandi, si restituirà il file di aiuto di base con i dettagli su come utilizzare correttamente il comando con una varietà di flag e sintassi. Mentre il comando open esiste in tutte le versioni di Mac OS X, le abilità variano leggermente a seconda della versione di OS X su Mac in esecuzione. Tuttavia, nelle versioni moderne questo è ciò che vedrete:

$ open
Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b ] [-a ] [filenames] [--args arguments]
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 semplice sintassi del comando di esempio potrebbe essere simile alla seguente, aprendo "NomeApplicazione" con il file che si trova nel percorso "/ file / per / apri":

open -a ApplicationName /file/to/open

Noterai che non hai bisogno del percorso completo per il nome dell'applicazione, ma avresti bisogno del percorso completo per il nome di un file.

L'utilizzo è probabilmente auto esplicativo per coloro che hanno esperienza nell'ambiente della riga di comando, ma per coloro che sono nuovi al terminale, non essere troppo confuso, è facile da usare e spiegheremo. Ad esempio, se vuoi modificare / etc / motd con TextWrangler per modificare il tuo messaggio del giorno, ma odi gli editor di riga di comando nano e vi, ecco cosa devi digitare:

$ open -a TextWrangler /etc/motd

Ora puoi modificare questi file nella familiare GUI. open è abbastanza intelligente da sapere che quando si applica il flag -a, si avvia un'applicazione in modo da non dover digitare il suo percorso completo. Ovviamente, sarà comunque necessario il percorso completo del file che stai modificando.

Ci sono molti altri usi per il comando open piuttosto che la semplice modifica di file di testo, quindi usa la tua immaginazione e diventa creativo. open potrebbe essere particolarmente utile agli amministratori di sistema che lo utilizzano in uno script di shell, forse per avviare un'applicazione GUI specifica in un momento programmato.

Vale anche la pena notare che se si avvia un'applicazione con spazi nel suo nome, si vorrà aggiungere una barra rovesciata dopo ogni parola, l'apertura di Adobe Photoshop CS sarebbe simile a questa:

$ open -a Adobe\ Photoshop\ CS

Avvio di app GUI come root dalla riga di comando

È anche possibile aprire file con sudo utilizzando il comando open se è necessario modificare un file come root, ad esempio:

sudo open -a TextEdit /tmp/magicfile

Questo lancerà il file di destinazione nell'applicazione desiderata come utente root, dando i privilegi di root completi per modificare e modificare il file, cosa abbastanza utile per la modifica di 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 avviate frequentemente

Quindi è una specie di dolore nel sedere per digitare ripetutamente un comando completo, o per scrivere tutto questo ancora e ancora, giusto? Beh, rendiamolo più semplice assegnando un alias a un'applicazione che viene lanciata di frequente. Prendiamo la suddetta app Adobe Photoshop come esempio poiché il nome del file è lungo, quindi ecco come faremo con la shell Bash predefinita di Mac OS X:

Innanzitutto lanciare il profilo o .bash_profile in un editor di testo:

$ nano .profile

o

$ open -e .profile

Ignorando qualcos'altro può essere in questo file (potrebbe anche essere vuoto), aggiungere quanto segue ad una nuova riga:

alias photoshop="open -a Adobe\ Photoshop\ CS"

Questo crea un alias, in modo che il comando "apri -a Adobe \ Photoshop CS" sia ora abbreviato in "photoshop". Salva .profile e sei sulla buona strada! Puoi usare il comando alias insieme a open praticamente per qualsiasi cosa, ma assicurati di scegliere un alias per un comando che non esiste già.

Il comando di apertura è davvero a portata di mano, come puoi vedere, se hai qualche altro grande utilizzo in OS X, assicurati di farci sapere nei commenti.