DevSecOps

23 mar, 2015

Conheça os 10 Easter Eggs mais famosos do Linux

Publicidade

O mundo da tecnologia é repleto de curiosidades, e as principais delas estão muito bem escondidas. Tão escondidas que a grande maioria dos usuários não sabem nem que elas existem.

Os Easter Eggs (ou “Ovos de Páscoa) são um belo exemplo disso. Eles são basicamente qualquer coisa oculta que pode ser encontrada em qualquer tipo de sistema virtual, incluindo músicas, filmes, videogames etc. O termo Easter Eggs remete ao fato de que ovos de páscoa sempre contêm surpresas dentro, sejam chocolates ou brinquedos, daí a origem da expressão para sistemas de informática.

O Livro de Mozilla, uma página secreta exclusiva dos navegadores Mozilla Firefox, Netscape e alguns outros antigos, são exemplos de famosos easter egg. E como é fato, o Linux não poderia ficar de fora dessa lista de sistemas que possuem incríveis easter eggs.

Vamos conhecê-los?

Editores de texto

Vim e Douglas Adams

Se você é um Nerd decente, com certeza já ouviu falar de Douglas Adams, escritor do best-sellers Guia do Mochileiro das Galáxias. Pois é, parece que os desenvolvedores do VIM também são fãs dele…

Antes de mais nada, vamos instalar o VIM. No Ubuntu/Debian. Para isso, digite o comando abaixo:

sudo apt-get install vim

No CentOS/Fedora, digite o comando abaixo:

sudo yum install vim

Abra um terminal e abra o vim com o comando abaixo:

vim

Feito isso, digite:

:help 42

What is the meaning of life, the universe and everything?  *42*
Douglas Adams, the only person who knew what this question really was about is
now dead, unfortunately.  So now you might wonder what the meaning of death
is...
Para sair, digite os dois comandos abaixo (isso mesmo, duas vezes o mesmo comando):
:q
:q

Emacs Games

Para não ficar atrás, o Emacs, um famosos editor de texto conhecido por “ler” praticamente tudo”,  possui um número incrível de jogos que podem ser acessados ​​a partir dele próprio.

Primeiro, vamos instalar o emacs. No Ubunut/Debian. Digite:

sudo apt-get install emacs
No CentOS/Fedora, digite:

sudo yum install emacs

Você pode encontrar os games disponíveis no diretório a seguir:

cd /usr/share/emacs/*/lisp/play
ls

5x5.elc       decipher.elc    gametree.elc   meese.elc      spook.elc
animate.elc   dissociate.elc  gomoku.elc     morse.elc      studly.elc
blackbox.elc  doctor.elc      handwrite.elc  mpuz.elc       tetris.elc
bruce.el      dunnet.elc      hanoi.elc      pong.elc       yow.elc
bubbles.elc   fortune.elc     landmark.elc   snake.elc      zone.elc
cookie1.elc   gamegrid.elc    life.elc       solitaire.elc

Para rodá-los, abra o emacs com o comando abaixo:

emacs

Agora pressione Esc seguido de x, e digite o nome do game que você quer rodar:

Esc-x
pong

emacs_pong

Para sair do emacs, pressione Ctrl X e Ctrl C:

Ctrl-x
Ctrl-c

Apt

O Apt-get e o poder da “Super Vaca”

No Ubuntu, Debian e derivados, o gerenciador de pacotes apt-get possui alguns interessantes easter eggs há muito tempo.

Se você abrir o help do comando, poderá perceber uma pista sobre a “Super Vaca”. Repare na última linha:

apt-get help

Utilização: apt-get [opções] comando
            apt-get [opções] install|remove pacote1 [pacote2 ...]
            apt-get [opções] source pacote1 [pacote2 ...]

O apt-get é um interface simples de linha de comandos para obter
e instalar pacotes. Os comandos utilizados mais frequentemente
são update e install.

Comandos:
   update - Obter novas listas de pacotes
   upgrade - Executar uma actualização
   install - Instalar novos pacotes (o pacote é libc6 e não libc6.deb)
   remove - Remover pacotes
   autoremove - Remover automaticamente todos os pacotes não utilizados
   purge - Remover pacotes e ficheiros de configuração
   source - Fazer o download de arquivos de código-fonte
   build-dep - Configurar as dependências de compilação de pacotes de código-fonte
   dist-upgrade - Actualizar a distribuição, veja apt-get(8)
   dselect-upgrade - Seguir as escolhas feitas no dselect
   clean - Apagar ficheiros de arquivo obtidos por download
   autoclean - Apagar ficheiros de arquivo antigos obtidos por download
   check - Verificar se existem dependências erradas
   changelog - Obter e mostrar o changelog de um pacote
   download - Obter o pacote binário para o directório actual

Opções:
  -h  Este texto de ajuda
  -q  Saída para registo - sem indicador de progresso
  -qq Sem saída, excepto para erros
  -d  Fazer apenas o download - NÃO instalar ou descompactar arquivos
  -s  Não agir. Executar simulação de ordens
  -y  Assumir Sim para todas as perguntas e não fazer perguntas
  -f  Tentar corrigir um sistema com dependências erradas
  -m  Tentar continuar se os arquivos não poderem ser localizados
  -u  Mostrar também uma lista de pacotes actualizados
  -b  Construir o pacote de código-fonte depois de o obter
  -V  Mostrar números da versão detalhados
  -c=? Ler este ficheiro de configuração
  -o=? Definir uma opção de configuração arbitrária, p.e. -o dir::cache=/tmp
Para mais informações e opções veja as páginas do manual
apt-get(8), sources.list(5) e apt.conf(5)
                         Este APT tem Poderes de Super Vaca.

Para ver a “Super Vaca” em ação, digite:

apt-get moo

         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
Mas o que é essa tal de “Super Vaca”? Isso foi uma brincadeira entre os desenvolvedores do APT. Um deles costumava entrar nos canais do IRC saudando os presentes com um “moo” (o som de um mugido) e os outros, pra trollarem o companheiro, decidiram implementar a “Super Vaca” no APT para homenageá-lo.

E o Aptitude tem super vaca também?

O aptitude é também um gerenciador de pacotes .DEB, que derivou do APT. Porém os seus desenvolvedores não quiseram implementar a “super vaca” nele, mas nem por isso o aptitude deixou de ter um easter egg.

Digite o comando abaixo e repare na última linha:

aptitude help

. . .
. . .
 -u             Download new package lists on startup.
                  (terminal interface only)
 -i             Perform an install run on startup.
                  (terminal interface only)

                  This aptitude does not have Super Cow Powers.

Não acredita? Que tal conferir:

aptitude moo

There are no Easter Eggs in this program.
E se fizermos isto:
aptitude -v moo

There really are no Easter Eggs in this program.

E isto:

aptitude -vv moo

Didn't I already tell you that there are no Easter Eggs in this program?
Paramos por ai? Não… rs:
aptitude -vvvvv moo

All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------

E se acrescentarmos mais um “v”:

aptitude -vvvvvv moo

What is it?  It's an elephant being eaten by a snake, of course.

Isso é uma referência ao livro O Pequeno Príncipe, de Antoine de Saint-Exupéry.

Estranhas opções para comandos usuais

Existem algumas opções estranhas disponíveis em alguns programas comuns que você usa no dia a dia, vamos conferir?

Insultando com o Sudo

Você pode configurar o sudo, usado para ganhar privilégios de root em um comando, para insultar os usuários quando eles digitarem uma senha incorreta.

Para fazer isso, edite o arquivo sudoers (/etc/sudoers) com a ferramenta visudo, que edita e valida modificações no arquivo de configuração do sudo.

sudo visudo

No início do arquivo, adicione a linha abaixo:

Defaults insults

Salve e feche o arquivo.

Agora execute os comandos abaixo para validar o sudoers e tente errar a sua senha:

sudo -k
sudo ls

[sudo] password for demo: # Type an incorrect password here
Have you considered trying to match wits with a rutabaga?
[sudo] password for demo: 
My pet ferret can type better than you!
[sudo] password for demo:
Wrong!  You cheating scum!

Script Kiddie no Nmap

O Nmap é uma ferramenta de exploração de rede usada para realizar auditorias de segurança em sistemas.

Antes, vamos instalar. No Ubuntu/Debian, execute:

sudo apt-get install nmap

No CentOS/Fedora, execute:

sudo yum install nmap

 

A saída do Nmap é bem intuitiva e sem “frescuras” de script kiddie:
nmap scanme.nmap.org

Starting Nmap 5.21 ( http://nmap.org ) at 2013-09-18 17:43 UTC
Nmap scan report for scanme.nmap.org (74.207.244.221)
Host is up (0.072s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 1.40 seconds

Mas podemos habilitar estas frescuras:

nmap -oS - scanme.nmap.org

$tart|ng NMap 5.21 ( http://Nmap.org ) at 2013-09-18 17:45 UTC
Nmap $cAn r3p0rt F0r scanM3.nmaP.oRg (74.207.244.221)
Ho$t 1z Up (0.071z laT3ncy).
Not sh0wN: 998 cl0$Ed p0rt$
POrT   ST4TE $ERV!C3
22/tcp opEn  Ssh
80/tcP 0p3n  HtTp

Nmap d0n3: 1 iP AddrESz (1 h0$t Up) $canNed !n 1.34 secondz

Star Wars pela linha de comando

Existem duas formas de você “abrir uma conexão com o mundo Star Wars” em seu Linux.

ASCII animado do Star Wars no Telnet

Simon Jansen, Sten Spans e Mike Edwards criaram uma homenagem ao Star Wars em ASCII (texto) animado, acessível através do telnet. Em termos leigos: você pode assistir a uma versão em texto de Star Wars em seu terminal!

Primeiro, instale o telnet (se você já não o tiver).

No Ubuntu/Debian:

sudo apt-get install telnet

No CentOS/Fedora:

sudo yum install telnet

Agora aponte seu telnet para o servidor correto:

telnet towel.blinkenlights.nl

                                   /~\                               
         R2-D2!                   |oo )                              
     Where are you?         #     _\=/_    #                         
                             \\  /  _  \  //                         
                              \\//|/.\|\\//                          
                               \/  \_/  \/                           
                                  |\ /|                              
                                  \_ _/                              
                                  | | |                              
                                  | | |                              
                                  []|[]                              
                                  | | |                              
  _______________________________/_]_[_\_____________________________

Para sair, pressione Ctrl e ]. Será aberto um prompt e você deve digitar “close” para fechar o telnet:

Ctrl-]
close

Star Wars e o Traceroute

Outro tributo ao Star Wars foi criado por Ryan Werber nomeando hops de uma rede específica.

Se você executar o traceroute, um programa que traça o caminho de pacotes para um host remoto, você verá a introdução de Star Wars nos nomes da rede ao longo do caminho.

Execute:

traceroute -m 254 -q1 obiwan.scrye.net

Depois de alguns momentos, a mágica começa:

. . .
. . .
15  Episode.IV (206.214.251.1)  77.506 ms
16  A.NEW.HOPE (206.214.251.6)  87.194 ms
17  It.is.a.period.of.civil.war (206.214.251.9)  77.699 ms
18  Rebel.spaceships (206.214.251.14)  78.171 ms
19  striking.from.a.hidden.base (206.214.251.17)  87.624 ms
20  have.won.their.first.victory (206.214.251.22)  86.249 ms
21  against.the.evil.Galactic.Empire (206.214.251.25)  77.505 ms
22  During.the.battle (206.214.251.30)  85.622 ms
23  Rebel.spies.managed (206.214.251.33)  78.121 ms
24  to.steal.secret.plans (206.214.251.38)  77.049 ms
. . .
. . .
99  Were.no.strangers.to.love (206.214.251.206)  77.472 ms
100  You.know.the.rules.and.so.do.I (206.214.251.209)  78.054 ms
101  A.full.commitments.what.Im.thinking.of (206.214.251.214)  78.512 ms
102  I.just.wanna.tell.you.how.Im.feeling (206.214.251.217)  79.884 ms
103  Gotta.make.you.understand (206.214.251.222)  79.427 ms
104  Never.gonna.give.you.up (206.214.251.225)  77.032 ms
105  Never.gonna.let.you.down (206.214.251.230)  78.909 ms
106  Never.gonna.run.around.and.desert.you (206.214.251.233)  80.286 ms

Instalando Easter Eggs

Existem alguns programas que você provavelmente não vai precisar para qualquer outra finalidade, mas pode ser divertido tê-los se você tem algum tempo (ou para quando cair a sua Internet… rs).

Brincando com erros de digitação

Você pode se divertir toda vez que, ao rodar o “ls”, digitar sem querer “sl”. Para isso, vamos instalar:

No Ubuntu/Debian:

sudo apt-get install sl

No CentOS/Fedora:

sudo yum install sl

E se você errar…

sl

                          (  ) (@@) ( )  (@)  ()    @@    O     @     O     @
                     (@@@)
                 (    )
              (@@@@)

            (   )
        ====        ________                ___________
    _D _|  |_______/        \__I_I_____===__|_________|
     |(_)---  |   H\________/ |   |        =|___ ___|      _________________
     /     |  |   H  |  |     |   |         ||_| |_||     _|                \___
    |      |  |   H  |__--------------------| [___] |   =|
    | ________|___H__/__|_____/[][]~\_______|       |   -|
    |/ |   |-----------I_____I [][] []  D   |=======|____|______________________
  __/ =| o |=-~~\  /~~\  /~~\  /~~\ ____Y___________|__|________________________
   |/-=|___|=O=====O=====O=====O   |_____/~\___/          |_D__D__D_|  |_D__D__D
    \_/      \__/  \__/  \__/  \__/      \_/               \_/   \_/    \_/   \

…um trem irá cruzar a sua tela toda vez.

Cowsay e Fortune

Baseado na ideia da “Super Vaca”, o Cowsay e o Fortune são outros easter eggs bem legais. Vamos instalar?

No Ubuntu/Debian:

sudo apt-get install fortune cowsay

No CentOS/Fedora:

sudo yum install fortune cowsay

O Cowsay exibirá uma vaca em ASCII que vai adorar conversar com você:

cowsay "hello, I'm a cow"

 __________________
< hello, I'm a cow >
 ------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
Já o Fortunes vai exibir algumas frases, piadas etc. (estilo biscoitinho da sorte chinês). O legal é que você pode fazer a Super Vaca falá-los pra você:
fortune | cowsay

 ________________________________________
/ Q: What looks like a cat, flies like a \
| bat, brays like a donkey, and          |
|                                        |
\ plays like a monkey? A: Nothing.       /
 ----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Se, em vez da vaca, você preferir um Tux, basta digitar:

fortune | cowsay -f tux

 _____________________________________
/ You never know how many friends you \
| have until you rent a house on the  |
\ beach.                              /
 -------------------------------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/

Para saber a lista das frases disponíveis, digite (ou abra o arquivo e altere como você preferir):

cowsay -l

Cow files in /usr/share/cowsay/cows:
apt beavis.zen bong bud-frogs bunny calvin cheese cock cower daemon default
dragon dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep
ghostbusters gnu head-in hellokitty kiss kitty koala kosh luke-koala
mech-and-cow meow milk moofasa moose mutilated pony pony-smaller ren sheep
skeleton snowman sodomized-sheep stegosaurus stimpy suse three-eyes turkey
turtle tux unipony unipony-smaller vader vader-koala www

Um dos mais legais é este:

fortune | cowsay -f stegosaurus

 _________________________________________
/ Q: What lies on the bottom of the ocean \
\ and twitches? A: A nervous wreck.       /
 -----------------------------------------
\                             .       .
 \                           / `.   .' " 
  \                  .---.  <    > <    >  .---.
   \                 |    \  \ - ~ ~ - /  /    |
         _____          ..-~             ~-..-~
        |     |   \~~~\.'                    `./~~~/
       ---------   \__/                        \__/
      .'  O    \     /               /       \  " 
     (_____,    `._.'               |         }  \/~~~/
      `----.          /       }     |        /    \__/
            `-.      |       /      |       /      `. ,~~|
                ~-.__|      /_ - ~ ^|      /- _      `..-'   
                     |     /        |     /     ~-.     `-. _  _  _
                     |_____|        |_____|         ~ - . _ _ _ _ _>

Se você quiser saber mais formas de instalar estas e outras “frescurinhas” em seu terminal, leia este artigo. E aí, gostou? Com informações daqui.