Como fecho o terminal no OSX a partir da linha de comando?


69

Por que "sair" não fecha uma janela Terminal.app no ​​Mac OS X?

$ exit
logout

[Process completed]

Existe uma maneira de fechar a janela sem usar o mouse?

Respostas:


87

Uma janela exibida pelo Terminal.app é apenas a interface do processo que você escolhe executar dentro dela - no seu caso, um shell Unix. Quando você sai do shell, o Terminal.app não fecha a janela por padrão; portanto, você tem a possibilidade de inspecionar a saída de qualquer comando executado após a conclusão.

Você pode alterar suas preferências aqui

Preferências do Terminal -> Configurações -> Shell:

para qualquer um

  1. sempre feche a janela, seja qual for o status de saída do shell
  2. feche a janela se o shell sair corretamente
  3. mantenha a janela aberta (o padrão)

Além disso, você pode (quase) sempre fechar as janelas no OSX com o Cmd-W, para que você não precise do mouse, mesmo que não feche automaticamente.

Mais uma dica: eu gosto de pressionar Ctrl-D em vez de digitar exit. Duas chaves vs. cinco.


11
Em Yosemite é: Preferências -> Perfis -> shell -> "quando sai do shell" ... Shell é o que desembolsar você selecionou no Geral-> Na inicialização aberto ...
— cloudsurfin

Depois que o shell é encerrado, é possível iniciar um novo shell na mesma janela? Se sim, como?
— Sodved

@ Sodved: Eu não acho que é, mas poderia estar errado.
— Amadan 11/07/16

Isso não responde à pergunta que foi feita, pois não propõe uma operação de linha de comando .
— Chris Stratton

@ChrisStratton Você está correto que ele não respondeu diretamente à pergunta feita, mas faz facilitar o uso do exitcomando que o OP estava usando inicialmente.
— jdersen

21

Command+ Q-> fecha o aplicativo / processo.

Command+ W-> fecha a janela / instância


O OP solicita o método para fechar a janela do Terminal "sem usar o mouse".
— Josh Habdas

10

Sim existe. Por exemplo, você pode usar o AppleScript para alcançá-lo:

osascript -e 'tell application "Terminal" to close first window'

A primeira janela é sempre a janela atualmente ativa. Esse é o que você deseja fechar.

Antes de fechar a janela, o Terminal pode perguntar se você realmente deseja fechar a janela. Isso depende das suas configurações. Você pode ter optado por 'fechar a janela apenas se o shell sair de forma limpa ou se nenhum outro processo estiver executando além de ...'. (Essa pode ser a configuração padrão.) Nesse caso, adicionar & exitao comando fecha a janela imediatamente e sem perguntar.

osascript -e 'tell application "Terminal" to close first window' & exit

Isso está quase certo, mas, na realidade, a "primeira janela" nem sempre é a que executa o comando.
— Chris Stratton

Essa técnica funciona bem depois que opené chamada para adicionar um novo perfil de terminal.
— Josh Habdas

3

Na verdade, para esse requisito, você deve definir algumas configurações no seu Terminal. siga as instruções abaixo e você fechará seu terminal apenas com um exitcomando.

Quando o terminal estiver ativo, pressione ⌘+ ,para abrir a janela de preferências. então você verá a tela abaixo:

insira a descrição da imagem aqui

Em seguida, pressione a guia shell e você verá a tela abaixo:

insira a descrição da imagem aqui

Agora selecione Close if the shell exited cleanlypara Quando o shell sair .

Seu terminal está pronto para a saída apenas com um exitcomando.


11
Impressionante! Estava procurando isso por tanto tempo. Thanks 👍🏼
— Vinayak

1

Eu também sugiro contra a sugestão de killall. Conforme sugerido, modifique as configurações em suas preferências para fechar a janela se a saída do shell for bem-sucedida. Se você é realmente preguiçoso (como eu), abra seu perfil do bash e adicione um alias. Eu tenho o meu conjunto, então tudo o que preciso fazer é digitar 'q'.


Dupe da killallresposta.
— Josh Habdas

-1

Se você deseja finalizar o próprio aplicativo a partir da linha de comando:

killall Terminal

4
isso é considerado prejudicial. Além do fato de o killall fazer coisas diferentes em diferentes versões do Unix, não é legal matar um aplicativo em vez de pedir para ele simplesmente sair.
— Florenz Kley

solução muito boa. Nós só precisamos sair do terminal para que não haja perguntas !! melhor resposta.
— Mehdico 19/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.