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.