REGEX direto no Bash

regexbash_abertura.png

Geralmente quando validava uma sequência de caracteres em shell script usando uma expressão regular eu recorria a uma ferramenta externa (egrep, sed etc) para fazê-lo —  algo como neste exemplo de validação de endereços de e-mail utilizando o egrep:

$ echo "usuario@email.com" |\
  egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ; echo $?
0
$ echo "usuario%email-123" |\
 egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ;  echo $?
1

Ou seja, o retorno do valor 0 para significando verdadeiro e do valor 1 indicando falso.

Continuar lendo

O comando ‘fold’

fold-1_abertura.png

O comando fold é um daqueles programas desconhecidos que sempre são instalados¹, que acabamos descobrindo por acaso e que depois ficamos nos perguntando como conseguíamos viver sem. 🙂

Basicamente o fold serve para quebrar as linhas de um arquivo texto para fazê-lo “caber” corretamente na largura da sua tela, impressora ou mesmo então para uma página web — sim, é o que uso para arrumar as saídas dos comandos para publicar aqui,

(¹) Ele integra o pacote GNU core utilities.

Continuar lendo

Um “crontab” mais simples

crontab-1_abertura.png

Bem resumido… cada linha do “contrab” é composta por seis campos. Os cinco primeiros representam, respectivamente, “minuto” (0-59), “hora” (0-23), “dia do mês” (1-31), “mês” (1-12) e “dia da semana” (0-7)¹; o sexto campo é o comando a ser agendado. E nas definições de hora, minuto, dia etc você pode usar “-” para indicat uma faixa de valores, o “,” para elencá-los individualmente ou então utilizar”*” para representar todos os valores possíveis.

Mas se você é assim como eu e nunca lembra direito da ordem dos cinco primeiros campos, há um conjunto de atalhos² que ajudam a simplificar um pouco o agendamento de tarefas.

(¹) Você pode usar 0 ou 7 para representar o domingo.

Continuar lendo

Repositório EPEL no CentOS

epel-1_abertura

O  Extra Packages for Enterprise Linux, ou simplesmente EPEL, é um subprojeto dentro do Fedora que utiliza a mesma infraestrutura da distribuição para criar, manutenir e gerenciar um conjunto de pacotes para os tais “linux corporativos”¹, ou seja, os RedHat Enterprise Linux, CentOS, Scientific Linux, Oracle Linux etc.

(¹) Acho que “corporativo” uma palavra que cai melhor para traduzir enterprise do que “empresarial”, apesar de tudo ser pura propaganda e significar coisa nenhuma. 🙂

Continuar lendo

Autenticando no Git com SSH

git-com-ssh_abertura

Por padrão os repositórios web do Git usam o protocolo HTTPS tanto para a transferência de arquivos — nos comandos clone, pull, push etc — como para a autenticação dos usuários — quando do push e do clone e pull nos repositórios privados.

A “chatice” deste método é precisar (lembrar e) ficar digitando a senha para estas operações. Mas tanto BitBucket, GitHub quanto GitLab disponibilizam também a autenticação de usuário no repositório por SSH e é algo tão simples de configurar que vale a pena fazê-lo…

…nem que seja para fugir de uma vez da digitação da senha. 🙂

Continuar lendo