GUI-applicaties starten vanaf de terminal

We weten allemaal hoe we applicaties vanuit de GUI kunnen starten door dubbel op het pictogram te klikken of op de app in het Dock te klikken, en er zijn verschillende manieren om dit te doen, en ze zijn allemaal relatief snel. Als je echter een behoorlijke hoeveelheid tijd met de commandoregel doorbrengt, is het goed om Mac-apps direct vanaf daar te kunnen starten. Ook heeft de Terminal een redelijk groot aantal toepassingen die in de tekstgebaseerde modus worden uitgevoerd, maar misschien wilde u een tekstbestand bewerken in de OS X GUI-app TextWrangler in plaats van de op tekst gebaseerde nano of vim.

We zullen laten zien hoe je een grafische Mac-app kunt starten vanaf de opdrachtregel van OS X, inclusief hoe je specifieke bestanden van de commandoregel kunt openen met een GUI-app, en hoe je die bestanden kunt bewerken en openen met root-toegang als dat nodig is .

Mac OS X-toepassingen openen vanaf de opdrachtregel

De opdracht Terminal om OS X gui-apps te starten, wordt toepasselijk 'open' genoemd en hier is hoe het werkt op de meest eenvoudige manier:

open -a ApplicationName

Dat opent de gedefinieerde app met de naam "ApplicationName".

Maar open is veel krachtiger dan dat. Als u bij de opdrachtprompt gewoon 'open' typt, stuurt u het basishelpbestand terug met details over hoe u de opdracht op de juiste manier kunt gebruiken met verschillende vlaggen en syntaxis. Hoewel de open opdracht bestaat in alle versies van Mac OS X, variëren de mogelijkheden enigszins, afhankelijk van welke versie van OS X de Mac gebruikt. Niettemin, in moderne releases is dit wat je zult zien:

$ 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.

Met andere woorden, voorbeeld eenvoudige opdrachtsyntaxis kan er als volgt uitzien, waarbij "ApplicationName" wordt geopend met het bestand op het pad '/ file / to / open':

open -a ApplicationName /file/to/open

U zult merken dat u niet het volledige pad naar de naam van de toepassing nodig heeft, maar u zou het volledige pad naar een bestandsnaam nodig hebben.

Het gebruik is waarschijnlijk een verklaring voor diegenen die ervaring hebben met de opdrachtregelomgeving, maar voor hen die nog niet bekend zijn met de Terminal, wees niet te verward, het is gemakkelijk te gebruiken en we zullen het uitleggen. Als u bijvoorbeeld / etc / motd wilt bewerken met TextWrangler om uw bericht van de dag te wijzigen, maar u haat de opdrachtregeleditors nano en vi, dan is dit wat u zou typen:

$ open -a TextWrangler /etc/motd

Nu kunt u deze bestanden bewerken in de vertrouwde grafische gebruikersinterface. open is slim genoeg om te weten dat wanneer u de markering -a toepast, u een toepassing start, zodat u niet het volledige pad hoeft in te typen. Uiteraard heeft het nog steeds het volledige pad nodig naar het bestand dat je aan het bewerken bent.

Er zijn veel andere manieren om de open opdracht te gebruiken in plaats van alleen tekstbestanden te bewerken, dus gebruik je fantasie en word creatief. open kan bijzonder nuttig zijn voor systeembeheerders die het gebruiken in een shellscript, misschien om een ​​specifieke GUI-toepassing op een gepland tijdstip te starten.

Ook vermeldenswaard is dat als u een toepassing met spaties in zijn naam start, u na elk woord een backslash wilt toevoegen, waardoor Adobe Photoshop CS er als volgt uitziet:

$ open -a Adobe\ Photoshop\ CS

GUI-apps starten als root vanaf de opdrachtregel

U kunt zelfs bestanden openen met sudo door de opdracht open te gebruiken als u een bestand als root wilt bewerken, bijvoorbeeld:

sudo open -a TextEdit /tmp/magicfile

Hierdoor wordt het doelbestand in de gewenste toepassing gestart als rootgebruiker, met volledige rootrechten om het bestand te bewerken en aan te passen, wat erg handig is voor het bewerken van veel systeembestanden. Wijzig natuurlijk geen systeembestand als u niet weet wat u doet.

Shell-aliassen maken voor vaak gebruikte GUI-apps

Dus het is een beetje pijnlijk om herhaaldelijk een volledig commando te typen, of om dat alles steeds opnieuw uit te typen, toch? Laten we het gemakkelijker maken door een alias toe te kennen aan een toepassing die regelmatig wordt gelanceerd. We nemen de bovengenoemde Adobe Photoshop-app als voorbeeld, omdat de bestandsnaam lang is, dus hier is hoe we dit doen met de standaard Bash-shell van Mac OS X:

Start eerst het profiel of .bash_profile in een teksteditor:

$ nano .profile

of

$ open -e .profile

Negeren wat er nog meer in dit bestand zit (het zou ook leeg kunnen zijn), voeg het volgende toe aan een nieuwe regel:

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

Hiermee wordt een alias gemaakt, zodat de opdracht "open -a Adobe \ Photoshop CS" nu wordt ingekort tot gewoon 'photoshop'. Sla .profile op en je bent op weg! U kunt de alias-opdracht in combinatie met open gebruiken voor vrijwel alles, maar zorg ervoor dat u een alias kiest voor een opdracht die nog niet bestaat.

De open opdracht is erg handig, zoals je kunt zien, als je nog andere geweldige toepassingen hebt in OS X, laat het ons dan weten in de comments.