Aumente a eficiência executando vários comandos simultaneamente no Linux

Aumente a eficiência executando vários comandos simultaneamente no Linux
Imagem em destaque Acelere o processo Vários comandos

Procurando melhorar sua produtividade? Considere executar vários comandos simultaneamente no seu terminal Linux. Essa abordagem permite que você execute comandos de sequência simples, execute tarefas em segundo plano e gerencie comandos condicionais coletivamente.

Neste artigo, vamos nos aprofundar em diversas técnicas para executar comandos sequencialmente e simultaneamente em um terminal Linux.

Os benefícios de executar vários comandos juntos

Quer você esteja executando tarefas de manutenção de rotina, processando grandes conjuntos de dados ou automatizando segmentos do seu fluxo de trabalho, a combinação de comandos pode otimizar suas operações e aumentar a eficiência geral.

Por exemplo, ao fazer backup de vários diretórios, você pode vincular os comandos em vez de manipular cada um individualmente, o que economiza tempo e esforço.

Frequentemente encadeio comandos ao instalar pacotes Linux que exigem vários módulos. Ao fazer isso, garanto que o pacote e suas dependências sejam instalados em uma única ação, eliminando digitação repetitiva.

Execução de Comando Sequencial

Este método é meu preferido ao utilizar o terminal. Podemos vincular comandos para que eles sejam executados um após o outro, independentemente de o comando anterior ter sido executado com sucesso.

Para executar esses comandos em ordem, basta usar um ponto e vírgula ;como separador. Quando você pressiona enter, o terminal processa o comando inicial, espera que ele seja concluído e então prossegue para o próximo.

Por exemplo, se você pretende atualizar seu sistema e limpar pacotes não utilizados ao mesmo tempo, você pode executar o seguinte:

Atualizando, melhorando e limpando o sistema Ubuntu usando o gerenciador de pacotes apt.

Ao encadear esses comandos, você reforça a execução sequencial, garantindo que cada tarefa seja concluída somente após a conclusão da anterior, mantendo assim a eficiência.

Execução de comando baseada em condições

Se você quiser executar o segundo comando somente se o primeiro for bem-sucedido (ou falhar), você pode aproveitar a execução condicional por meio do uso dos operadores &&(AND) e ||(OR).

Executar se o primeiro comando for bem-sucedido

Para garantir que um comando seja executado somente se o anterior for bem-sucedido, utilize o &&operador entre os comandos.

Por exemplo, se você deseja criar um novo diretório e só acessá-lo se a criação do diretório for bem-sucedida, use:

Criando e alterando diretório simultaneamente.

Se o primeiro comando falhar, o comando subsequente não será executado.

Executar se o primeiro comando falhar

|| operador. Isso é particularmente útil para comandos de fallback ou erros de log sem interromper seu fluxo de trabalho.

Muitas vezes acho essa prática benéfica durante operações de arquivo, como copiar um arquivo para um local de backup. Se a cópia falhar, quero ser informado sem interromper minhas tarefas em andamento. Você pode estruturá-lo assim:

cp file_name /backup || echo "Failed!" >> error_log.txt

Neste caso, o cpcomando tenta copiar o arquivo designado para o diretório de backup. Se falhar, o ||operador executa o próximo comando, que anexa a mensagem de erro a um log de erros. Dessa forma, seu fluxo de trabalho continua ininterrupto enquanto também documenta o problema para revisão posterior.

Executando comandos em segundo plano

Às vezes, você pode não querer pausar para uma tarefa concluir. Se um processo levar um tempo significativo, você pode manter seu trabalho fluindo anexando um e comercial &ao final do seu comando.

Por exemplo, se você deseja baixar um arquivo grande de uma URL específica e ainda poder trabalhar em outras tarefas, você pode usar:

sudo wget https://example.com/large-file.zip &

Isso permite que você continue trabalhando no terminal enquanto o download é realizado em segundo plano.

Encadeamento de comandos com execução em segundo plano

E se você quiser conectar dois comandos enquanto garante que o último seja executado em segundo plano após o primeiro ser concluído? Nesse caso, você pode utilizar tanto o |operador pipe quanto o ampersand &.

O pipe |direciona a saída do primeiro comando como entrada para o segundo, enquanto o e comercial &permite que o segundo comando seja executado em segundo plano.

Por exemplo, para ler um arquivo grande e extrair palavras-chave, salvando os resultados em um novo arquivo, você pode usar o >operador de redirecionamento:

cat samplefile.txt | grep "Project" > output.txt &
Pesquisar arquivos grandes e salvar resultados especificados separadamente.

Com essa configuração, tanto as operações de busca quanto as de salvamento serão feitas em segundo plano. Dessa forma, você pode executar outros comandos sem interrupção enquanto o arquivo está sendo processado.

Executando vários comandos simultaneamente com Xargs

Se você está ansioso para melhorar suas capacidades multitarefa, considere executar comandos em paralelo utilizando o xargscomando. Isso permite a execução simultânea de vários comandos em vez de lidar com eles sequencialmente.

O xargscomando divide eficientemente uma lista de argumentos em lotes menores, executando um comando específico em cada lote simultaneamente.

Por exemplo, se você tiver uma lista de URLs armazenadas em um arquivo e quiser baixar todas elas de uma vez, em vez de fazer isso uma por uma, você pode executar:

cat urls_file.txt | xargs -n 1 -P 4 wget

Neste caso, -n 1direciona xargspara processar um argumento por comando e -P 4o instrui a executar quatro comandos simultaneamente. Isso acelera significativamente o processo de download em comparação a uma abordagem sequencial.

Conclusão

Em resumo, você pode combinar comandos usando ponto e vírgula ;, implementar execução condicional com &&e ||, executar processos em segundo plano com &e elevar suas capacidades multitarefa por meio de execução paralela usando xargs.

Crédito da imagem: Unsplash . Todas as modificações e capturas de tela por Haroon Javed.

Fonte

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *