Coleção de jogos Linux para brincar no terminal

Nem sempre gráficos e efeitos visuais sofisticados vem acompanhados de entretenimento de alta qualidade.
Se você consegue se divertir com um jogo bem simples, que não suga o processador do seu computador, pode experimentar alguns destes jogos, de que vamos falar no resto deste texto.
space invaders flyer 1978
Eles não pesam, alguns já estão instalados (e você nem sabia!) ou são fáceis de instalar.
Tá com tempo livre?! Então me acompanhe!! 🙂

“Jogabilidade (ou playability), na terminologia dos jogos eletrônicos, é usado para descrever a experiência geral de um jogador em relação aos controles e desafios de um jogo” — Wikipedia.

O conceito de jogabilidade também é independente de sofisticação visual ou imagens foto realistas de alguns jogos contemporâneos.
Entre outras coisas, isto significa que dá para relaxar e se divertir um bocado também em um computador com recursos de hardware limitados.
Você pode encontrar muitas implementações destes jogos na web, reescritos em PHP, Python, HTML etc.

O pacote de jogos de console Debian

O games-console é um metapacote presente no Debian, no Ubuntu e em outras distros.
Veja a relação de pacotes de jogos do conjunto:

  • aajm, an, angband, animals, asciijump, bastet, bombardier,
  • bsdgames, cavezofphear, colossal-cave-adventure, crawl,
  • curseofwar, empire, freesweep, gearhead, gnugo,
  • gnuminishogi, greed, matanza, moria,
  • nethack-console, netris, nettoe,
  • ninvaders, nsnake, ogamesim,
  • omega-rpg, pacman4console,
  • petris, robotfindskitten,
  • slashem, sudoku, tetrinet-client, tint, tintin++, zivot

Só na relação, acima, são 39 jogos de console — pode instalar apenas os que gosta ou que tem curiosidade de conhecer.
netris tetris
Se quiser instalar apenas alguns, use o gerenciador de pacotes da sua distro para instalá-los. Veja um exemplo, com o apt:

sudo apt install nethack-console netris nsnake

Se tudo o que você quer é o cavezofphear, instale apenas ele.
Mas, se quiser experimentar todos, após a instalação, o pacote inteiro não ocupará mais do que 23,6 Kb.
Alguns jogos são variantes (não são iguais) de outros. O bsdgames-adventure é uma variante de colossal-cave-adventure e há 3 variantes do Tetris.
Quase todos não tẽm tradução para o português — o que é uma ótima notícia para quem deseja praticar um pouco de inglês.
O RPG de aventura Colossal Cave, por ser todo em texto e pedir que se interaja em inglês, é uma das ótimas oportunidades do pacote para quem deseja melhorar sua compreensão do idioma, ao mesmo tempo em que se entretém — pegue estes limões e faça uma limonada.
bsdgames-adventure ou Colossal Cave Adventure.
Além do Tetris, há vários outros clássicos popularizados, ao longo dos anos, nas plataformas Atari etc.
E, nem todos, são velhos. Alguns já foram (re)escritos recentemente.
ninvaders space invaders.
O nInvaders, que usa a biblioteca ncurses, tem código escrito em 2002 — embora se baseie no arcade clássico Space Invaders, desenvolvido por Tomohiro Nishikado e popularizado pela Taito, em 1978.
Divirta-se e, se tiver tempo, nos conte quais são os seus preferidos nos comentários! 🙂

Referências

https://opensource.com/life/16/6/terminal-based-games-linux?sc_cid=70160000000lcFwAAI&utm_content=buffer0afb0&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

Como desativar o modo gráfico do Linux.

Há casos em que o usuário prefere abrir mão do ambiente gráfico do Linux para executar as tarefas de que necessita somente no console.
Quando você não tem o desktop gráfico concorrendo por recursos do processador, da memória, do HD etc. é possível usufruir de um ambiente muito mais rápido para trabalhar.
A quantidade de soluções para este caso é enorme.
Algumas soluções já estão implementadas, desde os primórdios do Linux e não envolvem qualquer modificação no sistema.
Outras saídas irão envolver mudanças mais radicais.
O assunto poderia ocupar um livro — mas eu vou abordá-lo resumidamente, apenas com as soluções que eu uso ou que vi na Internet, começando pelas soluções definitivas às temporárias.
Sinta-se à vontade para nos contar como você prefere fazer, nos comentários.

Você pode (re)começar com uma instalação mínima

Esta é uma solução de caráter permanente.
Muitas distribuições GNU/Linux permitem a instalação sem o ambiente gráfico. No Debian isto é muito fácil.
Mais tarde, ela pode ser facilmente modificada depois para comportar um ambiente gráfico.

O Linux (tal como o DOS/Windows) começou como um sistema operacional desprovido de ambiente gráfico e, durante muitos anos, as pessoas faziam sua instalação e configuração “manualmente”, depois de ter todo o sistema principal funcionando.

O Debian e o Ubuntu têm a opção de instalação chamada netinstall, que te permite baixar e instalar apenas os pacotes que vai precisar, com total controle.
Fazer uma instalação mínima é sempre o melhor ponto de partida, para obter um sistema coeso, eficiente e leve.
A ideia, aqui, é ir adicionando ao sistema os componentes na medida em que se tornem necessários — e isto inclui o ambiente gráfico.

Você pode desinstalar o ambiente gráfico ou parte dele.

A segunda abordagem também é do tipo permanente (até quando você quiser).
Se você não tem planos de fazer uso do ambiente gráfico, o que inclui inúmeros aplicativos e suas diversas bibliotecas, desinstale-o de uma vez.
Se quiser voltar atrás, basta reinstalá-lo.
Esta solução, de certa forma, equivale à anterior — com a diferença de que não vai exigir a formatação o hardware de armazenamento e reinstalar o sistema.
Ela pode ser implementada “em estágios”, de maneira que você decide até que ponto deseja ir.
No Debian, no Ubuntu e nas outras distros derivadas, se você remover o lightdm, não vai mais dispôr da tela de autenticação gráfica. Neste caso, a inicialização do sistema irá terminar na tela de autenticação do console.
Outras distribuições usam o GDM ou KDM, no lugar do lightdm. O processo é o mesmo.
Para remover o lightdm no Debian e no Ubuntu, use o seguinte comando:

sudo apt remove lightdm

Isto não vai remover todo o ambiente gráfico — a maior parte dos aplicativos do desktop gráfico ainda vai estar lá.
Você pode reverter o processo reinstalando o lightdm. Como os pacotes ainda continuam no sistema, rapidamente estarão de volta ao seu lugar.
No Debian, é possível usar o comando tasksel (com privilégios administrativos).
Este aplicativo permite remover todo o desktop gráfico automaticamente.
Clique na imagem, abaixo, para ver detalhes:
Como remover o ambiente gráfico no Debian via tasksel.
Se quiser voltar atrás, basta rodar o tasksel novamente e remarcar as opções.

Desative o gerenciador gráfico

Uma solução bastante rápida é desativar o ambiente gráfico, já na sua inicialização.
Isto pode ser feito com uma operação simples de mudar o nome do display manager — cuja função é autenticar o usuário e carregar o restante do ambiente gráfico.
Lightdm
Minha sugestão é alterar o nome do lightdm. Como consequência, o sistema não vai conseguir iniciá-lo e você será deixado no login da linha de comando.
Esta pode ser a solução ideal para quem deseja temporariamente ligar o computador e evitar o ambiente gráfico automaticamente.
Contudo, ela traz alguns problemas.
O sistema vai continuar usando recursos na tentativa de iniciar o lightdm (o tempo todo).
Você pode desligar o serviço do lightdm e ele vai parar de incomodar, se for o caso. Veja como:

sudo mv /usr/sbin/lightdm /usr/sbin/0lightdm

Se a tela de login demorar muito a se apresentar (mais de 3 minutos), reinicie o computador e desative o serviço:

sudo service lightdm stop

Os comandos acima, renomeiam o lightdm (para que ele não seja mais encontrado) e param o serviço, respectivamente.
Quando quiser voltar atrás, basta executá-los em ordem inversa:

sudo mv /usr/sbin/0lightdm /usr/sbin/lightdm
sudo service lightdm start

Dependendo da velocidade do seu hardware, o ambiente gráfico estará de volta em segundos. Se isto não acontecer, reinicie o computador.
Esta solução é válida para o Debian e outras distribuições derivadas, como Ubuntu, Xubuntu etc. — estas duas últimas foram testadas até a versão 16.04 LTS Xenial Xerus.
Não experimentei esta abordagem em ambientes que usam o Mir ou o Wayland.

A maneira tradicional

Este último modo é o que mais uso e que não afeta o ambiente gráfico.
O Linux, tradicionalmente sempre trabalhou em modo multitarefa e multiusuário.
Múltiplos terminais de trabalho sempre estiveram presentes.
Estes terminais podem ser acessados com a combinação de teclas Ctrl + Alt + F1, Ctrl + Alt + F2 etc.
Para voltar ao ambiente gráfico, pressione Ctrl + Alt + F7.
Como você pode ver, esta é uma saída simples e prevista — que não afeta o restante do sistema.
Se você quiser pode, ainda, reduzir o peso do ambiente gráfico, terminando o lightdm, como serviço:

sudo service lightdm stop &

O Ubuntu Handbook propõe uma abordagem pelo GRUB, mas pode não ser compatível com todas as versões.

Streaming de músicas com mpg123 no Linux

Tal como a maioria dos players gráficos, o mpg123 também pode reproduzir streaming (fluxo) de arquivos na rede.
Se você ainda não conhece o mpg123 — um player mp3 em console e extremamente leve — leia este artigo, onde a instalação e o uso básico são explicados.
mpg123 captura de tela
A sintaxe para reproduzir o streaming é a seguinte:

mpg123 http://localhost:8000

Tudo o que você precisa é encontrar a sua rádio online (use o Google) e apontar o mpg123 para o endereço certo.
Veja mais alguns exemplos.
O site Stream WMBR tem várias opções para ouvir. Se você pretende rodar o mpg123 em um servidor e deseja ouvir suas músicas sem sobrecarregar o equipamento ou a rede, use um link de baixo bitrate (normalmente indicados com um lo):

mpg123 http://stream.wmbr.org:8000/lo

A última linha da saída indica qualidade do fluxo de áudio:

High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
	version 1.16.0; written and copyright by Michael Hipp and others
	free software (LGPL) without any warranty but with best wishes

Directory: http://stream.wmbr.org:8000/
Playing MPEG stream 1 of 1: lo ...
ICY-NAME: WMBR 88.1 FM Live Lo-Fi
ICY-URL: http://wmbr.org/

MPEG 1.0 layer III, 32 kbit/s, 44100 Hz mono

Esta mesma rádio tem outras opções de fluxo — de média (64 kbps) e alta qualidade (128 kbps), respectivamente:

mpg123 http://stream.wmbr.org:8000/med

e

mpg123 http://stream.wmbr.org:8000/hi

Para terminar a reprodução, use a combinação de teclas “Ctrl + C”.
Se preferir, execute o mpg123 com a opção “-C” para poder usar teclas de controle:

mpg123 -C http://stream.wmbr.org:8000/hi

As opção são poucas, neste modo:

  • q — para sair
  • m — para mostrar informações sobre o fluxo (streaming)
  • + ou – — para aumentar ou diminuir o volume

mpg123 captura de tela
Os streamings, comumente são programas transmitidos ao vivo.
Você pode ouvir podcasts ou listas de arquivos de áudio mp3 em m3u ou pls, baixados de seus sites favoritos. A partir da lista, o mpg123 vai buscar e reproduzir o áudio.
Use o wget para baixar a lista:

wget http://wmbr.org/m3u/Coffeetime_20150605_1400.m3u
.
--2015-06-05 15:51:19--  http://wmbr.org/m3u/Coffeetime_20150605_1400.m3u
Resolvendo wmbr.org (wmbr.org)... 54.235.95.182
Conectando-se a wmbr.org (wmbr.org)|54.235.95.182|:80... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 89 
Salvando em: “Coffeetime_20150605_1400.m3u”

100%[======================================>] 89          --.-K/s   em 0s      

2015-06-05 15:51:19 (8,89 MB/s) - “Coffeetime_20150605_1400.m3u” salvo
[89/89]

A seguir, basta tocar o arquivo de listas m3u baixado:

mpg123 -C --list Coffeetime_20150605_1400.m3u
.
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
	version 1.16.0; written and copyright by Michael Hipp and others
	free software (LGPL) without any warranty but with best wishes

Directory: http://wmbr.org/archive/
Playing MPEG stream 1 of 1: Coffeetime____6_5_15_1:58_PM.mp3 ...

MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

A minha lista foi baixada do site http://wmbr.org/cgi-bin/arch.
Podemos também encontrar muitas listas m3u pls e streams em http://www.shoutcast.com/.
Você pode pesquisar no Google por outros sites de streaming.
Use os comentários para sugerir e compartilhar outras listas, se quiser.
Divirta-se! 😉

Referências: Leia mais sobre o mpg123.

Use o LS_COLORS para alterar as cores dos arquivos por tipos, nas listagens com ls.

Quem usa o terminal, no GNU/Linux pode se beneficiar das listagens, com o comando ls, que mostrem os arquivos colorizados por tipo. Nomes de diretórios, links (para diretórios), nomes de arquivos de imagem etc. cada qual com sua própria cor — diferenciando-os dos demais.
Por um lado, há o argumento irrefutável da estética: é elegante e agradável trabalhar em um terminal colorido.
Por outro lado, ver a diferença visual entre um nome de arquivo e um link, entre outras situações, pode prevenir remoções acidentais.
Captura de tela da listagem do diretório
Este assunto foi abordado no artigo Como alterar as cores dos nomes dos diretórios no terminal — leia-o para complementar as informações deste artigo.
Estas cores são controladas pela variável de ambiente LS_COLORS, controlada pelo comando dircolors e você pode alterar todas a seu critério.
Entre os motivos para mudar o esquema de cores do LS_COLORS, está a visibilidade quando você deixa de usar um terminal com fundo preto e muda pro fundo mais claro (branco, por exemplo).
Este artigo aborda um método de configuração que te permita ver os nomes de arquivos diferenciados por cores, em função de seu tipo.

Como configurar o seu perfil para ver listagens coloridas

Normalmente a configuração já vem pronta, em qualquer distro GNU/Linux. Se você usa o comando ls no terminal e não vê arquivos em cores diferentes, é possível que a configuração não esteja ativada.
Tente o comando ls assim:


ls --colors

Se os arquivos forem listados em cores diferentes (diretórios, são tradicionalmente em azul), tudo está pronto no seu sistema.
Para facilitar a sua vida, crie um alias (apelido) para o comando ls --colors:


alias ls="ls --color -Nx"

As opções ‘-Nx’, acima, servem apenas para reorganizar a listagem, para você ver uma quantidade maior de arquivos na tela — não tem nada a ver com este artigo, portanto. Você pode removê-las quando terminar de testar as configurações.
A solução, acima, é temporária. Quando você reiniciar sua sessão Linux, o valor do alias será perdido.
Para tornar o alias permanente, abra o arquivo ~/.bashrc e retire as “#” (marcas de comentários) do início das seguintes linhas:


alias ls='ls --color'

LS_COLORS='di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=90'

export LS_COLORS

Se as linhas não existirem, acrescente-as ao final do arquivo.
Explicando o código:

  • alias ls='ls --color' — como já foi dito, esta linha faz com que o comando ls adquira o significado que se encontra entre aspas.
  • LS_COLORS='di=1:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.deb=90' — define a variável de ambiente LS_COLORS com os valores entre aspas (que serão explicados depois). Recomendo fazer suas alterações nesta linha.
  • export LS_COLORS — armazena na memória os valores da variável.

Ajustar o LS_COLORS faz muito mais do que apenas melhorar o visual das suas listagens ls.
O visual melhora, com toda certeza — mas ajuda principalmente a identificar fácil e rápido os arquivos no seu sistema — principalmente quando estamos procurando por algo em diretórios que não costumamos frequentar.

Como personalizar as cores dos itens do diretório

Se você não está satisfeito com as cores padrão do sistema ou deseja impressionar os seus amigos com um terminal customizado, veja quais são os itens que você pode alterar (todos).
Os itens cujas cores podem ser personalizadas (eu só uso 5 destes) seguem listados abaixo:

  • di = diretório
  • fi = file ou arquivo comum
  • ln = link simbólico
  • pi = arquivo fifo
  • so = socket file
  • bd = arquivo especial de bloco (buffered)
  • cd = arquivo especial de caracteres (unbuffered)
  • or = link simbólico apontando para um arquivo não existente (órfão)
  • mi = arquivo inexistente apontado por um link simbólico (visível quando você usa o comando ls -l
  • ex = arquivo executável (que tenha ‘x’ nas suas permissões).
  • Você ainda pode acrescentar arquivos por suas extensões: *.pdf, *.deb, *.txt etc.

Através da tentativa (e erro) é possível chegar a uma configuração satisfatória.
Veja, abaixo, as cores e os efeitos possíveis:

  • 0 = cor padrão do sistema
  • 1 = negrito
  • 4 = sublinhado
  • 5 = texto piscando
  • 7 = campo revertido
  • 31 = vermelho
  • 32 = verde
  • 33 = laranja
  • 34 = azul
  • 35 = púrpura
  • 36 = ciano
  • 37 = cinza
  • 40 = fundo preto
  • 41 = fundo vermelho
  • 42 = fundo verde
  • 43 = fundo laranja
  • 44 = fundo azul
  • 45 = fundo púrpura
  • 46 = fundo ciano
  • 47 = fundo cinza
  • 90 = cinza escuro
  • 91 = vermelho claro
  • 92 = verde claro
  • 93 = amarelo
  • 94 = azul claro
  • 95 = púrpura claro
  • 96 = turquesa
  • 100 = fundo cinza escuro
  • 101 = fundo vermelho claro
  • 102 = fundo verde claro
  • 103 = fundo amarelo
  • 104 = fundo azul claro
  • 105 = fundo púrpura claro
  • 106 = fundo turquesa

Você pode achar estranho, mas algumas destas variações eram usadas nos antigos monitores de fósforo monocromático (verde, âmbar, branco etc) ou coloridos.
Em monitores monocromáticos, a única forma de fazer diferenciação entre os tipos de arquivos é através de recursos como diferenças na tonalidade, no fundo, uso de sublinha, negrito, invertido etc.

A dica para criar um visual retrô para o seu terminal é combinar vários destes recursos com apenas uma cor.

Ao usar uma combinação como di=5;31;42 você pode obter um efeito bem interessante (olhe a tabela, acima, para ter uma idéia).
O que você acha?
Use os comentários para compartilhar o seu esquema de cores favorito. 😉

Como usar o MySQL como calculadora

Além das queries ou consultas de sempre, o cliente MySQL pode efetuar também algumas contas simples ou com algum nível adicional de complexidade.
Tal como no site de pesquisas Google, é possível introduzir diretamente no console do MySQL as operações que você deseja realizar —. Ele te dá o resultado.
MySQL and HP12C calculator

Operações aritméticas aceitas no MySQL

A tabela abaixo contem os operadores possíveis e uma breve descrição:

+ Adição
Subtração
* Multiplicação
/ Divisão
% Operação módulo
Menos unário
DIV Divisão de inteiros (disponível a partir do MySQL versão 4.1.0)

Tal como nas operações de cálculo aritmético básicas, que você já conhece, o MySQL também tem precedências entre operadores.
Assim, os operadores de multiplicação e de divisão são considerados antes dos operadores de adição e subtração.
Se dois operadores tiverem a mesma prioridade, a expressão é lida da esquerda para a direita.
Use os parênteses para forçar a priorização e para melhorar a legibilidade da expressão.

Use o comando SELECT para realizar operações aritméticas no MySQL

As operações aritméticas devem ser invocadas com o comando SELECT:

SELECT -2*3;
+------+
| -2*3 |
+------+
|   -6 |
+------+
1 row in set (0.00 sec)

Use espaçamentos e parênteses em prol da legibilidade:

SELECT (5 + 15) * (30 +20);
+---------------------+
| (5 + 15) * (30 +20) |
+---------------------+
|                1000 |
+---------------------+
1 row in set (0.03 sec)

Você pode multiplicar “em pleno voo” os itens de uma coluna.
No próximo exemplo vou pedir para que os itens da coluna id, da tabela clientesEstaduais sejam exibidos com seus valores multiplicados por 3:

SELECT id*3 FROM clientesEstaduais WHERE id > 10678;
+-------+
| id*3  |
+-------+
| 32055 |
| 32076 |
+-------+

Na query abaixo, vou pedir para exibir os valores originais da coluna id ao lado de seus valores multiplicados por 2:

SELECT id,id*2,nomecliente FROM clientesEstaduais WHERE id > 10668;
+-------+-------+----------------------+
| id    | id*2  | nomecliente          |
+-------+-------+----------------------+
| 10671 | 21342 | Remedios J. Owen     |
| 10678 | 21356 | Hope U. Houston      |
| 10685 | 21370 | Graiden F. Donaldson |
| 10692 | 21384 | Petra M. Dejesus     |
+-------+-------+----------------------+
4 rows in set (0.00 sec)

Faça as suas próprias experiências com suas próprias tabelas para entender melhor como funciona.
Experimente incluir o operador de raiz quadrada na brincadeira…

SELECT SQRT(id) FROM clientesEstaduais WHERE id > 10658;
+--------------------+
| SQRT(id)           |
+--------------------+
| 103.26664514740469 |
| 103.30053242844394 |
| 103.33440859655606 |
| 103.36827366266692 |
| 103.40212763768452 |
+--------------------+
5 rows in set (0.00 sec)

Calcluadoras HP 12c e MySQL

Como fazer operações aritméticas no MySQL, usando variáveis

Se você tiver interesse em saber um pouco mais, leia o post Como usar variáveis no MySQL.
No exemplo a seguir, vou mostrar como usar as variáveis para determinar o valor a ser pago em uma estadia em um hotel:

SET @diaria = 100.00;
SET @qtd_diarias = 5;
SET @taxa_servico = 8; /* este valor é um percentual */
SET @total_diarias = @diaria * @qtd_diarias;
SET @total_servico = (@total_diarias * @taxa_servico) / 100;
SET @total_a_pagar = @total_diarias + @total_servico;
SELECT @total_a_pagar;
+----------------+
| @total_a_pagar |
+----------------+
|  540.000000000 |
+----------------+
1 row in set (0.00 sec)