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!

🙂

Criar arquivos e pastas com data atual no Linux


CRIAR DIRETÓRIO COM DATA ATUAL:

mkdir -pv test_Dir_`date +%d-%b-%Y`/
mkdir -pv Dir_estudos_`date +%d-%b-%Y`/


CRIAR ARQUIVO .TXT COM DATA ATUAL:

touch meuArquivo_`date +%d-%b-%Y`.txt
touch Arq-data-atual_`date +%d-%b-%Y`.txt


CRIAR ARQUIVO .SH COM DATA ATUAL:

touch meuScript-1_`date +%d-%b-%Y`.sh
touch script2-ata-atual_`date +%d-%b-%Y`.sh


RENOMEAR DIRETÓRIO COM DATA ATUAL:

mv MeuDir/ MeuDir_`date +%d-%b-%Y`/

mv bin/ bin_`date +%d-%b-%Y`/


Até Breve!

🙂

Linux Mint Anotações 2019

semanickz

TEXTO

---

Atualizar. Abrir o terminal pelo menu do sistema e executar:

sudo apt list --upgradable

sudo apt update && sudo apt upgrade &

sudo apt install tor ufw gufw firewalld ; sudo apt update

---

# Habilitar firewalls:

sudo sh -c 'dpkg --configure -a ; apt list --upgradable ; apt --fix-broken install ; apt update ; apt full-upgrade -y' ; sudo sh -c 'apt update ; apt-get dist-upgrade ; update-grub ; apt install -f ; apt update ; apt full-upgrade -y ; systemctl start firewalld.service ; firewall-cmd --state ; ufw enable ; ufw status verbose ; systemctl enable firewalld ; apt update ; apt full-upgrade -y'

---

Comandos Linux APT - Debian mais usados:

---

ATUALIZAÇÃO COMPLETA:

sudo apt list --upgradable

sudo apt-get update

sudo apt-get upgrade

sudo apt-get full-upgrade

sudo dpkg --configure -a

sudo apt --fix-broken install

BUSCA:

apt search

---

Eu quero aprender atalhos de terminal do GNU/Linux então eu leio o texto abaixo:

---

Atalho Função:

Ctrl + a Move o cursor para o início da linha

--------------------------------------------

Ctrl + e Move o cursor para o final da linha

--------------------------------------------

Ctrl + l Limpa a tela, semelhante ao comando clear

--------------------------------------------

Ctrl + u Apaga do cursor ao início da linha.

--------------------------------------------

Ctrl + k Apaga do cursor ao final da linha.

--------------------------------------------

Ctrl + w Apaga uma palavra antes do cursor.

--------------------------------------------

Ctrl + Shift + _ Desfaz as últimas mudanças.

--------------------------------------------

!! Executa o último comando no histórico.

--------------------------------------------

!abc Executa o último comando no histórico começando com abc.

--------------------------------------------

!n Executa o comando de número n no histórico.

--------------------------------------------

---

INFORMAÇÃO SOBRE PACOTES:

---

apt show

Instalar/Remover/Limpar:

sudo apt-get install

sudo apt-get remove

sudo apt-get autoremove

sudo apt-get autoclean

sudo apt-get clean ; sudo apt-get update

---

# Instalar alguns programas preferidos:

sudo sh -c 'clear ; apt-get update ; apt-get install -y seahorse tor ufw gufw firewalld firejail aria2 gufw firejail vim nano smplayer smtube youtube-dl uget cmus tilix deluge jpegoptim geany conky geany-plugins pinta gimp falkon w3m w3m-img youtube-dl cmus mp3diags mkvtoolnix cheese avidemux fortune fortunes-br cowsay mcomix pwgen makepasswd rhythmbox gedit gedit-plugins leafpad vim perl-image-exiftool transmission uget sigil uget nomacs vlc translate-shell bleachbit gparted gpart googler terminator mjpegtools calibre screenfetch handbrake dialog winff gaupol supertux gcompris w3m links w3m-img gnome-chess gnuchess bookworm fortunes-br cowsay supertux gcompris' ; sudo sh -c 'dpkg --configure -a ; sleep 5 ; apt list --upgradable ; sleep 5 ; apt --fix-broken install ; sleep 5 ; apt update ; apt full-upgrade -y' ; sudo sh -c 'apt update ; apt-get dist-upgrade ; update-grub ; apt install -f ; apt update ; apt full-upgrade -y'

---

# Ao terminar de instalar tudo que preciso executo:

sudo sh -c 'dpkg --configure -a ; apt list --upgradable ; apt --fix-broken install ; apt update ; apt full-upgrade -y' ; sudo sh -c 'apt update ; apt-get dist-upgrade ; update-grub ; apt install -f ; apt update ; apt full-upgrade -y'

---

# Linux Mint Aliases para Uso Pessoal


---

# ALIASES CRIADOS PARA USO PESSOAL

#

#########################

#

# DEFINIÇÃO DO PATH ~/bin

#

export PATH=$PATH:$HOME/bin

#

#########################

#

## ALIAS PARA IR AO DIRETÓRIO ~/BIN

#

alias cb="clear; cd ; cd ~/bin; pwd"

#

alias bkbrc='cp ~/.bashrc ~/.bashrc_atualizado ; cp ~/.bashrc ~/bin/bashrc_atualizado.txt ; echo :: O .bashrc foi atualizado. ::'

#

alias c="clear"

#

alias up='sudo apt update ; sudo ufw enable ; sudo ufw status verbose ; sudo ufw show raw ; sudo ufw status numbered ; sudo ufw status ; sudo dpkg --configure -a ; sudo apt update ; sudo apt -f install ; sudo apt update ; sudo apt upgrade -y ; sudo apt full-upgrade -y ; sudo apt install -f'

#

alias frw="sudo sh -c 'apt update ; ufw enable ; ufw status verbose ; systemctl start firewalld.service ; firewall-cmd --state ; systemctl enable firewalld ; apt update'"

#

# SAIR DO TERMINAL

#

alias e="clear; exit"

alias q="clear; exit"

alias 3="clear; exit"

#

alias sb='source ~/.bashrc'

alias brc='featherpad ~/.bashrc &'

#

# PROTEGER CP, MV, RM :: COM CONFIRMAÇÃO

#

alias cp='cp -i'

alias mv='mv -i'

alias rm='rm -i'

alias rmd='rm -ri'

alias rmr='rm -ri'

#

## LS LISTAR PRIMEIRO DIRETÓRIOS PRIMEIRO

#

alias lf="ls -l | egrep -v '^d'"

alias ldir="ls -l | egrep '^d'"

alias lsdir="find . -maxdepth 1 -mindepth 1 -type d"

alias lsdir2="find . -maxdepth 1 -mindepth 1 \! -type d"

#

## LS LISTAR POR ORDEM ALFABÉTICA

#

alias la="ls -1 | sort -r"

alias listalpha="ls -1 | sort -k9,9"

alias lbeto="ls -1 | sort -k9,9"

alias lafb="ls -1 | sort -k9,9"

alias lapb="ls -1 | sort -k9,9"

alias lsa="ls -1 | sort -k9,9"

#

## LISTAR APENAS ARQUIVOS

#

alias larq="ls -l | egrep '^-'"

alias larq1="ls -l | egrep '^-' | sort"

#

#

## ALIAS ALIAS

#

alias ali='alias'

#

## TEMPERATURA

#

alias tp="clear; sensors"

alias te="clear; sensors"

alias se="clear; sensors"

alias temp="clear; sensors"

#

## ALIAS INFORMAÇÕES COMPLETAS SOBRE TODOS OS ARQUIVOS DE UM DIRETÓRIO, PASTA, INCLUSIVE AS PERMISSÕES

#

# alias infosarquivo="ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'"

#

## APRENDA COMANDOS COM MANPAGE ALEATORIA

#

alias mman="man $(ls /bin | shuf | head -1)"

alias maan="man $(ls /bin | shuf | head -1)"

#

## SENHAS PWGEN

#

alias pw="pwgen"

alias pws="pwgen -Bcns"

alias pwy="pwgen -Bcnsy"

#

## TOP 6 MAIORES DIRETÓRIOS

#

alias top6dir="du -hsx * | sort -rh | head -6"

alias top6="du -hsx * | sort -rh | head -6"

alias t6d="du -hsx * | sort -rh | head -6"

#

## TABELA CHMOD

#

alias tchm="cat ~/bin/Linux-Tabela-Chmod.txt | less"

alias tchmd="cat ~/bin/Linux-Tabela-Chmod.txt | less"

alias optchm="gedit ~/bin/Linux-Tabela-Chmod.txt"

alias otchm="gedit ~/bin/Linux-Tabela-Chmod.txt"

alias opchm="gedit ~/bin/Linux-Tabela-Chmod.txt"

#

## APRENDER MANPAGES

#

alias learnman="man $(ls /bin | shuf | head -1)"

alias aprman="man $(ls /bin | shuf | head -1)"

alias lman="man $(ls /bin | shuf | head -1)"

alias rman="man $(ls /bin | shuf | head -1)"

alias 1man="man $(ls /bin | shuf | head -1)"

alias lerman="man $(ls /bin | shuf | head -1)"

#

## LISTAR ARQ E DIR ORDENADOS POR TAMANHO

#

alias ladot="du -h --max-depth=1 | sort -h"

alias lpt="du -h --max-depth=1 | sort -h"

#

#

alias fwd="clear ; sudo sh -c 'systemctl enable firewalld ; systemctl start firewalld ; firewall-cmd --state ; apt ur ; apt up -y ; firewall-cmd --state ; firewall-cmd --get-default-zone ; firewall-cmd --get-active-zones ; firewall-cmd --list-all'"

#

alias ufw="clear ; sudo sh -c 'ufw enable ; apt update ; ufw status verbose ; ufw show raw ; ufw status numbered ; ufw status ; apt update'"

#

alias gufw="clear ; sudo gufw"

#

# ALIASES WGET ::

#

alias wgt='clear ; echo ; wget -c'

alias wg='clear ; firejail wget -c'

#

## PARA ALTERAR O PROMPT DO TERMINAL

#

export PS1=":\W\$ "

#

# ATALHADOS DE TECLADO PARA O TERMINAL

#

alias atecterm='cat ~/bin/atecterm.txt'

#

alias cleandcrmo='clear; sudo apt clean; sudo apt dc; sudo apt ur ; eofire ; echo :: Limpeza2 finalizada ::; date; rel; uptime'

alias cleandc='clear; sudo apt clean; sudo apt dc; date'

#

#

## LINUX INFO BIOS E HARDWARE

#

alias bios="sudo dmiuserode | less"

alias mybios="sudo dmiuserode -type 148 | more"

alias hardware="sudo dmiuserode | more"

alias sistema="cat /proc/meminfo; cat /proc/cpuinfo; lscpu; cat /proc/meminfo; cat /proc/version; uname -mrs; lsb_release -a; lsblk; free -lmht"

#

## ALIAS INFO LINUX RELEASE

#

alias linuxrelease='clear ;lsb_release -a'

alias linrel='clear ;lsb_release -a'

alias lrel='clear ;lsb_release -a'

alias lre='clear ;lsb_release -a'

alias release='clear ;lsb_release -a'

alias rele='clear ;lsb_release -a'

alias rle='clear ;lsb_release -a'

alias rel='clear ;lsb_release -a'

alias rls='clear ;lsb_release -a'

alias distro='clear ;lsb_release -a'

alias dtr='clear ;lsb_release -a'

alias meulinux='clear ;lsb_release -a'

alias mylinux='clear ;lsb_release -a'

alias minhadistro='clear ;lsb_release -a'

#

## Colorize the ls output #

#

alias ls='ls --color=auto'

#

## Show hidden files #

#

alias l.='ls -d .* --color=auto'

#

## Use a long listing format #

#

alias lla='ls -la'

#

alias lr='clear; ls -R'

#

## ALIAS CORES PARA GREP

#

alias grep='grep --color=auto'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

#

## ALIAS CALC BC

#

alias bc='bc -l'

#

## ALIAS VER SAIDA BEM FORMATADA #

#

alias mount='mount |column -t'

#

alias path='echo -e ${PATH//:/\\n}'

alias now='date +"%T"'

alias nowtime=now

alias nowdate='date +"%d-%m-%Y"'

#

alias vi=vim

alias svi='sudo vi'

alias vis='vim "+set si"'

alias edit='vim'

#

# ALIAS REBOOT/HALT/POWEROFF

#

alias reb='sudo /sbin/reboot'

alias pow='sudo /sbin/poweroff'

alias hal='sudo /sbin/halt'

alias shu='sudo /sbin/shutdown'

#

alias ports='netstat -tulanp'

#

# PARA DE MUDAR PERMiS EM / #

#

alias chown='chown --preserve-root'

alias chmod='chmod --preserve-root'

alias chgrp='chgrp --preserve-root'

#

## REP ARQU DE VÍDEO NO DIR ATUAL ##

# cd ~/Download/movie-name

# pavi or vavi

#

alias pmkv='mplayer *.mkv'

alias pmp4='mplayer *.mp4'

alias pavi='mplayer *.avi'

alias pmp3='mplayer *.mp3'

alias pwebm='mplayer *.webm'

#

alias vmkv='vlc *.mkv'

alias vmp4='vlc *.mp4'

alias vmp3='vlc *.mp3'

alias vwebm='vlc *.webm'

alias vavi='vlc *.avi'

#

# REPR TODOS OS ARQ DE MÚSICA DIR ATUAL #

#

alias playwave='for i in *.wav; do mplayer "$i"; done'

alias playogg='for i in *.ogg; do mplayer "$i"; done'

alias playmp3='for i in *.mp3; do mplayer "$i"; done'

#

# REPRODUZIR ARQUIVOS DE DISPOSITIVOS NAS

#

alias nplaywave='for i in /nas/multimedia/wave/*.wav; do mplayer "$i"; done'

alias nplayogg='for i in /nas/multimedia/ogg/*.ogg; do mplayer "$i"; done'

alias nplaymp3='for i in /nas/multimedia/mp3/*.mp3; do mplayer "$i"; done'

#

# EMBARALHAR MP3 / OGG ETC POR PADRÃO #

#

alias music='mplayer --shuffle *'

#

fortune | cowsay # O SOLUS NÃO OFERECE #

#

# FORTUNE OU COWSAY #

#

## ALIASES PARA O MESMO TEXTO DE CONSULTA SOBRE SHELL

#

## VERIFICAR SERVIDOR

#

alias verificarservidor='4-Verificando-a-utilização-do-servidor.sh'

alias verservidor='4-Verificando-a-utilização-do-servidor.sh'

alias verserv='4-Verificando-a-utilização-do-servidor.sh'

alias vserv='4-Verificando-a-utilização-do-servidor.sh'

#

alias dicionario="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias dicshell="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias dic="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias shdic="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias shellhelp="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias meushell="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias helpshell="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias hshell="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias hsh="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

alias cmdshell="cd ; cat ~/bin/Consulta-para-ShellScript-e-Aliases.txt | less"

#

alias fpalias="echo -e '\n fpl=flatpak list\n fpup=flatpak update\n fpsf=flatpak search\n fpit=sudo flatpak install\n fprm=sudo flatpak uninstall\n fprun=flatpak run\n fpitfrom=flatpak install --from\n fprlist=flatpak remote-list \nfpdrmt=flatpak remote-delete \n ' | less"

alias fpali="echo -e '\n fpl=flatpak list\n fpup=flatpak update\n fpsf=flatpak search\n fpit=sudo flatpak install\n fprm=sudo flatpak uninstall\n fprun=flatpak run\n fpitfrom=flatpak install --from\n fprlist=flatpak remote-list \nfpdrmt=flatpak remote-delete \n ' | less"

alias fpal="echo -e '\n fpl=flatpak list\n fpup=flatpak update\n fpsf=flatpak search\n fpit=sudo flatpak install\n fprm=sudo flatpak uninstall\n fprun=flatpak run\n fpitfrom=flatpak install --from\n fprlist=flatpak remote-list \n fpdrmt=flatpak remote-delete \n ' | less"

#

## ALIAS PARA LISTA DE ENDEREÇOS DE SITES INTERESSANTES - ALIAS PARA ABRIR ARQUIVO E ADICIONAR MAIS SITES

#

alias sites='cat ~/bin/Lista-de-Sites-Interessantes.txt | less'

alias site='cat ~/bin/Lista-de-Sites-Interessantes.txt | less'

alias sit='cat ~/bin/Lista-de-Sites-Interessantes.txt | less'

alias sit2='cat ~/bin/lista-sites2.txt | less'

alias linkdesites='cat ~/bin/Lista-de-Sites-Interessantes.txt | less'

alias siteslink='cat ~/bin/Lista-de-Sites-Interessantes.txt | less'

alias sitespref='cat ~/bin/Lista-de-Sites-Interessantes.txt | less'

###

alias openlistsites='gedit ~/bin/Lista-de-Sites-Interessantes.txt &'

alias abrirsites='gedit ~/bin/Lista-de-Sites-Interessantes.txt &'

alias abresite='gedit ~/bin/Lista-de-Sites-Interessantes.txt &'

alias opensites='gedit ~/bin/Lista-de-Sites-Interessantes.txt &'

alias oplitsit='gedit ~/bin/Lista-de-Sites-Interessantes.txt &'

alias opsit='gedit ~/bin/Lista-de-Sites-Interessantes.txt & exit'

alias opsit2='gedit ~/bin/lista-sites2.txt'

#

#

## ALIAS PARA DICIONARIO CONSULTA VIM

#

alias hvim="cd ; cat ~/bin/Linux-lista-de-comandos-do-editor-de-texto-vim.txt | less"

alias hvim="cd ; cat ~/bin/Linux-lista-de-comandos-do-editor-de-texto-vim.txt | less"

alias hvi="cd ; cat ~/bin/Linux-lista-de-comandos-do-editor-de-texto-vim.txt | less"

alias cmdvim="cd ; cat ~/bin/Linux-lista-de-comandos-do-editor-de-texto-vim.txt | less"

alias cmdvi="cd ; cat ~/bin/Linux-lista-de-comandos-do-editor-de-texto-vim.txt | less"

alias cvi="cd ; cat ~/bin/Linux-lista-de-comandos-do-editor-de-texto-vim.txt | less"

#

## ALIAS HELP WGET RTORRENT

#

alias hrtowgt="cat ~/bin/help-do-wget-e-do-rTorrent.txt | less"

alias hrtor="cat ~/bin/help-do-wget-e-do-rTorrent.txt | less"

alias rtorh="cat ~/bin/help-do-wget-e-do-rTorrent.txt | less"

alias torrent="cat ~/bin/help-do-wget-e-do-rTorrent.txt | less"

#

# MAKE SURE DNSTOP ONLY SHOWS ETH1 STATS

#

alias dnstop='dnstop -l 5 enp2s0f1'

#

# MAKE GREP PRETTY

#

alias grep='grep --color'

#

# ALIAS ESTOU LOGADO COM QUE NOME?

#

alias eu="whoami"

#

alias ctt='cowsay "Olá! A data do dia de hoje é: $(date)"'

alias cup='cowsay "Olá! O teu uptime é: $(uptime ; echo ; date ; echo)"'

#

## ALIAS VINCULADO A SCRIPT PASTA ~/BIN

#

alias qhora=6Educado_Horario.sh

alias hora='clear; 6Educado_Horario.sh'

alias qh='clear; 6Educado_Horario.sh'

#

## ALIAS CRONOMETRO SCRIPT

#

alias cronometro='cronometro.sh'

alias crono='clear; cronometro.sh'

alias cron='clear; cronometro.sh'

#

## ALIASES INFO SISTEMA

#

alias infosist="clear ; sudo apt ur ; sudo apt up -y; clear ; echo ': Info Sistema :'; cat /proc/cpuinfo; free -mth; sudo dmiuserode -t processor ; sudo dmiuserode -t memory ; sudo dmiuserode -t bios"

#

# INFO CPU

#

alias cpu='cat /proc/cpuinfo | less'

#

# INFO MEMÓRIA

#

alias mem='cat /proc/meminfo | less'

alias myram='cat /proc/meminfo | less'

alias memram='cat /proc/meminfo | less ; echo ; free -mth'

alias infomemo='cat /proc/meminfo | less ; echo ; free -mth'

#

alias processadormemoriabios="sudo dmiuserode -t processor ; sudo dmiuserode -t memory ; sudo dmiuserode -t bios"

#

alias procmemobios="sudo dmiuserode -t processor ; sudo dmiuserode -t memory ; sudo dmiuserode -t bios"

#

alias promebi="sudo dmiuserode -t processor ; sudo dmiuserode -t memory ; sudo dmiuserode -t bios"

#

alias ramreal="clear ; watch -n 1 free -m"

alias liveram="clear ; watch -n 1 free -m"

alias lvram="clear ; watch -n 1 free -m"

#

## LIBERAR MEMÓRIA NÃO UTILIZADA

#

alias libmemo="sudo sysctl -w vm.drop_caches=3 ; sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches"

#

alias liberam="sudo apt up -y ; sudo swapoff -a ; sudo swapon -a ; sudo sysctl -w vm.drop_caches=3 ; sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches ; sudo apt ur ; sudo apt up -y ; sudo sysctl -w vm.drop_caches=3 ; sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches ; sudo swapoff -a ; sudo swapon -a"

#

alias freeram="sudo sysctl -w vm.drop_caches=3 ; sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches"

#

#

alias ra="sudo swapoff -a ; sudo swapon -a ; sudo sysctl -w vm.drop_caches=3 ; sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches ; sudo apt ur ; sudo apt up -y ; sudo sysctl -w vm.drop_caches=3 ; sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches ; sudo swapoff -a ; sudo swapon -a"

#

# LISTA DE COMANDOS DO VIM

#

alias eovim="echo -e '\ni (Modo de Inserção)\nNo modo de inserção (Esc a) começo a digitar a partir do local onde o cursor está.\nNo modo de inserção (Esc o) começo a digitar numa linha abaixo do cursor.\nNo modo de inserção (Esc r) começo a digitar sobrescrevendo.\nEsc (Modo de Comandos)\nEsc h (Vai para esquerda)\nEsc j (Desce)\nEsc k (Sobe)\nEsc l (Vai para a direita)\nEsc :wq (salva e sai)\nEsc :x (salva e sai)\nEsc ZZ (zalva e zai)\nEsq :q! (sai mesmo que não tenha salvo)\nEsc qa (fecha todos os arquivos que não foram alterados)\nEsc :q (sai sem ligar se salvou, modificou ou não)\nEsc :wqa (salva e sai de todos os arquivos que estiverem abertos)\nEsc :W (salva o que foi escrito)\nEsq :set autowrite (salva a cada operação feita)\nEsc :set aw (salva a cada operação feita)\nEsc :wa (salva todos os arquivos que estiverem abertos)\nEsc :syntax on (Deixa o script colorido)\n'"

#

alias infovim="echo -e '\ni (Modo de Inserção)\nNo modo de inserção (Esc a) começo a digitar a partir do local onde o cursor está.\nNo modo de inserção (Esc o) começo a digitar numa linha abaixo do cursor.\nNo modo de inserção (Esc r) começo a digitar sobrescrevendo.\nEsc (Modo de Comandos)\nEsc h (Vai para esquerda)\nEsc j (Desce)\nEsc k (Sobe)\nEsc l (Vai para a direita)\nEsc :wq (salva e sai)\nEsc :x (salva e sai)\nEsc ZZ (zalva e zai)\nEsq :q! (sai mesmo que não tenha salvo)\nEsc qa (fecha todos os arquivos que não foram alterados)\nEsc :q (sai sem ligar se salvou, modificou ou não)\nEsc :wqa (salva e sai de todos os arquivos que estiverem abertos)\nEsc :W (salva o que foi escrito)\nEsq :set autowrite (salva a cada operação feita)\nEsc :set aw (salva a cada operação feita)\nEsc :wa (salva todos os arquivos que estiverem abertos)\nEsc :syntax on (Deixa o script colorido)\n' | less"

#

alias vimajuda="cd; cat ~/bin/linux-vim-ajuda-pt_br.txt| less"

alias vimhelp="cd; cat ~/bin/linux-vim-ajuda-pt_br.txt| less"

alias helpvim="cd; cat ~/bin/linux-vim-ajuda-pt_br.txt| less"

alias hvi="cd; cat ~/bin/linux-vim-ajuda-pt_br.txt| less"

alias comandosvi="cd; cat ~/bin/linux-vim-ajuda-pt_br.txt| less"

#

## alias ajuda comando read com exemplos

#

alias readhelp='cat ~/bin/Linuxcomando-read-com-ex3mplos.txt | less'

alias readh='cat ~/bin/Linuxcomando-read-com-ex3mplos.txt | less'

#

# ALIASES QUE AJUDAM SABER SOBRE COMANDOS

#

alias manhelp="clear ; man --help"

alias heopk='clear ; apt -h'

alias cathelp='clear ; man cat | less'

alias touchhelp='clear ; man touch| less'

alias mkdirhelp='man mkdir | less'

alias findhelp='clear ; man find | less'

alias grephelp='clear ; man grep | less'

alias ythelp='clear ; man youtube-dl | less'

#

## ALIAS KILLALL ALGUNS PROGRAMAS

#

alias ksea='killall seahorse'

alias ksmp='killall smplayer'

alias kdelu='killall deluge'

alias kfire='killall firefox'

alias ktele='killall telegram'

alias kvlc='killall vlc'

alias kcaj='killall caja'

#

## ALIAS LEMBRETE DO QUE ESTUDAR HOJE/AMANHÃ

#

alias estudar='leafpad ~/bin/estudos-shell-script-estudar-o-que-hoje.txt'

alias estudo='leafpad ~/bin/estudos-shell-script-estudar-o-que-hoje.txt'

#

## ALIASES : GREP

#

alias grep1='grep "^[[:alnum:]]"'

alias grep2='grep "^[[:alpha:]]"'

alias grep3='grep "^[[:blank:]]"'

alias grep4='grep "^[[:digit:]]"'

alias grep5='grep "^[[:lower:]]"'

alias grep6='grep "^[[:punct:]]"' # busca pontuação

alias grep7='grep "^[[:graph:]]"'

alias grep8='grep "^[[:print:]]"'

alias grep9='grep "^[[:space:]]"'

alias grep10='grep "^[[:upper:]]"'

alias grep11='grep "^[[:xdigit:]]"'

#

## ALIAS QUE INFORMA SOBRE OUTROS ALIASES

#

alias cmdalias1="cat ~/bin/Info-cmd-brc-liga-desliga.txt | less"

#

# ABRIR O ARQUIVO .BASHRC

#

# alias brc="cd ; gedit ~/.bashrc &"

alias brce="gedit ~/.bashrc & exit"

alias ebrc="gedit ~/.bashrc & exit"

alias tbrc="gedit ~/.bashrc &"

#

## ALIAS TEXTO NOTAS

#

alias notas='gedit ~/bin/notas-anotacoes.txt & exit'

#

# ATUALIZAR/ALTERAR DE ALIASES/BASHRC/BIN/BACK

#

## INSTRUÇÕES

#

alias hbrc='cat ~/bin/Bashrc-Atualizar-Alterar-Backup.txt | less'

#

alias sbrc='clear ; source .bashrc'

alias sbrc1='clear ; cd ; source .bashrc ; cd -'

#

alias sbrcc="clear ; cd ; source .bashrc ; cd -"

#

alias sb='clear ; source ~/.bashrc'

#

alias cpbashrcback="clear ; cd ; source .bashrc ; cp .bashrc .bashrc_back ; cp .bashrc_back .bashrc.old ; cd - ; echo ':: .bashrc copiado em ~/ com os nomes de .bashrc_back e .bashrc.old ::'"

#

# COMANDO LS - ATALHOS : LISTAR : ARQ : DIR #

#

## LS : MOSTRAR : ARQUIVOS : ESCONDIDOS

#

alias l..='ls -d .* --color=auto'

#

alias l1='ls -1 --color=auto'

#

alias lah="ls -lah --color=auto"

#

alias lt="clear ; ls -t --color=auto"

alias ly="clear ; ls -t --color=auto"

alias lt1='clear ; ls -ta --color=auto'

alias lt2='clear ; ls -tai --color=auto'

alias lt3='clear ; ls -tail --color=auto'

alias lt4='clear ; ls --color=auto -t ; pwd'

alias lt5='clear ; ls --color=auto -ta ; echo'

alias lt6='clear ; ls --color=auto -tai ; echo'

alias ltailh='clear ; ls --color=auto -tailh | less ; echo'

alias lt7='clear ; ls --color=auto -tailh | less ; echo'

alias ltailA='clear ; ls --color=auto -tailA| less ; echo'

alias lt8='clear ; ls --color=auto -tailA| less ; echo'

alias ltailF='clear ; ls --color=auto -tailF| less ; echo'

alias lt9='clear ; ls --color=auto -tailF| less ; echo'

alias ltailAF='clear ; ls --color=auto -tailAF| less ; echo'

alias lt10='clear ; ls --color=auto -tailAF| less ; echo'

alias ltailACF='clear ; ls --color=auto -tailACF| less ; echo'

alias lt10='clear ; ls --color=auto -tailACF| less ; echo'

#

alias lat='ls -at --color=auto'

#

alias li='ls -li --color=auto' # INODE NUMEROS

#

alias llt="ls -lt --color=auto"

#

alias l4="ls -F --color=auto"

#

alias l5="ls -al --color=auto"

#

alias l6="ls -al --color=auto | more"

#

alias l8='ls -l --color=auto'

#

alias l9='ls -A --color=auto'

#

alias l10='ls -CF --color=auto'

#

# DAR PODER DE EXEC A SCRIPTS NA PASTA ~/BIN

#

alias chmbin='cd ; cd ~/bin/ ; chmod +x *.sh ; cd -'

#

# REMOVER PODER DE EXEC A SCRIPTS NA PASTA ~/BIN

#

alias nochmbin='cd ; cd ~/bin/ ; chmod -x *.sh ; cd -'

#

## ALIASES PING

#

alias ping1='ping -c 5 duckduckgo.com'

alias p1='ping -c 5 duckduckgo.com'

alias ping2='nslookup duckduckgo.com'

alias ping3='ping -c 5 google.com'

alias ping4='ping google.com -c 1'

alias ping5='ping -c 5 bbc.co.uk'

alias p5='ping -c 5 bbc.co.uk'

#

## PING ALIASES

#

# STOP AFTER SENDING COUNT ECHO_REQUEST PACKETS

#

alias pingc5='ping -c 5'

#

# DO NOT WAIT INTERVAL 1 SECOND, GO FAST

#

alias fastping='ping -c 100 -s.2'

alias fping='ping -c 100 -s.2'

#

# ALIASES PARA INTERFACE DE REDE

#

alias ifig="clear ; echo ; echo 'ifconfig (1) - configura interface de rede' ; echo ; echo ':: Executando iconfig...' ; echo ; ifconfig ; echo ; sleep 8"

#

alias ifiginf="echo ; ifconfig -a ; echo ; sleep 13 ; echo ; echo 'ifup eth0 Desliga a interface eth0 , ifdown eth0 Desliga a eth0 , route -n Exibe as rotas ativas , ip addr Exibe as placas de rede' ; echo"

#

# ALIASES : ATUALIZAR : UPGRADE : UPDATE : DATABASE

#

# SINCRONIZAR O SISTEMA, ATUALIZAR E REGISTRAR

#

alias usys='sudo usysconf run -f ; upd'

#

alias upsys='eol ; sudo usysconf run -f'

#

alias urup='clear; sudo apt ur; sudo apt up -y; sudo apt up -y; sudo apt cp; hoje'

#

alias urupdc='clear; sudo apt ur; sudo apt up -y ; sudo apt dc ; sudo apt clean ; sudo apt up -y ; sudo apt cp'

#

alias fireup="sudo sh -c 'apt ur ; apt up -y ; systemctl enable firewalld ; systemctl start firewalld ; firewall-cmd --state ; firewall-cmd --state ; firewall-cmd --get-default-zone ; firewall-cmd --get-active-zones ; firewall-cmd --list-all ; ufw enable ; ufw status verbose ; ufw show raw ; ufw status numbered ; ufw status ; apt ur ; apt up -y'"

#

## ALIAS HORA DIA MES ANO

#

alias hdma='date "+%H:%M:%S - %A %d %B %Y"'

#

# alias up="clear ; sudo sh -c 'systemctl enable firewalld ; systemctl start firewalld ; firewall-cmd --state ; firewall-cmd --state ; firewall-cmd --get-default-zone ; firewall-cmd --get-active-zones ; firewall-cmd --list-all ; ufw enable ; ufw status verbose ; ufw show raw ; ufw status numbered ; ufw status' ; sudo apt up -y ; sudo apt ur ; sudo apt ur ; sudo apt up -y ; sudo apt up -y ; sudo apt up -y ; sudo apt cp ; sudo apt clean ; sudo apt autoremove -y ; sudo apt autoclean ; sudo apt ur && sudo apt up -y ; echo ':: Atualização Completa ::' ; echo ; echo ':: Você Está Em...' ; pwd ; echo ; echo ':: Você é o...' ; whoami ; echo ; echo ':: Hoje é :' ; hdma ; echo"

#

alias tra='trans -b :eng+pt'

alias trad='trans -b :eng+pt'

#

alias slim='firejail flashpeak-slimjet &'

alias chrom='firejail chromium &'

alias qupz='firejail qupzilla &'

alias wtfx='firejail waterfox &'

#

alias re='sudo dpkg --configure -a ; sudo apt install -f ; sudo apt update ; sudo shutdown -r now'

alias des='sudo dpkg --configure -a ; sudo apt install -f ; sudo apt update ; sudo shutdown -h now'

#

alias ft='clear ; fortune | cowsay'

#

alias vlc='firejail vlc & exit'

alias mm='firejail smplayer & exit'

#

alias ep4="clear ; echo ; echo 'Use o comando: exiftool -all= -overwrite_original -ext mp4 .' ; echo ; sleep 2 ; echo 'Vou executar o comando...' ; sleep 2 ; exiftool -all= -overwrite_original -ext mp4 . ; echo 'Comando executado.' ; sleep 2 ; echo ; echo 'Confira a info da metadata com: exiftool *.mp4 vou executar...' ; sleep 1 ; echo ; exiftool *.mp4"

#

alias mkv=MKV3b-remov-metadata-mkv.sh

#

alias eeomp3="clear ; echo ; echo -e 'Remover toda a Metadata de arq .mp3\nCom o comando:\nid3convert -s *.mp3\nEm 4 segundos.' ; echo ; sleep 4 ; id3convert -s *.mp3"

alias nmp3='mp3gain -c -r *.mp3'

alias ep3='clear ; nmp3 ; eeomp3'

alias otjpg='eojpg ; jpegoptim *.JPG ; jpegoptim *.jpg ; jpegoptim *.jpeg'

#

alias otpng='optipng *.png'

#

alias optpng='for i in *.png; do optipng "$i"; done'

#

alias jpgtopng='convert *.jpg *.png'

#

alias pngtojpg='convert *.png *.jpg'

#

## CONVERTER MKV PARA MP4

#

alias mkv2mp4='ffmpeg -i *.mkv -couser copy convertido.mp4'

#

alias mkv2mp4='ffmpeg -i *.mkv -couser copy convertido.mp4'

#

alias sea='seahorse &'

alias it='clear ; sudo apt update ; sudo apt install'

#

ali sf='clear ; apt search'

#

## ENCONTRAR PACOTE QUEBRADO

#

alias pacotequebrado="dpkg -l | grep -v '^ii'"

alias fbroken="dpkg -l | grep -v '^ii'"

#

alias delu='firejail deluge & exit'

#

alias yt='firejail youtube-dl'

alias yp3='firejail youtube-dl --extract-audio --audio-format mp3'

alias dw='cd ~/Downloads/'

#

alias mkvteimoso='ffmpeg -i *.mkv -vcodec copy -acodec copy -metadata title="$title" teimosinho.mkv'

#

alias abreaqui='thunar .'

alias ophere='thunar .'

alias opf='thunar .'

#

alias ffox='firejail firefox & exit'

alias ffx='firejail firefox & exit'

#

alias neo='neofetch'

alias scr='screenfetch'

#


# Reinicio a máquina. Não tem nenhum programa aberto fora o terminal:

sudo apt update ; echo ; echo 'Reniciando o sistema em 8 segundos:' ; sleep 3 ; echo 'Sugiro que eche todos os programas abertos' ; sleep 4 ; echo ; echo 'Reiniciando...' ; echo ; sleep 8 ; echo ; sudo sh -c 'shutdown -r now'

#


Linux comando free

semanickz

Linux comando free com exemplos

---

"free exibe a quantidade total de memória física e swap livre e usada no sistema, assim como os buffers e caches usados ​​pelo kernel. As informações são reunidas por parsing /proc/meminfo."

---

Vou usar uns comandos e opções:

date, clear, free -m, free -h, free -t, free -s

---

"Nesta configuração, se você deseja que a execução seja livre apenas um número definido de vezes, é possível usar a opção de comando -c, que requer que um valor de contagem seja passado para ela."

Comando:

free -mhs 3

---

"Se você quiser, também pode ter o comando free executado de forma que exiba continuamente a saída após um intervalo de tempo definido. Para isso, use a opção de linha de comando -s. Esta opção requer que o usuário passe um valor numérico que será tratado como o número de segundos após o qual a saída será exibida."

Comando:

clear

free -mhs 3 -c5

Para sair aperto duas teclas. As teclas Ctrl+c.

---

Comando free em colunas:

free -mht

free -mhts 3

free -mhts 3 -c5

---

Se quiser gravar a data e o consumo de memória deste momento:

sh -c 'echo ; date ; echo ; free -mhts 3 -c5 ; echo' > Arquivo-free.txt

cat Arquivo-free.txt | less

Para sair aperto a tecla q.

---

Para saber a temperatuda da máquina tendo instalado a ferramenta certa, é só digitar:

sensors

---

$ whatis sensors
sensors (1) - print sensors
information

---

fonte

---

Até Breve!

---

Linux grep básico exemplos

semanickz

Linux uso básico do grep


O grep serve para procurar conteúdo em uma string de texto. Para aprender isto é criar um arquivo com strings de texto. Vamos fazer isto agora criando o arquivo texto-do-grep.txt com os comandos abaixo:


1. cd

2. cd ~/Documentos/

3. pwd

4. ls -ltC

5. mkdir EstudoLinux/ ; ls -ltC

6. cd EstudoLinux/

7. pwd

8. date

9. whoami

10. whatis grep


11. echo -e '\nLinux uso básico do grep \nLinux\nLinux e o mundo GNU. \nO GNU é parte do Linux\nAna \nANA \nAnA \nAno \nANO \nAnO \nAni \nbeeg \nboog \n# Comentário \nLuag \nluag \nSemanickz \nsemanickz \nSemanickzaine \nsemanickzaine \nbola \nSEMANICKZAINE \nSEMANICKZ \nbolo \nbole \nzazs \nzezs \nzizs \nzozs \nacunda \naconda \n# start Linux.\nleia \nleio \nleitor \nblog \nbleg \nblig \nboot \nBoot \n# comment\nTexto \ntexto \nTeeexto \nFim \nfom \nfunal do texto.\n# fim #\n' > texto-do-grep.txt


12. ls -AC

13. cat texto-do-grep.txt

14. clear


Agora já podemos começar!

Neste estudo, sempre antes de procurar uma string abro e ajeito na tela tres terminais. Todos eles abertos onde está o arquivo texto-do-grep.txt em um deles, uso o comando:

cat texto-do-grep.txt
---

Vejo o conteúdo e crio uma busca de string com o grep no outro terminal.

---

No segundo terminal, digito o comando:

man grep | less

E quando tiver alguma dúvida, uso as setas para cima e para baixo e dou uma olhada no manual de uso do grep. No final do extudo, para siar do comando executado, uso duas teclas. Aperto as teclas Ctrl+c e para fechar o terminal digito o comando exit.

---

No terceiro terminal, executo os comandos de busca usando o grep.

---

Linux Bash comando grep alguns poucos Exemplos para executar no terminal e ler com bastante atenção as saídas destes comandos para entender o que o comando fez, filtrou, incluiu, omitiu, etc:

---

grep semanickz texto-do-grep.txt
grep semanick* texto-do-grep*
grep start texto-do-grep.txt
grep "funal do texto" texto-do-grep.txt
grep -i semanickzaine texto-do-grep.txt
grep -i ana texto-do-grep.txt
grep -c semanickzaine texto-do-grep.txt
grep -ic semanickzaine texto-do-grep.txt
grep -v Ana texto-do-grep.txt
grep -iv Ana texto-do-grep.txt
grep -v Semanickzaine texto-do-grep.txt
grep -iv semanickzaine texto-do-grep.txt
grep Ana *
grep semanickzaine *

---

Procurando recursivamente por Ana em todos os diretórios existentes neste diretório em questão:

grep -r Ana *
grep -lr Ana *

---

Em que arquivo deste diretório está Ana?

grep -l Ana *

---

Usando a ferramenta grep junto com comando cat graças ao pipe. Execute os comandos abaixo:

clear
cat texto-do-grep.txt | grep acunda
clear
cat texto-do-grep.txt | grep -iv Ana

---

OBS:
Para usar comandos Linux o melhor é sempre obter o que precisa digitando o menos possível, mas em certos casos pode ser necessário digitar mais um pouco. Por isto, o Linux oferece ao usuário a criação de aliases. Aqui tem posts sobre como criar aliases. Aqui tem até listas de aliases que podem ser usados ou não por você. É só buscar aqui no blog.

---

Continuando...

---

O sinal -A significa after (depois). -A4 mostra 4 linhas depois da palavra indicada no comando. O sinal -B faz o oposto. Exemplo:

clear

grep -A4 beeg texto-do-grep.txt

grep -B4 beeg texto-do-grep.txt

---

Resultado:

EstudoLinux$ grep -A4
beeg texto-do-grep.txt
beeg
boog
# Comentário
Luag
luag

---

O comando acima é usado para analisar logs. Agora você pode saber o que vem antes e depois de uma string usando o grep.

---

OBS:
O fgrep não usa expressões regulares. O grep e o egrep usam. O melhor para expressões regulares neste momento, até ontem, é o egrep.

---

Tem muito mais a saber, mas isto aqui já dá para fazer bastante coisa e além disto, é um bom começo.


Até Breve!

🙂


Linux grep, egrep exemplos

semanickz

Linux comandos grep e egrep com exemplos

Linux-grep-egrep-exemplos

Qual é a diferença entre o Grep, o Egrep e o Fgrep no Linux?

Grep, Egrep e Fgrep são renomadas ferramentas de busca em sistemas Linux que podem ser usados ​​para procurar qualquer coisa, seja um arquivo, ou uma linha ou várias linhas no arquivo grep. Ele é muito vasto em funcionalidade, o que pode ser atribuído ao grande número de opções que ele suporta, como: pesquisar usando padrão de strings, ou reg-ex ou reg-ex com base em perl, etc.

Devido às suas diversas funcionalidades, ele possui muitas variantes, incluindo grep, egrep (GREP estendido), fgrep (GREP fixo), pgrep (GREP de processo), rgrep (GREP recursivo) etc. Mas essas variantes têm pequenas diferenças no grep original que as tornou popular e podem ser usado por vários programadores Linux para diferentes tarefas específicas.

A principal coisa que resta a ser investigada é quais são as diferenças entre as três variantes principais grep, egrep e fgrep do grep, que fazem com que os usuários do Linux escolham uma ou outra versão como por requisito.


Alguns Metacaracteres Especiais do grep:

+

Equivalente a uma ou mais ocorrências do caractere anterior.

?

Isso denota pelo menos 1 repetição do caractere anterior. Como a? Corresponderia a ou aa.

(

Início da expressão de alternância.

)

Fim da expressão de alternância.

|

Correspondência da expressão separada por |. Como: (a|b)cde corresponderia a abcde ou bbcde.

{

Este metacaractere indica o início do especificador de intervalo. Como: um {2} corresponde aa no arquivo a 2 vezes.

}

Esse metacaractere indica o especificador de fim de intervalo.

O mais usado deles neste momento para mim talvez seja o egrep. Ele é bom para usar com expressões regulares. Neste momento, só ele me interessa. Mas o egrep vem do grep então o que é grep?

grep ou Global Regular Expression Print é o principal programa de busca em sistemas Linux (Unix-like) que pode procurar qualquer tipo de string em qualquer arquivo ou lista de arquivos ou até mesmo a saída de qualquer comando.

Ele usa expressões regulares básicas, além das strings normais, como um padrão de pesquisa. Em Basic Regular Expressions (BRE), meta-caracteres como:

'{','}','(',')','|','+','?'

Perde o significado e são tratados como caracteres normais de string e precisam ser escapados se forem tratados como caracteres especiais.

grep usa o algoritmo Boyer-Moore para pesquisar rapidamente qualquer string ou expressão regular.

Exemplos:

grep -C 0 '(f|g)ile' check_file
grep -C 0 '\(f\|g\)ile' check_file

Quando o comando é executado sem escapar, ele procura pela string completa no arquivo. Mas quando os caracteres especiais foram escapados, em vez de tratá-los como parte da string, grep os tratou como metacaracteres e buscou por palavras arquivo ou urquivo no arquivo.

Comando Egrep. egrep ou grep -e é outra versão do grep ou do grep estendido. Esta versão do grep é eficiente e rápida quando se trata de procurar um padrão de expressão regular, uma vez que trata meta-caracteres como é e não os substitui como strings como no grep, e, portanto, você está livre do fardo de escapar deles no grep. Ele usa o ERE ou o conjunto de expressões regulares estendidas.

No caso do egrep, mesmo que você não escape dos meta-caracteres, ele os trataria como caracteres especiais e os substituiria por seu significado especial, em vez de tratá-los como parte da string.


Exemplos:

egrep -C 0 '(f|g)ile' check_file
egrep -C 0 '\(f\|g\)ile' check_file

Como aqui, egrep procurou por:


“file”


string quando os meta-caracteres não foram escapados como isso significaria pelo significado desses caracteres. Mas, quando esses caracteres foram escapados, egrep os tratou como parte da string e pesquisou por string completa no arquivo.:

“(f|g)ile”


Exemplo para encontrar apenas arquivos .mp3:

O grep pode ser muito útil para filtrar a partir do stdout.

find . –name “*.mp3” | grep –i nome-do-artista | grep –vi “nome-parcial-da-faixa-que-procuro”


Para saber melhor visite.

Linux REGEX básico bash comandos exemplos

semanickz

Comandos Bash aprenda REGEX Básico


Bash Scripting: Aprenda a usar o REGEX (Básico)


Expressões regulares ou REGEX são basicamente cadeias de caracteres que definem um padrão de pesquisa, elas podem ser usadas para executar operações de 'Pesquisa' ou 'Pesquisa e Substituição', bem como podem ser usadas para validar uma condição como política de senha etc.
É uma ferramenta muito poderosa que está à nossa disposição e a melhor coisa sobre o uso do REGEX é que ele pode ser usados ​​em quase todas as linguagens de computador. Então, se você é do Bash Scripting ou cria um programa em Python, pode usar.
Ou também pode escrever uma consulta de busca em uma única linha.
Existe uma grande possibilidade de talvez num futuro próximo os melhores lugares (seja lá o que isto signifique), estarem destinados as pessoas que tem pelo menos alguma noção de código e me parece neste momento, que o REGEX é importante sob a ótica desta suposição. Não esquecendo que em certos países neste momento, crianças já começam a vida estudantil tendo algo diretamente ligado a código em suas disciplinas.


Podemos usá-los no Bash usando o 'egrep', mas se você quiser usá-los em outros idiomas, como python ou C, você pode usar a parte regex. Começo mostrando um exemplo de regex. REGEX BASH Exemplo:
---
/t[aeiou]l/
---
Mas o que isso significa? Isso significa que o regex mencionado procurará uma palavra que comece com "t", tenha uma das letras "a e o o" no meio e a letra "l" como a última palavra. Pode ser "tel" "tal" ou "til" / Match pode ser uma palavra separada ou parte de outra palavra como "tilt", "brutal" ou "telefone". A sintaxe para usar regex com grep é:
---
egrep “termo-de-busca-REGEX” local-onde-está-o-arquivo

Não se preocupe se estiver parecendo esquisito agora, este foi apenas um exemplo para mostrar o que pode ser alcançado com o REGEX e acredite, este foi o mais simples dos exemplos. Podemos conseguir muito mais a partir dele. Vamos agora começar com o básico.

Noções básicas de Regex:
Agora vamos começar a aprender sobre alguns caracteres especiais que são conhecidos como metacaractéres. Eles nos ajudam a criar um termo de pesquisa mais complexo. A seguir, veja a lista de metacaractéres básicos.

---
. O Ponto
[] Colchetes.
[^] Colchetes e o chapéu do vovô.
* O asterisco.
+ O sinal de mais.
? O ponto de interrogação.
{n,} As chaves que irão encontrar ´n´ números ou itens precedentes.
{,m} Vai encontrar igual ou menos que m números de ítens.
\ A barra invertida que é um caractere de escape usado para incluir um metacaractere que você está procurando em um código, texto, string.

---
"Exemplos:"

Abro pelo menu do sistema, um editor de texto gráfico parecido por exemplo com o editor de texto leafpad e escrevo palavras, frases uma em baixo da outra sem espaços entre elas. Por exemplo as palavras:

bana
bena
bina
bona
buna
Linux
GNU/Linux
mundo linux
Mundo Linux
Estudos Linux
estudos_linux
dog
TaK
Linux
Shane é um pouco para jogar bola
diga
Stdaemon
Subapul
Semprol
Std
Std1
Std8
StdB
Stdstulaktilbaibtemp
digo
dgrub
dgrab
dgrib
Non
Nen
Nin
Nnn
nanan
taeil
tall
lake
lak
laaakkk
Study
Study1
Artorv
arterv
artirv
estudantes
estuudarrte
Study2
Study3
baeb
baib
baoba
estudo
St1234d
Stntfd
Tempk
Termik
Estudo
Laka
lala
tilt
tel
laek
tool
estudo2

---

E salvo o arquivo com o nome de:
Arquivo-estudo-Regex.txt

Aí abro o terminal pelo menú do sistema no diretório onde está este arquivo e executo comandos Linux Bash REGEX. Assim é que a gente aprende.


grep “d.g” Arquivo-estudo-Regex.txt
---
Este regex significa que estamos procurando por uma palavra que comece com d, termine com g e possa ter qualquer caractere no meio do arquivo. Da mesma forma, podemos usar o caractere de ponto qualquer número de vezes para o nosso padrão de pesquisa, como T......H
---
grep “N[oen]n” Arquivo-estudo-Regex.txt
---
Aqui, estamos procurando uma palavra que começa com N, termina com n e só pode ter ou o ou e ou n no meio. Podemos mencionar de um único para qualquer número de caracteres dentro das chaves quadradas (colchetes).
---
grep “St[^1-9]d” Arquivo-estudo-Regex.txt
---
Isso significa que podemos ter todas as palavras que começam com "St", terminam com a letra "d" e não podem conter números de 1 a 9.
---
grep “lak*” Arquivo-estudo-Regex.txt
---
isso significa que podemos combinar com 'lake' ou 'la' ou 'lakkkkk'.
---
grep “lak+” Arquivo-estudo-Regex.txt
---
Aqui, k deve ocorrer pelo menos uma vez em nossa busca, então nossos resultados podem ser 'lake' ou 'lakkkkk' mas não 'la'.
---
grep “ba?b” Arquivo-estudo-Regex.txt
---
A string bb ou bab como com '?' multiplicador podemos ter uma ou zero ocorrência do caractere.
---
OBS:
É muito importante ao usar multiplicadores ficar atento ao exemplo abaixo. Suponha que tenhamos um regex:

---
grep “S.*l” Arquivo-estudo-Regex.txt
---
Neste caso obtemos resultados pequenos, bobos e também temos talvez 'Shane é um pouco para jogar bola'. Mas por que nós pegamos 'Shane é um pouco para jogar bola', nós só estávamos procurando as palavras de nossa busca, então por que nós pegamos esta frase completa na nossa saída?
---
grep “S.*?l” Arquivo-estudo-Regex.txt
---
Isto irá corrigir o comportamento do nosso regex:
---
grep “S.*\.” Arquivo-estudo-Regex.txt
---
E irá procurar e combinar todas as palavras que terminam com um caractere de ponto.
---
"Para saber melhor visite a fonte no final deste post."
---
fonte
---
Aprendendo REGEX Linux Bash
---
Crio um arquivo de texto simples em um editor de texto tipo o leafpad. O nome do arquivo é:
---
mysampledata.txt
---
Colo neste arquivo o mysampledata.txt as linhas abaixo.
---
Fred apples 20
Susy oranges 5
Mark watermellons 12
Robert pears 4
Terry oranges 9
Lisa peaches 7
Susy oranges 12
Mark grapes 39
Anne mangoes 7
Greg pineapples 3
Oliver rockmellons 2
Betty limes 14

---
Abro o terminal onde está o arquivo de texto.
---
Digamos que desejamos identificar todas as linhas que continham a string mellon.
---
egrep 'mellon' mysampledata.txt
---
O comportamento básico do egrep é que ele imprimirá toda a linha para cada linha que contiver uma sequência de caracteres que corresponda ao padrão fornecido. É importante notar que não estamos procurando uma palavra, mas uma sequência de caracteres. Observe também que incluímos o padrão entre aspas. Isso nem sempre é necessário, mas é mais seguro adquirir o hábito de usá-los sempre. Eles são necessários se o padrão contiver caracteres que tenham um significado especial na linha de comando. Às vezes, queremos saber não apenas quais linhas correspondem, mas também o número da linha delas.
---
egrep -n 'mellon' mysampledata.txt
---
Ou talvez não tenhamos interesse em ver as linhas correspondentes, mas queremos saber quantas linhas corresponderam.
---
egrep -c 'mellon' mysampledata.txt
---
REVISANDO: Aprendendo Expressões Regulares. A melhor maneira de aprender expressões regulares é experimentar os exemplos e modificá-los um pouco para testar sua compreensão. É comum cometer erros em seus padrões enquanto você está aprendendo. Quando isso acontece, normalmente cada linha será correspondida ou nenhuma linha será correspondida ou algum conjunto obscuro. Não se preocupe se isso acontecer você não fez nenhum dano e pode facilmente voltar e tentar outra vez. Lembre-se de que você pode pressionar a seta para cima no seu teclado para obter os comandos recentes e modificá-los para não precisar redigitar o comando inteiro a cada vez.
---
Se você não está obtendo o resultado que deseja, aqui estão algumas estratégias básicas. Primeiro, verifique se há erros de digitação. Se você é como eu, então você está propenso a fazê-las. Leia o conteúdo aqui. Talvez o que você pensou que um operador em particular tenha feito seja ligeiramente diferente do que ele realmente faz e lê novamente, você notará um ponto que pode ter perdido na primeira vez.
---
Divida seu padrão em componentes individuais e teste cada um deles individualmente. Isso ajudará você a ter uma ideia de quais partes do padrão estão corretas e de quais partes você precisa ajustar.
---
Examine sua saída. Seu padrão atual pode não ter funcionado como você quer, mas ainda podemos aprender com ele. Observar o que realmente fizemos e usá-lo para ajudar a entender o que realmente aconteceu nos ajudará a descobrir o que devemos tentar mudar para nos aproximarmos do que realmente queremos.
---
As expressões regulares para usar no estudo do REGEX:
---
. (ponto) um único caractere.
? (interrogação) O caractere precedente corresponde a 0 ou 1 somente.
* (asterisco) o caractere anterior corresponde a 0 ou mais vezes.
+ (mais) o caractere anterior corresponde a 1 ou mais vezes.
{n} (n entre chaves) o caractere precedente corresponde exatamente a n vezes.
{n,m} (n vírgula m entre chaves) o caractere precedente corresponde a pelo menos n vezes e não mais que m vezes.
[agd] (agd entre colchetes) "the character is one of those included within the square brackets."
[^agd] - o caractere é um daqueles incluídos entre os colchetes.
[c-f] (c traço f entre colchetes) o traço dentro dos colchetes funciona como um intervalo. Neste caso, significa as letras c, d, e ou f.
() - nos permite agrupar vários caracteres para se comportar como um.
| (pipe) a operação OR lógica.
^ (circunflexo) tem que estar no início da linha.
$ (cifrão) corresponde ao início da linha.

---
Vamos começar.
---
egrep '[aeiou]{2,}' mysampledata.txt
egrep '2.+' mysampledata.txt
egrep '2$' mysampledata.txt
egrep 'or|is|go' mysampledata.txt
egrep '^[A-K]' mysampledata.txt
---
Para saber melhor visite a fonte:
Fonte
---
Até Breve! 🙂
---

Linux whatch exemplos

Linux comando whatch com exemplos


---
Comando watch do Linux - o utilitário watch permite executar um comando repetidamente. A seguir está a sintaxe deste comando:
---
watch [options] command
---
watch executa o comando repetidamente, exibindo sua saída e erros (a primeira tela cheia).
---
Isso permite que você observe a saída do programa mudar ao longo do tempo.
---
Por padrão, o programa é executado a cada 2 segundos. Por padrão, o relógio será executado até ser interrompido. Para interromper aperto duas teclas, as teclas Ctrl+c. A seguir estão alguns exemplos estilizados que devem dar uma boa idéia de como o comando watch funciona.
---
Como funciona o comando watch? O uso básico do watch é muito fácil - tudo o que você precisa fazer é executar a ferramenta com um nome de comando como entrada. Por exemplo:
watch date
---
Como funciona o comando watch? A primeira linha da saída informa que a saída do comando 'date' está sendo atualizada a cada 2 segundos (esse é o intervalo de tempo padrão), seguida pela data / hora atual do sistema. A segunda linha é a saída real do comando 'date' que é atualizada após alguns segundos.
---
Como fazer o relógio destacar a diferença entre as atualizações? Como já explicado na seção anterior, a saída do comando que está sendo rastreado é atualizada regularmente (após 2 segundos, por padrão). Caso você queira, você também pode fazer 'assistir' destacar a parte da saída que está mudando entre as atualizações. Isso você pode fazer usando a opção de linha de comando -d. Por exemplo:
watch -d date
---
Como já explicado, a saída do comando que está sendo rastreado é atualizada regularmente (após 2 segundos, por padrão). Caso você queira, você também pode fazer 'assistir' destacar a parte da saída que está mudando entre as atualizações. Isso você pode fazer usando a opção de linha de comando -d. Por exemplo:
watch -n 5 date
---
Este comando garantirá que a saída seja atualizada a cada 5 segundos. Por favor, note que intervalos inferiores a 0,1 segundos não são permitidos. Nota: Para garantir que o intervalo entre intervalos seja respeitado com muita precisão, use a opção de linha de comando -p.
---
Faça o watch tentar executar o comando a cada intervalo de segundos. Experimente com ntptime e observe como os segundos fracionários ficam quase) o mesmo, ao contrário do modo normal, onde eles aumentam continuamente.
---
Como desligar o cabeçalho na saída? Se desejar, você também pode pedir 'watch' para desativar o cabeçalho, mostrando o intervalo, o comando e a hora atual na parte superior da tela, bem como a seguinte linha em branco. Isso pode ser feito usando a opção de linha de comando -t. Por exemplo:
watch -t date
---
Como fazer o relógio sair quando a saída muda? Se você quiser que o comando 'watch' seja encerrado após a detecção de uma alteração na saída, use a opção de linha de comando -g. Por exemplo:
watch -g free
---
Assim, sempre que o consumo de memória no sistema for alterado, o comando watch será encerrado.
---
Para saber mais visite:
fonte
---
Até breve! 🙂
---

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 -n1 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 é diferentes e faz coisas que os outros não fazem.

---

echo $0
echo $SHELL
tail /etc/passwd

---

Uso de aspas:

caracteres especiais.

* / $ ``

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

---

Aspas protegem.

echo *

echo "*"

aspas duplas protegem o caractere.

Pode usar apóstrofos para proteger.

echo '*'

Mas 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:

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.

---

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 \nNunca \n \n# Um comentário \n \nnever\nOpera \nopus \nbaiog \nbeirag \nbicag \nquerer \nQueijo \nLeva \nLinux \nlinux \nLinuxDistro \nHostel \nhostel \nLinux \nlinux \nSistema operacional Linux \nGNU \ngnu \nGNULinux \ngnulinux \n' > Aula1.txt

---

Comandos para imprimir o texto no terminal:

cat Aula1.txt
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*

---

Resultado do REGEX com File Globbing:

$ egrep "b[a]*" 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

---

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

---

REGEX 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 exemplos REGEX asterisco:

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

---

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

---

Para por aqui hoje. Sabe, aqui no Brasil a crise tá braba mesmo!

A gente paga para aprender qualquer coisa na internet.

Paga para aprender a digitar, paga para saber shell script, para para saber File Globbing e para caro para aprender REGEX e eu também pago.

Mas não cobro nada para transmitir o conhecimento meu, que foi adquirido por mim através do meu estudo e esforço pessoal.

Existem bloqueios para conteúdo gratúito oferecido por outros sites em outros países, em universidades gratúitas do exterior que você poderia aprender tudo de graça se souber estudar estas coisas em inglês. Mas se você está no Brasil tudo passa por um filtro e quem quer aprender é rastreado e muitas vezes corre o risco de ser hackeado. Não por estrangeiros, mas talvez pelos nossos irmãos brasileiros que precisam sobreviver. Talvez. Ou não. Ou não.

---

Até Breve!

---

:)

---



Me zipa, me unzipa!



Linux comandos para compactar diretórios e arquivos

---

OBS:

Sem enrola VPN Gratis

---

O Zip é uma ferramenta de compactação que está disponível na maioria dos sistemas operacionais até ontem.

---

Vamos ver como instalar, usar e dicas sobre o comando zip.

---

Instalação:

Instalar zip e unzip pela central de programas da sua Distro Linux.

---

Tutorial começa

Abra o terminal onde está/estão o(s) arquivo/diretório(s) a ser(em) compactado/descompactado(s) em zip.

---

Zipando arquivos individualmente:

zip -r nome-para-o-arquivo.zip arquivo-a-ser-zipado1 arquivo-a-ser-zipado2 diretório-a-ser-zipado

---

OBS:

Será criado um arquivo zip chamado de nome-para-o-arquivo.zip.

O -r do zip -r é usado para o caso de existirem sub-diretórios dentro do diretório a ser compactado e nesta anotação aqui, estou usando -r em tudo pois, se for apenas um arquivo acredito faz o serviço do mesmo jeito.

---

Para descompactar:

unzip nome-para-o-arquivo.zip

---

OBS:

Se está em outro lugar do sistema acho que dá para descompactar por exemplo:

unzip ~/Downloads/nome-para-o-arquivo.zip

---

Zipando um diretório:

zip -r nome-para-o-diretório-a-ser-zipado.zip ~/caminho/para/o/diretório/

---

Veja só isto abaixo

---

Exemplo terminal aberto onde está o arquivo a ser zipado e então zipando diretório ~/bin/ da home do usuário:

zip -r bin-zipado-2018.zip ~/bin/

---

OBS: Será criado um pacote chamado de bin-zipado-2018.zip.

---

Para descompactar o pacote bin-zipado-2018.zip:

unzip bin-zipado-2018.zip

---

Pode saber informações sobre os pacotes criados com o comando:

ls -lC nome-do-arquivo.zip

ls -lhC caminho/para/o/pacote/zip/nome-do-arquivo.zip

---

Zipar um diretório para um local diferente no sistema?

---

Veja só este exemplo aqui.

Criar um arquivo zip de um PDF que está ~/Documentos/ e se chama fulano.pdf para o diretório ~/Imagens e estou em ~/Vídeos/

---

Exemplo abaixo.

---

1) Criar arquivo fulano.pdf em Documentos com o comando:

touch ~/Documentos/fulano.pdf

2) Ir para o diretório Vídeo:

cd ~/Vídeos/

3) Do diretório Vídeo criar pacote fulano.zip em Imagens sendo que o arquivo está em Documentos:

zip -r ~/Imagens/fulano.zip ~/Documentos/fulano.pdf

---

Conferindo arquivos e pacotes pelo terminal:

1) ls -tlC ~/Imagens/ | head

2) ls -tlC ~/Documentos/ | head

3) ls -tlC ~/Vídeos/ | head

4) pwd

---

OBS:

Abra o seu gerenciador de arquivos e confere se está tudo certo. Para mim funcionou direitinho. Este conhecimento é útil para fazer coisas muitíssimo importantes.

---

Leia o conteúdo de um arquivo compactado sem extrair o arquivo

---

Como posso ler o conteúdo de um determinado arquivo em um arquivo sem extrair o arquivo .zip em que ele está contido?

---

Listar o conteúdo de um arquivo ZIP para saber o que tem dentro dele:

unzip -l nome-do-arquivo.zip

---

Use a opção -c para gravar o conteúdo dos arquivos nomeados na stdout (tela) sem precisar descompactar todo o arquivo. Canalize a saída para menos, caso contrário, todo o arquivo irá para a tela antes que você possa lê-lo.

---

unzip -c nome-do-arquivo.zip | less

unzip -c nome-do-arquivo.zip | head

unzip -c nome-do-arquivo.zip | tail

---

Para saber melhor:

Visite

---

Até Breve!

---

Dicas, críticas e comentários positivos são muito bem-vindos!

🙂

---

fonte

---

Post do semanickz (apenas um "average joe")

---

Quem precisar entrar em contato comigo, por favor, siga o procedimento abaixo por sua própria conta e risco (Kkkkk):

Contate-me!

Tranquilo(a)!