Como obter o efeito Matrix no seu terminal

No filme (agora, um clássico) de aventura e ficção científica, Matrix, lançado no fim dos anos 90 e dirigido pelas irmãs Wachowski, em alguns momentos, a realidade virtual ou o código da “matriz” é representado por uma chuva de caracteres em verde.
A cor verde é uma alusão aos antigos monitores em fósforo verde, muito populares entre as décadas de 60 a 80.

Se você não acha divertido trabalhar na linha de comando (CLI), provavelmente está fazendo isso errado.

Use o gerenciador de pacotes da sua distro para instalar o cmatrix.
No Debian/Ubuntu, use o apt:


sudo apt install cmatrix

Uma vez instalado, é possível rodar o programa apenas digitando ‘cmatrix’ dentro do terminal.
Mas o melhor é fazer uso de algumas opções que ele oferece na linha de comando.
Eu gosto de usar assim:


cmatrix -nu 6 -C blue

Deixa eu explicar o comando:

  • A opção ‘-n’, desliga as letras em negrito, o que confere um visual mais suave e homogêneo (em minha humilde opinião).
  • ‘-u 6’ ajusta a velocidade da cascata de letras para 6. Você pode usar outro valor, de 0 a 10.
  • ‘-C blue’ ajusta a cor principal para azul.

cmatrix matrix linux

Use o meu exemplo para obter diferentes efeitos.

Comandos do cmatrix

Durante a execução do programa, é possível alterar o seu comportamento, pressionando as seguintes teclas:

  • a, para ligar/desligar a rolagem assíncrona.
  • b, B ou n, para alternar o efeito negrito sobre as letras.
  • 0 a 9, para alterar a velocidade da rolagem.
  • q, para sair.

Segue a relação de cores possíveis, com a tecla de comando de cada uma:

  1. @ green (verde), é a cor padrão.
  2. ! red (vermelho).
  3. $ blue (azul).
  4. & white (branco).
  5. # yellow (amarelo).
  6. ^ cyan (ciano).
  7. % magenta.
  8. ) black (preto).

Experimente ler a ajuda do programa, para obter mais informações sobre sua execução:


cmatrix -h

Por fim, fica o aviso de que o cmatrix consome bastante recursos do sistema. Portanto, não se assuste com este “detalhe”.

Como copiar arquivos na linha de comando com exibição do progresso

É possível exibir o progresso da transferência dos dados, à medida em que são copiados no Linux/Unix com o uso do comando de cópia, cp?

A resposta curta é não.
Porém, através de um hack (que vou ensinar neste artigo), é possível fazer cópias de todos os arquivos de um diretório (recursivamente, se você quiser) para outro, com a exibição do progresso da cópia de cada arquivo.

rsync - exemplo de uso - captura de tela
Com o uso do alias, o cp se comporta como o comando rsync.

Se estivermos falando de arquivos muito grandes (áudio, vídeo etc.) será possível acompanhar melhor o processo de cópia na CLI (linha de comando).
Vamos ver como realizar o procedimento com o uso destas 2 ferramentas padrão em qualquer distro GNU/Linux: alias e rsync.
O comando rsync serve para fazer cópias entre diretórios locais e remotos.
Com ele é possível obter um retorno sobre a taxa de progresso da cópia de dados.
Por exemplo, para copiar todos os arquivos da pasta Documentos para /media/justincase/pendrive, use o comando assim:


rsync -ahu --progress Documentos/* /media/justincase/pendrive/

Veja o que o comando faz:

  • -a — estabelece que a transferência ocorra no nível de arquivo.
  • -hhuman readable, indica que o retorno deve ocorrer em Kb/Mb, para tornar a leitura mais fácil.
  • -uupdate, atualiza apenas os arquivos com entradas mais novas, para agilizar o processo. O rsync já faz a cópia incremental, por padrão — ou seja, verifica antes se os arquivos já existem no destino e só copia se houve atualizações.
  • --progress — finalmente, esta é a opção de exibição do progresso da execução da transferência individual da cópia.

Para adicionar recursividade, use a opção ‘-r’:


rsync -ahur --progress Documentos/* /media/justincase/pendrive/

Fique à vontade para alterar os itens da linha de comando, para que ela se encaixe às suas necessidades.
Por fim, altere a função do comando cp, no seu sistema, com o uso do alias:


alias cp="rsync -ahu --progress"

Se preferir que a função de recursividade fique em um comando separado, crie um novo alias:


alias cpr="rsync -ahur --progress"

Veja um exemplo de funcionamento do “novo” cp:


cp ~/Documentos/Documento\ digitalizado* /media/justincase/b655b449-21c6-42ca-b274-5adf9980a843/Documentos/

sending incremental file list
Documento digitalizado-1.jpg
        953.79K 100%   48.80MB/s    0:00:00 (xfr#1, to-chk=11/12)
Documento digitalizado-1.jpg.zip
        917.61K 100%   15.63MB/s    0:00:00 (xfr#2, to-chk=10/12)
Documento digitalizado-1.png
          7.40M 100%   43.27MB/s    0:00:00 (xfr#3, to-chk=9/12)
Documento digitalizado-2.jpg
        407.14K 100%    2.03MB/s    0:00:00 (xfr#4, to-chk=8/12)
Documento digitalizado-2.jpg.zip
        354.94K 100%    1.74MB/s    0:00:00 (xfr#5, to-chk=7/12)
Documento digitalizado-2.png
        483.23K 100%    2.06MB/s    0:00:00 (xfr#6, to-chk=6/12)
Documento digitalizado-3.jpg
        318.37K 100%    1.22MB/s    0:00:00 (xfr#7, to-chk=5/12)
Documento digitalizado-3.jpg.zip
        309.96K 100%    1.17MB/s    0:00:00 (xfr#8, to-chk=4/12)
Documento digitalizado-3.png
        482.62K 100%    1.64MB/s    0:00:00 (xfr#9, to-chk=3/12)
Documento digitalizado-pgto-helio20140513.pdf
        112.15K 100%  359.08kB/s    0:00:00 (xfr#10, to-chk=2/12)
Documento digitalizado.jpg
         30.82K 100%   96.76kB/s    0:00:00 (xfr#11, to-chk=1/12)
Documento digitalizado.png
          7.40M 100%   16.79MB/s    0:00:00 (xfr#12, to-chk=0/12)

Segue um exemplo de uma variação do uso do rsync, que inclui a opção ‘–info=progress2’:


rsync -ah --info=progress2 ~/Documentos/Documento\ digitalizado* /media/justincase/b655b449-21c6-42ca-b274-5adf9980a843/Documentos/

         19.16M 100%  192.03MB/s    0:00:00 (xfr#12, to-chk=0/12)

Neste caso, os dados sobre o progresso se referem à tarefa toda e não apenas a cada arquivo individualmente.
Você pode criar um alias para este modo de operação, se quiser.

Como instalar a interface de linha de comando do WordPress

Alguns usuários podem ter utilidade para uma interface de linha de comando, para realizar atividades administrativas relacionadas ao WordPress.
Para estes, existe o wp-cli — WordPress Command Line Interface, ou “interface de linha de comando do WordPress”.

Sua instalação é simples e leva menos de 30 segundos (verdade!).
Veja quais são os prerequisitos para baixar, instalar e usar o wp-cli:

  1. Ambiente UNIX-like, o que inclui o OSX, sua distro Linux favorita, FreeBSD e Cygwin (para usuários Windows). No ambiente Windows, há suporte limitado do aplicativo, mas é possível usá-lo.
  2. PHP — a versão 5.3.29 é requerida, mas as atuais distribuições GNU/Linux já estão usando versões superiores à 7.0.
  3. WordPress 3.7 ou superior.

Por fim, use o comando wget (ou o curl) para fazer o download do wp-cli.phar:


wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Se preferir usar o curl, faça assim:


curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Verifique se aplicativo já está funcionando adequadamente:


php wp-cli.phar --info

PHP binary: /usr/bin/php7.0
PHP version:    7.0.19-1
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:    phar://wp-cli.phar
WP-CLI vendor dir:  phar://wp-cli.phar/vendor
WP_CLI phar path:   /home/apps
WP-CLI packages dir:    
WP-CLI global config:   
WP-CLI project config:  
WP-CLI version: 1.3.0

Para tornar o uso do aplicativo mais simplificado, vamos torná-lo executável:


chmod +x wp-cli.phar 

… e movê-lo para um diretório mais apropriado.


sudo mv wp-cli.phar /usr/local/bin/wp

Agora já será possível executá-lo, sem digitar “PHP” no começo:


wp --info

PHP binary: /usr/bin/php7.0
PHP version:    7.0.19-1
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:    phar://wp-cli.phar
WP-CLI vendor dir:  phar://wp-cli.phar/vendor
WP_CLI phar path:   /home/apps
WP-CLI packages dir:    
WP-CLI global config:   
WP-CLI project config:  
WP-CLI version: 1.3.0

Se preferir, na hora de baixar o programa, é possível optar pela versão nightly (a versão dos desenvolvedores). Ela tem os recursos mais atuais, porém é menos testada do que a versão estável.


wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli-nightly.phar

Feito o download, basta repetir os procedimentos acima — tendo o cuidado de trocar o nome da versão estável pelo da nightly.


Sempre que quiser atualizar o wp-cli, use a opção ‘update’:


sudo wp cli update
[sudo] senha para justincase: 
Success: WP-CLI is at the latest version.

Se quiser passar a usar a versão nightly, é possível fazer a troca também através do ‘update’. Veja:


sudo wp cli update --nightly

Como configuração adicional, torne o aplicativo amigável ao recurso de autocompletar:


wget https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash

Use o source, para incluir o recurso no BASH, inclua a seguinte linha no seu .bashrc:


source /caminho/para/wp-completion.bash 

… ou seja, se este arquivo estiver no seu diretório home, use “source ~/wp-completion.bash” (sem as aspas).
Para que a alteração tenha efeito imediato, rode o comando:


source ~/.bash_profile

Agora, é só usar!

Assine este site

Todo dia eu aprendo alguma coisa nova sobre administração de servidores, WordPress, bancos de dados, Android etc.
Desde o começo, este site existe para compartilhar o que sei com outras pessoas.
Se quiser ser avisado(a) quando houver post novo no blog, inscreva-se abaixo!

Referências

https://make.wordpress.org/cli/handbook/installing/.
Leia mais sobre WordPress, neste site.

Como remover o GNOME do Debian e instalar outro desktop gráfico

Se você não gosta do GNOME e prefere usar outro ambiente ou desktop gráfico, há um método muito simples para remover e, se quiser, instalar outro desktop que você goste mais.
O GNOME é, atualmente, o desktop gráfico padrão de distribuições importantes, como o Fedora, o Debian e o Ubuntu.
Mas, no mundo do software livre, ninguém é obrigado a usar ou gostar de nada.
Neste post, vou mostrar:

  • Como remover o GNOME totalmente e deixar o seu desktop apenas com a interface texto (CLI).
  • Opcionalmente, como escolher e instalar outro ambiente gráfico.

Devo advertir que os meus exemplos rodaram bem em uma máquina com conexão Ethernet. Você pode ficar sem conexão, se estiver dependendo de uma placa de rede Wi-Fi/Wireless com suporte precário por parte do fabricante.


Comece por programar o sistema para iniciar na CLI:


systemctl set-default multi-user.target

Leia mais sobre como usar o systemctl para configurar o Linux para iniciar na CLI ou GUI.
Agora reinicie o computador:


systemctl reboot

Quando o sistema voltar autentique-se (de preferência como root) e prossiga com o comando tasksel:


tasksel remove gnome-desktop

debian remover gnome
O trabalho de remoção do GNOME, a esta altura, foi concluído.

Como instalar um outro ambiente desktop gráfico no Debian

Se você quiser, pode usar o mesmo tasksel para selecionar outro desktop gráfico para instalação no seu sistema:


tasksel

tasksel seleciona ambiente gráfico
Como você pode ver, na tela do tasksel, é possível escolher mais de um ambiente gráfico para instalação.
Ao optar por instalar um destes desktop gráficos, não se esqueça de reajustar o padrão de volta para o ambiente gráfico:


systemctl set-default graphic.target

Como desativar/ativar o modo gráfico no Linux com o systemd

Você pode usar o systemd e seu comando systemctl para informar o sistema se quer usar sempre a interface gráfica ou apenas a de linha de comando.
O recurso permite a opção, sem desinstalar absolutamente nada e é facilmente reversível, como irei mostrar.
Com todos as críticas que se possa ter ao systemd — e algumas delas são muito justas — temos que reconhecer que trouxe algumas comodidades e a uniformização de alguns procedimentos.
O que vou descrever, neste artigo, foi testado no Fedora 26 Workstation — mas é aplicável em qualquer outra distro que faça uso do systemd.

Use o systemctl para determinar a interface padrão no seu sistema

Você pode usar o comando systemctl para gerenciar a interface padrão — fazendo a troca entre GUI (modo gráfico) e CLI (modo texto).
Para ver qual é o padrão, neste momento, use o comando assim:


systemctl get-default 

graphical.target

O resultado “graphical.target” indica que a GUI é a interface padrão (no meu sistema). Se fosse a CLI, o get-default iria resultar em “multi-user.target”


Use a caixa de busca do site para localizar mais posts sobre o systemd.
fedora systemd systemctl
Para mudar a interface padrão para o modo texto, na próxima inicialização do sistema, use o set-default:


systemctl set-default multi-user.target

Created symlink /etc/systemd/system/default.target → /lib/systemd/system/multi-user.target.

Este comando pede autenticação de administrador do sistema e só terá efeito após o reboot.
Você reiniciar o sistema com o próprio systemctl:


systemctl reboot

fedora systemd cli systemctl
Para desfazer o procedimento – e voltar a usar a interface gráfica como padrão – use o seguinte comando:


systemctl set-default graphical.target

Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /lib/systemd/system/graphical.target.

É simples assim. 😉