Qual é o significado de “[command] &” no Ubuntu? [duplicado]

4

Estou aprendendo diferentes tipos de comando do Ubuntu e há um comando que é

  

[command] & - execute <command> e envie a tarefa   para o fundo

Eu não consigo entender esse comando. Por favor, me fale sobre o comando em detalhes com um exemplo.

    
por coding_ninza 11.01.2018 / 14:57

4 respostas

13

Ele está simplesmente dizendo que acrescentar um & após um comando executará esse comando em segundo plano. Exemplo:

sleep 10

Isso esperará 10 segundos antes de retornar ao prompt. Adicione o & depois e você receberá o prompt imediatamente.

    
por psusi 11.01.2018 / 15:17
13

O que este extrato de (eu acho que um manual de Bash?) quer dizer é simplesmente que você pode executar qualquer outro comando de terminal em segundo plano adicionando um & ao seu fim.

Background significa que o comando começará a ser executado, mas sua entrada será desconectada do terminal e você retornará ao prompt do shell, para que possa executar outros comandos enquanto o anterior ainda estiver ativo.

Os comandos em segundo plano ainda podem produzir saída, que é mostrada no terminal. Isso pode ficar confuso se vários comandos produzirem a saída ao mesmo tempo e se misturarem.

Você pode trazer o último comando que você enviou para o segundo plano novamente para o primeiro plano, a fim de interagir com ele, digitando o comando fg .

    
por Byte Commander 11.01.2018 / 15:20
0

aqui & é o símbolo que faz o comando ser executado em segundo plano

se & é dado no final do comando, ele executa o comando em segundo plano em uma subshell diferente e lança a saída para o terminal quando ele é concluído Ex

$ ls &

[3] 23204
2048  Documents         github        Public           test.js

aqui 23204 é o PID da tarefa em segundo plano

Nota: - Um processo em segundo plano não permanecerá ativo depois que a sessão do shell for fechada. SIGHUP finaliza todos os processos em execução.

    
por aman5319 11.01.2018 / 15:21
0

Como as outras respostas dizem, ele executa o comando em segundo plano, o que significa que ele não espera que esse comando termine antes de permitir que você emita mais comandos.

No entanto, não acho que os exemplos dados nas outras respostas sejam muito úteis. Para a maioria das pessoas, a experiência é mais útil se você estiver executando em um sistema de janelas. Chame uma janela do terminal e emita o comando

xterm

Isso trará uma segunda janela de terminal, na qual você pode inserir mais comandos. Deixe essa segunda janela aberta e volte para a primeira. Você verá que não pode inserir mais comandos, porque está aguardando o comando xterm terminar. Feche a segunda janela (clique no ícone close ou digite exit ou pressione ctrl-D no prompt) e você verá que a primeira janela volta à vida.

Agora, emita o comando

xterm &

Mais uma vez, isso abrirá uma nova janela, mas, se você voltar para a primeira, poderá emitir mais comandos, mesmo quando a segunda estiver aberta.

    
por David Richerby 11.01.2018 / 22:10