Variáveis de ambiente no Linux

As variáveis de ambiente são usadas para armazenar valores, que podem ser usados por scripts, executados a partir da shell.
Algumas variáveis de ambiente já fazem parte do sistema. Outras podem ser criadas por você.
No Bash, há 2 tipos de variáveis de ambiente ou (environment variables):

  1. locais — visíveis apenas dentro da shell, na qual foram criadas.
  2. globais — visíveis a todos os processos em execução numa shell.

Você pode usar o comando printenv, para ver quais são e como estão definidas as variáveis globais no seu ambiente atual:
Veja algumas das minhas:


printenv

LS_COLORS=di=7;32:fi=32:ln=4;32:pi=5;32:so=5;32:bd=5;32:cd=5;32:or=5;32:mi=5;32:ex=1;32:*.png=1;4;32:*.jpg=1;4;32
XDG_MENU_PREFIX=gnome-
LANG=pt_BR.UTF-8
GDM_LANG=pt_BR.UTF-8
DISPLAY=:0
COLORTERM=truecolor
USERNAME=justincase
DESKTOP_SESSION=gnome-xorg
WINDOWPATH=2
TERM=xterm-256color
SHELL=/bin/bash
VTE_VERSION=4602
XDG_CURRENT_DESKTOP=GNOME
GDMSESSION=gnome-xorg
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
PATH=/opt/Komodo-Edit-10/bin:/opt/Telegram/Telegram:/usr/local/bin:/usr/bin:/bin:/usr/games
_=/usr/bin/printenv

Para ver apenas uma das variáveis, use o comando echo:


echo $HOME

/home/justincase

Experimente ver outras variáveis no seu sistema.
Depois, experimente criar sua primeira variável de sistema:


meusite="https://elias.praciano.com"

echo $meusite

https://elias.praciano.com

Fique atento: os nomes das variáveis são sensíveis à caixa (case sensitive).
Por isso, $meusite e $MEUSITE são coisas totalmente diferentes.
variáveis de ambiente sistema linux

Como prática recomendada, use sempre as letras minúsculas, para nomear as suas variáveis.
Assim você evita confusão com as variáveis do sistema.

Antes de abordarmos o próximo tópico, vale lembrar que as variáveis declaradas em uma sessão ou dentro de uma janela de um console não terão validade em outra sessão ou console.

Como declarar uma variável global

Para definir uma variável global, é necessário declarar (como você já deve saber) uma variável local.
Depois disto, a exportamos com o comando export:


autor='Elias Praciano'
echo $autor

Elias Praciano

export autor

Note que não se usa o ‘$’ à frente do nome da variável, quando a passamos para o comando export.
O último passo, para tornar uma variável persistente entre as sessões, é editar o arquivo ~/.bashrc.
Inclua, ao final dele, a linha com o comando export:


export autor='Elias Praciano'

Após este procedimento, a variável autor poderá ser sempre invocada no seu sistema, com o valor ‘Elias Praciano” — ou até você mudar o seu valor ou remover a linha do arquivo .bashrc.

Como descartar variáveis de ambiente no Linux

O comando unset pode ser usado para remover variáveis da memória do sistema:


echo $autor

Elias Praciano

unset autor
echo $autor

Remova também as declarações referentes à variável do seu arquivo .bashrc, ou ela ressurgirá na próxima sessão.

Use o calendário incluído na shell CLI do Android

A shell mksh, incluída nos dispositivos Android, desde a versão 4.2, vem acompanhada de uma série de utilitários interessantes.
O seu smartphone tem possibilidades que você mal desconfia.

Quando estiver sem Internet e sem nada pra fazer e apenas com o seu smartphone na mão, brincar na shell CLI (Command Line Interface, ou “Interface da Linha de Comando”) pode ser uma alternativa.

Sei que a grande maioria das pessoas, não vai achar este tipo de coisa interessante… mas, enfim, eu nunca fiz parte desta “grande maioria” e adoro descobrir coisas novas no terminal.
Antes de continuar, certifique-se de ter instalado um emulador de terminal em seu smartphone ou tablet.
Feito isso, vamos conhecer o comando cal.

Como obter informações sobre datas e calendários no Android com o comando cal

Já adivinhou que “cal” é abreviatura de calendar ou “calendário”?
É um utilitário tradicional do mundo UNIX/Linux.


cal

     Junho 2017       
do se te qu qu se sá  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30  

No Linux, o utilitário vai destacar o dia atual, do mês — o que não ocorreu na CLI do meu celular (Android 7 Nougat).
linux shell cal command
Você pode obter o calendário de um determinado mês e ano, com o seguinte comando:


cal 8 2019

Em que o primeiro parâmetro é o número do mês do ano e o segundo o ano.
calendar 8 August 2019
Desta forma, sempre que precisar saber em que dia da semana cai um determinado dia do ano ou do mês, você pode usar este método autenticamente geek para descobrir.

Script Bash para monitorar um ou vários sites e verificar se estão online

Este pequeno script em Bash, vai monitorar uma lista de sites, à sua escolha e vai avisar se algum deles não estiver online, em algum momento.
Como ele usa o comando ping, você também pode executá-lo dentro da sua rede local para monitorar diversos nós e ficar sabendo quando um for desligado.
Veja o código abaixo:


#!/bin/bash
# Um script feito para sistemas Linux e UNIX
# que faz monitoramento com o comando PING.

# adicione endereços IP ou hostnames, 
# separados por espaços em branco, para serem
# monitorados pelo script.
HOSTS="127.0.0.1 192.168.1.0 192.168.0.133 google.com"

# sem ping request
CONTADOR=1

# envia relatório de email quando...
ASSUNTO="Ping falhou"
EMAIL="elias@praciano.com"
for meuhost in $HOSTS
do
    contador=$(ping -v -c $CONTADOR $meuhost | grep 'received' | awk -F',' '{print $2}' | awk '{print $1}')
    if [ $contador -eq 0 ]; then
        echo "O Host: $meuhost está fora do ar (o ping falhou) em $(date) - $ASSUNTO - $EMAIL"
        # se você preferir receber um e-mail, descomente a linha abaixo
        echo "Host : $meuhost  ${NAME[$val]} está fora do ar (o ping falhou) em $(date)" | mail -s "$ASSUNTO" $EMAIL
    fi
done

O código pode funcionar melhor dentro de outro script ou sendo executado periodicamente, dentro do crontab do seu sistema.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

https://bash.cyberciti.biz/monitoring/monitor-windows-linux-server-with-ping-script/.

Exemplos de loops no Bash

Mesmo não querendo se dedicar a aprender e entender melhor os meandros da linguagem de programação de scripts Bash, pode ser útil conhecer alguns de seus conceitos.
Saber criar loops é um destes conhecimentos básicos que vale a pena adquirir.
Um pequeno script pode ajudar a poupar uma enormidade de tempo, no dia a dia de qualquer usuário, de qualquer sistema operacional.
Se achar melhor, adicione esta página aos seus favoritos (Ctrl + D), para ter uma referência rápida no futuro. 😉

Os diferentes tipos de loops do Bash

Os loops (ou laços) são expressões presentes em todas (ou quase todas) as linguagens de programação. Além disso, podem se dividir em tipos diferentes.
No Bash, você pode usar for, while e until.
Veja em que casos cada um é mais indicado:

  • for — se você tem experiência com outras linguagens de programação, no Bash, o for é um pouco diferente da maioria.
    Basicamente é usado para te permitir iterar entre uma série de palavras dentro de uma string.
  • while — executa um pedaço de código, caso a expressão de controle seja verdadeira. Ele só irá parar quando ela for falsa — ou quando encontrar um break explícito no meio do código em execução.
  • until — muito semelhante ao while, exceto pelo fato de que o código é executado enquanto a expressão de controle é falsa.

Segue alguns exemplos simples, que você pode usar para compor ou construir um código mais sofisticado, para atender melhor às suas necessidades.

Exemplos de uso do for

Você pode experimentar este código diretamente na linha de comando do sistema, como no exemplo abaixo


for i in $( ls ); do
> echo item: $i
> done

… ou pode abrir um editor e escrever o código dentro dele e gravar com algum nome. O meu, vou gravar como exemplo-for.sh:


#!/bin/bash
for i in $( ls ); do
   echo item: $i
done

Explicando o código…

  • A primeira linha informa ao sistema que o arquivo deve ser executado com o programa /bin/bash.
  • Na segunda linha declaramos a variável i como repositório dos diferentes valores contidos em $( ls ).
  • A terceira linha expõe o valor atual de i.
  • Por fim, done informa que chegamos ao final do laço for e, se não houver mais nada a ser feito, o programa para por aqui — ou segue sendo executado.

Depois de gravado, execute-o com o bash


bash exemplo-for.sh

Experimente também este script, para colorir texto:


#!/bin/bash
for fg in {30..39}
do
    echo -e "\e["$fg"m apenas um texto colorido pelos caracteres de escape do BASH."
done

vim syntax color

Como criar um loop while no Bash

Veja um exemplo simples de laço while (enquanto), no Bash:


#!/bin/bash
contador=0
while [ $contador -lt 10 ];
do
    echo O valor atual do contador é: $contador
    let contador=contador+1
done

O argumento -lt pode ser abreviatura de less than ou lower than, que significame “menos que” ou “menor que”, em uma tradução livre.
Da mesma forma, usa-se -gt, como abreviatura de greater than, para “maior que”.

Exemplo de uso do until no Bash

Se eu fosse traduzir livremente a linha until [ $contador -lt 10 ]; no exemplo abaixo, eu diria “até que (until) a variável contador seja menor que 10…”
Experimente o código e veja o resultado:


#!/bin/bash
contador=30
until [ $contador -lt 10 ];
do
    echo O valor do meu contador é igual a $contador
    let contador-=1
done

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Controle a temperatura da tela com o sct

O sct é um daqueles utilitários bem simples, leves e fáceis de usar.
Aqui, não tem segredo. Se você o executar sem parâmetro algum, ele vai ajustar a temperatura da sua tela principal para 6500 graus.
É simples assim:


sct

O aplicativo pode trabalhar dentro do limite de temperaturas entre 1000 e 10000.
O valor desejado pode ser passado diretamente para ele:


sct 5000

Quem precisa trabalhar à noite, pode usar valores de temperatura mais baixos (ou mais quentes), para dar conforto visual e não atrapalhar o sono, mais tarde.
Durante as primeiras horas da manhã, valores mais altos (ou temperaturas mais frias) podem ser mais indicados.
No Debian e no Ubuntu, o aplicativo pode ser instalado com o apt:


sudo apt install sct

Você pode experimentar as várias nuances do sct com um pequeno script Bash.
Abra o seu editor de textos favorito, digite o seguinte código e salve-o:


for temp in {1000..10000}
do
        sct $temp
done

Eu gravei o meu script com o nome de sctchange.sh. Para executá-lo, use o bash:


bash sctchange.sh

Aguarde, enquanto ele lentamente vai “esfriando” a tela, a partir da temperatura 1000.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.