Exemplos úteis de linha de comando bash e exemplos de truques - Parte 2

Exemplos úteis de linha de comando bash e exemplos de truques - Parte 2

Nesta série, estamos explorando várias dicas, truques e exemplos de linha de comando BASH, que ajudarão você a se tornar um usuário e codificador mais avançados do Bash. Bash fornece uma rica linguagem de script e codificação que coloca o poder de volta nas mãos do usuário e desenvolvedor. Bash também permite que você aprenda à medida que avança, tornando -a uma experiência mais agradável. Para o primeiro artigo de nossa série, consulte nosso artigo, dicas de linha de comando e truques úteis Bash Parte 1.

Nesta série de tutoriais, você aprenderá:

  • Dicas úteis da linha de comando Bash, truques e métodos
  • Como interagir com a linha de comando Bash de maneira avançada
  • Como aprimorar suas habilidades de bash em geral e se tornar um usuário de bash mais proficiente
Exemplos úteis de linha de comando bash e exemplos de truques - Parte 2

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Independente da distribuição Linux
Programas Linha de comando Bash, sistema baseado em Linux
Outro Qualquer utilidade que não esteja incluída no shell bash por padrão pode ser instalada usando sudo apt-get install utility-name (ou yum install para sistemas baseados em redhat)
Convenções # - requer que o Linux -Commands seja executado com privilégios de raiz diretamente como usuário root ou por uso de sudo comando
$-exige que o Linux-Commands seja executado como um usuário não privilegiado regular

Exemplo 1: Captura do endereço IP ilusório



Às vezes, nossos scripts precisam saber qual é o endereço IP nossa máquina. Existem alguns métodos diferentes, embora nenhum deles seja totalmente infalível. Por exemplo, ter vários adaptadores de rede em um computador pode criar alterações na saída por vários comandos. Além disso, alguns comandos têm limitações.

Por exemplo, o nome de anfitrião o comando declara claramente em seu manual (para o -EU opção) que ele exibirá todos os endereços de rede do host, mas para não fazer nenhuma suposição sobre a ordem da saída. Parece assim que usar nome de anfitrião pode não ser a melhor opção.

Os exemplos fornecidos aqui são capacitá -lo e fornecer algumas sugestões para uma melhor exploração e melhoria específica e/ou geral. O conhecimento da máquina que está sendo consultado, ou a rede que está sendo usada, permitirá que se transformem esses comandos em scripts mais estáveis ​​de endereço IP Retriever.

$ Myip = "$ (ip a | grep 'inet.*Global '| Grep -v Docker | sed 's |.*INET || ' | grep -o "^[\.0-9] \+")"; eco "$ myip" 10.10.0.20 $ myip = "$ (rota ip -s Get 1 | grep -o" src [\.0-9] \+"| grep -o" [\.0-9] \+")"; eco "$ myip" 10.10.0.20 

No primeiro comando, usamos o ip a (endereço de IP) Comando para recuperar uma lista de todos os endereços IP atribuídos a esta máquina. Você pode digitar o ip a comando diretamente na linha de comando Bash para ver como é a saída.

Em seguida, Grepped todos globais INET adaptadores e removeu qualquer conexão de rede do docker da lista (você pode ver que isso não é perfeito; outros softwares podem criar outras interfaces de rede, por exemplo ssh ou outros programas de virtualização, como VirtualBox, que também exigiria filtragem).

Em seguida, processamos ainda mais a entrada com sed Para remover as informações até INET. Finalmente, nós grepamos para o IP real com um apenas grep eu.e. grep -o Comando que usa uma expressão regular para pegar o endereço IP completo (IPv4).

Para saber mais sobre expressões regulares, consulte nossos regexps Bash para iniciantes com exemplos e Bash Regex avançado com exemplos de artigos.

Você também pode notar novamente como existem limitações aqui; Como incorporar endereços IP IPv6, como descobrir qual é o endereço IP principal quando existem vários adaptadores etc.

No segundo comando, procuramos a primeira rota na máquina com Rota IP -s Get 1 e então processe a saída de maneira semelhante. Isso é potencialmente mais estável para pelo menos encontrar o endereço IPv4 principal da máquina.

Deixe -nos saber o seu melhor método para obter o IP, e talvez o endereço IPv4 principal usando scripts de bash nos comentários abaixo!

Exemplo 2: os riscos do globbing e a necessidade de citar corretamente

$ touch a b c $ echo "$ (echo"*")"*$ echo $ (echo "*") a b c c c 


Neste exemplo, primeiro criamos 3 arquivos, a, b e c, E em seguida, executamos dois econs. O primeiro eco cita corretamente o * resultante do eco "*" Dentro da subshell $ (), resultando em um literal * sendo produzido pelo primeiro eco no comando. O segundo comando de eco não cita corretamente o * e, como tal, ocorre um globbing; o * é visto como um identificador de nome de arquivo, e os arquivos estão sendo listados e passados ​​para o eco do punho. Para esclarecer isso, considere:

$ echo * a b c 

Assim, vemos a necessidade de citar sempre corretamente qualquer texto que possa ser interpretado como um nome de arquivo, mesmo que esse texto já seja citado corretamente dentro da subshell, como é o caso aqui ($ (echo "*"): Observe o citado *).

Conclusão

Neste artigo, analisamos como obter um endereço IP usando vários métodos e consideramos expandir isso para se adequar a vários ambientes. Também exploramos o Bash Globbing e a necessidade de citar textos que podem ser interpretados como nomes de arquivos corretamente, a fim de evitar o globo.

  • Exemplos úteis de linha de comando bash e exemplos de truques - Parte 1
  • Exemplos úteis de linha de comando bash e exemplos de truques - Parte 2
  • Exemplos úteis de linha de comando BASH - Parte 3
  • Exemplos úteis de linha de comando Bash e truques - Parte 4
  • Exemplos úteis de linha de comando BASH - Parte 5

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Mastering Bash Script Loops
  • Coisas para instalar no Ubuntu 20.04
  • Loops aninhados em scripts de basquete
  • Exemplos úteis de linha de comando bash e exemplos de truques - Parte 1
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Ubuntu 20.04 Guia
  • Ubuntu 20.04 truques e coisas que você pode não saber
  • Exemplos úteis de linha de comando BASH - Parte 3
  • Exemplos úteis de linha de comando Bash e truques - Parte 4