Se você usa Linux, sabe como a linha de comando pode ser útil para trabalhar com arquivos, instalar software e iniciar programas. Mas pode ser ainda mais eficiente se você executar vários comandos ao mesmo tempo.
Combinar dois ou mais comandos na linha de comando também é conhecido como “encadeamento de comandos”. Mostraremos diferentes maneiras de combinar comandos na linha de comando.
Índice
Opção um: o operador de ponto e vírgula (;)
O operador de ponto e vírgula (;) permite que você execute vários comandos em sucessão, independentemente de cada comando anterior ser bem-sucedido. Por exemplo, abra uma janela Terminal (Ctrl + Alt + T no Ubuntu e Linux Mint). Em seguida, digite os três comandos a seguir em uma linha, separados por ponto-e-vírgula, e pressione Enter. Isso lhe dará uma lista do diretório atual ( ls
), descobrirá em qual diretório você está ( pwd
) e exibirá seu nome de login ( whoami
) de uma vez.
ls; pwd; Quem sou eu
Você também não precisa colocar espaços entre os pontos-e-vírgulas e os comandos. Você pode inserir os três comandos como ls;pwd;whoami
. No entanto, os espaços tornam o comando combinado mais legível, o que é especialmente útil se você estiver colocando um comando combinado em um script de shell .
Opção dois: o operador lógico AND (&&)
Se quiser que o segundo comando seja executado apenas se o primeiro for bem-sucedido, separe os comandos com o operador lógico AND, que é dois e comercial ( &&
). Por exemplo, queremos fazer um diretório chamado MyFolder e então mudar para esse diretório – desde que tenha sido criado com sucesso. Então, digitamos o seguinte na linha de comando e pressionamos Enter.
mkdir MyFolder && cd MyFolder
A pasta foi criada com sucesso, então o cd
comando foi executado e agora estamos na nova pasta.
Recomendamos usar o operador lógico AND em vez do operador ponto-e-vírgula na maioria das vezes ( ;
). Isso garante que você não faça nada desastroso. Por exemplo, se você executar um comando para mudar para um diretório e então forçar a remoção de tudo nesse diretório recursivamente ( cd /some_directory ; rm -Rf *
), você pode acabar arruinando seu sistema se a mudança de diretório não acontecer. Não que recomendamos que você execute um comando para remover incondicionalmente todos os arquivos em um diretório de uma vez.
Opção três: o operador OR lógico (||)
Às vezes, você pode querer executar um segundo comando apenas se o primeiro comando não for bem-sucedido. Para fazer isso, usamos o operador lógico OU, ou duas barras verticais ( ||
). Por exemplo, queremos verificar se o diretório MyFolder existe ( [ -d ~/MyFolder ]
) e criá-lo se não existir ( mkdir ~/MyFolder
). Então, digitamos o seguinte comando no prompt e pressionamos Enter.
[-d ~ / MinhaPasta] || mkdir ~ / MyFolder
Certifique-se de que há um espaço após o primeiro colchete e antes do segundo colchete ou o primeiro comando que verifica se o diretório existe não funcionará.
Em nosso exemplo, o diretório MyFolder não existe, portanto, o segundo comando cria o diretório.
Combinando vários operadores
Você também pode combinar vários operadores na linha de comando. Por exemplo, queremos primeiro verificar se existe um arquivo ( [ -f ~/sample.txt ]
). Em caso afirmativo, imprimimos uma mensagem na tela dizendo isso ( echo “File exists.”
). Caso contrário, criamos o arquivo ( touch ~/sample.txt
). Então, digitamos o seguinte no prompt de comando e pressionamos Enter.
[-f ~ / sample.txt] && echo “Arquivo existe.” || toque em ~ / sample.txt
Em nosso exemplo, o arquivo não existia, então foi criado.
Aqui está um resumo útil de cada um dos operadores usados para combinar comandos:
-
A ; B
– Execute A e, em seguida, B, independentemente do sucesso ou fracasso de A -
A && B
– Executar B apenas se A for bem-sucedido -
A || B
– Executar B apenas se A falhar
Todos esses métodos de combinação de comandos também podem ser usados em scripts de shell no Linux e no Windows 10 .
Você também pode corrigir automaticamente a ortografia e erros de digitação ao usar “cd” na linha de comando no Linux para evitar consequências drásticas ao combinar comandos.