Operadores de encadeamento de comandos são caracteres especiais usados ​​para escrever scripts de shell em miniatura na linha de comando. Eles geralmente são usados ​​para executar comandos em uma determinada sequência, definida pela colocação de operadores entre os comandos. Isso é incrivelmente útil para automatizar tarefas.

Vamos aprender sobre alguns operadores de encadeamento comum no Linux que podem ajudá-lo a concluir tarefas mais rapidamente e com intervalos de usuário menores.

1. O operador E comercial (&)

Freqüentemente, quando você abre um programa ou executa um comando a partir do shell, é necessário aguardar até que o comando termine ou sair manualmente do programa antes de continuar usando o shell. Aqui é onde o operador e comercial (&) entra em ação.

Ao anexar o operador e comercial a qualquer comando, você dita o shell para execute esse comando do Linux em segundo plano para que você possa continuar usando o shell sem restrições.

gedit &

Normalmente, se você executar o gedit a partir do terminal, não poderá usar o terminal, a menos que feche o editor de texto. Mas, acrescentando o operador e comercial, você pode fazê-lo rodar em segundo plano e continuar a usar o shell imediatamente.

2. O operador ponto-e-vírgula (;)

O operador ponto-e-vírgula é um operador de encadeamento do Linux incrivelmente útil que você pode usar para executar comandos em uma ordem sequencial definida. Ordene seus comandos e separe-os por ponto e vírgula.

pwd; mkdir teste; cdteste; arquivo de toque

A sintaxe acima dita o shell para executar cada comando um após o outro. Observe que o shell não verifica se cada comando termina com sucesso. Assim que o shell recebe um código de retorno, ele passa a executar o próximo comando.

3. O Operador OU (||)

O operador OR executará o comando a seguir apenas se o comando anterior falhar, ou seja, retornar um código de saída 0. Ele funciona como uma porta OR lógica, que retorna um valor de 1 quando a entrada é 0.

comando_ruim || ls

Nesta sintaxe de exemplo, bad_command é um comando falso que falhará na execução e, como falha, o comando que sucede o operador OR, que é o comando ls, será executado com sucesso.

4. O operador de tubulação (|)

O operador pipe direciona a saída do comando anterior como entrada para o comando seguinte. É mais comumente usado para filtrar dados com o comando grep.

teste de gato | grep -i "fazer uso de"

Este comando envia a saída de o comando do gato como entrada para o comando grep, que filtra a saída em uma string especificada.

5. O operador AND (&&)

Esse operador funciona de maneira semelhante ao operador ponto-e-vírgula, exceto que, ao contrário do operador ponto-e-vírgula, o operador AND executará comandos somente se o comando anterior tiver sido executado com êxito.

pwd && teste mkdir && teste de cd && bad_command && ls

Nesta sintaxe de exemplo, o shell executará com sucesso todos os comandos até bad_command. No entanto, como bad_command falha ao executar, o shell retornará um erro e ignorará o comando ls.

6. O Operador NOT (!)

O operador NOT funciona de maneira semelhante a uma instrução exceto na programação. Por exemplo, se você deseja executar uma operação em um grande número de arquivos em um diretório, mas deseja excluir um poucos com base em algum parâmetro, então você pode usar o operador NOT passando o parâmetro após o caractere NOT (!).

rm-r !(*.TXT)

Este comando de exemplo removerá recursivamente todos os arquivos em um diretório, exceto os arquivos que possuem uma ".TXT"extensão.

7. O operador de precedência ((..))

Os comandos que seguem os operadores AND e OR dependem do código de saída do comando anterior. Esses operadores são binários e avaliam apenas os dois comandos que vêm antes e depois deles.

Portanto, ao trabalhar com vários operadores, é importante definir grupos e precedência para garantir que a sequência de execução atenda às suas expectativas.

(ls *.txt > txt-files.list && cp *.tx ~) && (ls *.deb > deb-packages.list && cp *.deb ~) || eco "Teste de precedência!"

Nesta sintaxe de amostra, ambos os grupos de comandos devem retornar um código de saída 0 para garantir a execução bem-sucedida do último comando. Este exemplo requer que ambos os comandos no primeiro set () saiam com 0 para que o segundo set () seja executado.

8. O operador de combinação ({..})

Como o nome sugere, o operador de combinação é usado para agrupar comandos. Quaisquer que sejam os comandos que você deseja agrupar, você pode colocá-los entre chaves e eles serão executados dependendo do código de saída do primeiro comando.

teste -f /etc/passwd && {pwd; data} && eco $0; eco "Olá"

A sintaxe de amostra testará se o arquivo /etc/passwd estiver presente, imprima o diretório de trabalho atual, data, nome do shell e echo "Olá".

9. Concatenação ou operador de escape (\)

O operador de concatenação ou escape tem duas funções. Você pode usá-lo para concatenar dois comandos ou como um caractere de escape ao trabalhar com strings no shell.

mkdir teste0 teste1 \ teste2
eco "Olá! de o
outro lado"

O primeiro comando criará quatro diretórios denominados test0 a test2, e o segundo comando imprimirá a string separada por uma nova linha.

10. Os operadores de redirecionamento (>, >>,

Os operadores de redirecionamento redirecionam a saída ou a entrada para um arquivo reescrevendo o arquivo ou anexando a ele. Se você deseja reescrever um arquivo, então você deve usar a sintaxe de colchete angular (>). Se quiser anexar a um arquivo, você terá que usar a sintaxe de colchete angular duplo (>>).

eco "dsd"> teste; eco "bssss">> teste

Na sintaxe de amostra, o primeiro comando sobrescreverá o arquivo "teste" com a string fornecida, mas, no segundo comando, a string fornecida será anexada ao arquivo de teste.

Acelere o fluxo de trabalho do seu terminal Linux

Embora o uso de operadores especiais agilize significativamente a execução de tarefas para você, existem várias outras maneiras de acelerar seu fluxo de trabalho.

Uma maneira fácil e valiosa de fazer mais em menos tempo é familiarizar-se com alguns atalhos de shell úteis. Acostumar-se a esses atalhos irá percorrer um longo caminho, e você se verá confiando neles enquanto usar o Linux.