Abrindo um arquivo do terminal

30

Quando queremos abrir um aplicativo ou arquivo do terminal, digitamos, digamos,

okular file.dvi

Isso abre o aplicativo, mas também mostra o status do aplicativo. Não podemos fechar o terminal, porque isso mata o processo. Infelizmente, se você estiver tentando, por exemplo, criar um arquivo LaTeX, precisará de uma guia para o editor de texto, uma para o arquivo dvi e assim por diante. E se você está tentando abrir todas as janelas do terminal, pode esquecê-lo. Estou tentando usar o terminal o máximo possível e, embora eu tenha o Yakuake, ainda é um incômodo ter tantas abas e ver quais dessas têm um aplicativo que eu matei e assim por diante.

Portanto, existe uma maneira de abrir um aplicativo / arquivo do terminal para que o status não apareça e dê imediatamente o prompt para que possamos usá-lo para abrir mais aplicativos?

notavelmente
fonte
Dadas as suas solicitações, a respeito de não ver nenhuma saída, o visualizador não ser um filho do processo do terminal, etc., parece um candidato ideal para quando simplesmente usa um atalho de teclado para abrir o visualizador ou usa, por exemplo, grun para também passar o nome do arquivo , seria mais adequado do que continuar usando um terminal.
jmetz
Não me importo de não ver nenhuma saída ... Importo de ter vários terminais / guias abertos para vários aplicativos. A resposta que escolhi atende a todas as minhas preferências perfeitamente.
Notáveltipsy

Respostas:

51
xdg-open file.dvi

xdg-openabrirá qualquer arquivo com seu aplicativo padrão. Como bônus, você pode fechar o terminal sem interromper o aplicativo.

Como xdg-opené um nome bastante longo, coloquei um apelido para ele em .bashrc:

alias open='xdg-open'
Mihai Capotă
fonte
Doce! Este é o melhor, ainda melhor do que o que eu selecionei! E você recebe um distintivo 'Revival' :)
nottipsy
Simples demais!
Yugal Jindle
Só quero ressaltar que, como isso realmente não executa o programa, significa que você pode abrir o arquivo sem criar uma nova instância desse programa. Isso significa que você pode abrir um arquivo e ele será aberto automaticamente na instância já aberta do aplicativo.
precisa saber é o seguinte
se você mudou recentemente do mac para o linux, provavelmente será uma boa ideia fazer isso # alias open="xdg-open"
Pedro Luz
16
okular file.dvi &

basta acrescentar um &para fazer com que seu comando seja executado como um processo separado.

user827992
fonte
Uau! Perfeito! Engraçado ... procurei no Google por "abrir do terminal sem mostrar status", nunca pensei que ele se comportasse como um processo separado! Infelizmente, ele diz que eu tenho que esperar por 8 minutos, então ...
notablytipsy
14

okular file.dvi &> /dev/null &seria um pouco melhor. Dessa forma, o programa não grava no terminal.

Se você usar apenas okular file.dvi &o programa, ainda reportará coisas no terminal, geralmente no meio do seu trabalho

josinalvo
fonte
6

Com, digamos, evince file.pdf &fechar o terminal ainda fechará o processo, de modo que ele ainda é um processo filho do terminal e não tem independência dele; nohup evince file.pdf &permitirá que você feche o terminal sem que o programa seja fechado, pois nohup significa que todos os sinais para o processo fechar (hangup) serão ignorados. Você também pode negar um processo de maneira semelhante, consulte esta discussão aqui .

Comunidade
fonte
Obrigado, eu não sabia disso. Eu uso o Yakuake e nunca o fecho, por isso não é um problema. Mas é sempre útil conhecer essas coisas.
Notáveltipsy
I acabou de editar a minha pós-ver a diferença- ele vai trabalhar agora
Desculpe - eu tinha esquecido de colocar o & no final :)
notablytipsy
11
Quando eu tento evince file.pdf &, ele não matar o processo quando eu sair do terminal ...
notablytipsy
11
Quando você inicia um processo filho, ele pertence ao processo pai. Nesse caso, evince é o processo filho pertencente ao terminal. Portanto, quando você fecha o terminal, ele também fecha os processos filho. nohup separa essa propriedade, então é isso que você deve usar para fechar o terminal. No entanto, por padrão, nohup cria um arquivo nohup.out na sua pasta pessoal. Se você não quer esse arquivo, use o redirecionamento da seguinte forma:nohup evince file.pdf &>/dev/null &
Paddy Landau