Outra característica de operação bastante útil está relacionada ao caracter &. Lembre-se que o Linux, sendo um sabor de UNIX, é multiusuário e multitarefa. Isso significa que vários usuários podem estar usando o mesmo computador e executando mais de uma tarefa ao mesmo tempo, com os recursos compartilhados. Assim, se desejássemos colocar um determinado programa para ser executado em segundo plano, anexaríamos o caracter & depois do comando. Imagine que um programa seu chamado chuva levará dias executando e você não quer esperar que ele termine ou precisa continuar trabalhando. Bastaria executá-lo como
$ chuva &
[1] 925
e o shell o colocará em segundo plano, informando a ordem dentre os seus processos ([1]) e a ordem geral do processo (925). O processamento em segundo plano é um recurso poderoso quando bem utilizado, permitindo que preencha-se o tempo ocioso dos computadores, entretanto lembre-se que se o programa não terminar por si próprio ficará rodando até que seja explicitamente morto, como no caso de uma reinicialização ou através do comando kill. Uma maneira alternativa de colocar um programa já iniciado em segundo plano é através da seqüência de teclas + , ou
$ chuva
+
Suspended
$ bg
[1] chuva &
pois quando + é pressionado o programa é suspenso até que a ordem bg (de background ou segundo plano) faz com que sua execução continue em segundo plano, exatamente de onde tinha parado quando o shell suspendeu-o, sem nenhuma alteração de seus dados ou parâmetros.
Outra utilidade deste recurso consiste em suspender um aplicativo, realizar outra tarefa e depois continuar executando-o. No exemplo anterior
$ chuva
+
Suspended
$ sol
sol: Command not found.
$ fg
chuva
aqui a ordem fg serve para recolocar o último aplicativo que foi para segundo plano (bg) novamente em primeiro plano (fg de foreground). Se há vários processos em segundo plano, é possível identificá-los antecedendo o número do processo por %, isto é fg %1, neste caso.
leon 2008-08-19