Como iniciar aplicativos GUI a partir do terminal

Anonim

Todos nós sabemos como iniciar aplicativos a partir da GUI com um clique duplo no ícone ou clicando no aplicativo no Dock, e existem várias maneiras de fazer isso, e todas são relativamente rápidas. Se você gastar um bom tempo com a linha de comando, é bom poder iniciar aplicativos para Mac diretamente de lá também. Além disso, o Terminal tem uma boa quantidade de aplicativos executados no modo baseado em texto, mas talvez você queira editar um arquivo de texto no aplicativo Mac OS X GUI TextWrangler em vez do nano ou vim baseado em texto.

Vamos demonstrar como iniciar qualquer aplicativo gráfico do Mac a partir da linha de comando do MacOS X, incluindo como abrir arquivos específicos a partir da linha de comando com um aplicativo GUI e como editar e abrir esses arquivos com acesso root se for necessário.

Abrindo aplicativos do Mac OS X a partir da linha de comando

O comando do Terminal para iniciar aplicativos macOS GUI é apropriadamente chamado de 'abrir' e aqui está como ele funciona da forma mais simples:

open -a ApplicationName

Isso abrirá o aplicativo definido chamado “ApplicationName”.

Mas abrir é muito mais poderoso do que isso. Se você apenas digitar 'abrir' no prompt de comando, retornará o arquivo de ajuda básico com detalhes sobre como usar o comando corretamente com uma variedade de sinalizadores e sintaxe.

Embora o comando open exista em todas as versões do Mac OS X, as habilidades variam um pouco dependendo de qual versão do MacOS / Mac OS X o Mac está executando. No entanto, nas versões modernas, é isso que você verá:

$ open Uso: open Ajuda: Open abre arquivos de um shell. Por padrão, abre cada arquivo usando o aplicativo padrão para esse arquivo. Se o arquivo estiver na forma de um URL, o arquivo será aberto como um URL. Opções: -a Abre com o aplicativo especificado. -b Abre com o identificador do pacote de aplicativos especificado. -e Abre com o TextEdit. -t Abre com o editor de texto padrão. -f Lê a entrada da entrada padrão e abre com o TextEdit. -F --fresh Inicia o aplicativo novo, ou seja, sem restaurar as janelas. O estado persistente salvo é perdido, excluindo documentos sem título. -R, --reveal Seleciona no Finder em vez de abrir. -W, --wait-apps Bloqueia até que os aplicativos usados ​​sejam fechados (mesmo que já estejam em execução). --args Todos os argumentos restantes são passados ​​em argv para a função main() do aplicativo em vez de serem abertos. -n, --new Abre uma nova instância do aplicativo, mesmo que já esteja em execução. -j, --hide Inicia o aplicativo oculto. -g, --background Não coloca o aplicativo em primeiro plano.-h, --header Procura nos locais do arquivo de cabeçalho os cabeçalhos correspondentes aos nomes de arquivo fornecidos e os abre.

Em outras palavras, um exemplo de sintaxe de comando simples pode ser semelhante ao seguinte, abrindo “ApplicationName” com o arquivo localizado no caminho ‘/file/to/open’:

open -a ApplicationName /file/to/open

Você notará que não precisa do caminho completo para o nome do aplicativo, mas precisaria do caminho completo para um nome de arquivo.

O uso provavelmente é auto-explicativo para aqueles que têm experiência no ambiente de linha de comando, mas para aqueles que são novos no Terminal, não fiquem muito confusos, é fácil de usar e nós Vou explicar. Por exemplo, se você deseja editar /etc/motd com TextWrangler para alterar sua mensagem do dia, mas odeia os editores de linha de comando nano e vi, aqui está o que você digitaria:

$ open -a TextWrangler /etc/motd

Agora você pode editar esses arquivos na GUI familiar. open é inteligente o suficiente para saber que, quando você aplica o sinalizador -a, está iniciando um aplicativo, portanto não precisa digitar seu caminho completo. Obviamente, ele ainda precisará do caminho completo para o arquivo que você está editando.

Há muitos outros usos para o comando abrir em vez de apenas editar arquivos de texto, então use sua imaginação e seja criativo. open pode ser particularmente útil para administradores de sistema que o utilizam em um script de shell, talvez para iniciar um aplicativo GUI específico em um horário agendado.

Também vale a pena notar que se você estiver iniciando um aplicativo com espaços em seu nome, você vai querer adicionar uma barra invertida após cada palavra, abrir o Adobe Photoshop CS ficaria assim:

$ open -a Adobe\ Photoshop\ CS

Iniciar aplicativos GUI como root a partir da linha de comando

Você pode até abrir arquivos com sudo usando o comando open se precisar editar um arquivo como root, por exemplo:

sudo open -a TextEdit /tmp/magicfile

Isso iniciará o arquivo de destino no aplicativo desejado como usuário root, concedendo privilégios totais de root para editar e modificar o arquivo, o que é bastante útil para editar muitos arquivos do sistema. Claro, não modifique nenhum arquivo do sistema se você não souber o que está fazendo.

Criação de aliases de shell para aplicativos GUI iniciados com frequência

Então é meio chato digitar um comando completo repetidamente, ou digitar tudo isso repetidamente, certo? Bem, vamos facilitar atribuindo um alias a um aplicativo que é iniciado com frequência. Usaremos o aplicativo Adobe Photoshop mencionado acima como exemplo, pois o nome do arquivo é longo, então veja como faremos isso com o shell Bash padrão do Mac OS X:

Primeiro inicie o perfil ou .bash_profile em um editor de texto:

$ nano .profile

ou

$ open -e .profile

Ignorando o que quer que esteja neste arquivo (pode estar vazio também), adicione o seguinte a uma nova linha:

"

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

Isso cria um alias, de modo que o comando "abrir -a Adobe\ Photoshop CS" agora é abreviado para simplesmente 'photoshop'. Salve .profile e pronto! Você pode usar o comando alias em conjunto com open para praticamente qualquer coisa, apenas certifique-se de escolher um alias para um comando que ainda não existe.

O comando open é realmente útil, como você pode ver, se você tiver outros usos excelentes para ele no Mac OS X, informe-nos nos comentários.

Como iniciar aplicativos GUI a partir do terminal