Argumentos de linha de comando em shell script

20-08-2020
---

Argumentos de linha de comando em Shell Script

---

Os argumentos da linha de comando também são conhecidos como parâmetros posicionais.

Esses argumentos são específicos com o script de shell no terminal durante o tempo de execução.

Cada variável passada para um script de shell na linha de comando é armazenada nas variáveis ​​de shell correspondentes, incluindo o nome do script de shell.

---

Sintaxe:

./meu_script.sh ARG1 ARG2 ARG3 ARG4 ARG5 ARG6 ARG7 ARG8 ARG9 ARG10

---

Elas também são conhecidas como variáveis ​​especiais fornecidas pelo shell. Existem algumas variáveis ​​mais especiais...

---

Variável Especial

---

Detalhes de Variável
$1 a $n

---

$1
são os primeiros argumentos, $ 2 é o segundo argumento até $ n n'ésimos argumentos. A partir do décimo argumento, você deve incluí-los entre colchetes como $ {10}, $ {11} e assim por diante

$0
O nome do próprio script

$$
Id do processo do shell atual

$*
Valores de todos os argumentos. Todos os argumentos estão com "aspas duplas"

$#
Número total de argumentos passados ​​para o script

$@
Valores de todos os argumentos

$?
ID de status de saída do último comando

$!
Id do processo do último comando

---

Script de exemplo

Os argumentos da linha de comando podem ser passados ​​logo após o nome do arquivo de script com espaços separados. Se algum argumento tiver espaço, coloque-o entre aspas simples ou duplas. Leia abaixo o script simples.

---

#!/bin/bash

### Print total de argumentos e seus valuores

echo "Total Argumentos:" $#
echo "Todos os valores de argumentos:" $@

## Argumentos de comandos
## podem ser acessados como:

echo "Primeiro->" $1
echo "Segundo->" $2

# Pode também acessar todos os argumentos em um array e usa-los em um script.

args=("$@")
echo "Primeiro->" ${args[0]}
echo "Segundo->" ${args[1]}

---

Permissão para sair

!/bin/bash

# -----------------

## Data: 20-08-2020
## Nome do script: permissao_sair.sh

# -----------------

clear

# -----------------

echo
echo "Linux aprenda: if then elif else e fi"
echo
sleep 3

# -----------------

echo -n "Se quiser sair a noite, digite a sua idade (10 a 19) : "
read REPLY

# -----------------

# declaração: if then elif else e fi

if [[ "$REPLY" -ge 19 ]] # declaração if
then
echo 'Você pode ir para a festa.'

elif [[ "$REPLY" -eq 18 ]] # declaração elif
then
echo 'Você pode ir à festa, mas estará de volta antes da meia-noite.'

elif [[ "$REPLY" -eq 10 ]] # declaração elif
then
echo 'Você não pode ir à festa. Tome banho, escove os dentes. Vá dormir ás 22:00. Estamos te vendo pelas cameras da casa agora.'

else # comando else
echo 'Você não pode ir à festa. Fique no berço.'

fi # fechamento do if é o fi

## fim ##

Minha coleção de Conky’s

Um conky. Um retângulo estreito no lado direito da tela de um sistema operacional GNU/Linux ou Linux. Ele é escrito na linguagem de programação LUA. Eles são realmente muito úteis. Podem oferecer todo tipo de informação sobre o sistema, meteorologia, notícias em geral e melhor ainda podem ter outras formas que não a do retângulo estreito. Conky Elefante? Existe. Conky Futuro espacial? Existe. Conky Tigre? Existe. E o que não existe ainda pode vir a existir a qualquer momento que um usuário aprende o código LUA e faz uns tweaks em algum Conky criado por outro ou faz seu próprio Conky do zero.

Aqui um tem um Conky meu para GNU/Linux ou Linux dedicado aos usuários iniciantes que desejam não somente obter informações sobre o sistema operacional, mas desejam aprender atalhos de teclado do terminal GNU/Linux ou Linux. Ele é assim:

Agora é hora de oferecer o código a vocês. Espero que seja útil em sua jornada de aprendizado.

Código LUA do Conky:

# ----------------------------------------------------
# "CPU Panel (8-core)" theme for Conky by Tony George (teejee2008@gmail.com)
# ----------------------------------------------------
# Meu_Conky_Network_Panel_Atec
# Webpage: http://teejeetech.blogspot.in/
# ----------------------------------------------------
# Tweak by: oldfolk & semanickzaine - Brasil - 30-07-2020
# ----------------------------------------------------
# O Ano da Peste. No dia 30 do 07 de 2020 o ano da peste de nosso senhor, resolvi escrever um Conky já que para minha surpresa, entre tantos mortos, eu ainda estava vivo.
# ----------------------------------------------------
# Blog: https://semanickz.wordpress.com
# ----------------------------------------------------

background yes
double_buffer yes

alignment bottom_left

border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no

gap_x 10
gap_y 0
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no

own_window yes
own_window_type normal
own_window_transparent yes
own_window_colour 000000
own_window_argb_visual yes
own_window_argb_value 0
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

minimum_size 170 0
stippled_borders 0
update_interval 2.0
uppercase no
use_spacer none

show_graph_scale no
show_graph_range no

use_xft yes
xftalpha 0.1
xftfont Droid Sans:size=10
color0 white
color1 EAEAEA
color2 FFA300
color3 grey

TEXT
-----------------------------------------------
${color2}${alignr}Atalhos de Teclado do Terminal${color0}
-----------------------------------------------
${color2}Ctrl+R${color0}${alignr}Busca recursiva
${color2}Ctrl+A${color0}${alignr}Inicio da string
${color2}Ctrl+E${color0}${alignr}Fim da string
${color2}Ctrl+K${color0}${alignr}Apaga para frente
${color2}Ctrl+U${color0}${alignr}Apaga para trás
${color2}Ctrl+W${color0}${alignr}Apaga string anterior
${color2}Alt+B${color0}${alignr}Move 1 string p/ trás
${color2}Alt+F${color0}${alignr}Move 1 string p/ frente
${color2}Ctrl+H${color0}${alignr}Apaga 1 bit anterior
${color2}Esc+Del${color0}${alignr}Apaga 1 bit posterior
${color2}Ctrl+L${color0}${alignr}Limpa a tela
${color2}Ctrl+D${color0}${alignr}Fecha o terminal
-----------------------------------------------
#${color2}Hostname:${color0}$alignr$nodename
${color2}Kernel:${color0}$alignr$kernel
${color2}Uptime${color0}${alignr}${uptime}
-----------------------------------------------
${color2}Download ${color0}${alignr}${downspeedf eth0} KiB/s
${downspeedgraph eth0 80,}
${color2}Upload ${color0}${alignr}${upspeedf eth0} KiB/s 
${upspeedgraph eth0 80,}
${color2}Bateria${color0}${alignr}${battery_percent BAT0}% / ${acpitemp}°C
${color2}Power${color0}${alignr}${battery_bar}  num
${color2}CPU${color0}${alignr}${cpu cpu0}%
${color2}CPU Bar${color0}${alignr}${cpubar}  num
${color2}HD${color0}${alignr}${fs_free}
${color2}RAM${color0}${alignr}${mem}
${color2}Swap${color0}${alignr}${swap}
${color2}Buffers${color0}${alignr}${buffers}
${color2}Cached${color0}${alignr}${cached}
#${color2}Uptime${color0}${alignr}${uptime}
#${color2}Local${color0}${alignr}${addreth0}
#${color2}Public${color0}${alignr}${execi 3600 wget -q -O /dev/stdout http://checkip.dyndns.org/ | cut -d : -f 2- | cut -d \< -f -1}
-----------------------------------------------

Até Breve!

Estou em casa.

🙂

Dica códigos android

Linux Dica códigos android

1

#Dica_linux
#Dica_codigos_android

O Android é o sistema operacional para smartphones mais popular de todos os tempos. Os desenvolvedores criam vários tipos de backdoor nos aplicativos e sistemas operacionais. Por meio desses backdoors, qualquer usuário com conhecimento suficiente pode entrar no sistema muito mais profundo do que em comparação com outros usuários. Como todos sabemos, o Android é um sistema operacional de código aberto baseado no Linux Kernel e desenvolvido pelo Google. O sistema operacional Android está sendo amplamente difundido no mundo. Os desenvolvedores do Android também criam muitas backdoors pelas quais você pode entrar no sistema e alterar as configurações. Não se destina a usar essas backdoors para intenções maliciosas, porque os desenvolvedores bloqueiam alguns modos e essas backdoor são o caminho ou permitem que os usuários entrem no sistema e permitam que se familiarizem com o sistema. Nos smartphones, esses backdoor são chamados de “códigos secretos”. Também listamos os códigos secretos do iPhone. Estas são as seqüências numéricas/simbólicas que permitem acessar as configurações do sistema para vários usos. Então, aqui coletamos alguns códigos secretos ocultos do Android. Talvez alguns deles não funcionem no dispositivo específico, mas você pode tentar.

#31#

Oculta seu número em todas as chamadas realizadas.

*#06#

Mostra informação do seu IMEI

*#*#4636#*#*

Mostra sinal do wifi, bateria, estatisticas de uso e outras informações

2

#Dica_linux
#Dica_codigos_android

*#*#7780#*#*

Volta instantaneamente aos padrões de fábrica (Hard Reset). Deleta apenas aplicações.

*#*#8351#*#*

Ouça gravações de sua voz durande as últimas 20 chamadas.

*#3282*727336*#

Status de uso de dados.

*#12580*369*

Informações sobre software e hardware.

*#*#7780#*#*

Configuração de restauração de fábrica. Limpe todos os aplicativos e dados. Remova a configuração da conta do Google. Remova o sistema, os dados do aplicativo e as configurações.

3

#Dica_linux
#Dica_codigos_android

*2767*3855#

Reinstale o firmware do telefone. É usado para o formato de fábrica. Remova todos os arquivos e configurações, incluindo armazenamento interno. Reinstale o firmware.

*#*#197328640#*#*

Ativando o modo de teste para atividade de serviço. É usado para entrar no modo de serviço. Você pode executar e alterar vários testes e configurações no modo de serviço.

*#*#4636#*#*

Informações básicas do telefone. Detalhes de uso do telefone. Informações sobre a bateria.

*#*#34971539#*#*

Informações sobre câmeras móveis. Obtenha informações da câmera. Nota: – Evite atualizar a opção de firmware da câmera.

*#*#273283*255*663282*#*#*

Create backup to all your media files. Opens file copy screen where you can backup your media files like (images, videos, and audios).

*2767*4387264636*

Usado para exibir o código do produto.

*#*#3264#*#*

Versão RAM.

Criar Telegram bot rodando no Linux?

Telegram como criar um bot? Um bot bem básico no Linux só para iniciar?

Aqui o que consegui entender...

---

1) Precisa do: BotFather

2) Pode usar uma plataforma para programar o bot por exemplo:

Menu Builder Bot ou chatfuelbot

---

OBS:

Telegram comandos botfather - Comandos do botfather:

Eu posso ajudá-lo a criar e gerenciar bots do Telegram. Se você é novo na API Bot, consulte o manual (https://core.telegram.org/bots). Você pode me controlar enviando estes comandos:

/newbot - create a new bot
/mybots - edit your bots [beta]

Edit Bots
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setcommands - change the list of commands
/deletebot - delete a bot

Bot Settings
/token - generate authorization token
/revoke - revoke bot access token
/setinline - toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo - toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results)
/setinlinefeedback - change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups - can your bot be added to groups?
/setprivacy - toggle privacy mode (https://core.telegram.org/bots#privacy-mode) in groups

Games
/mygames - edit your games (https://core.telegram.org/bots/games) [beta]
/newgame - create a new game (https://core.telegram.org/bots/games)
/listgames - get a list of your games
/editgame - edit a game
/deletegame - delete an existing game

---

Comandos que usei no botfather do Telegram:

1) /start
2) /newbot

meumeubot

username: meumeu

---

Feito! Parabéns pelo seu novo bot. Você o encontrará em:

t.me/meumeubot

---

Com isso feito, você recebeu a chave de API do seu bot. A chave da API é como o Telegram sabe que o código que você escreve está associado a esse bot em particular. Todo bot tem sua própria chave de API e você não deve compartilhá-lo com ninguém, ou alguém pode invadir seu bot e fazer com que ele pratique más ações. Isso encerra nossa conversa com o BotFather por enquanto no código!

---

O TOKEN - Use this token to access the HTTP API:

numeros-e-letras-do-meu-token

---

Agora você pode adicionar uma descrição, sobre seção e foto de perfil para o seu bot, consulte /help para obter uma lista de comandos. A propósito, quando você terminar de criar seu bot legal, execute um ping no nosso Suporte de Bot se quiser um nome de usuário melhor para ele. Apenas verifique se o bot está totalmente operacional antes de fazer isso.

---

Meumeu

username: meumeubot

t.me/meumeubot

---

Mantenha seu token seguro e armazene-o com segurança, ele pode ser usado por qualquer pessoa para controlar seu bot. Para uma descrição da API Bot, consulte esta página:

https://core.telegram.org/bots/api

---

O bot pode funcionar no Linux.

Configurando as gemas e o diretório do bot.

Abra o terminal e faça mkdir telegram-bot.

Isso cria um novo diretório para os arquivos do seu bot.

É melhor mantê-los confinados em uma pasta para facilitar o gerenciamento. Navegue para o diretório com cd telegram-bot e faça o seguinte:

mkdir ~/Documentos/telegram-bot

cd ~/Documentos/telegram-bot

touch Gemfile

touch bot.rb

atom Gemfile

atom bot.rb

---

Oneliner?

mkdir ~/Documentos/telegram-bot; cd ~/Documentos/telegram-bot ; touch Gemfile; touch bot.rb; atom Gemfile ; atom bot.rb

---

OBS:

Isso cria dois arquivos em branco, um para especificar as gemas necessárias e outro para o código do bot. O último comando abre esses dois arquivos.

---

CONTINUANDO...

---

No arquivo Gemfile cole o seguinte:

source 'https://rubygems.org'
gem 'telegram_bot'

---

Isso diz ao Bundler para pegar a interface do Ruby para a API do Telegram no rubygems.org. Para concluir a configuração da gema, volte ao seu terminal e digite bundle. É isso para a configuração das gemas, agora estamos finalmente entrando no código.

---

Codificando seu primeiro bot de Telegram

---

O código real que será executado constantemente no servidor está dentro do bot.rb. ele está vazio no momento, mas aqui vamos vincular a gema do Telegram que acabamos de agrupar e criar um bot. Não há muito código para escrever.

---

Ele examina o que cada parte do código faz e o escreve à medida que avançamos.

require 'telegram_bot'
token = 'TOKEN'
bot = TelegramBot.new(token: token)

(Substitua o TOKEN pelo token da API que você copiou do BotFather)

---

O Ruby facilita bastante adivinhar o que o código fará. As três linhas acima adicionam a funcionalidade bot do Telegram ao seu arquivo e, em seguida, criam um novo objeto bot da classe TelegramBot, autenticado com seu token para que o programa saiba para onde enviar os dados.

A próxima parte é um grande loop. Parece confuso no começo, mas é fácil de separar.

---

bot.get_updates(fail_silently: true) do |message|
puts "@#{message.from.username}: #{message.text}"
command = message.get_command_for(bot)

message.reply do |reply|
case command
when /start/i
reply.text = "Tudo que posso fazer é dizer Olá. Tente o comando /greet."
when /greet/i
reply.text = "Olá, #{message.from.first_name}. 🤖"
else
reply.text = "IEu não tenho idéia do que #{command.inspect} significa."
end
puts "enviando #{reply.text.inspect} to @#{message.from.username}"
reply.send_with(bot)
end
end

---

A primeira linha diz ao bot para continuar ouvindo comandos. E, quando recebe um comando para passá-lo para a variável de mensagem.
A linha de put registra o comando no seu terminal para que você possa ver o que está acontecendo enquanto o bot é executado.
As ações de resposta do bot são armazenadas em uma declaração de caso.
A entrada da instrução de caso é alimentada a partir da variável de mensagem depois de limpa pelo método get_command_for da gema.
O texto de resposta do bot é definido dependendo do comando armazenado e, finalmente, enviado com send_with antes de o loop reiniciar. Com essa configuração, agora você pode encontrar seu bot no Telegram, enviar os comandos /start e /greet e assisti-lo em ação.

---

Para fazer isso, salve as alterações no Atom e execute:

ruby bot.rb

No terminal. Enquanto esse terminal estiver aberto e funcionando, seu bot enviará respostas!

---

Personalizando seu novo e brilhante bot - O bot que você acabou de criar é bom, mas não é muito interessante.

Os bits básicos estão lá, o que significa que você pode trocá-los e ampliá-los facilmente.

As partes a serem observadas ao personalizar são as linhas when/ command/ i e o texto entre as aspas nas linhas reply.txt.

Essas são as entradas que seu bot aceita e as mensagens que ele envia de volta como respostas. Portanto, se você quiser dizer algo diferente como resposta ao comando /greet, altere o valor de reply.text abaixo da linha de comando greet (quando /greet /i).

---

Aqui está uma variação que você pode tentar:

when /greet/i
greetings = ['bonjour', 'hola', 'hallo', 'sveiki', 'namaste', 'salaam', 'szia', 'halo', 'bom dia']
reply.text = "#{greetings.sample.capitalize}, #{message.from.first_name}!"

---

Aqui, criei uma matriz com algumas maneiras diferentes de dizer olá e, em seguida, adicionei uma à mensagem aleatoriamente usando o método de amostra

---

Transformando seu bot em algo incrível - você pode adicionar quantos comandos, respostas e recursos quiser ao bot.

A maior parte é imaginação e muito pesquisa em ferramentas de busca na web à medida que avança.

Se você quiser aprender muitas coisas aplicáveis a esse bot, comece com Learn Ruby the Hard Way para entender o básico do idioma.

Com um pouco de prática e uma dependência saudável do StackOverflow, você poderá:

Conectar outras APIs para extrair dados de fontes como Airtable, Slack, RSS ou Twitter.

É aí que entra a funcionalidade realmente interessante - você pode criar um bot que atua como uma interface de conversação para um conjunto de dados ou recursos, como um bot que retorna resultados de pesquisa do Twitter ou postagens no Slack.

---

ARMAZENE A ENTRADA DO USUÁRIO EM UM BANCO DE DADOS.

Você pode criar um bot do Telegram que ofereça suporte automatizado aos usuários ou responda a perguntas e armazene seus endereços de e-mail em um banco de dados. A gema Sequel facilita a criação, gravação, edição e leitura de bancos de dados.

Construa uma aventura de texto. Colossal Cave Adventure, um dos primeiros jogos de terminal, foi transportado para o Telegram como um bot.

Se você precisar de inspiração, poderá ler o código-fonte bot de outras pessoas e verificar uma lista de bots do Telegram. Tente descobrir como eles funcionam e recriá-los como prática.

---

Executando seu bot 24/7 - No momento, seu bot está sendo executado no seu terminal no seu computador.

Tudo bem até que você precise reiniciar o computador, o wi-fi cai ou o computador entra no modo de suspensão. Quando isso acontece, ele encerra o processo do bot e os usuários não recebem uma resposta dele. O processo de mover seu bot de um ambiente de desenvolvimento (seu computador em que você usou o Atom para gravá-lo) para um ambiente de produção (um servidor) é conhecido como implantação.

---

Existem algumas opções para implantar seu bot, mas nos dois casos começaremos fazendo o upload dos arquivos no Bitbucket.

O Bitbucket permite que você use o git, um sistema de controle de versão que ajuda você a fazer e acompanhar com segurança as alterações no código do seu bot.

Ao fazer o upload dos arquivos do seu bot para o Bitbucket, você pode usar o Bitbucket como uma maneira de capturar os arquivos do bot quando estiver conectado ao host. Inscreva-se no Bitbucket e crie um novo repositório.

---

Com o terminal aberto e no mesmo diretório que o código-fonte do seu bot, digite o seguinte:

git init
git add .
git commit -m 'initial commit'

---

Agora, siga as instruções mostradas pelo Bitbucket depois de criar o novo repositório. Os meus são: Depois de inserir esses dois comandos destacados no meu terminal e fornecer a minha senha do Bitbucket quando solicitado, os arquivos são enviados. Com seu código vivendo na nuvem, é hora de escolher uma maneira de implantar.

---

Implantando com um Raspberry Pi - Este pequeno computador Raspberry Pi na minha mesa hospeda vários bots - Um Raspberry Pi é um ótimo investimento se você planeja criar e implantar bots - você pode obter um a partir de US $ 7 mais o preço de um cartão SD. Ele usa muito pouca energia, para que você possa mantê-la ligada o tempo todo e não se preocupar com o custo. Pode ser tentador comprar um pacote que vem com teclado, mouse e estojo, mas tudo o que você precisa é de um carregador USB, cartão SD, cabo Ethernet e o próprio computador. Você provavelmente já tem a maioria dessas coisas em seu escritório. Implantando com um servidor em nuvem - Você não precisa possuir o computador em que seu bot está executando, pode usar a memória e a energia da máquina de outra pessoa para executá-lo remotamente. As soluções populares para implantação na nuvem incluem Amazon Web Services (AWS), DigitalOcean e Heroku.

---

Dos três, os mais novos acho que são são DigitalOcean e Heroku. Ao se inscrever no DigitalOcean e criar uma nova conta, você aprenderá como se conectar ao servidor via SSH e iniciar o console. A partir daqui, é o mesmo processo que você fez na sua máquina local, independentemente do servidor que você está usando.

No final, parece ser, vamos para a implantação real.

---

O processo de implantação - em um servidor novo - seja um Raspberry Pi ou um servidor em nuvem como o Digital Ocean - você precisará instalar Ruby, Bundler e Git:

sudo apt-get update
sudo apt-get upgrade
curl -L https://get.rvm.io | bash -s stable --ruby
sudo apt-get install bundler
sudo apt-get install git

---

Em seguida, crie um novo diretório para o seu bot, navegue até lá e faça o download dos arquivos do Bitbucket com os seguintes comandos:

mkdir bots
cd bots
git clone https://[email protected]/meu_repo_bitbucket/telegram-bot.git

---

Lembre-se de substituir o URL acima (https://meu_repo_bitbucket…) pelo URL do repositório do seu bot no Bitbucket.

Você encontrará todo o comando clone por meio do Bitbucket, portanto não precisará fazer isso manualmente. Em seguida, digite bundle para instalar as dependências da gem e, em seguida, ruby bot.rb para iniciar a execução permanente do bot.

---

Nota:

Se você estiver acessando seu servidor via SSH, precisará executar o bot com:

nohup ruby bot.rb

Para garantir que o bot não pare de funcionar quando a sessão SSH for encerrada. Agora você está livre para fechar a janela do terminal, seguro de que seu bot está emitindo um bipe silencioso em segundo plano. Isso conclui sua primeira facada em um bot do Telegram. Ao longo do caminho, você aprendeu sobre o terminal, Ruby, gems, a API do Telegram e como implantar um bot em um servidor.

---

Os 3 loops mais usados no Linux

Começando com uma proposta difícil. Linux como escrever um script de shell de:

linha única com um loop while e instrução if?

i=2; while [ $i -le 10 ]; do if [ $i -ne 3 -a $i -ne 5 ]; then echo $i ” not equal to 3 or 5″; else echo $i; fi; i=`expr $i + 1`; done

OU:

i=2; while [ $i -le 10 ]; do [ $i -ne 3 -a $i -ne 5 ] && echo “$i not equal to 3 or 5” || echo $i; i=$((i+1)); done


LOOP CONDICIONAL NOS SCRIPTS?

O loop for é um loop condicional de scripts.
É usado para verificar algumas condições.
Executa ações com base na condição verdadeira ou falsa.
Se a estrutura do loop for:

if [ condition ]
then
executar comando

fi


Exemplo:

#!/usr/bin/env bash

if [ $1 -lt 100 ]
then
echo “Seu número é (menor que) smaller than 100”
else
echo “Seu número é (maior que) greater than 100”
fi

sh if_statement.sh 34
Seu número é (menor que) smaller than 100


AO EXECUTAR ESSE SCRIPT digitando 34, o loop lerá o primeiro argumento como $1 e o comparará com 100.
Portanto, ele exibirá a saída menor que 100.
Isto pode parecer uma tolice mas não é.
Este exemplo pode ser usado em vários casos.
– No caso de existir num diretório 100 arquivos repetidos.
– Se houver mais de 100 arquivos num folder que deve haver somente 20 arquivos? Ele será útil também.

Existem diversas situações em que isto pode ser utilizado.

BASH LOOP FOR:

EXECUTANDO O MESMO conjunto de comandos para o número de vezes que os loops são usados no script.

É preciso inserir como uma série de valores e executar o código a seguir repetidamente para cada valor.
Para estrutura de loop é como abaixo:

for i in *.html
do

mv *.html *.txt

done


ACIMA ESTÁ EXEMPLO DO LOOP QUE PODE RENOMEAR CENTENAS DE ARQUIVOS DE UMA SÓ VEZ.
MUITO FAMOSO E USADO ESTE LOOP.

ABAIXO ESTÃO OS VALORES de leitura como uma variável i &, em seguida, $i serão usados no seguinte código.

Uma vez que todos os valores forem processados nas paradas de loops e script, eles prosseguem para a próxima linha de código.

Exemplo:

#!/bin/bash

for i in 1 2 3 4 5
do
echo Primeiro valor da série é $i
done

EXECUTO:

# sh for_loop.sh
Primeiro valor da série é 1
Primeiro valor da série é 2
Primeiro valor da série é 3
Primeiro valor da série é 4
Primeiro valor da série é 5


BASH WHILE LOOP

O loop while (enquanto) é outro loop usado na programação que é executado usando condição.
Ele continua em funcionamento até que a condição seja atendida.
Uma vez que a condição é correspondida, é porque ela existe.

É um loop condicional!

A estrutura do loop while é:

while [ condition ]
do

comando

done


O LOOP WHILE COMEÇA COM UMA CONDIÇÃO

Se a condição for atendida, executa o código a seguir e, novamente, vai para verificar a condição.

Se a condição ainda for atendida, a próxima iteração da execução de código acontece.

Continua até encontrar um condicionamento falso que para o loop.

#!/bin/bash

count=0
while [ $count -lt 3 ]
do
echo Count is $count
count=$(expr $count + 1)
done

# sh while_loop.sh
Count is 0
Count is 1
Count is 2


ESTES SÃO OS TRÊS LOOPS AMPLAMENTE FAMOSOS E COMUMENTE USADOS EM SHELL SCRIPTS!

PARA USAR ELES, PELO MENOS ALGUMAS EXPRESSÕES CONDICIONAIS DEVEM SER APRENDIDAS.

EXEMPLOS DE EXPRESSÕES CONDICIONAIS BASH ( -e, -eq, -z, !=, [, [[ ..)

A EXPRESSÃO BASH É A COMBINAÇÃO de operadores, recursos ou valores usados para formar uma declaração condicional do bash.

A expressão condicional pode ser uma expressão binária ou unária, que envolve números, seqüências de caracteres ou qualquer comando cujo status de retorno seja zero quando for bem-sucedido.

EXISTEM VÁRIAS EXPRESSÕES CONDICIONAIS QUE podem ser usadas para testar com os arquivos. A seguir, algumas expressões condicionais úteis:

1) RETORNA VERDADEIRO SE O ARQUIVO EXISTIR.
[ -e caminho_do_arquivo ]

2) RETORNA TRUE SE O ARQUIVO EXISTE E É EXECUTÁVEL.
[ -x caminho_do_arquivo ]

3) RETORNA TRUE SE O ARQUIVO EXISTE E É UM ARQUIVO DE SOQUETE.
[ -S caminho_do_arquivo ]

4) RETORNA TRUE SE A EXPRESSÃO FOR VERDADEIRA.
[ expr1 -a expr2 ]

5) RETORNA TRUE SE QUALQUER UMA DAS EXPRESSÕES 1 OU 2 FOR VERDADEIRA.
[ expr1 -o expr2 ]

EXEMPLOS PRÁTICOS

1- Verificar se o arquivo existe

#! /bin/bash

# titulo: existe.sh

file=$1
if [ -e $file ]
then
echo -e “Arquivo $file existe”
else
echo -e “Arquivo $file não existe”
fi

# fim do script

EXECUÇÃO EXEMPLOS:

existe.sh ~/Músicas/*.mp4

existe.sh ~/Documentos/*.docx

existe.sh /usr/bin/boot.ini

2- COMPARAR NÚMEROS

#!/bin/bash

# titulo: numeros.sh

echo “Digite o primeiro número”
read first
echo “Digite o segundo número”
read second

if [ $first -eq 0 ] && [ $second -eq 0 ]
then
echo “Num1 and Num2 são zero”
elif [ $first -eq $second ]
then
echo “Ambos os valores iguais”
elif [ $first -gt $second ]
then
echo “$first é mais que $second”
else
echo “$first é menos $second”
fi

PODEMOS CRIAR UM CALCULADORA ARITMÉTICA BÁSICA. PARECE FÁCIL. TEM CALCULADORA EM TODO CELULAR E PC E GADGETS, MAS VOCÊ SABE O CÓDIGO DE ALGUM DESTES? PROVAVELMENTE NÃO. SAIBA ESTE PELO MENOS:

#!/bin/bash

# nome: calculadora_simples.sh

inp1=12
inp2=11

echo “1. Adição”
echo “2. Subtração”
echo “3. Multiplicação”

echo -n “Por favor escolha um dos acima [1,2 ou 3]? ”
read oper

if [ $oper -eq 1 ] # olha o if, then, else se repetindo…
then
echo “Resultado da adição ” $(($inp1 + $inp2))
else
if [ $oper -eq 2 ]
then
echo “Resultado da subtração ” $(($inp1 – $inp2))
else
if [ $oper -eq 3 ]
then
echo “Resultado da multiplicação ” $(($inp1 * $inp2))
else
echo “Entrada invalida”
fi # olha o fechamento fi
fi
fi

# fim do script

PARÂMETROS ESPECIAIS DO BASH EXPLICADOS COM EXEMPLOS DE SCRIPTS DE SHELL

Alguns dos parâmetros especiais do bash são:

$*, $@, $#, $$, $!, $?, $-, $_

Para acessar a lista completa de parâmetros posicionais, os dois parâmetros especiais $* e $@ estão disponíveis. Fora das aspas duplas, essas duas são equivalentes:

Ambas se expandem para a lista de parâmetros posicionais começando com $1 (separados por espaços).

Entre aspas duplas, no entanto, elas diferem:

$* dentro de um par de aspas duplas é equivalente à lista de parâmetros posicionais, separados pelo primeiro caractere do IFS “$1c $2c $3 …”.

$@ dentro de um par de aspas duplas é equivalente à lista de parâmetros posicionais, separados por espaços sem aspas, ou seja, “$1” “$2 ″..”$N”.

PODEMOS USAR BASH $* e $@ para expandir os parâmetros posicionais. Exemplo abaixo:

#!/usr/bin/env bash

export IFS=’-‘

cnt=1

# Imprimir os dados disponíveis em $*

echo “Valores de \”\$*\”:”
for arg in “$*” # olha aí o loop for
do
echo “Arg #$cnt= $arg”
let “cnt+=1”
done

cnt=1

# Imprimir os dados disponíveis em $@

echo “Valores de \”\$@\”:”
for arg in “$@” # olha aí o loop for de novo
do
echo “Arg #$cnt= $arg”
let “cnt+=1”
done

Em seguida, execute o expan.sh como mostrado abaixo para ver como $* e $@ funcionam.

$ ./expan.sh “Este é” 2 3

O SCRIPT ACIMA exportou o valor do IFS (Internal Field Separator) com o ‘-‘.

Existem três parâmetros passados para o script expan.sh $1=”Isto é”, $2=”2″ e $3=”3″.

Ao imprimir cada valor do parâmetro especial “$*”, ele fornece apenas um valor que é todo o parâmetro posicional delimitado pelo IFS.

Use $# para contar parâmetros posicionais. $# é o parâmetro especial no bash que fornece o número do parâmetro posicional em decimal.

Primeiro, crie o arithmetic.sh como mostrado abaixo.

#!/bin/bash

# nome: arithmetic.sh

if [ $# -lt 2 ] # uso do if, then, fi
then
echo “Uso: $0 arg1 arg2”
exit
fi

echo -e “\$1=$1” # uso do echo -e
echo -e “\$2=$2”

let add=$1+$2 # uso do let para calcular $1 e $2
let sub=$1-$2
let mul=$1*$2
let div=$1/$2

echo -e “Adição=$add \nSubtração=$sub \nMultiplicação=$mul \nDivisão=$div \n”

OBS:

Se o número de parâmetros posicionais for menor que 2, ele lançará as informações de uso, como mostrado abaixo.

$ ./arithemetic.sh 10
Uso: ./arithemetic.sh arg1 arg2

Parâmetros relacionados ao processo – $$ e $!

O parâmetro especial $$ fornecerá o ID do processo do shell.

$! fornece o ID do processo em segundo plano executado mais recentemente.

O script a seguir imprime o ID do processo do shell e o último ID do processo de execução em segundo plano.

#!/bin/bash

# nome: proc.sh

echo -e “Processo ID=$$”

sleep 1000 &

echo -e “Processo em Segundo Plano ID=$!”

Agora, execute o script acima e verifique a identificação do processo que está sendo impresso. Exemplo:

~:$ proc.sh
Processo ID=29453
Processo em Segundo Plano ID=29454

Other Bash Special Parameters – $?, $-, $_ / $? Gives the exit status of the most recently executed command. / $- Options set using set builtin command / $_ Gives the last argument to the previous command. At the shell startup, it gives the absolute filename of the shell script being executed. / $ cat others.sh

Outros parâmetros especiais do Bash – $ ?, $ -, $ _

$? Dá o status de saída do comando executado mais recentemente.

$ – Conjunto de opções usando o comando set builtin

$ _ Dá o último argumento ao comando anterior. Na inicialização do shell, fornece o nome do arquivo absoluto do script de shell sendo executado.

#!/bin/bash

# nome: others.sh

echo -e “$_”; ## Nome absoluto do arquivo que está sendo executado

/usr/local/bin/dbhome # execute the command.

# verifique o status de saída de dbhome

if [ “$?” -ne “0” ]; then
echo “Desculpe, a execução do comando falhou !”
fi

echo -e “$-“; # Defina opções – hB

echo -e $_ # Último argumento do comando anterior.

No script acima, a última declaração de eco “echo -e $_” ($ underscore) também imprime hB, que é o valor do último argumento do comando anterior. Então $_ dará o valor após a expansão.

~:$ others.sh
/home/user/bin/others.sh
/home/user/bin/others.sh: linha 7: /usr/local/bin/dbhome: Arquivo ou diretório inexistente
Desculpe, a execução do comando falhou !
hB
hB

Uns símbolos usados no Bash

Vezes sem conta esqueço os nomes destes tipos abaixo. Parece tolice, mas vale um post.

Nome de uns símbolos usados em scripts:
() Parêntesis
{} Chaves
[] Colchetes
$ Cifrão
# Cerquilha
& E comercial
% Porcentagem
* Asterisco
@ Arrouba
\ Barra invertida
/ Barra
? Interrogação
! Exclamação
^ Acento circunflexo
~ Til
< Menor que
> Maior que

Até Breve!

🙂

Linux shell bash loops funções exemplos

COLA BASH FUNÇÕES E LOOPS

Basicamente, a função bash é um conjunto de comandos. É usado principalmente para executar um único ou grupo de comandos repetidamente. As funções facilitam a leitura do código e a execução de instruções significativas do código do conjunto.

Você pode declarar uma função bash nos dois seguintes formatos:

—formato-1

function_name() {
commands
}

—formato-2

function function_name() {
commands
}

Execute no terminal:

function nome_da_funcao() { echo ‘Alou Mundo!’; echo ‘Como vai você?’; }

Chame a função:

nome_da_funcao

RESULTADO:

~:$ function nome_da_funcao() { echo ‘Alou Mundo!’; echo ‘Como vai você?’; }
~:$ nome_da_funcao
Alou Mundo!
Como vai você?
~:$

OBS:

EXISTEM EXEMPLOS QUE TEM ESPAÇO ENTRE O NOME DA FUNÇÃO PARÊNTESES E AS CHAVES. VOCÊ PODE DECLARAR UMA FUNÇÃO E EXECUTAR ELA NO MESMO SCRIPT.

Declaração da função Bash

A sintaxe para declarar uma função bash é muito simples. Elas podem ser declaradas em formatos diferentes como já foi dito aqui. O primeiro formato começa com o nome da função, seguido por parênteses. Dizem que este é o formato preferido e mais usado:

#!/usr/bin/env bash

function_name () {
command1
command2
command3
}

Em uma só linha:

function_name () { comando1; comando2; comando3; }

Teste:

hello () { echo -e ‘\nHello World!\n’; }

Executando a função…

NO TERMINAL CHAMA A FUNÇÃO PELO NOME.

$ hello

O SEGUNDO FORMATO COMEÇA COM A PALAVRA RESERVADA DA FUNÇÃO SEGUIDA PELO NOME DA FUNÇÃO.

function function_name {
comando1
comando2
comando3
}

EM UM LINHA SÓ:

function function_name { cmd1; cmd2; cmd3; }

NO TERMINAL CHAMA A FUNÇÃO PELO NOME:

$ function_name

Teste:

function mycmd { ls -At; pwd; date; whoami; }

NO TERMINAL CHAMA A FUNÇÃO PELO NOME:

$ mycmd

FUNCIONA TANBÉM USANDO O EXEMPLO ABAIXO:

==> FUNÇÃO

function myfunc(){ cmd1; cmd2; cmd3; }

Teste:

function diatemp(){ echo ‘Que dia hoje?’; date; echo ‘Tempo pc ligado?’; uptime; }

NO TERMINAL CHAMA A FUNÇÃO PELO NOME:

$ diatemp

Exemplo:

~:$ function diatemp(){ echo ‘Que dia hoje?’; date; echo ‘Tempo pc ligado?’; uptime; }
~:$ diatemp
Que dia hoje?
ter mar 10 06:22:50 -03 2020
Tempo pc ligado?
06:22:51 up 3:06, 1 user, load average: 5,48, 5,24, 6,09
~:$

==> LOOP FOR

1- Executa cmd 5x:

for i in {1..5}; do cmd_1_aqui; cmd_2_aqui; cmd_n_aqui; done

Exemplo:

~:$ for i in {1..5}; do echo ‘Alô Mundo!’; done
Alô Mundo!
Alô Mundo!
Alô Mundo!
Alô Mundo!
Alô Mundo!

2-Trabalha Arquivos:

for i in *; do echo $i; done

for i in /etc/*.conf; do cp $i /bkp; done

Escopo das variáveis – Variáveis globais são variáveis que podem ser acessadas de qualquer lugar do script, independentemente do escopo. No Bash, todas as variáveis por padrão são definidas como globais, mesmo se declaradas dentro da função. Variáveis locais podem ser declaradas dentro do corpo da função com a palavra-chave local e podem ser usadas apenas dentro dessa função. Você pode ter variáveis locais com o mesmo nome em diferentes funções.

Para ilustrar melhor como o escopo das variáveis funciona no Bash, vamos considerar um exemplo:

#!/usr/bin/env bash

# Nome: variaveis_escopo.sh

var1=’A’
var2=’B’

my_function () {
local var1=’C’
var2=’D’
echo “Primeira alteração: var1: $var1, var2: $var2”
}

echo “Variaveis iniciais: var1: $var1, var2: $var2”

my_function

echo “Depois de executar a função: var1: $var1, var2: $var2″

Outra opção melhor para retornar um valor de uma função é enviar o valor para stdout usando echo ou printf, como mostrado abaixo:

#!/bin/bash

# Título: retorna_valores.sh

my_function () {
local func_result=”Resultado: claytu dinamiti.”
echo “$func_result”
}

func_result=”$(my_function)”
echo $func_result

RETORNAR VALORES – diferente das funções em outras linguagens de programação, as funções do Bash não permitem que você retorne um valor quando chamado. Quando uma função bash é concluída, seu valor de retorno é o status da última instrução executada na função, 0 para êxito e número decimal diferente de zero no intervalo de 1 a 255 para falha. O status de retorno pode ser especificado usando a palavra-chave return e é atribuído à variável 0. A instrução return encerra a função. Você pode pensar nisso como o status de saída da função.

#!/bin/bash

my_function () {
func_result=”Algum Resultado”
}

my_function
echo $func_result

PASSANDO ARGUMENTOS PARA FUNÇÕES BASH – Para passar qualquer número de argumentos para a função bash, basta colocá-los logo após o nome da função, separados por um espaço. É uma boa prática aspas duplas nos argumentos para evitar a análise incorreta de um argumento com espaços nele.

1) Os parâmetros passados são $1, $2, $3 … $n, correspondentes à posição do parâmetro após o nome da função.

2) Parâmetro $0 A variável é reservada para o nome da função.

3) Parâmetro $# A variável mantém o número de parâmetros / argumentos posicionais passados para a função.

4) Parâmetro $* e $@ variaveis mantém todos os positional parameters/argumentos passados para a função.

5) Quando entre aspas o parâmetro, “$*” expande para uma única sequência separada por espaço (o primeiro caractere do IFS).

6) Quando entre aspas o parâmetro, “$@” expande para separar strings – “$1” “$2” “$n”.

7) Sem aspas duplas os parâmetros, $* e $@ são os mesmos, não tem diferença.

Aqui um exemplo:

./passando_argumentos.sh

#!/usr/bin/env bash

# Título: passando_argumentos.sh

saudacao () {
echo “Olá $1”
}

OBS:

Salve o script. De permissão de execução. Chame o nome da função seguida de “Jorge”.

$ saudacao “Jorge”
Olá Jorge

BASH LOOP FUNÇÕES

USE O LOOP FOR PARA EXCLUIR ARQUIVOS:

#!/usr/bin/env bash

for f in ~/*.txt; do [ -f “$f” ] && rm “$f”; done

# oneliner # if (se) tem arquivo, delete eles

==> Executar um loop sobre vários arquivos escolhidos executando um comando:

for f in file1 file2 file3 file4; do AQUI_O_CMD; done

Teste o comando abaixo no terminal:

for i in 1 2 3 4 5 6; do ls -t; pwd; done

DECLARANDO E CHAMANDO A FUNÇÃO:

#!/usr/bin/env bash

# Nome: Bem-vindo.sh

# declarando Bem-vindo() function

Bem-vindo () {
# lista de comandos
echo ‘Bem-vindo(a) aqui!’
}

# chamando a função Bem-vindo

Bem-vindo

PERMISSÃO DE EXECUÇÃO PARA O SCRIPT:

chmod +x Bem-vindo.sh

Resultado:

~:$ ./Bem-vindo.sh
Bem-vindo(a) aqui!
~:$

Conclusão – Uma função Bash é um bloco de código reutilizável projetado para executar uma operação específica. Uma vez definida, a função pode ser chamada várias vezes em um script. Você também pode usar uma função Bash para criar um comando de atalho memorável para um comando mais longo.

Até Breve!

🙂

Linux shell script funções exemplos

Abrir um emulador de terminal em sistema operacional Linux e executar funções? É brincadeira? Não é sério eu gosto de brincar com elas. Ah, vai passear, tomar bebida, nada de funções!!! Tá bom, tá bom! Sim é brincadeira.


Tem um bom tempo que quase esqueci. Vamos a função:

function mkdirCd(){ cd /tmp/; mkdir -pv $1; cd $1; echo 'Hello Mundo' > Arquivo.txt; pwd; sleep 3; ls; cat Arquivo.txt; }


Digito a função acima no terminal. Teclo Enter. Chamo a função com um argumento. Digito:

mkdirCd novoDir/sUbdir


O resultado é:

~$: mkdirCd novoDir/sUbdir
mkdir: foi criado o diretório 'novoDir'
mkdir: foi criado o diretório 'novoDir/sUbdir'
/tmp/novoDir/sUbdir
Arquivo.txt
Hello Mundo
sUbdir$:


Tudo certo? Acho que sim. Agora removo tudo que foi criado com a função:

function rmDir(){ cd; rm -r /tmp/novoDir/; ls -t /tmp/; cd; }

Chamo a função:

rmDir


O resultado é:

sUbdir$: rmDir
rm: entrar no diretório '/tmp/novoDir/'? Y
rm: entrar no diretório '/tmp/novoDir/sUbdir'? Y
rm: remover arquivo comum '/tmp/novoDir/sUbdir/Arquivo.txt'? Y
rm: remover diretório '/tmp/novoDir/sUbdir'? Y
rm: remover diretório '/tmp/novoDir/'? Y


Fecho o terminal digitando:

exit


Tá certo? Talvez. É divertido? Sim.

Até Breve!

🙂


Como coletar alguns altcoins?

Como coletar uns altcoins em uma carteira para levar no bolso?

Mergulhe no mundo dos faucets (torneiras)! Tem muita gente que adora e alguns são até mesmo obcecados por faucets, como disse torneiras a pingar moedas digitais na sua carteira. Centavos as vezes. Mas de centavo em centavo daqui a pouco você esta com 100 DOGE, 0.02 LTC e até mesmo depois de suar a camisa, consegue 0.0001 BTC quem sabe?!

Como começar?

Primeiro a carteira onde guardar o teu e saber que não terá privacidade, vai se atolar num mar de banners e hooks e propaganda então use o Firefox use HTTPS Everywhere, instale extensões úteis no Firefox, levante seus firewalls, impeça a abertura de janelas popup, não aceite cookies de terceiros. VPN não recebe moeda digital de torneiras. Continuando…

Existem muitos modos de ter uma carteira só sua para guardar moedas digitais. Por exemplo…

Ela será um apk que você leva em seu smartphone por exemplo. Existem muitas a disposição no Playstore. Por exemplo a carteira freewallet também pode ser obtida online. Visite:

Freewallet

A carteira guarda, recebe e envia moedas digitais, mas há uma taxa para recebimento e envio e ela para quem brinca com faucets (torneiras) faz toda a diferença. A taxa é alta se tratando de transações pequenas. Fique de olho.

,Tendo o receptáculo para as gotinhas de moedas digitais, que você vai coletar em sites. Eles as oferecem, em troca de alguma coisa chata que você vai ter que fazer ou assistir na maioria das vezes. A pessoa tá quase pronta para começar a aventura no mundo dos faucets.

É necessário se cadastrar em uma micro carteira de moedas digitais talvez pareça uma plataforma ou portal recebedor dos faucets coletados, para depois os enviar se for o caso, para sua carteira em seu smartphone por exemplo.

Tem várias micro carteiras. Elas além que guardar temporariamente sua moedas também oferecem a opção de você minerar os altcoins preferidos. Você pode dar permissão para isto e parar a hora que quiser. Duas bem conhecidas são o Faucethub e o Coinpot. Gosto do Coinpot. Prepare seus óculos, lupas e microscópios para esta aventura. Visite e se cadastre:

Coinpot

Faucethub

OBS: Por via das dúvidas não acredite em propagandas. No mundo das torneiras você verá toneladas de propagandas e para mim 99% delas são SCAM. Porém a coleta de moedas digitais existe e o Coinpot até ontem é legítimo e paga direito e sem muita demora. Não crie mais de uma conta em cada faucet para não ser Ban&Block!

Agora é visitar alguns faucets ligados ao Coinpot. Nos exemplos abaixo a pessoa se registra nos faucets usando o mesmo e-mail que usa no Coinpot. O que for coletado por eles vai ser armazenado lá. Do Coinpot após atingir uma determinado valor, pode transferir para sua carteira. Falo por experiência. Funcionava até ontem pelo menos.

Faucet de Bitcoin

Faucet de Bitcoincash

Faucet de DOGEcoin

Faucet de Litecoin

Faucet de DASHcoin

Bit Fun

Freelitecoin

Freedogecoin

Bitnyx

Bonus Bitcoin

  • Ah sim, coletar altcoins assistindo vídeos no YouTube ainda existe:

BitTube


Posso minerar tokens e altcoins para mim mesmo. Exemplo (se quiser minerar para mim):

TOKENS

https://secure.link/XTnJahdO


BTC

https://secure.link/3xCvUp5W


BTC CASH

https://secure.link/f3tRvqrn


DOGECOIN

https://secure.link/gISP7yxW


LITECOIN

https://secure.link/oNHis6X5


DASH

https://secure.link/Chp4ETxN


Isto é um bom começo para se aventurar no mundo dos Faucets. Boa sorte e até breve! Ganhe seus bitcoins. Desconsidere as propagandas. Viva a cegueira de banner!



🙂


Algoritmo para bitcoin e litecoin? Coin?

semanickz

O que é algoritmo e qual é a diferença entre litecoin e bitcoin?

Algoritmo, Bitcoin e Litecoin

Algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais devendo ser executadas mecânica ou eletronicamente em um intervalo de tempo finito e com uma quantidade de esforço finita. É resultado de técnicas de cálculo que levaram séculos para se desenvolver.

Dizem que a principal diferença entre Bitcoin e Litecoin é o algoritmo e o número total de moedas que eles são capazes de produzir.

A rede Bitcoin (SHA-256) não pode exceder 21 milhões de moedas, mas Litecoin (Scrypt) pode chegar a 84 milhões de moedas.

As transações de processos de rede são diferentes.

Para Bitcoin, o tempo médio é de pouco mais de 10 minutos, enquanto o Litecoin leva apenas 2,5 minutos.

O Bitcoin utiliza o algoritmo SHA-256, considerado mais complexo que o Litecoin, que usa o Scrypt.

A Bitcoin tem a maior capitalização de mercado de criptomoeda com a Litecoin as vezes na sétima posição mais ou menos.

De acordo com a tendência do mercado, o futuro da Litecoin parece estável.

Ou não.

Se quiser tentar ganhar um pouco, pode visitar:

FLitleCoin

Até Breve!

🙂

Tecnologia que explora fraquezas da mente

É mais fácil enganar as pessoas do que convencê-las de que foram enganadas.

Disse um especialista em como a tecnologia sequestra nossas vulnerabilidades psicológicas. Penso em gente se preocupando em como projetar as coisas de uma forma que defenda a mente de um bilhão de pessoas de serem sequestradas.

Ao usar a tecnologia, muitas vezes nos concentramos otimistas em todas as coisas que ela faz por nós. Mas isso pode fazer o contrário. Onde a tecnologia explora as fraquezas de nossas mentes? Os mágicos pensam assim. Os mágicos começam procurando pontos cegos, bordas, vulnerabilidades e limites da percepção das pessoas, para que possam influenciar o que as pessoas fazem sem que percebam. Depois de saber como apertar os botões das pessoas, você pode tocá-las como um piano.

E é exatamente isso que os designers de produtos fazem à sua mente. Eles jogam suas vulnerabilidades psicológicas (consciente e inconscientemente) contra você na corrida para agarrar sua atenção. Como eles fazem isso?

Sequestro 1:

Se você controlar o menu, você controla as opções.

A cultura ocidental é construída em torno de ideais de escolha individual e liberdade.

Milhões de pessoas defendem firmemente o nosso direito de fazer escolhas “livres”, enquanto ignoramos como essas escolhas são manipuladas a montante por menus que não escolhemos em primeiro lugar.

Isso é exatamente o que os mágicos fazem. Eles dão às pessoas a ilusão de livre escolha enquanto arquitetam o menu para que eles ganhem, não importa o que você escolher. Eu não posso enfatizar o quão profunda é essa percepção.

Quando as pessoas recebem um menu de opções, elas raramente perguntam o que não está no menu? Por que estou recebendo essas opções e não outras? conheço os objetivos do criador deste menu? Esse menu é capacitador para minha necessidade original, ou as escolhas são realmente uma distração?

Por exemplo, imagine que você está fora com amigos e quer continuar a conversa. Você abre o um aplicativo para encontrar recomendações nas proximidades e vê uma lista de barras. O grupo se transforma em um amontoado de rostos olhando para seus telefones comparando barras. Eles examinam as fotos de cada um, comparando as bebidas dos coquetéis. Este menu ainda é relevante para o desejo original do grupo


Não é que os bares não sejam uma boa escolha, é que o aplicativo substituiu a pergunta original do grupo (“onde podemos continuar falando?”) Com uma pergunta diferente (o que é um bar com boas fotos de coquetéis?). cardápio.


Além disso, o grupo tem a ilusão de que o menu do aplicativo representa um conjunto completo de opções para onde ir. Ao olhar para os telefones, eles não veem o parque do outro lado da rua com uma banda tocando música ao vivo. Eles sentem falta da galeria pop-up do outro lado da rua que serve crepes e café. Nenhum deles aparece no menu do aplicativo. É por aí, entende?

Este assunto é interessante e vasto. Para saber mais visite:

https://secure.link/jeHRzdSl

Até Breve!

🙂

O comando apt no Linux pelo terminal usa Bash?

Usar o comando apt no Debian e derivados pelo terminal do Linux? O terminal de um sistema operacional linux é um emulador de terminal. O que faz o terminal do linux funcionar é o Bash, no Bash executamos comandos linux. Quase sempre é assim. Mas às vezes não.
---
Uma coisa importante a ser dominada no Linux System / Server Administration é o gerenciamento de pacotes usando diferentes ferramentas de gerenciamento de pacotes.
---
Diferentes distribuições Linux instalam aplicativos em um pacote pré-compilado que contém arquivos binários, arquivos de configuração e também informações sobre as dependências do aplicativo.
---
As ferramentas de gerenciamento de pacotes ajudam Administradores de Sistema / Servidor de várias maneiras, como baixar e instalar software, compilar software da origem, acompanhar todos os softwares instalados, atualizações e atualizações, lidar com dependências e também manter outras informações sobre softwares instalados e muito mais.
---
É uma ferramenta baseada em linha de comando que é usada para lidar com pacotes em sistemas Linux baseados em Debian. Ele apresenta uma interface de linha de comando para o gerenciamento de pacotes em seu sistema.
---
A fórmula é mais ou menos assim:
sudo apt comando nome-do-pacote-de-software
---
Para instalar:
sudo apt install nome-do-pacote-de-software
---
Para buscar:
sudo apt search leafpad
---
Para ver dependências:
sudo apt depends leafpad
---
Para obter informação:
sudo apt show leafpad
---
Verificar por dependências quebradas em um pacote:
sudo apt install apt-rdepends
sudo apt-rdepends firefox
---
Atualizar o sistema inteiro:
sudo apt update && sudo apt full-upgrade
---
Instalar pacotes .deb:
sudo dpkg -i nomedopacote.deb
---
Remover pacotes de software:
sudo apt update ; sudo apt remove leafpad ; sudo apt autoremove ; sudo apt install -f ; sudo apt update

####

Resumão:
update - Adquire novas listas de pacotes
upgrade - Faz uma atualização
install - Instala novos pacotes
remove - Remove um pacote
source - Faz o download de arquivos fonte
build-dep - Configura as dependências de compilação de pacotes fonte
dist-upgrade - Atualiza a distribuição, consulte
dselect-upgrade - Segue as seleções do dselect
clean - Apaga arquivos baixados para instalação
autoclean - Apaga arquivos antigos baixados para instalação
check - Verifica se não há dependências quebradas (apt-get)


Opções:
-h Esse texto de ajuda
-q Saída logável, exceto para erros
-qq Sem saída, exceto para erros
-d Fazer o download apenas - NÃO instalar ou desempacotar arquivos
-s Não-agir. Executar simulação de ordenação
-y Assumir Sim para todas as perguntas, não pedir confirmação
-f Tenta continuar se a checagem de integridade falhar
-m Tenta continuar se os arquivos não podem ser localizados
-u Mostra uma lista de pacotes atualizados também
-b Constrói o pacote fonte depois de baixá-lo
-c=? Ler esse arquivo de configuração
-o=? Definir uma opção de configuração arbitrária,


###

Scam online-btcminer é scam?

online-btcminer SCAM

Olá tudo bom com todos vocês? Para os que acreditam em sites que oferecem serviços de mineração online vejam só este exemplo de SCAM.

Olhe o site que oferece a compra por tempo determinado do rendimento de seus servidores. Parece tudo legítimo para os iniciantes.

O site SCAM que denuncio aqui é o online-btcminer, que é parente direto do miner-server e do bitcoin-line.

Eles oferecem vários tipos de valores e várias potências de servidores.

O mais barato custa 0.0005 BTC. Muitos compraram seis, sete ou até mesmo oito servidores de 0.005 BTC achando que iam usufruir do rendimento deles por um ano.

Mas após alguns dias, a pessoa ganha coragem. São dias a todo vapor, onde se consegue depositar e retirar valores. Depois eles congelam a conta e dizem que ela só será novamente ativada se a pessoa comprar um servidor mais potente. Um servidor de 0.1 BTC ou de 1 BTC aí sim, depois da compra eles afirmam que liberam tudo para o cliente. SCAM! Não caia nesta.

online-btc-miner, bitcoin-line e miner-server são SCAMS eles não pagam. Não acredite neles pois eles mentem. Nada daquilo que você vê no monitor existe. É só códigos que iludem. Eles querem é seu dinheirinho verdadeiro. Eles não tem produto para oferecer. Você é o produto que eles desejam esfolar.

Look at the site that offers the purchase for a certain time of the income of your servers.

The SCAM site I report here is online-btcminer, which is a direct relative of the miner-server.

They offer various types of values ​​and various server powers.

The cheapest costs 0.0005 BTC.

Many bought six, seven or even eight 0.005 BTC servers thinking they would enjoy their income for a year.

But after a few days where you can deposit and withdraw amounts they freeze the account and say it will only be re-enabled if the person buys a more powerful server.

A server of 0.1 BTC or 1 BTC there yes after the purchase they affirm that they release everything to the client. SCAM! Do not fall for this.

online-btc-miner and miner-server are SCAMS they do not pay.

O futuro do Deus do Olimpo

O futuro do futuro de um Deus do Olimpo


Como o Google rastreia sua informação pessoal? Veja aqui:

Este link é seguro pode ir!


Pesquisa é a pedra angular do Google. A pesquisa foi a única vitória inequívoca do Google, bem como sua principal fonte de receita. Quando a Amazon ultrapassou rapidamente o Google como o principal destino de pesquisa de produtos, as fundações do Google começaram a falhar. Como muitos notaram na época, a indústria de publicidade on-line experimentou uma grande mudança de pesquisa para descoberta em meados de 2010. Enquanto o Google protegia seu monopólio do mercado de publicidade de busca, o Facebook, maior concorrente do Google no setor de publicidade on-line, entrou no lado certo da tendência e dominou a publicidade on-line com sua publicidade de exibição nativa no feed.

No final de 2015, a Apple, principal concorrente do Google no espaço móvel, adicionou um recurso a seus telefones e tablets que permitia aos usuários bloquear anúncios. Os dispositivos que executam o iOS eram responsáveis ​​por 75% da receita do Google dos anúncios da Rede de Pesquisa para dispositivos móveis. Por isso, a Apple pesava de forma decisiva no grande debate de anúncios da década de 2010 e deu um golpe substancial no futuro da publicidade on-line.

Um ano depois, quando a internet foi para celular, o anúncio também foi bloqueado. O número de pessoas bloqueando anúncios em um dispositivo móvel cresceu 102% de 2015 a 2016; Até o final de 2016, estima-se que 16% dos usuários de smartphones em todo o mundo estavam bloqueando anúncios ao navegar na Internet em um dispositivo móvel. O número chegou a 25% para usuários de computadores e laptops nos Estados Unidos, um país que respondeu por 47% da receita do Google. As pessoas com maior probabilidade de bloquear anúncios também eram as mais valiosas demográficas: idosos e pessoas com renda elevada.

Usuários da Internet falaram que odiavam anúncios. No início de 2017, o Google anunciou seus planos de criar um bloqueador de anúncios em seu popular navegador Google Chrome. O bloqueador de anúncios do Google só bloquearia anúncios considerados inaceitáveis ​​pela Coalizão para anúncios melhores, permitindo efetivamente que a empresa use seu navegador da Web dominante para fortalecer seus negócios de publicidade já dominantes. Mesmo depois de fazer esse movimento desesperado e legalmente questionável, rapidamente ficou claro para o Google que, embora os anúncios estivessem melhorando, os números de bloqueio de anúncios continuariam aumentando. O Google deu a mais pessoas um gostinho do que uma experiência de internet livre de anúncios poderia ser. A empresa descobriu que não eram apenas anúncios irritantes de que as pessoas não gostavam; foi anúncios em geral.

Uma plataforma importante na qual o Google veiculava anúncios era o YouTube, que ele comprou em 2006 e rapidamente se transformou em uma de suas maiores entidades. Mas mesmo com um sexto do mundo visitando este gigante de compartilhamento de vídeos todos os meses, o YouTube nunca se tornou lucrativo. Em uma tentativa de combater o efeito dos bloqueadores de anúncios, o YouTube lançou um modelo de assinatura sem anúncios no final de 2015, mas os números de assinatura eram abaixo do esperado. Os problemas já insuperáveis ​​do YouTube se multiplicaram no início de 2017, quando os anunciantes começaram a sair em meio a controvérsias de colocação de anúncios, e geradores de receita enormes começaram a sair do site.

Mesmo aqueles que não estavam bloqueando anúncios se treinaram para ignorá-los completamente. Os pesquisadores apelidaram esse fenômeno de “cegueira de banner“. O banner médio foi clicado por 0,06% dos telespectadores e, desses cliques, cerca de 50% foram acidentais. A pesquisa mostrou que 54% dos usuários relataram falta de confiança como motivo para não clicar em anúncios de banner e 33% os consideraram completamente intoleráveis. Esses números criaram uma imagem bastante sombria para a sustentabilidade da publicidade on-line, mas especialmente para a posição do Google no setor.

O poderoso mecanismo do Google começou a falhar. Uma chance de reverter existiu. Como o Google perdeu isso?

Se perder uma parte importante de seu público e incomodar o resto não era ruim o suficiente, o Google também não conseguiu se antecipar a uma das maiores mudanças na história da tecnologia. Eles reconheceram a importância da inteligência artificial, mas sua abordagem errou o alvo. Como o pilar de pesquisa do Google se tornou instável, muita coisa estava baseada na estratégia da empresa para inteligência artificial. – Vamos passar do primeiro celular para um primeiro mundo AI.

A capacidade do Google de reconhecer a tendência futura e ainda não conseguir chegar à sua frente lembrou muitos observadores de seus fracassos catastróficos nas indústrias em expansão de mídia social e mensagens instantâneas. Enquanto isso, em 2014, a Amazon lançou um produto chamado Amazon Echo, um pequeno alto-falante que poderia ficar em sua casa e responder a perguntas, realizar tarefas e comprar coisas on-line para você. O eco foi um grande sucesso. O Google lançou seu produto copycat, o Google Home, dois anos depois, mas já era tarde demais para se atualizar e não tinha uma estratégia clara de receita.

Alexa – o assistente que vivia dentro do Echo – por outro lado, foi rapidamente integrado a diversos produtos e serviços, e seu modelo de monetização era claro, viável e, o mais importante, favorável ao futuro. O Echo facilitou a encomenda de produtos através da Amazon, e toda vez que alguém usava um Echo para comprar algo, a Amazon ganhava dinheiro. O Google ampliou o alcance de seu assistente virtual ao incorporá-lo ao Android, mas isso ainda não forneceu uma resposta sobre como a tecnologia geraria receita suficiente para sustentar o repertório de inovações caras do Google. Os anúncios do Google dependiam de telas, mas a interação por voz subvertia totalmente as telas. O Google tentou reproduzir anúncios de áudio brevemente no Google Home, mas os consumidores estavam longe de ser receptivos. Os investidores começaram a expressar suas preocupações em 2017, mas disseram a eles para não se preocuparem, deixando-os presumir que o Google usaria sua antiga estratégia e analisaria as pesquisas por voz dos usuários para que os usuários pudessem exibir anúncios mais adequados em dispositivos com telas.

As manchetes no início de 2017 proclamaram que “Alexa Just Conquered CES. O mundo é o próximo ”. A Amazon, então, disponibilizou sua tecnologia para fabricantes terceirizados, colocando ainda mais distância entre as duas empresas. A Amazon já havia superado o Google anteriormente, detendo 54% do mercado de computação em nuvem (em comparação com os 3% do Google) em 2016, e eles estavam apenas começando. Os anúncios não foram para sempre. No seu auge, o Google tinha uma base de usuários massiva e leal em um número impressionante de produtos, mas a receita de publicidade era a cola que mantinha tudo junto. À medida que os números diminuíam, o núcleo do Google começou a ceder ao peso de seu vasto império. O Google foi uma força motriz no setor de tecnologia desde a sua entrada em 1998. Mas em um mundo onde as pessoas desprezavam os anúncios, o modelo de negócios do Google não era favorável à inovação, e perderam várias oportunidades de girar, fazendo com que seus numerosos e ambiciosos projetos insustentáveis. A inovação custa dinheiro e o principal fluxo de receita do Google começou a secar. Em poucos anos, o Google passou de um verbo divertido para um lembrete da rapidez com que um gigante pode cair.

Até Breve!


Fonte


Novo web browser:


---

Funciona. Teste no Android e seja feliz.

É o Cryptobrowser

Para usuários Linux uma VNP que funciona.
Acesse o link abaixo sem medo e verifique por si só. Eu recomendo.

É a Windscribe VPN

---

Ate Breve!

:)

Linux comandos REGEX exemplos



semanickz

Linux shell script REGEX e File Globbing

---

Linux shell script REGEX e File Globbing

---

Alguns comandos para usar no linux:

cd

cd ~

cd ..

cd ../../

cd -

cd ~/Documentos/

cd ~/Vídeos/Legendas/Niver-Legendas/

pwd

clear

ls

ls -ltr

ls -ltC

ls -1

ps

ps axu

ps axu | more

touch nome-do-arquivo-a-ser-criado

touch arquivo-existente-atualiza-o-horário

man touch

echo palavra-a-ser-ecoada

echo 'palavra a ser ecoada'

echo -e '\nAcima \n\tNo meio \nAbaixo\n'

echo -e "\ncoluna1\tcoluna2\tcoluna3\t\n"

man echo

mkdir nome-do-diretório

mkdir -p nome-do-diretório/nome-do-sub-diretório/

rm -f nome-do-arquivo

rm -r nome-do-diretório

cp nome-do-arquivo-original nome-da-cópia-do-arquivo-original

cp -r nome-do-diretório-original nome-da-cópia-do-diretório-original

mv nome-do-arquivo-original novo-nome-para-o-arquivo

sleep 10

cat nome-do-arquivo

cat -b nome-do-arquivo

cat -A nome-do-arquivo

tac nome-do-arquivo

tail nome-do-arquivo

tail -n3 nome-do-arquivo

head nome-do-arquivo

head -n4 nome-do-arquivo

head -c8 nome-do-arquivo

wc nome-do-arquivo

wc -l nome-do-arquivo

wc -c nome-do-arquivo

wc -m nome-do-arquivo

wc nome-do-arquivo*

tail -n5 nome-do-arquivo | wc -w

sort nome-do-arquivo

sort -r nome-do-arquivo

sort -k2 nome-do-arquivo

tail /etc/passwd

tail /etc/passwd | sort -k3 -t ":" -g

uniq nome-do-arquivo

sort nome-do-arquivo | uniq

sort nome-do-arquivo | uniq -u

sort nome-do-arquivo | uniq -d

sort nome-do-arquivo | uniq -c

sort nome-do-arquivo | uniq -c | sort

sort nome-do-arquivo | uniq -c | sort -r

sort nome-do-arquivo | uniq -c | sort -r | head -n1

---

Funcionamento do Linux:

hardware > kernel > shell > usuário

---

O shell interpreta o script.

---

O shell padrão no linux é o bash. Ele é melhoria do shell sh e incorpora csh e ksh.

O shell csh traz recursos da linguagem C é diferente e faz coisas que os outros não fazem.

---

echo $0

echo $SHELL

tail /etc/passwd

---

Uso de aspas:

caracteres especiais.

* / $ ``

---

OBS:

As crases `` fazem um sub-comando dentro do shell.

---

OBS:

Aspas protegem

---

echo *

echo "*"

aspas duplas protegem o caractere.

Pode usar apóstrofos (aspas simples) para proteger.

echo '*'

---

OBS:

Aspas simples se comportam diferente de aspas duplas.

---

A barra invertida protegeo caractere seguinte. O shell não interpreta o caractere.

echo \*

ls "aluno*"

ls 'aluno*'

ls aluno\*

---

Aspas duplas não protegem cifrão, crase e a barra normal:

$ ` /

---

Quando temos variável cifrão $ ele estará buscando uma variável.

---

Aspas simples (apóstrofo) protegem tudo. 3 Exemplos para conferir:

1) echo $SHELL

2) echo "$SHELL"

3) echo 'SHELL'

---

Todos tem utilidade depende do caso. As aspas duplas são mais usadas.

---

Exemplo de barra invertida:

echo '5espaços 5espaços 5espaços'

echo 5espaços\ \ \ \ \ \5espaços 5espaços

---

Abro o editor de texto Gedit ou nano.

---

Expressões regulares:

File Globbing é diferente de Regex.

File Globbing: Forma do bash de selecionar arquivos de diretórios. Usa carcteres especiais para selecionar arquivos de diretórios.

---

Exemplo de File Globbing:

touch Aula1.txt Aula2.txt Aula3.txt Aula4.txt Aula5.txt aula6.txt

---

OBS:

Note que todos os arquivos começam com maiúsculas menos aula6.txt

---

ls Aula*

ls Aula2*

ls -la Aula[1234]*

ls -la Aula[1-5]*

ls -la Aula[1-6]*

ls -la [Aa]ula[1-6]*

ls -la [Aa]ula[156]*

ls -la *[12]*

ls {Aula,aula}[16]*

ls {Aula,aula}[16].txt

ls -l *5*

ls -l *5.txt

ls -l {Aula,aula}4*

ls -l {Aula,aula}4.txt

---

OBS File Globbing:

Os colchetes [] fazem listas e as chaves {} escolho as strings que me interessam.

---

Mais exemplos File Globbing:

ls -la Aula2*

ls -la Aula2?

ls -la Aula2????

---

File Globbing funciona com quase todos os comandos GNU/Linux.

---

Regex: Expressão regular. Usa caracteres para selecionar um padrão de texto. É para seleção de texto. Trabalha com o que está escrito no arquivo. Não trabalha com o arquivo. O que está escrito num arquivo geralmente é código. Regex é para trabalhar com código. Pode usar Regex para alterar o código. Trabalhar com código é muitas vezes alterar o código e a imensa força do Regex parece que é isto.

---

Usando o Regex:

---

Exemplos comando:

--

echo -e '\nEste texto vai para Aula1.txt.\n\nEle contém algumas palavras:\n\nCada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse\num sistema Linux\nO mundo linux é Linux\nPraticando em distro Linux ou linux\n \nPara onde tem Linux.\nO [Linux] funciona em [Distros] linux. \nPoucos usam Linux \nMuitos usam Linux\nNunca \n \n# Um comentário \n \nnever\nOpera \nopus \nbaiog \nbeirag \nbicag \nquerer \nQueijo \nLeva \nArma \narmadura \nLinux \nlinux \nLinuxDistro \nHostel \nhostel \nLinux \nlinux \nSistema operacional Linux \nGNU \ngnu \nGNULinux \ngnulinux \nSomak \nSomek \nSomik \nsomak \nsomek \nsomik \nSoma \nSome \nSomi \nsoma \nsome \nsomi \npag \npeg \npig \npog \npug \n' > Aula1.txt

---

Comandos para imprimir o texto no terminal:

cat Aula1.txt
tac Aula1* | head
cat Aula1*

---

Usar grep ou egrep ou grep -e.

---

Para aparecer colorido criam um alias para o egrep pode ser em ~/.bashrc (muitos .bashrc já vem com esta opção):

#

alias egrep='egrep --color=auto'

#

---

OBS:

Abro o terminal onde está o arquivo Aula1.txt e executo:

egrep "[Hh]ostel" Aula1.txt

---

Resultado do comando acima:

$ egrep "[Hh]ostel" Aula1.txt

Cada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse

Hostel

hostel

---

Executo os REGEX abaixo:

egrep [Gg]NULinux Aula1*

egrep [GgNnUu][Ll]inux Aula1*

---

Resultados da execução do REGEX:

$ egrep [Gg]NULinux Aula1*

GNULinux

$ egrep [GgNnUu][Ll]inux Aula1*

GNULinux

gnulinux

---

Executo o REGEX "b[a]*" com File Globbing (Aula1*):

egrep "b[a]*" Aula1*

---

O REGEX trabalha com o texto ou com as strings que estão escritas dentro de um arquivo. O File Globbing trabalha por fora do arquivo ou diretório, ajudando a localizar. Por exemplo Aula1*.

---

Comando REGEX:

egrep "b[a-i]*" Aula1*

---

Resultado:

$ egrep "b[a-i]*" Aula1*

Cada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse

baiog

beirag

bicag

---

Comando REGEX:

egrep "^Linux" Aula1.txt

---

Resultado do comando REGEX:

$ egrep "^Linux" Aula1.txt

Linux

LinuxDistro

Linux

---

Comando REGEX:

egrep -v "^[Ll]inux" Aula1.txt

---

Resultado do comando REGEX:

$ egrep -v "^[Ll]inux" Aula1.txt

Este texto vai para Aula1.txt.

Ele contém algumas palavras:

Cada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse

Nunca

# Um comentário

never

Opera

opus

baiog

beirag

bicag

querer

Queijo

Leva

Hostel

hostel

Sistema operacional Linux

GNU

gnu

GNULinux

gnulinux

---

Comando REGEX:

egrep "Linux" Aula1.txt

---

Resultado:

$ egrep "Linux" Aula1.txt

Linux

LinuxDistro

Linux

Sistema operacional Linux

GNULinux

---

Comando Linux REGEX Bash para linhas em branco:

egrep "^$" Aula1*

egrep -v "^$" Aula1*

---

OBS:

No uso de caracteres especiais há diferenças entre REGEX e File Globbing

---

Asterisco *

Comando Linux exemplos REGEX Bash asterisco:

egrep "A[a-r]*" Aula1*

egrep "A[a-r]e*" Aula1*

egrep "A[a-r]m*" Aula1*

egrep "A[a-r]c*" Aula1*

---

OBS:

e* Pode não existir ou pode exitir uma ou várias vezes.

---

No arquivo Aula1.txt posso colocar estas palavras (strings) abaixo e ver o que posso aprender sobre REGEX com a ajuda delas:

Somak

Somek

Somik

somak

somek

somik

Soma

Some

Somi

soma

some

somi

---

Comandos Linux REGEX Bash a executar:

1) egrep "S[a-i]k*" Aula1.txt

2) egrep "S[a-i]o*" Aula1.txt

3) egrep "S[a-i]s*" Aula1.txt

4) egrep "S[a-u]k*" Aula1*

5) egrep "S[a-u]o*" Aula1*

6) egrep "S[a-z]k*" Aula1.txt

7) egrep "S[a-z]m*" Aula1.txt

8) egrep "[Ss][a-u]k*" Aula1*

9) egrep "[Ss][a-u]m*" Aula1*

---

Muito interessante mesmo.

---

Em vez de usar o asterisco *, vai usar o símbolo de mais +.

---

Usando + o caractere anterior tem que aparecer uma ou mais vezes.

---

egrep "S[a-z]m+" Aula1.txt

egrep "S[a-u]m+" Aula1.txt

---

Adicionando antes do k o símbolo $

---

egrep "S[a-u]$k+" Aula1*

egrep "[Ss][a-u]$k+" Aula1*

---

Bem interessante.

---

egrep "S[a-z]$k+" Aula1.txt

egrep "[Ss][a-u]$k+" Aula1*

---

egrep "S[a-z]$m+" Aula1.txt

egrep "[Ss][a-u]$m+" Aula1*

---

No Arquivo1.txt para praticar comandos Linux REGEX posso ter escrito ou vou escrever as palavras:

pag

peg

pig

pog

pug

---

Comandos Linux REGEX Bash:

1) egrep "p[ae]g" Aula1.txt

2) egrep "p[aei]g" Aula1.txt

3) egrep "p[a-v]g" Aula1.txt

---

Mais comandos Linux REGEX Bash para executar:

egrep "^pa*" Aula1*

egrep "^#" Aula1.txt

egrep -v "^pa*" Aula1*

egrep "Linux $" Aula1.txt

egrep "Linux$" Aula1.txt

egrep "Linux$*" Aula1.txt

egrep "p[ae]g+" Aula1.txt

egrep "p[aei]g+" Aula1.txt

egrep "p[a-v]g+" Aula1.txt

---

OBS:

g+ O caractere anterior (g) tem que aparecer uma ou mais vezes. Para ser encontrado, reconhecido e impresso.

---

OBS:

g? O caractere anterior pode aparecer nenhuma ou apenas uma vez.

---

Exemplos Linux REGEX:

egrep "p[a-t]g?" Aula1.txt

Eo pug? Mandei buscar somente de a até t (a-t) aí o pug não vai constar.

---

OBS:

. O ponto é um caractere e espaços também são caracteres aqui no Linux.

---

Exemplos comando Linux REGEX de uso do ponto:

egrep "te.to" Aula1.txt

egrep "te..o" Aula1.txt

egrep "te..." Aula1.txt

---

OBS:

.* Ponto asterisco. O caracete anterior tem que existir mas pode haver qualquer coisa depois.

---

Exemplos comando Linux REGEX com ponto e asterisco:

egrep "P.*Linux" Aula1*

egrep "P....*Linux" Aula1*

egrep "P...*Linux" Aula1*

egrep "P..*Linux" Aula1*

---

OBS:

A proteção do ponto \. O ponto significa um único caractere nesta posição.

---

egrep "[Ll]inux." Aula1*

---

Usando a proteção do ponto digo que quero o caractere ponto. Exemplo Linux REGEX:

egrep "[Ll]inux\." Aula1*

---

Resultado do comando Linux REGEX:

$ egrep "[Ll]inux\." Aula1*

Para onde tem Linux.

---

Outros exemplos de proteção REGEX Linux somado ao uso de .* e usando File Globbing * e ? também:

egrep "\[Linux\]" Aula1*

egrep "\[Linux\].*linux\." Aula1????

---

OBS:

O uso da barra invertida é bastante usado em shell script.

---

Exemplo comando Linux REGEX Bash usando sed:

sed '/^#/d' Aula1*

sed '/^#/d'

---

OBS:

Para sair de um comando executado, use as teclas Ctrl+c

---

sed 's/[Ll]inux/Unix/g' Aula1*

---


<\code>

Feliz Natalpessoal! E Que venha 2019!

carregando-2019


Dizem por aí que pode ser que o passado não exista. Falam que ele é uma memória, uma lembrança e por isto, cada um lembra do passado do jeito que deseja, consegue, do jeito que pode, do jeito que suporta. Quem sobrevive nesta vida aqui, do passado carrega em si mesmo aquele olhar, não obstante, também pode ter cicatrizes pelo corpo, ossos mal remendados, doenças incuráveis adormecidas, dores delirantes, uns bons e velhos distúrbios mentais, chagas e tatuagens de toda espécie. Viva a todos nós que conseguimos sobreviver até ontem! Hurra!

Sério mesmo. De 2018 para 2019 as coisas estão acontecendo sem parar um segundo sequer. Muita gente votou, amores partiram para sempre e novos amores chegaram para ficar o máximo de tempo possível.

Há um tempo eu não vejo um avião, mas vejo umas pistas de pouso as vezes. Não vejo um trem nem o relógio da estação de trens. As vezes vejo carros movidos a gasolina, óleo diesel e vejo também o correio com carteiros e cartas. Vejo luz elétrica, água encanada, fogão a gás e eletrodomésticos. Nas horas vagas brinco com sistemas operacionais em um computador ligado a internet.

Desejo feliz natal a todos. A todos nós. A todos mundo. Sobrevivemos mais um ano. Acredito que cada um de maneira individual agiu exatamente de acordo para que o mundo continue a existir (seja lá o que isto signifique). Assim então talvez a vida deste mundo continue a se desenvolver por eras e eras sendo que provavelmente talvez a gente não seja o astro principal deste evento incrível.

Alguns dizem que o presente é tudo aquilo que se consegue ver e o futuro é tudo aquilo que não se consegue ver nem usando óculos especiais, drones, satélites ou telescópios.

É uma satisfação estar aqui entre nós e continuar postando alguma coisa de vez em quando e seguir vivendo a vida da melhor maneira que posso. Isto me faz feliz. Isto por enquanto ainda é mais do que o suficiente para mim. Amanhã eu não vejo.

"Feliz Natal e um ótimo Ano Novo pessoal!"


Aluga-se Veículos Linux

semanickz

A declaração de caso chamada case é uma boa alternativa à declaração multinível if-then-else-fi.

Ela permite que você combine vários valores com uma variável.

É mais fácil ler e escrever (acho).

The case statement allows you to easily check pattern (conditions) and then process a command-line if that condition evaluates to true. In other words the $variable-name is compared against the patterns until a match is found.

A instrução case permite que você facilmente verifique o padrão (condições) e, em seguida, processe uma linha de comando se essa condição if for avaliada como true ou seja, verdadeira.

Em outras palavras, o nome é comparado com os padrões até que uma correspondência seja encontrada.

Este abaixo age como padrão e é executado se nenhuma correspondência for encontrada.

*)

O padrão pode incluir curingas. Você deve incluir ;; no final de cada N comando.

O shell executa todas as instruções até os dois pontos-e-vírgulas próximos um do outro.

O esac é sempre necessário para indicar a declaração final do case (caso).

---

Exemplo:

Crie um script de shell que trabalhe com aluguel de veículos, locação de veículos chamado de locacao.sh:

#!/usr/bin/env bash

# se\if nenhuma linha de comando arg for dada
# configure aluguel para Desconhecido

if [ -z $1 ]
then
locacao="*** Veículo desconhecido ***"
elif [ -n $1 ]
then
# caso contrário, faça o primeiro argumento como locação
locacao=$1
fi

# use a declaração de caso \case para tomar a decisão de locação

case $locacao in
"carro") echo "Para $locacao locação é Rs.20 por k/m.";;
"van") echo "Para $locacao locação é Rs.40 por k/m.";;
"jeep") echo "Para $locacao locação é Rs.25 por k/m.";;
"bicicleta") echo "Para $locacao locação é 10 por k/m.";;
"enfield") echo "Para $locacao locação Rs.3 por k/m.";;
"thunderbird") echo "Para $locacao locação Rs.5 por k/m.";;
*) echo "Desculpe, não posso obter este tipo veículo $locacao para alugar para você!";;
esac

# fim do script

---

Salve e feche o arquivo. Execute da seguinte maneira um comando de cada vez no terminal aberto onde está o shell script locacao.sh:

chmod +x locacao.sh

./locacao.sh

./locacao.sh carro

./locacao.sh jeep

./locacao.sh enfield

./locacao.sh bike

---

E aí? O que você achou de tentar isto? Interessante não é mesmo? Sei lá, mil coisas...

---

Até Breve!

:)

---

Dicas sugestões são muito bem vindas.

---


fonte

Linux VPN – ProtonVPN para Linux

semanickz

Nota Ferramenta de linha de comando ProtonVPN para Linux


Leio no site oficial (link):

"Estamos introduzindo nossa primeira ferramenta de linha de comando para Linux VPN criada pela equipe ProtonVPN!"

---

Fico pensando, matutando mesmo, O que posso fazer para que funcione (se for possível)? Segui os procedimentos anotados aqui o melhor que pude. Para mim não funcionou nada, nadinha. Tente também! Quem sabe para você funciona corretamente e você tem sucesso nisto.

---

A lista do que você precisa:

1) openvpn
2) python
3) dialog
4) wget

---

Pela central de aplicativos do meu Linux instalo os 4 itens.

---

Pela central de programas do meu sistema Linux instalo algo com o nome:

protonvpn-cli

---

Depois que todos os pacotes estiverem instalados, você precisará fazer o download do script no seu dispositivo Linux. Use este comando:

sudo wget -O protonvpn-cli.sh https://raw.githubusercontent.com/ProtonVPN/protonvpn-cli/master/protonvpn-cli.sh

---

Depois de baixar o script, inicie este comando:

sudo chmod +x protonvpn-cli.sh

---

Em seguida, instale o cliente VPN do Linux executando este comando:

sudo ./protonvpn-cli.sh --install

---

Agora o cliente está instalado e pronto para uso. Para inicializar o cliente ProtonVPN Linux, digite isto:

sudo protonvpn-cli -init

OU:

sudo pvpn -init

---

Você precisará inserir seu nome de usuário e senha do OpenVPN que você deve configurar em nossa página https://account.protonvpn.com/settings.

---

Depois de inserir as credenciais, você terá que selecionar o plano de assinatura que você tem para ProtonVPN. Usuários experimentais devem selecionar 3) Mais.

---

IMPORTANTE: após o período de avaliação, você precisa reconfigurar para 1) Gratuito.

---

Agora, por favor, digite esta linha de comando para começar a se conectar aos servidores:

sudo protonvpn-cli -connect

OU:

sudo pvpn -c

---

Uma lista de países detalhada com todos os servidores ProtonVPN disponíveis para você deve aparecer. Selecione o servidor de sua preferência e clique em OK.

---

Talvez seja bom desabilitar o IPV6 no Linux para não ter mais problemas que o normal.

---

Em seguida, selecione o protocolo UDP ou TCP a ser usado e clique em OK (recomendam UDP no site):

A conexão será estabelecida. Você conseguiu se conectar aos servidores ProtonVPN por meio do cliente VPN do Linux.

Quando estiver conectado à ferramenta do cliente VPN para Linux, você pode garantir que não haja vazamentos de IP ou DNS aqui.

---

Fechar a janela do Terminal não desconectará a conexão VPN. Para fechar a conexão VPN execute:

sudo protonvpn-cli -disconnect

---

Segui os procedimentos anotados aqui. E para mim não funcionou nadinha. Tente quem sabe para você funciona corretamente e você tem sucesso nisto.

---

Meu resultado:

Connecting...
[!] Error connecting to VPN.
[!] Reason: Authentication failed. Please check your ProtonVPN OpenVPN credentials.
[!] There are issues in managing IPv6 in the system. Please test the system for the root cause.
Not being able to manage IPv6 by protonvpn-cli may leak the system's IPv6 address.

---


Dicas e sugestões são muito bem vindas.


Até Breve!



🙂


Fonte