Linux shell script instrução case


A instrução case


A instrução case é uma boa alternativa para a instrução

if-then-else-fi (multinível)

O case permite que você combine vários valores com uma variável.
É mais fácil ler e escrever.


Para saber usar o case é necessário conhecer e saber usar o comando test.
Conhecer e saber usar if then else e fi.
Saber declarar variáveis junto com o if then else e fi somado ao comando test.


Exemplo:

## Declarando variável
VAR5=$1

## if, comando test (outra declaração) e then
if test "$1" -gt 1; then
	echo "$1 é maior que 1"
## else
else
	echo "$1 não é 1"
## fi
fi

O mesmo que o de cima :

VAR5=$1

if [ "$1" -gt 1 ]; then
	echo "$1 é maior que 1"
else
	echo "$1 não é 1"
fi

A instrução case permite que:

você verifique facilmente o padrão (condições).
Em seguida, processe uma linha de comando.
Se essa condição for avaliada como verdadeira.


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


*) atua como padrão e é executado se nenhuma correspondência for encontrada. O padrão pode incluir curingas.


Você deve incluir dois ponto e vírgula

;;

no final de cada comandoN.


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


O esac é sempre necessário para indicar a declaração de final de caso.


Exemplo :

#!/bin/bash

#====================
## Data: 18-08-2020
## Nome: case_comando_argumentos.sh
## Exemplo de uso:
## ./case_comando_argumentos.sh -e nome_do_arquivo.txt
#====================

# Declarando variáveis
OPT=$1   	# opção
FILE=$2  	# nome do arquivo

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

echo
echo "Listando os 10 primeiros arquivos."
echo
sleep 3

	ls -t | head
	echo
read -p "Tecle Enter para continuar."

## 		test -e e -E correspondência de
## 		args de linha de comando

case $OPT in
  -e|-E)
  	echo "Editando arquivo $2 ..." 	## certifique-se de que o nome do arquivo
  									## foi passado corretamente, caso contrário,
  									## será exibido um erro

  	[ -z $FILE ] && { echo "Falta o nome do arquivo"; exit 1; } || nano $FILE
  	;;

  -c|-C)
  	echo "Exibindo arquivo $2 ..."

  	[ -z $FILE ] && { echo "Falta o nome do arquivo"; exit 1; } || cat $FILE
  	;;

  -d|-D)
  	echo "Hoje é $(date)"
  	;;

   *)
    echo "Argumento ruim!"
    echo "Uso: $0 -ecd nome-do-arquivo"
    echo "	-e file : Edita o arquivo."
    echo "	-c file : Exibe o arquivo."
    echo "	-d      : Mostra data e hora atual."
    ;;

esac

Conclusão :

A instrução case pode ser entendida por seres humanos comuns. O exemplo final é sofisticado mas, o trabalho que realiza é muito simples.

O usuário após criar o Bash shell script, dá permissão de execução. Abre o terminal onde o script está. Digita o nome do script com uma de 3 opções -e, -c e -d. A opção -e vai abrir um arquivo no nano para o usuário poder editar. A opção -c permite que o usuário leia o arquivo. A opção -d informa a data e hora atual do do sistema. Você poderia fazer a mesma coisa de maneiras muito mais simples, até mesmo com um Bash shell script bem tosco com poucas linhas, mas, aí você não aprenderia a usar o case, variáveis, if, then, else, fi. E estes, ao contrário do script tosco que eu gosto, podem ser utilizados para realizar grandes trabalhos que valem ouro.


Até Breve!

🙂


Linux bash shell script – Aprendendo declarações em if

As principais instruções condicionais do bash shell script são if e case.

Abra o emulador de terminal. Leia, copie e cole. Repita o processo.

1- NOME=Polodorio

2- echo $NOME

3- echo "$NOME"

4- echo "$NOME" && echo "$?"

5- echo "$NOME" && echo "$?" && echo "$$"

Se o diretório (-d) /tmp/ existir é sucesso, acerto é zero erro é 1 e o número do processo pode ser revelado usando echo “$$”

Copie e cole no terminal…

TMP=/tmp/; if test -d "$TMP"; then echo 'Sucesso'; fi; echo "$?"; echo "$$"

Se o arquivo (-f) aliases que deveria estar em : /usr/share/mime/aliases existir é sucesso, acerto é zero erro é 1 e o número do processo pode ser revelado usando echo “$$”. Se o arquivo não existir não haverá resposta nenhuma.

Copie e cole no terminal…

ARQ=/usr/share/mime/aliases; if test -f "$ARQ"; then echo "Sucesso."; fi; echo "$?"; echo "$$"

Linux bash shell script – Aprendendo declarações em if!

Se a variável for maior que dez então é sucesso!

Veja este pequeno bash shell script que preparei :

#!/bin/bash

NUM=12
if test "$NUM" -gt 10; then
	echo Sucesso
fi
Copie e cole no terminal...

NUM=12; if test "$NUM" -gt 10; then echo "Sucesso"; fi
Copie e cole no terminal...

NUM=12; if [ "$NUM" -gt 10 ]; then echo "Sucesso"; fi

A exclamação (!) é um caractere de negação. Execute no terminal :

(Se 12 não for maior que 10 sucesso)

Copie e cole no terminal...

NUM=12; if test ! "$NUM" -gt 10; then echo 'Sucesso'; fi

De novo…
(Se 12 não for maior que 10 sucesso)

Copie e cole no terminal...

NUM=12; if [ ! "$NUM" -gt 10 ]; then echo 'Sucesso'; fi
(Se 12 não for maior que 20 sucesso)

Copie e cole no terminal...

NUM=12; if test ! "$NUM" -gt 20; then echo 'Sucesso'; fi
(Se 12 não for maior que 20 sucesso)

Copie e cole no terminal...

NUM=12; if [ ! "$NUM" -gt 20 ]; then echo 'Sucesso'; fi

Usando if then else e fi :

(Se 12 não for maior que 20 sucesso ou então não é maior que 10)

Copie e cole no terminal...

NUM=12; if test ! "$NUM" -gt 10; then echo 'Sucesso'; else echo "Não é maior que 10"; fi

OBS :
Notou que não usou o fechamento de else que é elif?

Mais um bash shell script.

#!/bin/bash

NUM=12

if test ! "$NUM" -gt 10
then
	echo 'Sucesso'
else
	echo "Não é maior que 10"
fi

## fim do script

Veja só isto…

Se 12 for maior que 10 e se 12 também for menor que 15, então sucesso.

Usando test e -a :

Copie e cole no terminal...

NUM=12; if test "$NUM" -gt 10 -a "$NUM" -lt 15; then echo 'Sucesso'; fi

OBS: pode usar o -a várias vezes.
#!/bin/bash

NUM=12

if test "$NUM" -gt 10 -a "$NUM" -lt 15
then
	echo 'Sucesso'
fi

## fim do script
(se 12 for maior que 10 e se 12 também for menor que 15, então sucesso)

Copie e cole no terminal...

NUM=12; if [ "$NUM" -gt 10 -a "$NUM" -lt 15 ]; then echo 'Sucesso'; fi
#!/bin/bash

NUM=12

if [ "$NUM" -gt 10 -a "$NUM" -lt 15 ]; then
	echo 'Sucesso'
fi

## fim do script

Veja só este que usa ou (OR)…

Se 12 for maior que 10 ou se 12 também for menor que 15, então sucesso.


Usando test e -o :

Copie e cole no terminal...

NUM=12; if test "$NUM" -gt 10 -o "$NUM" -lt 15; then echo 'Sucesso'; fi

NUM=12; if [ "$NUM" -gt 10 -o "$NUM" -lt 15 ]; then echo 'Sucesso'; fi

OBS:
pode usar o -o várias vezes e pode misturar o -o com o -a
o -a tem preferêncoa sobre o -o

#!/bin/bash

# if_basico.sh
# declaração if básica

clear
DATA=2020
if [ $1 -gt 100 ]
then
    echo "Ei, $DATA este sim é um número grande."
	pwd
	date
	ls -FC | head
fi

echo "$?"
echo "$$"
echo "$@"

## fim do script

Em uma só linha. Copie e cole no terminal :

clear; DATA=2020; if [ "$DATA" -gt 100 ]; then echo "Ei, $DATA este sim é um número grande."; pwd; date; ls -FC | head; fi; echo "Acerto ou erro : $?"; echo "Processo : $$"; echo "$@"

Copie e cole no terminal :

echo "Digite lsblk para a variável linux: " ; read linux

Copie e cole no terminal :

echo “$linux”

$linux

Conclusão :

Neste post aprendemos o básico sobre como efetuar declarações em if no bash do GNU/Linux. Ao aprender sobre declaração if sabemos melhor as variáveis. Vamos sair (exit). Se sair ok o exit code será zero. Se sair errado, o exit code será diferente de zero.

Ficamos por aqui. Até breve.

$ wordpress -e exit

🙂

Teste bash shell script telegram bot envia

#!/usr/bin/env bash

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

# test_telegram_bot_envia_stickers.sh
# precisa do: 1) token, 2) chat_id, 3) código do sticker
# (acha com getupdates info de um sticker enviado a alguém)

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

# ---- Variáveis ---- #

# TOKEN1=""

# URL_UP='https://api.telegram.org/bot"$TOKEN1"/getupdates'

# URLMSG="https://api.telegram.org/bot$TOKEN4/sendMessage"

# URL1="https://api.telegram.org/bot$TOKEN/sendMessage"

URL2="https://api.telegram.org/bot$TOKEN4/sendMessage"

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

clear

echo "*** Busque atualizações de bot e procure o id do bate-papo ***"

sleep 2

echo ""

read -p "Digite o Token de um bot : " TOKENUP

curl https://api.telegram.org/bot"$TOKENUP"/getUpdates

echo ""

echo "*** Colete informações... ***"

sleep 2

echo ""

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

read -p "*** Vamos ver os updates de outro bot? Tecle Enter ***"

read -p "Digite o TOKEN de outro bot : " TOKEN1

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

echo "Verificando..."

sleep 2

# curl "$URL_UP"

curl https://api.telegram.org/bot"$TOKEN1"/getupdates

echo ""

echo "*** Colete informações... ***"

sleep 2

echo ""

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

echo "*** Enviar sticker ***"

sleep 2

echo ""

read -p "Digite o token : " TOKEN3

read -p "Digite o chat_id : " CHAT_ID

read -p "Digite o código do sticker : " STICKER

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

# --------------- ANOTAÇÕES:

# EXEMPLOS:

# para enviar stickers

# https://api.telegram.org/bot/sendSticker?chat_id=&sticker=BCBBADAgADOQADflsDlKEqOOd72VLKAg

# https://api.telegram.org/bot"$TOKEN3"/sendSticker?chat_id=&sticker="$STICKER"

# URL2='https://api.telegram.org/bot"$TOKEN3"/sendSticker?chat_id=&sticker="$STICKER"'

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

# para enviar arquivos

# curl "chat_id=$CHAT_ID&sticker=$STICKER" https://api.telegram.org/bot"$TOKEN3"/sendDocument

# curl https://api.telegram.org/bot"$TOKEN3"/sendSticker?chat_id="$CHAT_ID"&sticker="$STICKER"

# teste alterado para enviar stickers:

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

# teste - ou este...
curl -v -F "chat_id=$CHAT_ID&sticker=$STICKER" https://api.telegram.org/bot"$TOKEN3"/sendSticker

sleep 3

# teste - ou este...
curl https://api.telegram.org/bot"$TOKEN3"/sendSticker?chat_id="$CHAT_ID"&sticker="$STICKER"

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

echo "Confere..."

sleep 2

echo ""

curl https://api.telegram.org/bot"$TOKEN3"/getupdates

echo ""

echo "*** Telegram bot enviar mensagem ***"

echo ""

# URL2="https://api.telegram.org/bot$TOKEN4/sendMessage"

read -p "Digite o Token : " TOKEN4

read -p "Digite o chat_id : " CHAT_ID

read -p "Digite a mensagem : " MSG

curl -s -X POST "$URL2" -d chat_id="$CHAT_ID" -d text="$MSG"

echo ""

echo ":Confere..."

curl https://api.telegram.org/bot"$TOKEN4"/getupdates

# fim do script

Linux comando sed fácil

Linux comando sed fácil

---

Comando Sed no Linux com exemplos - o comando sed é um editor de fluxo e pode executar muitas funções em arquivos como, pesquisar, localizar e substituir, inserção ou exclusão. Embora o uso mais comum do comando sed seja para substituição ou para localizar e substituir. Usando o sed, você pode editar arquivos mesmo sem abri-lo, o que é uma maneira muito mais rápida de encontrar e substituir algo no arquivo, do que primeiro abrindo esse arquivo num editor de texto, por exemplo o vim e depois alterando-o.

---

O sed é um poderoso editor de fluxo de texto. Pode fazer inserção, exclusão, pesquisa e substituição. O comando sed suporta expressão regular, o que permite executar uma correspondência complexa de padrões.

---

Sintaxe:

sed OPÇÕES... [SCRIPT] [ARQUIVO DE ENTRADA...]

---

Verifique a versão do sed:

sed --version

---

Substituição básica de texto:

echo "Linguagem Bash Script" | sed 's/Bash/Perl/'

---

Resultado é algo parecido com isto:

~:$ echo "Linguagem Bash Script" | sed 's/Bash/Perl/'
Linguagem Perl Script
~:$

---

Comando:

echo 'Domingo' | sed 's/Domingo/Domingo é feriado/'

---

Resultado é algo parecido com isto:

~:$ echo 'Domingo' | sed 's/Domingo/Domingo é feriado/'
Domingo é feriado

---

Comando:

echo 'Segunda' | sed 's/Segunda/Segunda é dia comercial/'

---

Resultado é algo parecido com isto:

~:$ echo 'Segunda' | sed 's/Segunda/Segunda é dia comercial/'
Segunda é dia comercial

---

Executo:

echo 'Terça' | sed 's/Terça/Terça não é feriado/'

---

Resultado é algo parecido com isto:

~:$ echo 'Terça' | sed 's/Terça/Terça não é feriado/'
Terça não é feriado

---

Executo:

echo 'linux é um clone do unix mas é linux' | sed 's/unix/linux/'

echo 'linux é um clone do unix mas linux não é unix' | sed 's/unix/linux/'

---

Resultado:

~:$ echo 'linux é um clone do unix mas é linux' | sed 's/unix/linux/'
linux é um clone do linux mas é linux

~:$ echo 'linux é um clone do unix mas linux não é unix' | sed 's/unix/linux/'
linux é um clone do linux mas linux não é unix

---

Lembro que: por padrão, o comando sed substitui somente a primeira ocorrência do padrão em cada linha e não substitui a segunda, terceira ... ocorrência na linha.

---

E em um arquivo de texto em um diretório?

---

Crio um diretório para testes. Dentro deste diretório, crio um arquivo de texto .txt chamado de 'texto-teste-sed.txt' com o seguinte:

O unix é ótimo.
O unix é de código aberto.
unix é sistema operacional livre.
aprenda sistema operacional.
unix linux qualquer unix ou linux você pode escolher.
O unix é fácil de aprender.
o unix é um sistema operacional multiusuário.
Aprenda unix.
O unix é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.
Segunda
Terça
Quarta
Quinta
Sexta
Sábado
Domingo

---

Dá para fazer isto pelo terminal:

cd

mkdir TESTES

cd TESTES

touch texto-teste-sed.txt

echo -e 'O unix é ótimo. \nO unix é de código aberto. \nunix é sistema operacional livre. \naprenda sistema operacional. \nunix linux qualquer unix ou linux você pode escolher. \nO unix é fácil de aprender. \no unix é um sistema operacional multiusuário. \nAprenda unix. \nO unix é uma ferramenta poderosa. \nOs sistemas Linux OS são ótimos. \nAproveite os sistemas Linux OS. \nSegunda \nTerça \nQuarta \nQuinta \nSexta \nSábado \nDomingo' > texto-teste-sed.txt

---

Como remover o espaço em branco do final das linhas?

Use um espaço em branco simples * ou [: blank:] * para remover todos os espaços possíveis no final da linha:

sed 's/ *$//' texto-teste-sed.txt

sed 's/[[:blank:]]*$//' texto-teste-sed.txt

---

Acontece muito:

Eu queria encontrar o texto chamado "foo" e substituído por "bar" no arquivo chamado "hosts.txt". Como uso o comando sed para localizar e substituir em sistemas Linux? O sed significa editor de stream. Ele lê o arquivo fornecido, modificando a entrada conforme especificado por uma lista de comandos sed. Por padrão, a entrada é gravada na tela, mas você pode forçar a atualização do arquivo.

O procedimento para alterar o texto em arquivos no Linux usando sed? Use o Stream EDitor (sed) da seguinte maneira:

sed -i 's/texto-antigo/novo-texto/g' texto-teste-sed.txt

O s é o comando substituto do sed para encontrar e substituir.
Ele diz ao sed para encontrar todas as ocorrências de 'texto antigo' e substituí-lo por 'novo texto' em um arquivo chamado input.txt.
Verifique se o arquivo foi atualizado:

more input.txt

---

Exemplo:

sed -i 's/Domingo/Bolhas/g' texto-teste-sed.txt

cat texto-teste-sed.txt

more texto-teste-sed.txt

---

Para deixar parecido com o que era antes:

sed -i 's/Bolhas/Domindo/g' texto-teste-sed.txt

cat texto-teste-sed.txt

more texto-teste-sed.txt

---

A sintaxe para encontrar e substituir textos usando sed?

sed 's/palavra1/palavra2/g' input.file

---

Como usar o sed para corresponder à palavra e executar encontrar e substituir? Neste exemplo, encontre apenas a palavra 'amor' e substitua-a por 'doente' se o conteúdo da linha for uma sequência específica, como FOO:

touch input.txt

echo -e "Amar é amor amor \nAmor é amar amor \nAmar é FOO amor amor" > input.txt

more input.txt

sed -i -e '/FOO/s/amor/doente/' input.txt

Para verificar as mudanças:

cat input.txt

---

Resultado:

~/bin:$ touch input.txt
~/bin:$ echo -e "Amar é amor amor \nAmor é amar amor \nAmar é FOO amor amor" > input.txt
~/bin:$ more input.txt
Amar é amor amor
Amor é amar amor
Amar é FOO amor amor
~/bin:$ sed -i -e '/FOO/s/amor/doente/' input.txt
~/bin:$ cat input.txt
Amar é amor amor
Amor é amar amor
Amar é FOO doente amor
~/bin:$

---

Substituindo ou sobrescrevendo uma string: o comando Sed é usado principalmente para substituir o texto em um arquivo. O comando sed simples abaixo substitui a palavra "unix" por "linux" no arquivo.

sed 's/unix/linux/' texto-teste-sed.txt

---

Aqui o "s" especifica a operação de substituição. Os "/" são delimitadores. O "unix" é o padrão de pesquisa e o "linux" é a string de substituição. Por padrão, como lembrei, o comando sed substitui a primeira ocorrência do padrão em cada linha e não substitui a segunda, terceira ... ocorrência na linha.

---

Resultado é algo parecido com isto:

TESTES:$ sed 's/unix/linux/' texto-teste-sed.txt
O linux é ótimo.
O linux é de código aberto.
linux é sistema operacional livre.
aprenda sistema operacional.
linux linux qualquer unix ou linux você pode escolher.
O linux é fácil de aprender.
o linux é um sistema operacional multiusuário.
Aprenda linux.
O linux é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Substituindo a nésima ocorrência de um padrão em uma linha: Use os sinalizadores /1, /2 etc para substituir a primeira e a segunda ocorrência de um padrão em uma linha. O comando abaixo substitui a segunda ocorrência da palavra "unix" por "linux" em uma linha.

sed 's/unix/linux/2' texto-teste-sed.txt

---

Resultado é algo parecido com isto:

TESTES:$ sed 's/unix/linux/2' texto-teste-sed.txt
O unix é ótimo.
O unix é de código aberto.
unix é sistema operacional livre.
aprenda sistema operacional.
unix linux qual um você pode escolher.
O unix é fácil de aprender.
o unix é um sistema operacional multiusuário.
Aprenda unix.
O unix é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Substituindo toda a ocorrência do padrão em uma linha: O sinalizador substituto /g (substituição global) especifica o comando sed para substituir todas as ocorrências da sequência na linha.

sed 's/unix/linux/g' texto-teste-sed.txt

---

Resultado é algo parecido com isto:

TESTES:$ sed 's/unix/linux/g' texto-teste-sed.txt
O linux é ótimo.
O linux é de código aberto.
linux é sistema operacional livre.
aprenda sistema operacional.
linux linux qual um você pode escolher.
O linux é fácil de aprender.
o linux é um sistema operacional multiusuário.
Aprenda linux.
O linux é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Substituindo da nésima ocorrência para todas as ocorrências em uma linha: Use a combinação de /1, /2 etc e /g para substituir todos os padrões da enésima ocorrência de um padrão em uma linha. O comando sed a seguir substitui a terceira, quarta, quinta ... palavra "unix" pela palavra "linux" em uma linha.

sed 's/unix/linux/3g' texto-teste-sed.txt

---

Resultado é algo parecido com isto:

TESTES:$ sed 's/unix/linux/3g' texto-teste-sed.txt
O unix é ótimo.
O unix é de código aberto.
unix é sistema operacional livre.
aprenda sistema operacional.
unix linux qual um você pode escolher.
O unix é fácil de aprender.
o unix é um sistema operacional multiusuário.
Aprenda unix.
O unix é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Parênteses no primeiro caractere de cada palavra: Este exemplo sed imprime o primeiro caractere de cada palavra entre parênteses.

echo "Bem Vindo Ao Semanickz Blog!" | sed 's/\(\b[A-Z]\)/\(\1\)/g'

---

Resultado é algo parecido com isto:

TESTES:$ echo "Bem Vindo Ao Semanickz Blog!" | sed 's/\(\b[A-Z]\)/\(\1\)/g'
(B)em (V)indo (A)o (S)emanickz (B)log!
TESTES:$

---

Substituindo a sequência em um número de linha específico: Você pode restringir o comando sed para substituir a sequência em um número de linha específico. Um exemplo é:

sed '3 s/unix/linux/' texto-teste-sed.txt

---

Resultado é algo parecido com isto:

TESTES:$ sed '3 s/unix/linux/' texto-teste-sed.txt
O unix é ótimo.
O unix é de código aberto.
linux é sistema operacional livre.
aprenda sistema operacional.
unix linux qual um você pode escolher.
O unix é fácil de aprender.
o unix é um sistema operacional multiusuário.
Aprenda unix.
O unix é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Duplicar a linha substituída com o sinalizador / p: O sinalizador de impressão / p imprime a linha substituída duas vezes no terminal. Se uma linha não possui o padrão de pesquisa e não é substituída, o / p imprime essa linha apenas uma vez.

sed 's/unix/linux/p' texto-teste-sed.txt

---

Resultado é algo parecido com isto:

TESTES:$ sed 's/unix/linux/p' texto-teste-sed.txt
O linux é ótimo.
O linux é ótimo.
O linux é de código aberto.
O linux é de código aberto.
linux é sistema operacional livre.
linux é sistema operacional livre.
aprenda sistema operacional.
linux linux qual um você pode escolher.
linux linux qual um você pode escolher.
O linux é fácil de aprender.
O linux é fácil de aprender.
o linux é um sistema operacional multiusuário.
o linux é um sistema operacional multiusuário.
Aprenda linux.
Aprenda linux.
O linux é uma ferramenta poderosa.
O linux é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
TESTES:$

---

Imprimindo apenas as linhas substituídas: Use a opção -n junto com o sinalizador de impressão / p para exibir apenas as linhas substituídas. Aqui, a opção -n suprime as linhas duplicadas geradas pelo sinalizador / p e imprime as linhas substituídas apenas uma vez.

sed -n 's/unix/linux/p' texto-teste-sed.txt

OBS:
Se você usar -n sozinho sem /p, o sed não imprimirá nada.

---

Resultado é algo parecido com isto:

TESTES:$ sed -n 's/unix/linux/p' texto-teste-sed.txt
O linux é ótimo.
O linux é de código aberto.
linux é sistema operacional livre.
linux linux qual um você pode escolher.
O linux é fácil de aprender.
o linux é um sistema operacional multiusuário.
Aprenda linux.
O linux é uma ferramenta poderosa.
TESTES:$

---

Substituindo a sequência em um intervalo de linhas: Você pode especificar um intervalo de números de linhas no comando sed para substituir uma sequência.

sed '1,3 s/unix/linux/' texto-teste-sed.txt

---

Resultado é algo parecido com isto:

TESTES:$ sed '1,3 s/unix/linux/' texto-teste-sed.txt
O linux é ótimo.
O linux é de código aberto.
linux é sistema operacional livre.
aprenda sistema operacional.
unix linux qual um você pode escolher.
O unix é fácil de aprender.
o unix é um sistema operacional multiusuário.
Aprenda unix.
O unix é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Aqui, o comando sed substitui as linhas com intervalo de 1 a 3.

sed '2,$ s/unix/linux/' texto-teste-sed.txt

OBS:
Aqui $ indica a última linha do arquivo. Portanto, o comando sed substitui o texto da segunda linha para a última linha no arquivo.

---

TESTES:$ sed '2,$ s/unix/linux/' texto-teste-sed.txt
O unix é ótimo.
O linux é de código aberto.
linux é sistema operacional livre.
aprenda sistema operacional.
linux linux qual um você pode escolher.
O linux é fácil de aprender.
o linux é um sistema operacional multiusuário.
Aprenda linux.
O linux é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Excluindo linhas de um arquivo específico: o comando SED também pode ser usado para excluir linhas de um arquivo específico. O comando SED é usado para executar a operação de exclusão sem abrir o arquivo. Exemplo:

sed '5d' texto-teste-sed.txt

---

Resultado é algo parecido com isto:

TESTES:$ sed '5d' texto-teste-sed.txt
O unix é ótimo.
O unix é de código aberto.
unix é sistema operacional livre.
aprenda sistema operacional.
O unix é fácil de aprender.
o unix é um sistema operacional multiusuário.
Aprenda unix.
O unix é uma ferramenta poderosa.
Os sistemas Linux OS são ótimos.
Aproveite os sistemas Linux OS.TESTES:$

---

Para deletar a última linha:

sed '$d' texto-teste-sed.txt

---

Para excluir uma linha do intervalo x até y

sed '3,6d' texto-teste-sed.txt

---

Para excluir da enésima até a última linha

sed '12,$d' texto-teste-sed.txt

---

Para excluir a linha correspondente de padrão

sed '/abc/d' texto-teste-sed.txt

---

É interessante de ler a man page do sed. Praticar alterando estes exemplos em outros arquivos de texto que criar.

---

Linux o comando basename exemplos

O comando basename exemplos? Comando basename no Linux?

Comando basename – Em sistemas operacionais do tipo Unix/Linux, o comando basename retira informações de diretório e sufixos dos nomes de arquivos.

Nome de base (basename) imprime o nome do arquivo NAME com os principais componentes de diretório removidos. Opcionalmente, também pode remover qualquer sufixo à direita.

Sintaxe: basename [SUFFIX] / basename OPTION … NAME …

Usando o comando basename:

O comando basename pode ser usado facilmente, basta escrever basename, seguido do nome do arquivo ou do nome completo do caminho. onde NAME refere-se ao nome do arquivo ou nome completo do caminho e OPTION refere-se às opções compatíveis com o comando basename e, no caso, se você deseja remover o sufixo de um arquivo, pode dar o nome do arquivo seguido pelo nome do SUFIX que deseja se livrar de.

Exemplos:

1) basename /usr/bin/sort (Produz a string “sort”).
2) basename include/stdio.h .h (Produz a string “stdio”).
3) basename -s .h include/stdio.h (Produz a string “stdio”).
4) basename -a any/str1 any/str2 (Produz a string “str1” seguido da string “str2”).

Opções do comando basename?

Opção -a, –multiple: esta opção permite suportar vários argumentos e tratar cada um como um NOME, ou seja, você pode fornecer vários nomes de arquivos ou nomes de caminhos completos com o uso da opção -a:

basename -a /usr/local/bin/al2 /usr/local/bin/al2.html

Opção -s, –suffix SUFFIX: Esta opção remove um sufixo à direita SUFFIX, como uma extensão de arquivo, remove um SUFIXO; implica em -a:

basename -s .html al2.html

-z opção: separa a saída com NULL em vez de uma nova linha, termina as linhas de saída com NULO, e não nova linha:

basename -az /usr/local/bin/al2 al2.html

– opção de ajuda (–help opção): exibe as informações da ajuda e sai:

basename –help z

–version option: exibe as informações da versão e sai:

basename –version

Exemplo:

~:$ basename –version
basename (GNU coreutils) 8.31
Copyright (C) 2019 Free Software Foundation, Inc.
Licença GPLv3+: GNU GPL versão 3 ou posterior <_ gnu.org=”gnu.org” licenses=”licenses” gpl.html=”gpl.html”>
Este é um software livre: você é livre para alterá-lo e redistribuí-lo.
NÃO HÁ QUALQUER GARANTIA, na máxima extensão permitida em lei.

Para que serve o basename?

Aplicação do comando basename? Por si só o basename não faz nada… Existem muitos utilitários disponíveis, que SÓ SÃO ÚTEIS QUANDO SE TRATA DE SCRIPTS DE SHELL e não tem nenhum aplicativo prático quando usado por si só, e O BASENAME ESTÁ NESSA CATEGORIA.

EXEMPLO de um SCRIPT DE SHELL que CONVERTE ARQUIVOS de imagem gif em arquivos de imagem png COM A AJUDA DO COMANDO BASENAME:

#!/usr/bin/env bash

# shell script para converter o formato de arquivo de imagem gif
# em formato de arquivo de imagem png

# exemplo for importante

for file in *.gif; do
# sair se não tiver arquivos
if [! -f $file];then
exit
fi

# — #

b=’basename $file .gif’
echo NOW $b.gif is $b.png
giftopnm $b.gif | pnmtopng >$b.png
done

# fim do script

OBS:
No shell script acima, o comando BASENAME é usado para EXTRAIR os NOMES de arquivos com a extensão .gif sem a extensão, para que possam ser CONVERTIDOS em ARQUIVOS .png.

Conclusão:
o nome da base (basename) retira informações e sufixos do diretório e dos nomes dos arquivos, ou seja, imprime o nome do arquivo NAME com os principais componentes de diretório removidos.

Até breve!

🙂

Linux browser w3m navegar na web pelo terminal

Navegar na web pelo terminal?

O W3M é um navegador de terminal para Linux. Ele tem alguns truques na manga, incluindo suporte para imagens, guias, tabelas, molduras e outros recursos que normalmente não estão incluídos nos navegadores da web dos terminais onde na web tudo é em modo texto, muito leve e rápido.

Estes navegadores modo texto remontam o início da internet, são antigos mas, recebem manutenção/atulização até hoje. Qualquer usuário linux acha terminal web browser para instalar no sistema. O mais antigo ainda em atividade, dizem ser o terminal web browser Lynx criado em 1992 porém, o w3m também é das antigas 1995.

Se você usa o Linux há algum tempo, provavelmente se lembra de usar um navegador de terminal para pesquisar no uma solução para o seu hardware quando o servidor X se recusou a carregar. Os servidores X modernos avançaram muito além disso, mas o W3M e outros navegadores de terminal ainda podem ser úteis. Instale o w3m pelo software center do seu sistema operacional.

Modo de uso:

w3m [opções] [URL ou arquivo]

w3m duckduckgo.com

Navegação básica – O W3M possui algumas opções de linha de comando, mas nenhuma é obrigatória. A única coisa que você precisa especificar é um endereço de página da web. Deseja abrir algum buscador? Basta usar o comando:

1- w3m duckduckgo.com
2- w3m start.duckduckgo.com
3- w3m google.com

Você pode usar as teclas de seta para mover o cursor ou clicar no local desejado para mover o cursor para lá.

Se você deseja digitar uma caixa de texto, selecione a caixa de texto com o cursor e PRESSIONE ENTER ANTES DE DIGITAR O TEXTO. O W3M trata as teclas pressionadas como comandos se você começar a digitar.

Carregue um hiperlink selecionando-o com o cursor e pressionando Enter.

Você não precisa selecionar os hiperlinks manualmente – pressione a tecla Tab para posicionar o cursor sobre o próximo hiperlink na página.

Shift-B retornará uma página.

Se você deseja carregar um URL diferente, pressione Shift-U e você receberá um prompt de URL.

Pressione Shift-H para visualizar a página de ajuda, se você quiser ver uma lista mais completa de atalhos de teclado.

O W3M suporta imagens, então onde elas estão? Bem, terminais como o gnome terminal e o konsole do kde não podem exibir as imagens do W3M.

Outros terminais, como o Xterm, podem. O W3M também exibirá imagens se você estiver executando em um console de buffer de quadros, portanto, não é necessário um servidor X em execução para aproveitar esse recurso.

Outro recurso que não funciona no gnome terminal ou no konsole é o menu do botão direito do mouse do W3M.

COMO NÓS VIVEMOS SEM ABAS?

Elas são um recurso essencial para navegadores da web. O W3M também inclui abas.

Basta pressionar Shift-T para abrir uma nova aba.

Você pode alternar entre as guias clicando nelas, mas estamos tentando ser ninjas terminais aqui.

Use as teclas {e} para alternar entre as guias sem tocar no mouse (que é Shift- [e Shift-]).

Direto da man page do w3m (w3m –help):

options:
-t tab set tab width
-r ignore backspace effect
-l line # of preserved line (default 10000)
-I charset document charset
-O charset display/output charset
-B load bookmark
-bookmark file specify bookmark file
-T type specify content-type
-m internet message mode
-v visual startup mode
-M monochrome display
-N open URL of command line on each new tab
-F automatically render frames
-cols width specify column width (used with -dump)
-ppc count specify the number of pixels per character (4.0…32.0)
-ppl count specify the number of pixels per line (4.0…64.0)
-dump dump formatted page into stdout
-dump_head dump response of HEAD request into stdout
-dump_source dump page source into stdout
-dump_both dump HEAD and source into stdout
-dump_extra dump HEAD, source, and extra information into stdout
-post file use POST method with file content
-header string insert string as a header
+ goto line
-num show line number
-no-proxy don’t use proxy
-4 IPv4 only (-o dns_order=4)
-6 IPv6 only (-o dns_order=6)
-no-mouse don’t use mouse
-cookie use cookie (-no-cookie: don’t use cookie)
-graph use DEC special graphics for border of table and menu
-no-graph use ASCII character for border of table and menu
-s squeeze multiple blank lines
-W toggle search wrap mode
-X don’t use termcap init/deinit
-title[=TERM] set buffer name to terminal title string
-o opt=value assign value to config option
-show-option print all config options
-config file specify config file
-help print this usage message
-version print w3m version
-reqlog write request logfile
-debug DO NOT USE

Até Breve!

🙂

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 bash script loop for exemplo

O look for é útil mesmo? Pode ser. Se quiser verificar a metadata de um ou cem arquivos .mkv em um diretório loop for é o que preciso.

#!/bin/bash

for mkvfile in *.mkv; do
exiftool "$mkvfile" #comando no mkvfile
done

# Pode usar outro loop for para remover a metadata.

for mkvfile in *.mkv; do
mkvpropedit "$mkvfile" --tags all:
done

#remove_alguma_metadata

Tem uns exercícios fáceis para praticar o loop for…

#!/bin/bash

for ALGO in ~/Documentos; do

ls -lah "$ALGO"

done

for ONDE in ~/; do

find "$ONDE" -empty > vazios.txt

done

# buscará arquivos e pastas vazios e escreverá a saída no arquivo vazios.txt


Até Breve!

🙂

Linux adicionar data ao nome de um arquivo pelo terminal

Tem um arquivo txt. Tem sempre no caminho um arquivo txt. Sh tem um monte de arquivo .sh. Havia um arquivo .sh no caminho e existe 4 (quatro anos) de arquivo .sh.

O objetivo é adicionar data (dia, mês, ano) ao nome de um arquivo declaro uma variável no arquivo .bash_aliases que está na pasta pessoal. Para achar ele digito: cd && ls -a. Usando editor de texto abro o .bash_aliases ou .bashrc e lá no final dele declaro uma variável chamada DDT. Ela fica colorida. Esta variável armazenará um comando. Tudo junto fica assim:

DDT=`date +%d-%m-%Y`.txt

Salvo o arquivo alterado. Tenho que avisar que o arquivo foi alterado com o comando:

source .bash_aliases

Modo de usar é com o comando touch?

Comando:

touch nome_do_arquivo_$DDT

Resultado:

nome_do_arquivo_02-03-2020.txt

Funcionou. Agora, como fazer isto com centenas de arquivos .sh?

Até Breve!

🙂

---

A confusão de frases e scripts do Shell

Vamos admitir: escrever frases e scripts usando comandos shell pode ser confuso.

Muitos dos nomes das ferramentas à sua disposição estão longe de ser óbvios em termos do que eles fazem (grep, tee e awk, alguém?) E, quando você combina dois ou mais, a sentença resultante se parece com algum tipo de palavrão alienígena.

Nenhuma das opções acima é ajudada pelo fato de que muitos dos símbolos que você usa para construir uma cadeia de instruções podem significar coisas diferentes dependendo do contexto.


Localização, localização e localização.

Tome o humilde ponto (.) Por exemplo.

Usado com instruções que estão esperando o nome de um diretório, significa:

find . -name "*.jpg"

traduz para encontrar neste diretório e todos os seus arquivos de subdiretórios que têm nomes que terminam em .jpg.

Ambos ls. e cd. agem como esperado, então eles listam e mudam para o diretório atual, respectivamente, embora não seja necessário incluir o ponto nesses dois casos.

Dois pontos, um após o outro, no mesmo contexto, ou seja, quando sua instrução está esperando um caminho de diretório significa o diretório imediatamente acima do atual. Se você está em /home/seu_directorio e execute o cd ..

você será levado para /home. Então, você pode pensar que isso ainda se encaixa nos pontos que representam a narrativa dos diretórios próximos e não é nada complicado, certo? Que tal isso, então? Se você usar um ponto no início de um diretório ou arquivo, isso significa que o diretório ou arquivo será oculto:

$ touch somedir/file01.txt somedir/file02.txt somedir/.secretfile.txt

$ ls -l somedir/
total 0
-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file01.txt
-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file02.txt

$ # Observe como não há .secretfile.txt na listagem acima.

$ ls -la somedir/
total 8
drwxr-xr-x 2 paul paul 4096 Jan 13 19:57 .
drwx------ 48 paul paul 4096 Jan 13 19:57 ..
-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file01.txt
-rw-r--r-- 1 paul paul 0 Jan 13 19:57 file02.txt
-rw-r--r-- 1 paul paul 0 Jan 13 19:57 .secretfile.txt

$ # A opção -a diz ao ls para mostrar todos os arquivos, incluindo os ocultos

E então tem vezes que você usa o ponto como um comando.

Sim! Você me ouviu: . é um comando completo.

É um sinônimo de source e você usa isso para executar um arquivo no shell atual, ao invés de executar um script de alguma outra maneira (o que geralmente significa que o Bash gerará um novo shell no qual executá-lo).

Confuso? Não se preocupe – tente isto:

Crie um script chamado myscript que contenha a linha

minhavariavel="Hello"

e execute-o da maneira regular, isto é, com sh myscript (ou fazendo o script executável com chmod a + x myscript e depois executando ./myscript). Agora tente e veja o conteúdo do myvar com eco (spoiler: Você não receberá nada). Isso ocorre porque, quando seu script coloca Hello em myvar, ele o faz em uma instância separada do shell bash. Quando o script termina, a instância gerada desaparece e o controle retorna ao shell original, onde o myvar nunca existiu. No entanto, se você executar o myscript assim:

. myscript

echo $myvar

-irá imprimir Hello para a linha de comando.

Você frequentemente usará o . (ou fonte) depois de fazer alterações no seu arquivo .bashrc, como quando você precisa expandir sua variável PATH. Você usa . para disponibilizar as alterações imediatamente em sua instância atual do shell.

Tente isto:

echo {1..10}


Exemplo:

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10


Ele irá imprimir a lista de números de 1 a 10. Neste contexto, significa começar com o valor à minha esquerda, contar até o valor à direita.

Agora tente isto:

echo {1..10..2}


Exemplo:

$ echo {1..10..2}
1 3 5 7 9


Você obterá 1 3 5 7 9. A parte ..2 do comando diz ao Bash para imprimir a sequência, mas não uma por uma, mas duas por duas. Em outras palavras, você obterá todos os números ímpares de 1 a 10.


Funciona de trás para frente também:

echo {10..1..2}


$ echo {10..1..2}
10 8 6 4 2


Você também pode preencher seus números com 0s. Fazendo:

echo {000..121..2}


$ echo {000..121..2}
000 002 004 006 008 010 012 014 016 018 020 022 024 026 028 030 032 034 036 038 040 042 044 046 048 050 052 054 056 058 060 062 064 066 068 070 072 074 076 078 080 082 084 086 088 090 092 094 096 098 100 102 104 106 108 110 112 114 116 118 120


irá imprimir cada número par de 0 a 121 como este:

000 002 004 006 … 050 052 054 … 116 118 120


Mas como essa construção geradora de seqüência é útil? Bem, suponha que uma das resoluções do seu Ano Novo seja ter mais cuidado com suas contas. Como parte disso, você deseja criar diretórios nos quais classificar suas faturas digitais dos últimos 10 anos:

mkdir {2009..2019}_Invoices

Trabalho executado com sucesso. Veha a sua área de trabalho, ou diretório onde executou o comando.


Este assunto é bem instigante e dá o que pensar. Para saber mais e melhor visite:

http://zap.in/0qK5j


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!

🙂


Comando Linux unzip

---

Compactar arquivos deixa mais fácil e rápido transferir dados entre computadores.

Arquivo compactado economiza espaço em disco e facilita o download de arquivos da internet. Economiza largura de banda pois usa menos.

  • Como ver o conteúdo de um arquivo zip? Abra o terminal onde está o arquivo exemplo.zip e execute:

unzip -l exemplo.zip

  • Para descomprimir um arquivo a regra até ontem, era mais ou menos:

unzip nome-do-arquivo.zip

  • Se está no diretório Imagens e quer extrair um,arquivo que esta em Downloads:

unzip ~/Downloads/nome-do-arquivo.zip

  • Para descomprimir múltiplos arquivos zip no mesmo diretório abra o terminal onde estão os arquivos 01 e 02 (por exemplo) e:

unzip 01-nome-do-arquivo.zip 02-nome-do-arquivo.zip

  • Para descomprimir vários arquivos que estão em um mesmo diretório com um comando só, execute com atenção:

unzip '*.zip'

  • Pode extrair um arquivo zip para um diretório diferente:

unzip nome-do-arquivo.zip -d caminho/para/o/diretório/

  • E para zipar arquivos? Os arquivos compactados são usados ​​quando você precisa economizar espaço e copiar arquivos grandes de um lugar para outro.

zip nome-do-diretório *

  • Para compactar todos os arquivos, incluindo os arquivos ocultos em uma pasta por exemplo a querida pasta home cheia de arquivos de configuração:

zip home * .*

---

Estes são apenas os exemplos mais básicos. Tem mais coisas. Mas já é um bom começo.

---

Bash kill killall pkill xkill

---

Linux: kill killall pkill xkill

---

KILL - MATAR O PROCESSO INFORMANDO O PID

QUE PROCESSO MATAR? COMANDO:

ps aux

DEMORA E DÁ TRABALHO.

SABER O NOME DO PROCESSO E MATÁ-LO:

pidof nome-do-processo

EXEMPLO ABRO O TERMINAL PELO MENU DO SISTEMA E DIGITO:

1) gedit & exit

2) pidof gedit

3) 5295

4) kill -SIGTERM 5295

5) kill -TERM 5295

6) kill -15 5295

7) kill -9 5295

---

KILLALL e PKILL - MATAR PROCESSO INFORMANDO O NOME:

8) killall -9 gedit
Ou:
pkill gedit
Ou:
pkill --signal SIGKILL gedit

---

MATAR JANELA TRAVADA:

COMANDO:

9) xkill

O cursor vai se transformar, indicando que está pronto para marcar a janela travada e matar ela.

---

Até Breve!

:)

---

Saber arquivos por data e hora da modificação

Como localizar e classificar arquivos com base na data e hora da modificação no Linux


---
Normalmente, temos o hábito de salvar muitas informações em forma de arquivos em nosso sistema. Alguns, arquivos ocultos, alguns mantidos em uma pasta separada criada para nossa facilidade de compreensão, enquanto alguns são como são. Mas toda essa coisa preenche nossos diretórios; geralmente o desktop, fazendo com que pareça uma bagunça. Mas, o problema surge quando precisamos procurar por um arquivo específico modificado em determinada data e hora nesta enorme coleção.
---
O Linux tem comandos que, se usados separadamente ou juntos, podem ajudar a procurar um arquivo ou classificar uma coleção de arquivos de acordo com o nome, data de modificação, hora da criação ou até mesmo qualquer filtro que você possa aplicar para obter seu resultado.
---
Alguns Comandos:

ls | sort | head
find | cat


Sobre estes comandos e exemplos:


ls -t
lista arquivos no formato de listagem longo e classifica arquivos com base na data de modificação, a mais nova primeiro.
---
OBS:
Para ordenar em ordem inversa, use a opção '-r' com este comando.
---
ls -ltu
Lista arquivos com base no horário do último acesso. Faz listagem de arquivos no diretório com base no horário do último acesso, ou seja, com base na hora em que o arquivo foi acessado pela última vez, não modificado.
---
ls -ltc
Lista arquivos com base no horário da última modificação. Realiza listagem de arquivos no diretório com base na hora da última modificação das informações de status do arquivo ou no "ctime". Esse comando listaria esse arquivo primeiro, cujas informações de status, como proprietário, grupo, permissões, tamanho etc., foram alteradas recentemente.
---
OBS:
Se a opção '-a' for usada com os comandos acima, eles podem listar e ordenar até mesmo os arquivos ocultos no diretório atual, e a opção '-r' lista a saída na ordem inversa
---
Para uma classificação mais aprofundada, pode usar a classificação no comando 'output' do find, no entanto, o ls também pode ser usado, mas é mais útil, pois a saída pode não ter apenas o nome do arquivo, mas quaisquer campos desejados pelo usuário.
---
Classificando arquivos com base no mês:

Aqui, usamos o comando find para localizar todos os arquivos no diretório raiz (‘/’) e, em seguida, imprimir o resultado como:
Mês em que o arquivo foi acessado e, em seguida, nome do arquivo. Desse resultado completo, aqui listamos as 11 primeiras entradas.
find / -type f -printf "\n%Ab %p" | head -n 11
---
O comando abaixo classifica a saída usando a chave como primeiro campo, especificado por '-k1' e, em seguida, classifica em Mês conforme especificado por 'M' antes dele.
find / -type f -printf "\n%Ab %p" | head -n 11 | sort -k1M
---
Classificar arquivos com base na data.
Aqui, novamente, usamos o comando find para localizar todos os arquivos no diretório raiz, mas agora vamos imprimir o resultado como: última data em que o arquivo foi acessado, última vez que o arquivo foi acessado e depois nome do arquivo. Disso tiramos as 11 primeiras entradas.
find / -type f -printf "\n%AD %AT %p" | head -n 11
---
O comando de classificação abaixo primeiro classifica com base no último dígito do ano, depois classifica com base no último dígito do mês na ordem inversa e finalmente classifica com base no primeiro campo. Aqui, "1,8" significa 8ª coluna do primeiro campo e "n" à frente significa "ordenação numérica", enquanto "r" indica ordenação inversa.
find / -type f -printf "\n%AD %AT %p" | head -n 11 | sort -k1.8n -k1.1nr -k1
---
Classificando arquivos com base no tempo.
Aqui, novamente, usamos o comando find para listar os 11 principais arquivos no diretório raiz e imprimir o resultado no formato: o arquivo da última vez foi acessado e, em seguida, nome do arquivo.
find / -type f -printf "\n%AT %p" | head -n 11
---
O comando abaixo classifica a saída com base na primeira coluna do primeiro campo da saída, que é o primeiro dígito da hora.
find / -type f -printf "\n%AT %p" | head -n 11 | sort -k1.1n
---
Ordenação de Ouptut de ls -l com base em Data.
Esse comando classifica a saída do comando 'ls -l' com base no sexto mês de campo, e então com base no sétimo campo que é data, numericamente.
ls -l | sort -k6M -k7n
---
Da mesma forma, por ter algum conhecimento do comando sort, você pode classificar quase qualquer listagem com base em qualquer campo e até mesmo em qualquer coluna que desejar.

Todos estes comandos acima podem ser usados no bash scripting (shell script) de acordo com a necessidade.

Esses foram alguns dos truques para ajudar você a classificar arquivos com base em Data ou Hora. Você pode ter seus próprios truques construídos com base neles.

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


Até Breve!
:)

Fonte
---

:: Extra ::


---
Linux comando sort exemplos simples...
---
Crie um texto em uma pasta da tua home. Abra o terminal onde está o texto. Execute:
---
1) sort meu-txt-frases-linhas-palavras-numeros.txt
2) sort meu-txt-frases-linhas-palavras-numeros.txt > sorteado.txt
3) cat sorteado.txt
4) sort -r sorteado.txt > reversorteado.txt
5) cat reversorteado.txt
6) ls -l /home/$USER > /home/$USER/Downloads/lsl.txt
7) cd Downloads/ ; cat lsl.txt
8) sort -nk2 lsl.txt
---
Como o próprio nome indica, o comando de ordenação Unix/Linux permite classificar informações de texto. Este artigo compartilha vários exemplos do comando de classificação do Linux.
Ordenar a saída do comando "ls"
Você pode usar o comando de classificação do Linux para classificar todos os tipos de saída de outros comandos. Por exemplo, aqui está um exemplo que classifica a saída do comando ls -al:

ls -al | sort -n -k5
---
O -n no exemplo significa "ordenar numericamente", e a opção -k5 significa desativar a coluna cinco. Como outros comandos Unix/Linux, essas opções de comando de classificação podem ser combinadas e encurtadas, assim:

ls -al | sort -nk5
---
Ordenação da saída do comando "ps" - De tempos em tempos, você desejará classificar a saída do comando ps do Linux e, novamente, o comando sort pode ser seu amigo. Você pode apenas ordenar alfabeticamente pela primeira coluna (nome de usuário):

ps auxw | sort
---
Ou você pode ordenar numericamente pela coluna dois (o campo PID):

ps auxw | sort -nk2
---
Você também pode reverter esse tipo com a opção -r:

ps auxw | sort -rnk2
---
Classificando o conteúdo do arquivo com 'cat' - Você também pode classificar o conteúdo de um arquivo com o comando de classificação do Linux. Aqui está o comando 'cat' que no terminal mostrará o que um arquivo chamado 'arquivos' parece antes de ser visto posteriormente com o comando 'sort':

cat files
sort files
---
É muito importante notar que este comando não classifica o arquivo atual, apenas exibe a saída ordenada no seu terminal. Para ter a saída classificada para outro arquivo, você executaria um comando como este:

sort files > arquivos-sorted.txt
---
FINALIZANDO:
1) sort texto.txt - Organiza o arquivo texto.txt em ordem crescente.
2) sort texto.txt -r - Organiza o conteúdo do arquivo texto.txt em ordem decrescente.
3) cat texto.txt|sort - Faz a mesma coisa que o primeiro exemplo, só que neste caso a saí­da do comando cat é redirecionado a entrada padrão do comando sort.
4) sort -f texto.txt - Ignora diferenças entre letras maiúsculas e minúsculas durante a organização.
5) sort 1 -3 texto.txt - Organiza o arquivo texto.txt usando como referência a segunda até a quarta palavra (segundo ao quarto campo) que constam naquela linha.
6) sort -t : 2 -3 passwd - Organiza o arquivo chamado passwd usando como referência a terceira até a quarta palavra (terceiro ao quarto campo).
- OBS:
Note que a opção -t especifica o caracter ":" como delimitador de campos ao invés do espaço. Neste caso, o que estiver após ":" será considerado o próximo campo.
---

Linux comando wget exemplos


Linux exemplos comando wget


Download de um simples arquivo:


wget endereço-download-do-arquivo

---

O wget informa o percentual de download, quantidade de bytes baixados, velocidade de download atual, tempo restante para completar a tarefa.

---

Posso baixar um arquivo com wget e salvar com nome diferente ou em diretório diferente:

wget endereço-download-do-arquivo -O novo-nome-para-o-arquivo

---

O wget pode limitar a velocidade de download do wget

Ao executar o aplicativo, ele vai buscar usar toda a banda possível, para terminar logo a tarefa. Em alguns casos, isto pode ser problema em um servidor de produção...

wget --limit-rate=300k endereço-download-do-arquivo

---

Para continuar um download interrompido. Reiniciar um download no ponto em que ele parou, uso a opção -c:

wget -c endereço-download-do-arquivo

---

Download em background

É possível deixar o wget rodando “nos bastidores”, enquanto trabalha no mesmo terminal. Pode, por exemplo rodar vários wget nos bastidores, usando este método – que é útil quando há um grande número de grandes arquivos para ser baixados, mesmo que de sites diferentes.

wget -b endereço-download-do-arquivo1 endereço-download-do-arquivo2 endereço-download-do-arquivo3

---

Como padrão, o wget irá enviar um log desta atividade pro arquivo wget-log. Você pode olhar este log, durante a atividade da seguinte forma:

tail -f wget-log

---

Se quiser interromper todos os processos do wget em execução, use o comando:

killall wget

---

Wget disfarçar de navegador com -user-agent

Alguns sites tentam bloquear o raciocínio de solicitações do wget de que ele não é originário de um navegador. Então, vamos disfarçar os acessos do wget aos sites para dar a impressão de que ele é originário de um navegador como o Firefox. É assim que você pode tentar fazer isso:

wget -r -p -U Mozilla https://getch.wordpress.com

---

Posso tentar usar o wget “disfarçado” de Firefox:

wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" endereço-download-do-arquivo

---

Posso baixar um site completo via wget usando o parâmetro --mirror:

wget --mirror -p --convert-links -P ./LOCAL http://www.site.com.br

Onde:

-mirror (liga as outras opções do wget adequadas para fazer o espelhamento do site em questão)

-p (baixa todos os arquivos necessários para que o site inteiro possa ser exibido localmente)

-convert-links (depois de baixar, converte os links em documentos para visualização local)

-P (grava todos os arquivos baixados dentro do diretório especificado)

---

Espelhe um site inteiro para leitura off-line. O formato é:

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

---

Fonte

Variáveis, Bash shell e sub shell

Linux - Variáveis, Bash shell e sub shell

Como atribuir a saída de um comando shell a uma variável de shell sob o sistema operacional Unix? Por exemplo, armazenar a saída do comando date em uma variável chamada $AGORA ou $VAR. Como faz isso? E outras coisas fáceis e úteis sobre variáveis tem muita? Alguma coisa? Qualquer coisa?

Anotações interessantes... Veja só:


Um computador deve ser capaz de armazenar informações e, posteriormente, fazer operações com essas informações. Deveria haver uma maneira de armazenar informações e depois recuperar essas informações. Os programas de computador também lidam com armazenamento e recuperação de informações. Para armazenar informações, precisamos de espaço de armazenamento (memória do computador). Para recuperar as informações armazenadas na memória, precisamos especificar o local de armazenamento onde as informações são armazenadas. Então, basicamente, precisamos de um nome ou algum tipo de identificador para recuperar as informações armazenadas. É aqui que as variáveis entram em cena...

VAR=$(nome-do-comando-aqui)

VAR=$(nome-do-comando-aqui arg1)

VAR=$(/caminho/para/comando)

VAR=$(/caminho/para/comando arg1 arg2)



OBS:
Não coloque nenhum espaço após o sinal de igual e o comando deve estar no lado direito de =


Exemplos, para armazenar a saída do comando date em uma variável chamada VAR, insira:


VAR=$(date)

OU:

VAR=`date`

Para exibir o resultado de retorno (ou a saída armazenada em uma variável chamada $now), use o comando echo ou printf:

echo "$VAR"

OU:

printf "%s\n" "$VAR"


Lembrando das variáveis de ambiente...
Você pode usar qualquer um dos seguintes comandos para exibir as variáveis de ambiente e seus valores.


a) printenv command
Imprime todo ou parte do ambiente.

b) env command
Imprima todo o ambiente exportado ou execute um programa em um ambiente modificado.

c) set command
Imprima o nome e o valor de cada variável do shell.


Exemplos:

printenv

OU:

printenv | less

OU:

printenv | more


Você pode combinar o comando echo e as variáveis do shell da seguinte maneira:


echo "Hoje é $VAR"


Executando no Bash comando dois em um... Substituição de comandos.


E se alguém quisesse que sempre que executasse o comando cd em um diretório ele automaticamente executasse um comando ls?


Você pode fazer isso com uma função:

cdls () {cd "$@" && ls;}


O && significa 'cd para um diretório e, se for bem-sucedido (por exemplo, o diretório existe), execute ls'. Usando o operador && é melhor, em seguida, usando um ponto e vírgula; operador entre os dois comandos, como com {cd "$ @"; ls; }. Este segundo comando executará ls independentemente de o cd funcionar ou não. Se o cd falhou, ls irá imprimir o conteúdo do seu diretório atual, o que será confuso para o usuário. Como prática recomendada, use "&&" e não ";".
E mais uma coisa... quase sempre, é uma prática ruim renomear um comando que já existe, especialmente para um comando comumente chamado como cd. Em vez disso, crie um novo comando com um nome diferente. Se você sobrescrever cd com uma função ou alias que também é chamado cd, o que aconteceria quando você entra em um diretório com 100.000 arquivos? Existem muitos utilitários que usam cd, e eles podem ficar confusos com esse comportamento incomum. Se você usar uma conta compartilhada (como root quando estiver trabalhando com outros administradores de sistema), pode ser muito perigoso substituir um comando existente porque o ambiente é diferente do que as pessoas esperam.


---


Substituição de Comandos


Sintaxe:

Você pode usar o acento grave (`) para executar uma substituição de comando. A sintaxe é:


`echo $VAR`

OU

echo $(nome-do-comando)


Substituição de comando em um comando echo


echo "Text $(nome-do-comando)

Variáveis de substituição e shell do comando


Você pode armazenar a saída do comando em uma variável shell usando a seguinte sintaxe:


echo var=$(command-name)


Armazene a data e a hora atuais em uma variável chamada NOW:


echo NOW=$(date)
echo "$NOW"


Armazene o nome do host do sistema em uma variável chamada SERVERNAME:


echo SERVERNAME=$(hostname)
echo "Running command @ $SERVERNAME...."


Armazene o nome do diretório de trabalho atual em uma variável chamada CWD:


echo CWD=$(pwd)
echo cd /caminho/para/algum/lugar
echo "Diretório atual $(pwd) e agora voltando ao antigo dir ..."
echo cd $CWD


Substituição de comando e loops de shell


O loop de shell pode usar a substituição de comando para obter entrada:


for f in $(ls /etc/*.conf)
do
echo "$f"
done


No entanto, uma sintaxe recomendada é a seguinte para as seleções de arquivos:


for f in /etc/*.conf
do
echo "$f"
done



---

Fico por aqui. Até breve!


🙂

---


Fontes:
https://bash.cyberciti.biz/guide/What_is_a_Subshell%3F
https://unix.stackexchange.com/questions/23179/how-to-send-variable-to-sub-shell
https://stackoverflow.com/questions/34799161/difference-between-linux-variables-bash-subshell-vs-shlvl

:: 20 Dicas Linux ::

- Dicas Linux

1. Executar o último comando como root:
sudo !!

2. Executar o último comando porém substituindo...
2.1. ls
2.2. ^ls^ls -ta

3. Invocar rápido um editor(emacs) para anotar/escrever algo complexo:
ctrl+x+e

4. Situar o argumento do comando mais recente no shell:
'ALT+.' ou 'Esc .'

5. Terminal parecendo estranho:
reset

7. Ver o sistema de arquivo em um layout bonito:
mount | column -t

8. Executar um comando em determinada hora:
echo "ls -l" | at midnight

9. Obter IP externo :
curl ifconfig.me

10. Obter acesso a informações ascii:
man ascii

11. Recortar colar comando no terminal :
[...]

12. Montar partição temporária de ram:
mount -t tmpfs tmpfs /mnt -o size=1024m

13. Baixar web site inteiro :
wget --random-wait -r -p -e robots=off -U mozilla http://www.exemplo.com

14. Limpar tela do terminal :
ctrl-l

15. Atualizar Twitter via curl:
curl -u user:pass -d status="Tweetando do shell" http://twitter.com/statuses/update.xml

16. Simples contador de tempo:
time read (ctrl-d pra parar)

17. Mudar comportamento do less (tail -f):
less +F algumlogfile

18. Fechar o shell mantendo sub-processos :
disown -a && exit

19. Colocar um relógio console na direita :
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &

20. Listar comandos mais usados:
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

Até Breve!

🙂

.

Solus 3 – Lista de Aliases

Lista de aliases para usar na ótima e incrível Distro Linux Solus 3:

source /usr/share/defaults/etc/profile
#
## PARA ESCONDER O NOME DO USUARIO E DO PC
#
export PS1="\W\$"
#
# DEFINIÇÃO DO PATH ~/bin
#
export PATH=$PATH:$HOME/bin
#
# ALIASES CRIADOS PARA USO PESSOAL
#
# fortune | cowsay # O Solus não oferece fortune ou cowsay #
#
# 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)"'
#
# SINCRONIZAR O SISTEMA, ATUALIZAR E REGISTRAR
#
alias usys='sudo usysconf run -f'
#
# 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'"
#
# COMANDOS EOPKG HELP
#
alias hhh='clear ; eopkg -h ; echo'
alias eee='clear ; echo ; eopkg -h ; echo'
#
# ALIASES QUE AJUDAM SABER SOBRE COMANDOS
#
alias hpm="clear ; man --help"
alias hpe='clear ; eopkg -h'
alias hcat='clear ; man cat'
alias htou='clear ; man touch'
alias hdir='man mkdir'
alias hfin='clear ; man find'
alias hgre='clear ; man grep'
#
## ALIAS QUE INFORMA SOBRE OUTROS ALIASES
#
alias brcligdesl="cat ~/bin/Info-cmd-brc-liga-desliga.txt | less"
#
# ABRIR O ARQUIVO .BASHRC
#
alias brc="cd ; gedit .bashrc"
#
# ATUALIZAR/ALTERAR DE ALIASES/BASHRC/BIN/BACK
#
## Instruções
#
alias cmdsbrc='cat ~/bin/Bashrc-Atualizar-Alterar-Backup.txt | less'
#
alias sbrc='clear ; source .bashrc'
#
alias sbrcc="clear ; cd ; source .bashrc ; cd -"
#
alias sbrcback="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 ::'"
#
alias cpbrctobin="clear ; cp .bashrc ~/bin/solus.2018.bashrc.aliases.txt ; echo ; echo ':: .bashrc copiado para a pasta /bin com o nome de: 2018.bashrc.aliases.txt' ; echo"
#
alias malias="clear ; echo ':: Vou abrir o arquivo: 2018.bashrc.aliases.txt, que está em ~/bin/ :' ; cd ; gedit ~/bin/solus.2018.bashrc.aliases.txt"
#
alias 2bat="clear ; echo ':: Vou abrir o arquivo: 2018.bashrc.aliases.txt, que está em ~/bin/ :' ; cd ; gedit ~/bin/solus.2018.bashrc.aliases.txt"
#
alias cpbintobrc="clear ; cd ; cp ~/bin/solus.2018.bashrc.aliases.txt ~/.bashrc ; echo ':: solus.2018.bashrc.aliases.txt copiado para a pasta ~/ com o nome de: .bashrc' ; echo"
#
# COMANDO LS - ATALHOS : LISTAR : ARQ : DIR #
#
## LS : MOSTRAR : ARQUIVOS : ESCONDIDOS
#
alias l.='ls -d .* --color=auto'
#
alias l='ls -1'
#
alias ls2='ls --color=auto'
#
alias lt='ls -t'
#
alias lat='ls -at'
#
alias li='ls -li'
#
alias ll="ls -lt"
#
alias lf="ls -F"
#
alias l="ls -al"
#
alias lm="ls -al | more"
#
alias lis="ls --color"
#
alias lll='ls -l'
#
alias lla='ls -A'
#
alias llll='ls -CF'
#
# 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 pingduck='ping duckduckgo.com'
alias pingduck2='nslookup duckduckgo.com'
alias pinggoogle='ping google.com'
alias pinggoogle2='ping google.com -c 1'
alias pingbbc='ping 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'
#
# 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 ; sleep 13"
#
# ALIASES : ATUALIZAR
#
alias up="clear ; sbrc ; ping duckduckgo.com ; nslookup duckduckgo.com ; fire ; firejail ; cd / ; sudo eopkg lp ; sudo eopkg lu ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg rmo -y ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg clean ; sudo eopkg dc ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg ur ; sudo eopkg up -y ; cd - ; echo ':: Atualização Completa ::' ; echo ; echo ':: Você Está Em...' ; pwd ; echo ; echo ':: Hoje é :' ; date ; echo"
#
alias uup='clear ; sudo eopkg clean ; cd / ; sudo eopkg upgrade ; sudo eopkg rmo -y ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg lp ; sudo eopkg lu ; sudo eopkg ur ; sudo eopkg up -y ; cd -'
#
alias upd="clear ; fire ; firejail ; sudo eopkg ur ; sudo eopkg up -y ; cd ; sbrc ; cd / ; sudo sh -c 'eopkg lp ; eopkg lu ; eopkg ur ; eopkg up -y ; eopkg upgrade -y' ; cd -"
#
alias uupuu='clear ; fire ; firejail ; cd / ; sudo eopkg lp ; sudo eopkg lu ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg cp ; sudo eopkg upgrade -y ; cd -'
#
# ATUALIZAÇÃO DO SISTEMA
#
alias pupu="clear ; echo ; fire ; firejail ; sudo sh -c 'eopkg ur ; eopkg up -y' ; echo"
#
alias upupu="clear ; fire ; firejail ; cd / ; sudo eopkg lp ; sudo eopkg lu ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg rmo -y ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg clean ; sudo eopkg dc ; sudo eopkg ur ; sudo eopkg up -y ; sudo eopkg rdb -y ; sudo eopkg ur ; sudo eopkg up -y ; cd - ; echo ':: Atualização Completa ::' ; echo ; echo ':: Você Está Em...' ; pwd ; echo ; echo ':: Hoje é :' ; date ; echo"
#
# ATUALIZAR UPGRADE TOTAL CONFIGURAR PACOTES PENDENTES
#
alias upgrub="clear ; cd / ; fire ; firejail ; sudo sh -c 'eopkg lu ; eopkg rmo -y ; eopkg cp ; eopkg ur ; eopkg upgrade -y ; eopkg clean ; eopkg cp ; eopkg ur && eopkg up -y ; eopkg upgrade -y ; update-grub ; eopkg cp ; eopkg dc ; eopkg clean ; eopkg rdb -y' ; updb ; cd -"
#
alias upgrubdbclean="clear ; fire ; firejail ; sudo sh -c 'eopkg ur ; eopkg up -y ; eopkg lu ; eopkg rmo -y ; eopkg ur ; eopkg upgrade -y ; eopkg clean ; eopkg ur && eopkg up -y ; eopkg upgrade -y ; update-grub ; eopkg up -y ; eopkg cp ; eopkg dc ; eopkg clean ; eopkg rdb -y' ; updb"
#
alias upgrubb="clear ; sudo sh -c 'eopkg lp ; eopkg lu ; eopkg ur && eopkg up -y ; eopkg cp ; eopkg ur ; eopkg up -y ; update-grub'"
#
alias upudbase="clear ; firejail ; fire ; sudo sh -c 'eopkg ur ; eopkg up -y ; eopkg rdb -y' ; database ; sudo eopkg ur ; sudo eopkg up -y"
#
alias reconstruirlimpar='upd ; upgrubdbclean ; upudbase'
#
# CONF PACOTES PENDENTES
#
alias ccp="sudo sh -c 'eopkg clean ; eopkg dc ; eopkg cp ; eopkg ur ; eopkg up -y'"
#
# LIMPAR
#
alias clean="clear ; fire ; firejail ; sudo sh -c 'eopkg upgrade -y ; eopkg lp ; eopkg lu ; eopkg clean ; eopkg dc ; eopkg rmo -y ; eopkg ur ; eopkg up -y ; sleep 3 ; eopkg cp ; update-grub ; eopkg up -y'"
#
alias limpar="clear ; fire ; sudo sh -c 'eopkg cp ; eopkg upgrade -y ; eopkg lp ; eopkg lu ; eopkg clean ; eopkg dc ; eopkg rmo -y ; eopkg ur ; eopkg up -y ; update-grub ; eopkg ur ; eopkg upgrade -y'"
#
alias corrigir="clear ; sudo sh -c 'eopkg ur ; eopkg upgrade -y ; eopkg clean ; eopkg dp ; eopkg cp ; eopkg rmf ; eopkg ur && eopkg up -y ; update-grub ; eopkg cp ; eopkg rmo ; eopkg ur ; eopkg upgrade'"
#
alias gfix3="clear ; sudo eopkg clean ; sudo eopkg cp ; sudo eopkg dc ; sudo eopkg rmf ; sudo eopkg rmo ; sudo eopkg ur ; sudo eopkg up -y ; sudo update-grub"
#
# INSTALAR PACOTES
#
alias it="clear ; sudo eopkg install"
#
# REMOVER PACOTES
#
alias rem="clear ; sudo eopkg rm"
#
alias rmorf="clear ; sudo eopkg rmo -y"
#
# ALIASES PARA BUSCA
#
alias sr="clear ; eopkg sr"
#
alias inf="eopkg bl"
#
# LIMPAR A TELA DO TERMINAL
#
alias c="clear"
#
# SAIR DO TERMINAL
#
alias e="clear ; exit"
#
# MODO ADMIN
#
alias root="sudo su"
#
# DESLIGAR O COMPUTADOR
#
alias desl="echo : Desligando o sistema em 7 segundos... ; sleep 3 ; echo ; echo ': Salve seus trabalhos e feche todos os aplicativos...' ; sleep 3 ; echo ; echo Até Breve! ; sleep 3 ; echo ; sudo eopkg ur ; sudo eopkg up -y ; killall seahorse ; sleep 7 ; sudo shutdown -h now"
#
# REINICIAR O SISTEMA
#
# SINCRONIZAR O SISTEMA, ATUALIZAR E REGISTRAR
#
alias upconf='sudo usysconf run -f'
#
alias cmdligdesl="cat ~/bin/Solus-Aliases-Para-Ligar-e-Desligar-o-Sistema.txt | less"
#
alias sysreboot="clear ; sudo eopkg ur ; eoswap ; sudo eopkg ur ; sudo eopkg up -y ; echo ; echo ':: Executando o comando: sudo systemctl reboot, em 8 segundos...' ; echo ; sleep 8 ; sudo systemctl reboot"
#
alias rbt="echo ': Feche todos os aplicativos...' ; sleep 2 ; echo ; echo ': Reiniciando o sistema...' ; sleep 2 ; sudo eopkg ur ; sudo eopkg up -y ; sudo shutdown -r now"
#
alias rbt7="echo ': Feche todos os aplicativos...' ; echo ': Reiniciando o sistema em 7 segundos...' ; sleep 3 ; sudo eopkg cp ; sudo eopkg ur ; sudo eopkg up -y ; killall seahorse ; sleep 7 ; sudo shutdown -r now"
#
alias rbt30="echo ': Feche todos os aplicativos :: Salve seus trabalhos...' ; echo ; echo ': Reiniciando o sistema em 30 segundos...' ; sleep 3 ; echo ; echo ': Repetindo: Feche todos os aplicativos :: Salve seus trabalhos... :: Reiniciando em 30 segundos...' ; sleep 3 ; echo ; sudo eopkg ur ; sudo eopkg up -y ; sleep 24 ; sudo shutdown -r now"
#
# OBS: sudo shutdown -r +1 (reinicia em um minuto)
#
# TOUCH CRIAR ARQUIVOS ALTERA DATA
#
alias to='touch'
#
alias arq='touch -a'
#
# CRIAR ARQUIVO COM DATA DETERMINADA
#
# touch -t YYMMDDHHMM.SS meuarq
#
alias altempo='touch -t 1305261830.52'
#
# CRIAR DIRETORIOS
#
alias mkd='mkdir -p'
#
# ALIASES : MUDAR TEMPO ACESSO E DATA DE MODIFICAÇÃO
# YYMMDDHHMM.SS
#
alias mudatempo='touch -c -t 1303251730.53'
alias mudatempos='touch -r' # mesmo tempo p/ varios arq
#
## REMOVER ARQUIVOS E DIRETORIOS
#
alias r='rm -f'
alias rr='rm -r'
alias rrr='rm -rf'
#
## ALIAS WHEREIS WHATIS
#
alias onde='whereis'
alias oque='whatis'
alias ondque='clear ; whereis ; echo ; whatis ; echo'
#
# LIBERAR MEMORIA RAM
#
alias liberam="sudo eopkg ur ; sudo echo '3' > /proc/sys/vm/drop_caches ; sudo sysctl -w vm.drop_caches=3 ; sudo eopkg ur ; sudo eopkg up -y ; sudo swapoff -a ; sudo swapon -a ; free -h ; sudo eopkg up -y"
#
alias libram=LibRam.sh # Alias vinculado a script na pasta ~/bin/
#
alias upswap=LibRam.sh
#
alias lswap='sudo sysctl -w vm.drop_caches=3 ; sleep 2 ; sudo swapoff -a ; sleep 2 ; sudo swapon -a'
#
alias lram='sudo sysctl -w vm.drop_caches=3 ; sleep 2 ; sudo swapoff -a ; sleep 2 ; sudo swapon -a'
#
alias eoswap='clear ; sudo eopkg up -y ; sudo sysctl -w vm.drop_caches=3 ; sleep 2 ; sudo swapoff -a ; sleep 2 ; sudo swapon -a ; sudo eopkg up -y'
#
# ALIASES WGET
#
alias wgt='clear ; echo ; wget -c'
alias wg='wget -c'
#
## LISTAR COMANDOS
#
alias comp1='compgem -c'
alias comp2='compgen -a'
alias comp3='compgen -b'
alias comp4='compgen -k'
alias comp5='compgen -A function'
alias comp6='compgen -A function -abck'
#
alias eo="eopkg" # Este alias é útil se combinado com outros aliases ex: eo search = eopkg search, eo sfi, sudo eo it...
#
# ALIAS COMANDOS EOPKG - HELP
#
# ALIASES EOPKG
#
alias eop='eopkg -h'
#
alias opkg='eopkg -h'
#
alias hhh="eopkg -h"
#
alias sf="eopkg search"
#
alias lu='eopkg lu'
#
alias inf="eopkg info"
#
alias hs='eopkg hs'
#
alias lln='eopkg ln'
#
# MATAR/FECHAR PROGRAMAS E PROCESSOS
#
alias pf="pidof" # SABER O PID
#
alias k9="kill -9" # USAR COM O NUMERO DO PID
#
alias k15="kill -15" # USAR COM O NUMERO DO PID
#
alias k='killall' # USAR COM O NOME DO PROGRAMA/PROCESSO
#
alias xk='xkill' # CLICAR SOBRE JANELA
#
## ALIASES PARA FECHAR APLICATIVOS
#
alias ktra='killall transmission-gtk'
alias ktom='killall tomahawk'
alias krhm='killall rhythmbox'
alias ktel='killall telegram'
alias ksea='killall seahorse'
alias kvlc='killall vlc'
alias ksmp='killall smplayer'
alias kged='killall gedit'
alias kleaf='killall leafpad'
alias kfox='killall firefox'
alias kmid='killall midori'
alias kcalib='killall calibre'
alias kmate='mate-session-save --force-logout'
alias ktudo='kill -9 -1'
alias ktud='pkill -9 -1'
alias ksess='pkill -9 -u user'
alias kkk='killall -9 -1'
alias kk='kill -9 -1'
#
### ALIASES TAR
## EXTRAIR ARQUIVO TAR.GZ
#
alias extargz='tar xvzf'
alias maketar='tar -cvf'
alias maketargz='tar cvzf'
alias maketarbz='tar cvfj'
alias untargz='tar -xvf'
alias untarbz='tar -xvf'
alias listargz='tar -tvf'
alias listarbz='tar -tvf'
#
# x – Extract files
# v – Verbose, print the file names as they are extracted one by one
# z – The file is a “gzipped” file
# f – Use the following tar archive for the operation
#
## Compilar
#
alias compile='sudo su ; ./configure ; make ; make install'
#
## Solus Grub
#
alias eogrub='sudo eopkg up -y ; sudo grub-mkconfig -o /boot/grub/grub.cfg ; sudo update-grub ; sudo eopkg ur ; sudo update-grub ; sudo eopkg ur ; sudo eopkg up -y'
#
#
# http://motd.ambians.com/out/rss/daily-fortunes.xml
# https://sourceforge.net/projects/fortune-gui/files/latest/download
# it -y fortunes fortunes-spam fortunes-ubuntu-server fortunes-min fortunes-eo-ascii
#
## COMANDO FIND ALIASES
#
alias ffind='find . -name'
alias findhome='find /home -iname'
alias findhomee='find /home -name'
alias findir='find / -type d -name'
alias find777='find . -type f -perm 0777 -print'
alias findno777='find / -type f ! -perm 777'
alias find644='find / -perm 2644'
alias find551='find / -perm 1551'
alias find50a100mb='find / -size +50M -size -100M'
alias cpuinfoall="lscpu ; echo ; lsblk ; echo ; lsblk -a ; echo lsusb ; echo ; lsusb -v ; echo ; lspci ; echo ; lspci -t ; lspci -v"
alias cpuinfo='cat /proc/cpuinfo'
alias meminf='cat /proc/meminfo'
alias freeall='free ; echo ; free -m ; echo ; free -mt ; echo ; free -gt'
alias kernelinfo='cat /proc/version ; echo ; uname -mrs ; echo ; uname -a'
alias linuxdistro='lsb_release -a'
alias infodistro='cat /etc/*release*'
alias usblist='lsusb'
alias listblockdev='lsblk'
alias hdtamanho="fdisk -l | grep '^Disk /dev/'"
#
#
## ALIASES INFO SIST HARDWARE
#
alias unaa='umane -a'
alias infhdw='sudo lshw ; echo ; sudo lshw -short'
alias infhdws='sudo lshw -short'
#
## O QUE ACONTECE NO MEU SISTEMA?
#
alias meusys='tail -f /var/log/syslog'
alias paxu='ps -axu'
#
## QUANTO DE MEMÓRIA SEU SISTEMA ESTÁ UTILIZANDO?
#
alias mem='free -m -t'
#
## VERIFICANDO A MINHA REDE
#
alias iptr='sudo iptraf'
#
## ATUALIZAR BANCO DE DADOS (database)
#
alias database='sudo eopkg up -y ; sudo updatedb ; sudo eopkg up -y'
#
alias updatabase='sudo eopkg up -y ; sudo updatedb ; sudo eopkg up -y'
#
alias updb="clear ; echo ': Atualizando : Database : Aguarde...' ; sudo eopkg up -y ; sudo updatedb ; sudo eopkg ur ; sudo eopkg up -y ; echo ': Atualização concluída :'"
#
alias upgrub="echo ': Atualizando Grub...' ; sudo update-grub ; echo ': Grub Atualizado :'"
#
## ALIASES QUE AUXILIAM NA PRODUTIVIDADE...
#
## ALIASES NAVEGAR POR PASTAS DA HOME
#
alias dw='cd ; cd Downloads/'
#
alias vid='cd ; cd Vídeos/'
#
alias mus='cd ; cd Música/'
#
alias im='cd ; cd Imagens/'
#
alias firejail='clear ; mkdir -p ~/.local/share/applications; for profile in $(basename -s .profile /etc/firejail/*.profile); do if [[ -f /usr/share/applications/$profile.desktop ]]; then sed -r "s/^(Exec=)/\1firejail /" /usr/share/applications/$profile.desktop > ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done'
#
# HABILITAR O FIREWALL
#
alias fire="clear ; sudo sh -c 'eopkg ur ; systemctl start firewalld.service ; firewall-cmd --state ; ufw enable ; ufw status verbose ; systemctl enable firewalld ; eopkg lp ; eopkg cp ; eopkg ur ; eopkg up -y ; eopkg upgrade -y ; eopkg cp' ; killall seahorse"
#
alias fire2="clear ; sudo sh -c 'eopkg ur ; systemctl start firewalld.service ; firewall-cmd --state ; ufw enable ; ufw status verbose ; systemctl enable firewalld'"
#
# ALIASES PARA ATIVAR SCRIPT
#
alias chm="chmod +x"
#
alias chmm='chm *.sh'
#
alias chma="chmod a+x"
#
alias chmaa="chmod a+x *.sh"
#
# ALIASES PARA DESATIVAR SCRIPT
#
alias uchm="chmod -x"
#
alias uchmm='chm *.sh'
#
alias uchma="chmod a-x"
#
alias uchmaa="chmod a-x *.sh"
#
# ALIAS PARA COMANDOS DE DATA E HORA
#
alias d="date +%F"
#
alias agora="date +%T"
#
alias hoje="date +%d/%m/%Y"
#
# ALIASES HISTÓRICO
#
alias h=history
#
alias hm="history | more"
#
alias hg="history | grep -i"
#
# PARA OBTER INFORMAÇÕES DO SISTEMA
#
alias dff="df -Tha --total"
#
alias duu="du -ach | sort -h"
#
# TAMANHO DE UMA PASTA
#
alias duh='du -hs'
#
alias freet="free -mt"
#
alias psam="ps auxf | more"
#
# ALIASES PARA EOPKG
#
alias seop="sudo eopkg"
#
alias epk="eopkg"
#
alias lnew='eopkg ln'
#
# LIMPAR ZERANDO O GOOGLECHROME
#
alias xchrome="rm -rf ~/.config/google-chrome/Default ; rm -rf ~/.cache/google-chrome"
#
# LIMPAR O CACHE DO GOOGLECHROME
#
alias cachechrome="rm -rf ~/.cache/google-chrome"
#
## INFO METADATA
#
alias mtd='exiftool *.*'
#
# INFO METADATA - BASTA ADD EXTENSÃO
#
alias dexf='exiftool *'
#
alias mtdinfdir='exiftool .'
#
# EXPORTAR METADATA INFO DE TODA PASTA
#
alias mtdexp='exiftool -h . >'
#
# METADATA ALTERAR COPYRIGHT
#
alias mtdcopyr='exiftool -overwrite_original -rights="©2018 John Doe, all rights reserved" -CopyrightNotice="©2018 John Doe, all rights reserved" *.*'
#
# REMOVER METADATA DE PASTA
#
alias mtdir='exiftool -all= -overwrite_original .'
#
# REMOVE METADATA DE PASTA - ADICIONE: nome-ext .
#
alias mtdirr='exiftool -all= -overwrite_original -ext'
#
# LIMPAR MANTENDO O FIREFOX - APAGA A BARRA DE FAVORITOS
#
alias cleanfox="sudo sh -c 'rm ~/.mozilla/firefox/*.default/cookies.sqlite ; rm ~/.mozilla/firefox/*.default/*.sqlite ~/.mozilla/firefox/*default/sessionstore.js ; rm -r ~/.cache/mozilla/firefox/*.default/*'"
#
# LIMPA METADATA
#
alias met='mkv ; eeomp3 ; Metadata_exif.sh' # exec script da pasta ~/bin
#
alias metmp3="clear ; echo ; exiftool -all= -overwrite_original -ext mp3 . ; echo ; sleepp 4"
#
alias metavi="clear ; echo ; exiftool -all= -overwrite_original -ext avi . echo"
#
alias metmp4="echo ; exiftool -all= -overwrite_original -ext mp4 . ; echo"
#
alias metjpg="clear ; echo ; exiftool -all= -overwrite_original -ext jpg . ; echo"
#
alias metpng="clear ; echo ; exiftool -all= -overwrite_original -ext png . ; echo"
#
alias eomp4="clear ; echo ; echo 'Use o comando: exiftool -all= -overwrite_original -ext mp4 .' ; echo ; sleep 2 ; echo 'Vou executar o comando em 4 segundos' ; sleep 4 ; exiftool -all= -overwrite_original -ext mp4 . ; sleep 4 ; echo 'Comando executado' ; echo ; echo 'Confira a info da metadata com: exiftool *.mp4 vou executar' ; sleep 3 ; echo ; exiftool *.mp4"
#
alias eomp3="clear ; echo ; echo 'Use o comando: exiftool -all= -overwrite_original -ext mp3 .' ; echo ; sleep 2 ; echo 'Vou executar o comando em 4 segundos' ; sleep 4 ; exiftool -all= -overwrite_original -ext mp3 . ; sleep 4 ; echo 'Comando executado'"
#
alias eoavi="clear ; echo ; echo 'Use o comando: exiftool -all= -overwrite_original -ext avi .' ; echo ; sleep 2 ; echo 'Vou executar o comando em 4 segundos' ; sleep 4 ; exiftool -all= -overwrite_original -ext avi . ; sleep 4 ; echo 'Comando executado'"
#
alias eojpg="clear ; echo ; echo 'Use o comando: exiftool -all= -overwrite_original -ext jpg .' ; echo ; sleep 2 ; exiftool -all= -overwrite_original -ext jpg . ; echo 'Conferindo a metadata:' ; sleep 3 ; exiftool *.jpg"
#
alias eopng="clear ; echo ; echo 'Use o comando: exiftool -all= -overwrite_original -ext png .' ; echo ; sleep 2 ; exiftool -all= -overwrite_original -ext png . ; echo 'Conferindo a metadata:' ; sleep 3 ; exiftool *.png"
#
alias eopdf="clear ; echo 'Abra o terminal onde estão os arquivos PDF e execute: exiftool -all= -overwrite_original -ext pdf .' ; exiftool -all= -overwrite_original -ext pdf ."
#
alias eoepub="clear ; echo ; echo -e 'Use o comando:\n \nexiftool -all= -overwrite_original -ext epub .' ; echo ; sleep 2 ; echo -e 'Vou executar o comando em 4 segundos\n ' ; sleep 4 ; exiftool -all= -overwrite_original -ext epub . ; sleep 4 ; echo 'Comando executado'"
#
alias eocbr="clear ; echo ; echo 'Use o comando: exiftool -all= -overwrite_original -ext cbr .' ; echo ; sleep 2 ; echo 'Vou executar o comando em 4 segundos' ; sleep 4 ; exiftool -all= -overwrite_original -ext cbr . ; sleep 4 ; echo 'Comando executado' ; echo ; echo 'Confira a info da metadata com: exiftool *.cbr vou executar' ; sleep 3 ; echo ; exiftool *.cbr"
#
# EXECUTAR TODOS OS ALIASES DE METADATA
#
alias allmet='clear ; mkv ; eeomp3 ; metmp3 ; metavi ; metmp4 ; metjpg ; metpng ; eomp4 ; eomp3 ; eoavi ; eojpg ; eopng ; eopdf ; eoepub ; eocbr'
#
# REMOVER METADATA DENTRO DE UMA PASTA DUPLICANDO
#
alias rmJPGmtd='for i in *.jpg; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmPNGmtd='for i in *.png; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmMP4mtd='for i in *.mp4; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmMP3mtd='for i in *.mp3; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmPDFmtd='for i in *.pdf; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmM4Vmtd='for i in *.m4v; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmEPUBmtd='for i in *.epub; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmWEBMmtd='for i in *.webm; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmAVImtd='for i in *.avi; do echo "Processing $i"; exiftool -all= "$i"; done'
#
alias rmCBRmtd='for i in *.cbr; do echo "Processing $i"; exiftool -all= "$i"; done'
#
# REMOVER TÍTULO METADATA USANDO SCRIPT
#
alias mkv=MKV3b-remov-metadata-mkv.sh
#
# REMOVER TÍTULO METADATA - ADIC: nome-da-ext .
#
alias rmet='exiftool -all= -overwrite_original -ext'
#
# REMOVER TÍTULO METADATA DE M4V
#
alias eom4v="clear ; echo ; echo 'Removendo metadata de m4v com o comando: exiftool -all= -overwrite_original -ext m4v .' ; sleep 3 ; echo ; exiftool -all= -overwrite_original -ext m4v . ; sleep 3 ; echo ; echo 'Verificando alteração de metadata com o comando: exiftool *.m4v' ; sleep 3 ; echo ; exiftool *.m4v"
#
alias eowebm="echo 'Executando em 4 segundos' ; sleep 4 ; exiftool -all= -overwrite_original -ext webm . ; echo 'conferindo info metadata' ; sleep 2 ; echo ; exiftool *.webm"
#
# INFORMA METADATA CONTEÚDO
#
alias ejpg='exiftool *.jpg'
alias epng='exiftool *.png'
alias emp3='exiftool *.mp3'
alias emp4='exiftool *.mp4'
alias emkv='exiftool *.mkv'
alias eavi='exiftool *.avi'
alias ewebm='exiftool *.webm'
alias em4v='exiftool *.m4v'
alias eepub='exiftool *.epub'
alias epdf='exiftool *.pdf'
alias ecbr='exiftool *.cbr'
alias etxt='exiftool *.txt'
alias edoc='exiftool *.doc'
#
# COMANDO PARA COLOCAR EM PASTA MUSICAS DO MESMO ARTISTA
#
alias musicasdomesmoartista="clear ; echo -e 'use:\n \nexiftool -ext mp3 aspa-simples-Directory ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done)
#
alias jail='$JAILVAR'
#
alias fjail="mkdir -p ~/.local/share/applications; for profile in $(basename -s .profile /etc/firejail/*.profile); do if [[ -f /usr/share/applications/$profile.desktop ]]; then sed -r 's/^(Exec=)/\1firejail /' /usr/share/applications/$profile.desktop > ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done"
#
# DESCOMPACTAR PELO TERMINAL INSTRUÇÕES
#
alias descomp="clear ; echo ; echo -e 'Para Descompactar Arquivos Pelo Terminal:\n \nzip:\n \ngunzip nomedoarquivo.zip\n \nunrar x nomedoarquivo.rar\n \ntar:\n \ntar -xvf nomedoarquivo.tar\n \ntar.gz:\n \ntar -vzxf nomedoarquivo.tar.gz\n \nbz2:\n \nbunzip nomedoarquivo.bz2\n \ntar.bz2:\n \ntar -jxvf nomedoarquivo.tar.bz2\n \nPara descompactar tar.xz\n \ntar -Jxf archivo.tar.xz\n'"
#
# DICAS SOBRE O USO DO IF EM SHELL SCRIPT
#
alias sobreoif="echo -e '\e[1;33m\nO if Pode ser acompanhado De outras 13 Declarações:\n \n1 - if [ -eq \$variável ] -eq Igual\n2 - if [ -ne \$variável ] -ne Diferente\n3 - if [ -gt \$variável ] -gt Maior\n4 - if [ -lt \$variável ] -lt Menor\n5 - if [ -o \$variável ] -o Ou\n6 - if [ -d \$variável ] -d Se for um diretório\n7 - if [ -e \$variável ] -e Se existir\n8 - if [ -z \$variável ] -z Se estiver vazio\n9 - if [ -f \$variável ] -f Se conter texto\n10 - if [ -o \$variável ] -o Se o usuário for o dono\n11 - if [ -r \$variável ] -r Se o arquivo pode ser lido\n12 - if [ -w \$variável ] -w Se o arquivo pode ser alterado\n13 - if [ -x \$variável ] -x Se o arquivo pode ser executado\e[0m\n '"
#
alias comandoslinux="clear ; echo ; sleep 2 ; echo 'Execute/digite: file nome_do_arquivo_com_extensão , find palavra_de_busca , date (informa a data) , cal (exibe calendário) , uptime (informa a quanto tempo a máquina está funcionando) , w (mostra quem está online) , whoami (estou logado como?) , uname -a (informa o kernel) , cat /proc/cpuinfo , cat /proc/meminfo , df -h , du -h , free , Execute/digite: uptime (informa o tempo que a máquina está ligada) , Execute/digite: date , cal , df -h , du -h , fdisk , sfdisk , free , swapon , cat /proc/cpuinfo , uname -a , lspci , lsusb , Execute/digite: pidof nome_do_aplicativo (vai aparecer um número o pid) , Execute/digite: kill -9 numero_do_pid ( o programa será fechado completamente) , Execute/digite: pstree (ele mostra processos em forma de árvore hierárquica) , Execute/digite: lsblk , Execute/digite: whoami , Execute/digite: whereis firefox , execute: cd - , Execute/digite: cd Downloads/ , Execute/digite: cd Documentos/ , Execute/digite: ls , ls -a , ls -l , Execute/digite: pwd , Execute/digite: cd - , cd , cd Downloads/ , ls , pwd , cd .. , cd / , cd usr/ , cd usr/bin/ , pwd , ls -t , cd ~ , pwd , ls , cd Documentos/ , Execute/digite: - mkdir pasta_teste , ls -t , Execute/digite: mkdir pasta1 pasta2 pasta3 , ls -lah , mkdir -p pasta_mami/pasta_bb , cd pasta_mami/ , ls -t , Execute/digite: touch arquivo_teste1.txt , ls , Execute/digite: cat > arquivo_teste2.txt , ls , mkdir pasta-teste , ls , pwd , rm -r pasta_teste , ls -t , Execute/digite: mv arquivo_teste1 arquivo_renomeado.txt , Execute/digite: ls -t , ln -s
, Execute/digite: cat > arquivo_criado1 , ls -t , Execute/digite: cat > teste.txt ,
Execute/digite: cat > arquivo1 >> arquivo1_adicionado , ls -t , Execute/digite: echo 'Palavras de teste' > arquivo1_adicionado , ls -t ,
cat arquivo1_adicionado , cat > novo_arquivo1 , touch novo_arquivo2 , ls -t , diff novo_arquivo1 novo_arquivo2 , Execute/digite: locate pasta1 , head arquivo , tail arquivo , whatis vlc ; wget -c endereço_http ; Execute/digite: more e less (com ajuda do pipe | visualiza arquivos por página e tem muitos mais comandos...)' ; echo ; sleep 4"
#
# COMANDOS FLATPAK
#
alias comandosflatpak="echo 'flatpak list, Executar aplicativo: flatpak run nome_do_aplicativo_tem_dois_pontos, flatpak uninstall nome_do_aplicativo_pelo_menos_dois_pontos, flatpak update, flatpak remote-list, flatpak remote-list nome_do_repositório, flatpak remote-delete nome_do_repositório, flatpak install --from, flatpak install --from https://, Para executar: flatpak run org.nome_repositorio.nome_do_programa'"
#
# COMANDOS SNAP
#
alias comandossnap="clear ; echo 'sudo snap remove nome_do_pacote, snap find termo_de_busca, snap install nome_do_pacote, snap list, snap changes, sudo snap refresh nome_do_pacote, snap refresh --list, snap revert nome_do_pacote'"
#
# ATALHOS DE TECLADO
#
alias atalhosdeteclado="clear ; echo 'abaixar vol Ctrl+0, aumentar vol Ctrl+9, rep de musica Ctrl+Alt+R, ejetar Ctrl+J, navegador web Ctrl+Alt+K, encerrar sessão Ctrl+Alt+K, desligar Ctrl+Alt+Backspace, desligar Ctrl+Alt+Delete, bloquear tela Ctrl+Alt+L, abrir pasta pessoal Ctrl+Alt+2, pesquisa Alt+F, caixa exec aplicativo Alt+F2, menu na area de trabalho Alt+F1, cap imagem de uma janela Alt+Print, terminal Ctrl+Alt+T, move entre janelas Alt+Tab, mover ente janelas de um aplicativo Alt+crase , mover entre painéis Ctrl+Alt+Tab, mover entre janelas Alt+Esc, mover entre janelas de um aplicativo Alt+F6, menu da janela Alt+Espaço, maximizar/minimizar Alt+F10, restaurar janela Alt+F5, fechar janela Alt+F4, minimizar janela Alt+F9, redimensionar janela Alt+F8, gedit Ctrl+Alt+G, midori Ctrl+Alt+5, seahorse Ctrl+Alt+W, vlc Ctrl+Alt+1, pluma Ctrl+Alt+P, firefox Ctrl+Alt+6'"
#
alias eoepubconv="clear ; echo ; echo use o comando: ebook-convert input.txt output.epub ; echo ; echo ou use o comando: ebook-convert input.txt output.epub --enable-heuristics ; echo ; sleep 4 ; ebook-convert *.txt *.epub"
#
# Aprendendo sobre estrutura de diretórios
#
alias estrutudir='clear ; echo ; echo -e "O diretório raiz\n \nTodos os arquivos e diretórios do sistema Linux instalado no computador partem de uma única origem:\n \nO diretório raiz.\n \nMesmo que estejam armazenados em outros dispositivos físicos, é a partir do diretório raiz (/) que você poderá acessá-los.\n \nO único usuário do sistema capaz de criar ou mover arquivos do diretório raiz é o root:\n \nO usuário-administrador.\n \nBinários executáveis: /bin\n \nNo diretório /bin estão localizados os binários executáveis que podem ser utilizados por qualquer usuário do sistema.\n \nSão comandos essenciais, usados para trabalhar com arquivos, textos e alguns recursos básicos de rede, como o cp, mv, ping e grep.\n \nBinários do sistema: /sbin\n \nAssim como o /bin, este diretório armazena executáveis, mas com um diferencial:\n \nSão aplicativos utilizados por administradores de sistema com o propósito de realizar funções de manutenção e outras tarefas semelhantes.\n \nEntre os comandos disponíveis estão o ifconfig, para configurar e controlar interfaces de rede TCP/IP, e o fdisk, que permite particionar discos rígidos, por exemplo.\n \nProgramas diversos: /usr\n \nSe você não encontrar um comando no diretório /bin ou /sbin, ele certamente está aqui. O /usr reúne executáveis, bibliotecas e até documentação de softwares usados pelos usuários ou administradores do sistema.\n \nAlém disso, sempre que você compilar e instalar um programa a partir do código-fonte, ele será instalado nesse diretório.\n \nConfigurações do sistema: /etc\n \nNo diretório /etc ficam arquivos de configuração que podem ser usados por todos os softwares, além de scripts especiais para iniciar ou interromper módulos e programas diversos.\n \nÉ no /etc que se encontra, por exemplo, o arquivo resolv.conf, com uma relação de servidores DNS que podem ser acessados pelo sistema, com os parâmetros necessários para isso.\n \nBibliotecas: /lib\n \nNeste ponto do sistema de arquivos ficam localizadas as bibliotecas usadas pelos comandos presentes em /bin e /sbin.\n \nNormalmente, os arquivos de bibliotecas começam com os prefixos ld ou lib e possuem "extensão" so.\n \nOpcionais: /opt\n \nAplicativos adicionais, que não são essenciais para o sistema, terminam neste diretório.\n \nAquivos pessoais: /home\n \nNo diretório /home ficam os arquivos pessoais, como documentos e fotografias, sempre dentro de pastas que levam o nome de cada usuário. Vale notar que o diretório pessoal do administrador não fica no mesmo local, e sim em /root.\n \nInicialização: /boot\n \nArquivos relacionados à inicialização do sistema, ou seja, o processo de boot do Linux, quando o computador é ligado, ficam em /boot.\n \nVolumes e mídias: /mnt e /media\n \nPara acessar os arquivos de um CD, pendrive ou disco rígido presente em outra máquina da rede, é necessário "montar" esse conteúdo no sistema de arquivos local, isso é, torná-lo acessível como se fosse apenas mais um diretório no sistema.\n \nEm /media ficam montadas todas as mídias removíveis, como dispositivos USB e DVDs de dados. Já o diretório /mnt fica reservado aos administradores que precisam montar temporariamente um sistema de arquivos externo.\n \nServiços: /srv\n \nDados de servidores e serviços em execução no computador ficam armazenados dentro desse diretório.\n \nArquivos de dispositivos: /dev\n \nNo Linux, tudo é apresentado na forma de arquivos. Ao plugar um pendrive no computador, por exemplo, um arquivo será criado dentro do diretório /dev e ele servirá como interface para acessar ou gerenciar o drive USB.\n \nNesse diretório, você encontra caminhos semelhantes para acessar terminais e qualquer dispositivo conectado ao computador, como o mouse e até modems.\n \nArquivos variáveis: /var\n \nTodo arquivo que aumenta de tamanho ao longo do tempo está no diretório de arquivos variáveis. Um bom exemplo são os logs do sistema, ou seja, registros em forma de texto de atividades realizadas no Linux, como os logins feitos ao longo dos meses.\n \nProcessos do sistema: /proc\n \nLembra da história de que tudo funciona como um arquivo no Linux? Pois o /proc é a prova disso.\n \nNesse diretório são encontrados arquivos que revelam informações sobre os recursos e processos em execução no sistema.\n \nQuer um exemplo? Para saber há quanto tempo o Linux está sendo usado desde a última vez em que foi iniciado, basta ler o arquivo /proc/uptime.\n \nArquivos temporários: /tmp\n \nArquivos e diretórios criados temporariamente tanto pelo sistema quanto pelos usuários devem ficar nesse diretório.\n \nBoa parte deles é apagada sempre que o computador é reiniciado.\n \nOs nomes dos diretórios dão dicas do que pode ser encontrado em seu interior e, com alguns meses de uso, você estará navegando por eles com facilidade." ; echo'
#
alias comandosbasicoslinux='clear ; echo ; echo -e "Comandos Básicos do Linux\n \nO Linux (na verdade, GNU/Linux), assim como qualquer sistema operacional moderno, é perfeitamente capaz de oferecer interação com o usuário por meio de gráficos, fazendo com que seja possível utilizar a maioria de seus recursos através do mouse.\n \nPorém, uma das vantagens do Linux é o terminal.\n \nEm dado momento hoje em dia em qualquer sistema operacional, o modo gráfico pode deixar de estar disponível, e você terá que mandar a máquina para um serviço especializado, técnicos terão de usar ferramentas.\n \nNo Linux, restando apenas o modo texto (para a inserção de comandos) você pode recuperar o sistema dependendo da situação.\n \nAlém disso, determinadas tarefas só podem ser executadas por comandos digitados.\n \nIsto acontece em quase todos os sistemas operacionais.\n \nPara não ficar perdido em qualquer dessas situações, opte pelo Linux.\n \nVamos conhecer alguns comandos.\n \nVamos aprender comandos GNU/Linux.\n \nOnde e como digitar os comandos?\n \nSe o Linux que você utiliza entra direto no modo gráfico ao ser inicializado (que é o que acontece na grande maioria das distribuições atuais), é possível inserir comandos no sistema através de uma aplicação de terminal.\n \nEsse recurso é facilmente localizável em qualquer distribuição.\n \nEstamos agora em um Terminal GNU/Linux.\n \nSe o computador que você acessa não estiver com o modo gráfico ativado, será possível digitar comandos diretamente, bastando se logar.\n \nQuando o comando é inserido, cabe ao interpretador de comandos (também conhecido como shell) executá-lo.\n \nO Linux conta com mais de um, sendo os mais conhecidos o bash e o sh.\n \nQuando um terminal é acessado, uma informação aparece no campo de inserção de comandos.\n \nÉ importante saber interpretá-la.\n \nPara isso, veja os exemplos abaixo:\n \nExemplo: user@pc:~$\n \nObservação: dependendo de sua distribuição e de seu shell, a linha de comandos pode ter um formato ligeiramente diferente de um sistema Linux para outro\n \nO caractere que aparece no final indica qual o "poder" do usuário.\n \nSe o símbolo for #,\n \nExemplo: user@pc:~#\n \nSignifica que usuário tem privilégios de administrador (root).\n \nPor outro lado, se o símbolo for $, significa que este é um usuário comum, incapaz de acessar todos os recursos que um administrador acessa.\n \nIndependente de qual seja, é depois do caractere que o usuário pode digitar os comandos.\n \nOs comandos básicos do Linux\n \nAgora que você já sabe como agir em um terminal, vamos aos comandos do Linux mais comuns.\n \nPara utilizá-los, basta digitá-los e pressionar a tecla Enter de seu teclado. É importante frisar que, dependendo de sua distribuição Linux, um ou outro comando pode estar indisponível.\n \nAlém disso, alguns comandos só podem ser executados por usuários com privilégios de administrador.\n \nA relação a seguir mostra os comandos seguidos de uma breve descrição:\n \ncal: exibe um calendário;\n \ncat arquivo: mostra o conteúdo de um arquivo.\n \nPor exemplo, para ver o arquivo texto-teste.txt, basta digitar cat texto-teste.txt;\n \ncd diretório: abre um diretório.\n \nPor exemplo, para abrir a pasta /mnt, basta digitar cd /mnt.\n \nPara ir ao diretório home a partir de qualquer outro, digite apenas cd;\n \nchmod: comando para alterar as permissões de arquivos e diretórios.\n \nclear: elimina todo o conteúdo visível, deixando a linha de comando no topo, como se o terminal acabasse de ter sido acessado;\n \ncp origem destino: copia um arquivo ou diretório para outro local.\n \nPor exemplo, para copiar o arquivo texto-teste.txt com o nome texto-teste2.txt para /home, basta digitar cp nome-arquivo.txt /home/nome-arquivo2.txt;\n \ndate: mostra a data e a hora atual;\n \ndf: mostra as partições usadas;\n \ndiff arquivo1 arquivo2: indica as diferenças entre dois arquivos, por exemplo: diff calc.c calc2.c;\n \ndu diretório: mostra o tamanho de um diretório;\n \nemacs: abre o editor de textos emacs;\n \nfile arquivo: mostra informações de um arquivo;\n \nfind diretório parâmetro termo:\n \no comando find serve para localizar informações.\n \nPara isso, deve-se digitar o comando seguido do diretório da pesquisa mais um parâmetro (ver lista abaixo) e o termo da busca.\n \nParâmetros:\n \nname - busca por nome\n \ntype - busca por tipo\n \nsize - busca pelo tamanho do arquivo\n \nmtime - busca por data de modificação\n \nExemplo: find /home name tremeluz\n \n \nfinger usuário: exibe informações sobre o usuário indicado;\n \nfree: mostra a quantidade de memória RAM disponível;\n \nhalt: desliga o computador;\n \nhistory: mostra os últimos comandos inseridos;\n \nid usuário: mostra qual o número de identificação do usuário especificado no sistema;\n \nkill: encerra processados em andamento.\n \nls: lista os arquivos e diretórios da pasta atual;\n \nlpr arquivo: imprime o arquivo especificado;\n \nlpq: mostra o status da fila de impressão;\n \nlprm:\n \nremove trabalhos da fila de impressão;\n \nlynx: abre o navegador de internet de mesmo nome;\n \nmv origem destino: tem a mesma função do comando cp, só que ao invés de copiar, move o arquivo ou o diretório para o destino especificado;\n \nmkdir diretório: cria um diretório, por exemplo, mkdir pasta-linux cria uma pasta de nome pasta-linux;\n \npasswd: altera sua senha.\n \nPara um administrador mudar a senha de um usuário, basta digitar passwd seguido do nome deste;\n \nps: mostra os processos em execução. Saiba mais no artigo Processos no Linux;\n \npwd: mostra o diretório em que você está;\n \nreboot: reinicia o sistema imediatamente (pouco recomendável, preferível shutdown -r now);\n \nrm arquivo: apaga o arquivo especificado;\n \nrmdir diretório: apaga o diretório especificado, desde que vazio;\n \nshutdown: desliga ou reinicia o computador, veja:\n \nshutdown -r now: reinicia o computador\n \nshutdown -h now: desliga o computador\n O parâmetro now pode ser mudado.\n \nPor exemplo:\n \ndigite\n \nshutdown -r +10 e o sistema irá reiniciar daqui a 10 minutos;\n \nsudo su: passa para o usuário administrador, isto é, root (perceba que o símbolo $ mudará para #);\n \ntar -xzvf arquivo.tar.gz: extrai um arquivo compactado em tar.gz.\n \ntelnet: ativa o serviço de Telnet em uma máquina.\n \nPara acessar esse computador a partir de outros por Telnet, basta digitar telnet nomedamáquina ou telnet IP.\n \nPor exemplo:\n \ntelnet 192.168.0.10.\n \nApós abrir o Telnet, digite help para conhecer suas funções;\n \ntop: exibe a lista dos processos, conforme os recursos de memória consumidos;\n \nuname: mostra informações do sistema operacional e do computador.\n \nDigite uname -a para obter mais detalhes;\n \nExemplos: comandos cal e uname -a\n \nuseradd usuário: cria uma nova conta usuário, por exemplo, useradd marvin cria o usuário marvin;\n \nuserdel usuário: apaga a conta do usuário especificado;\n \nuptime: mostra a quantas horas seu computador está ligado;\n \nvi: inicia o editor de textos vi. Saiba mais aqui;\n \nwhereis nome: procura pelo binário do arquivo indicado, útil para conhecer seu diretório ou se ele existe no sistema;\n \nw: mostra os usuários logados atualmente no computador (útil para servidores);\n \nwho: mostra quem está usando o sistema.\n \nFinalizando...\n \nPraticamente todos os comandos citados possuem parâmetros que permitem incrementar suas funcionalidades.\n \nPor exemplo, se você digitar o comando ls com o parâmetro -R (ls -R), este mostrará todos os arquivos do diretório, inclusive os ocultos.\n \nA melhor forma de conhecer os parâmetros adicionais de cada comando é consultando as informações de ajuda.\n \nPara isso, pode-se usar o recurso --help.\n \nVeja o exemplo para o comando ls:\n \nls --help\n \nTambém é possível utilizar o comando man (desde que seu conteúdo esteja instalado), que geralmente fornece informações mais detalhadas.\n \nPara usar o man para obter detalhes do comando cp, por exemplo, a sintaxe é:\n \nman cp\n \nSe você estiver utilizando o bash, pode-se aplicar o comando help ou info da mesma forma que o comando man:\n \nhelp cp\n \ninfo cp\n \nAssim como conhecer os comandos básicos do Linux é importante, também o é saber como acessar seus recursos de ajuda, pois isso te desobriga de decorar as sequências das funcionalidades extras.\n \nSabendo usar todos os recursos, você certamente terá boa produtividade em suas tarefas no Linux.\n \nComandos de Informação de Estado\n \nclock Define a hora do processador\n \ndate Exibe a data e hora\n \ndf Exibe um resumo do espaço livre em disco\n \ndu Exibe um resumo do uso do espaço em disco\n \nenv Exibe as variáveis de ambiente\n \nfinger Pesquisa informações de utilizadores\n \nhistory Lista os últimos comandos usados, muito útil para lembrar também de que comandos foram usados para fazer determinada acção no passado ou o que foi feito em dada altura\n \nlast Indica o último login de utilizadores\n \nlpq Examina a spool queue\n \nmanpath Mostra a path de procura para as páginas do comando man\n \nprintenv Imprime as variáveis de ambiente\n \nps Lista a lista de processos em execução, útil para saber o pid de um processo para o mandar abaixo com o comando kill, entre outras coisas\n \npwd Mostra-nos o caminho por inteiro da directoria em que nos encontramos em dado momento, ou seja a pathname\n \nset Define variáveis da sessão, ou seja, da shell, na C shell, na bash ou na ksh\n \nspend Lista os custos ACITS UNIX até à data\n \ntime Mede o tempo de execução de programas\n \nuptime Diz-nos há quanto tempo o sistema está funcional, quando foi ligado e o seu uptime\n \nw Mostra-nos quem está no sistema ou que comando cada job está a executar\n \nwho Mostra-nos quem está logado no sistema\n \nwhois Serviço de directório de domínios da Internet, permite-nos saber informações sobre determinados domínios na Internet, quando um domínio foi registado, quando expira, etc\n \nwhoami Diz-nos quem é o dono da shell\n \n \nComandos de Processamento de Texto\n \nabiword Processador de Texto Open Source\n \naddbib Cria ou modifica bases de dados bibliográficas\n \ncol Reverte o filtro a line feeds\n \ndiction Identifica sentenças com palavras\n \ndiffmk Marca diferenças entre ficheiros\n \ndvips Converte ficheiros TeX DVI em ficheiros PostScript\n \nexplain Explica frases encontradas pelo programa diction\n \ngrap Preprocessador pic para desenhar gráficos, usado em tarefas elementares de análises de dados\n \nhyphen Encontra palavras com hífenes\n \nispell Verifica a ortografia de forma interactiva\n \nlatex Formata texto em LaTeX, que é baseado no TeX\n \npdfelatex Para documentos LaTeX em formato pdf\n \nlatex2html Converter LaTeX para html\n \nlookbib Encontra referências bibliográficas\n \nmacref Cria uma referência cruzada listando ficheiros de macros nroff/troff\n \nndx Cria uma página de indexação para um documento\n \nneqn Formata matemáticas com nroff\n \nnroff Formata texto para exibição simples\n \npic Produz simples imagens para troff input\n \npsdit Filtra um output troff para a Apple LaserWriter\n \nptx Cria uma indexação permutada mas não em CCWF\n \nrefer Insere referências de bases de dados bibliográficas\n \nroffbib Faz o run off de uma base de dados bibliográfica\n \nsortbib Ordena uma base de dados bibliográfica\n \nspell Encontra erros de ortografia\n \nstyle Analisa as características superficiais de um documento\n \ntbl Formata tabelas para nroff/troff\n \ntex Formata texto\n \ntpic Converte ficheiros pic source em comandos TeX\n \nwget Permite-nos fazer o download completo de páginas web, com todos os ficheiros, de forma fácil e não interactiva, sem exigir por isso presença do utilizador, respeitando também o ficheiro robots.txt\n \n \nWeb\n \nhtml2ps Conversor de html para ps\n \nlatex2html Conversor de LaTeX para html\n \nlynx Navegador web baseado em modo de texto, ou seja, é um web browser que nos permite abrir todo o tipo de páginas visualizando apenas os textos e links, não vendo assim as imagens, e sendo por isso bastante rápido, mas requere prática para ser manuseado\n \nnetscape Navegador web da Netscape\n \nsitecopy Aplicação que nos permite manter facil e remotamente web sites\n \nweblint Verificador de sintaxes e de estilos html" ; echo'
#
alias convertebook='clear ; echo ; echo -e "O comando serve para vários formatos\n \nExemplo:\n \nebook-convert nome-do-ebook.pdf nome-do-ebook.epub --enable-heuristics\n \nPode ser o inverso epub para pdf, epub para txt, html para pdf, pdf para docx\n \nPode usar sem --enable-heuristics\n \nebook-convert nome-do-ebook.epub nome-do-ebook.docx" ; echo'
#
alias inxinfo="clear ; echo ; echo 'inxi -A Para ver informações das placas de som/áudio do computador' ; echo ; inxi -A ; echo ; sleep 5 ; echo 'inxi -C Para ver informações gerais apenas do CPU' ; echo ; inxi -C ; echo ; sleep 6 ; echo 'inxi -b é bem completo' ; echo ; inxi -b ; sleep 9 ; echo ; echo 'inxi -D Para ver informações completas de armazenamento dos SSDs/HDDs, etc
' ; echo ; inxi -D ; echo ; sleep 7 ; echo 'inxi -G Para ver informações sobre a placa de vídeo' ; echo ; inxi -G ; sleep 7 ; echo ; echo 'inxi -l Para ver informações sobre a tabela de partições' ; echo ; inxi -l ; echo ; sleep 8"
#
# STATUS DE PROCESSOS QUE VOU DIGITAR O NOME
#
alias psef="clear ; echo ; echo -e 'Serão executados os seguintes comandos:\nps -ely\nps axu\nps -ejH\nps -eLf' ; sleep 6 ; echo ; ps -ely ; echo ; sleep 4 ; echo ; ps axu ; sleep 4 ; echo ; ps -ejH ; sleep 4 ; echo ; ps -eLf ; sleep 4 ; echo"
#
# Lista de atalhos para abrir aplicativos no meu Linux
#
alias meusatalhos="clear ; echo ; echo -e '1-Navegador de ajuda: Ctrl+Alt+4\n \n2-Calculadora: Ctrl+Alt+3\n \n3-E-mail: Ctrl+Alt+2\n \n4-Navegador Web: Ctrl+Alt+1\n \n5-Encerrar sessão: Ctrl+Alt+5\n \n6-Desligar: Ctrl+Alt+Delete\n \n7-Bloquear Tela: Ctrl+Alt+L\n \n8-Pasta pessoal: Ctrl+Alt+6\n \n9-Pesquisa: Ctrl+Alt+7\n \n10-Executar aplicativo do painel: Alt+F2\n \n11-Menu do painel: Alt+F1\n \n12-Abrir terminal: Ctrl+Alt+T\n \n13-Capturar imagem da tela de uma janela: Alt+Print\n \n14-Mover entre janelas: Alt+Tab\n \n15-Mover entre painéis: Ctrl+Alt+Tab\n \n16-Mover entre janelas de um aplicativo imediatamente: Alt+F6\n \n17-Ocultar janelas normais e focar na área de trabalho: Ctrl+Alt+D\n \n18-Alterar estado de maximização: Alt+F10\n \n19-Restaurar janela: Alt+F5\n \n20-Fechar a janela: Alt+F4\n \n21-Minimizar a janela: Alt+F9\n \n22-Mover janela: Alt+F7\n \n23-Redimensionar janela: Alt+F8' ; echo"
#
alias firejail='clear ; mkdir -p ~/.local/share/applications; for profile in $(basename -s .profile /etc/firejail/*.profile); do if [[ -f /usr/share/applications/$profile.desktop ]]; then sed -r "s/^(Exec=)/\1firejail /" /usr/share/applications/$profile.desktop > ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done'
#
# FIM DA LISTA DE ALIASES

No Solus 3 colocando scripts na pasta bin/ localizada na home, estes scripts podem ser usado como aliases e em conjunto com outros aliases. Isto dá ao usuário do Solus 3 um enorme poder. Depende do quanto a pessoa sabe sobre shell scripts e comandos Linux e Unix entre outras linguagens. Quase tudo é possível usando scripts e aliases. Scripts que trabalham com outros scripts podem facilmente ser aplicados a centenas de aliases. É uma maravilha!

Até Breve!

🙂

.

Manjaro 17.1.10 – Remover Pacotes Órfãos

2018

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

Mandar um comando para dentro de um arquivo de texto pra eu conferir depois:

sudo pacman -Sargumento >> info-produzida-pelo-comando.txt

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

Para obter informação detalhada de um pacote que eu quero instalar ou remover:

sudo pacman -Si nome-do-pacote

sudo pacman -Si nome-do-pacote >> info-detalhada-do-pacote.txt

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

Para saber o que será/foi modificado:

sudo pacman -Qi nome-do-pacote

sudo pacman -Qi nome-do-pacote >> saida-do-comando1a.txt

sudo pacman -Qii nome-do-pacote

sudo pacman -Qii nome-do-pacote >> saida-do-comando1.txt

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

Buscar um um pacote:

sudo pacman -Ss nome-do-pacote

sudo pacman -Ss nome-do-pacote >> saida-do-comando2.txt

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

Atualizar todo o Manjaro:

sudo pacman -Syyuu

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

Remover pacotes desnecessários:

sudo pacman -Qdt

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

Verificar pacotes instalados manualmente por mim:

sudo pacman -Qe >> saida-do-comando3.txt

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

Se eu quiser ver as dependências de um programa:

sudo pactree nome-do-programa

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

Para listar os pacotes orfãos, executo:

sudo pacman -Qdt

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

Se houver pacotes órfãos vai aparecer uma lista, então a remoção destes pacotes é realizada com o comando abaixo:

sudo pacman -Rns $(pacman -Qqdt)

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

Remover todos menos as 3 últimas versões:

sudo paccache -rvk3

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

Limpar o Cache aumenta espaço livre no disco, mas é melhor usar o comando acima. Usando o comando abaixo perco a possibilidade de downgrade:

sudo pacman -Sc

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

Deixando a atualização do Manjaro mais rápida:

sudo pacman-mirrors -f 5 && sudo pacman -Syy

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

Otimizando a database:

sudo pacman-optimize && sync

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

Instalar um pacote baixado:

sudo pacman -U /package_path/package_name.pkg.tar.xz

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

Posso também usar a URL:

sudo pacman -U http://www.examplepackage/repo/examplepkg.tar.xz

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

Removendo pacotes:

sudo pacman -R nome-do-pacote

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

Removendo pacotes com as dependências:

sudo pacman -Rs nome-do-pacote

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

Listar os pacotes instalados:

sudo pacman -Q

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

Listar os pacotes instalados e mandar para um arquivo de texto:

sudo pacman -Q >> lista-de-pacotes-instalados.txt

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

Listar todos os pacotes do AUR:

sudo pacman -Qem

sudo pacman -Qem >> lista-de-pacotes-instalados-do-AUR.txt

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

Ver dependências de pacotes:

sudo pactree nome-do-pacote

sudo pactree nome-do-pacote >> lista-dependencias-pacote1.txt

sudo pactree -c nome-do-pacote

sudo pactree -c nome-do-pacote >> lista-dependencias-pacote2.txt

sudo pactree -s -c nome-do-pacote

sudo pactree -s -c nome-do-pacote >> lista-dependencias-pacote3.txt

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

Reinstalando o yaourt:

sudo pacman -S base-devel yaourt

yaourt -Syua

yaourt -Syua --devel

yaourt -Qdt

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

Até Breve

🙂

.