GUI-toepassingen starten vanaf de terminal

Anonim

We weten allemaal hoe we applicaties vanuit de GUI moeten starten door te dubbelklikken op het pictogram of door op de app in het Dock te klikken, en er zijn talloze manieren om dit te doen, en ze zijn allemaal relatief snel. Als je echter een behoorlijke hoeveelheid tijd met de opdrachtregel doorbrengt, is het fijn om Mac-apps ook rechtstreeks vanaf daar te kunnen starten. Ook heeft de Terminal een behoorlijk aantal applicaties die in tekstgebaseerde modus draaien, maar misschien wilde je een tekstbestand bewerken in de Mac OS X GUI-app TextWrangler in plaats van de op tekst gebaseerde nano of vim.

We gaan demonstreren hoe je een grafische Mac-app start vanaf de opdrachtregel van MacOS X, inclusief hoe je specifieke bestanden opent vanaf de opdrachtregel met een GUI-app, en hoe je deze bewerkt en opent die bestanden met root-toegang als dat nodig is.

Mac OS X-toepassingen openen vanaf de opdrachtregel

Het Terminal-commando om MacOS gui-apps te starten heet toepasselijk 'open' en zo werkt het op zijn eenvoudigst:

open -a ApplicationName

Hierdoor wordt de gedefinieerde app met de naam "Applicatienaam" geopend.

Maar open is veel krachtiger dan dat. Als je gewoon 'open' typt bij de opdrachtprompt, krijg je het basishulpbestand terug met details over hoe je de opdracht op de juiste manier kunt gebruiken met verschillende vlaggen en syntaxis.

Hoewel de open-opdracht in alle versies van Mac OS X bestaat, variëren de mogelijkheden enigszins, afhankelijk van welke versie van MacOS / Mac OS X de Mac draait. Desalniettemin is dit wat u in moderne releases zult zien:

$ open Gebruik: open Help: Open opent bestanden vanuit een shell. Opent standaard elk bestand met de standaardtoepassing voor dat bestand. Als het bestand de vorm heeft van een URL, wordt het bestand geopend als een URL. Opties: -a Opent met de opgegeven applicatie. -b Opent met de opgegeven toepassingsbundel-ID. -e Opent met Teksteditor. -t Opent met standaard teksteditor. -f Leest invoer van standaardinvoer en opent met Teksteditor. -F --fresh Start de app vers, dat wil zeggen zonder vensters te herstellen. Opgeslagen permanente status gaat verloren, met uitzondering van naamloze documenten. -R, --reveal Selecteert in de Finder in plaats van te openen. -W, --wait-apps Blokkeert totdat de gebruikte applicaties worden gesloten (zelfs als ze al actief waren). --args Alle resterende argumenten worden in argv doorgegeven aan de functie main() van de toepassing in plaats van geopend. -n, --new Open een nieuw exemplaar van de toepassing, zelfs als er al een actief is. -j, --hide Start de verborgen app. -g, --background Brengt de toepassing niet naar de voorgrond.-h, --header Zoekt naar headerbestandslocaties naar headers die overeenkomen met de opgegeven bestandsnamen en opent deze.

Met andere woorden, een voorbeeld van een eenvoudige opdrachtsyntaxis zou er als volgt uit kunnen zien, waarbij "Applicatienaam" wordt geopend met het bestand op het pad '/file/to/open':

open -a ApplicationName /file/to/open

Je zult zien dat je niet het volledige pad naar de applicatienaam nodig hebt, maar wel het volledige pad naar een bestandsnaam.

Het gebruik spreekt voor zich voor degenen die ervaring hebben met de opdrachtregelomgeving, maar voor degenen die nieuw zijn in de Terminal, wees niet te verward, het is gemakkelijk te gebruiken en we' Ik zal het uitleggen. Als je bijvoorbeeld /etc/motd wilt bewerken met TextWrangler om je Bericht van de Dag te wijzigen, maar je hebt een hekel aan de commandoregel-editors nano en vi, typ dan het volgende:

$ open -a TextWrangler /etc/motd

Nu kunt u deze bestanden bewerken in de vertrouwde GUI. open is slim genoeg om te weten dat wanneer u de vlag -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 toepassingen voor de opdracht openen dan alleen het bewerken van tekstbestanden, dus gebruik je fantasie en wees creatief. open kan met name handig zijn voor systeembeheerders die het gebruiken in een shellscript, misschien om een ​​specifieke GUI-toepassing op een gepland tijdstip te starten.

Het is ook vermeldenswaard dat als u een toepassing start met spaties in de naam, u na elk woord een backslash wilt toevoegen. Het openen van Adobe Photoshop CS ziet er als volgt uit:

$ open -a Adobe\ Photoshop\ CS

GUI-apps starten als root vanaf de opdrachtregel

Je kunt zelfs bestanden openen met sudo door de opdracht open te gebruiken als je een bestand als root moet bewerken, bijvoorbeeld:

sudo open -a TextEdit /tmp/magicfile

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

Shell-aliassen maken voor veelgebruikte GUI-apps

Dus het is nogal vervelend om herhaaldelijk een volledige opdracht te typen, of om dat allemaal keer op keer uit te typen, toch? Laten we het gemakkelijker maken door een alias toe te wijzen aan een applicatie die vaak wordt gestart. We nemen de eerder genoemde Adobe Photoshop-app als voorbeeld, aangezien 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

Negeer wat er nog meer in dit bestand staat (het kan ook leeg 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 afgekort tot simpelweg 'photoshop'. Sla .profile op en je bent onderweg! U kunt de opdracht alias gebruiken in combinatie met open voor vrijwel alles, zorg er wel voor dat u een alias kiest voor een opdracht die nog niet bestaat.

De open-opdracht is erg handig, zoals je kunt zien. Als je er andere geweldige toepassingen voor hebt in Mac OS X, laat het ons dan zeker weten in de reacties.

GUI-toepassingen starten vanaf de terminal