Comandos Linux

“Muito embora o Linux possua diversas e ótimas interfaces gráfica (GUI’s – Graphical User Interfaces) bastante amigáveis, dentre as quais destacamos o Gnome e KDE, como de resto todos os sistemas operacionais Unix, ainda requerem por vezes que façamos uso da linha de comando. O ambiente tradicional do Unix é o CLI (Command Line Interface), onde você digita os comandos para dizer ao computador o que ele deve fazer. Esse modo é extremamente poderoso e rápido, porém implica que você saiba para que serve cada comando e seus diversos parâmetros.”

terminal.png

Usando essa página

  • Essa página ira fazer você se familiarizar com os comandos básicos do GNU/Linux.
  • Não é sua intenção ser um guia completo de comandos, somente uma introdução para complementar as ferramentas gráficas do Ubuntu.
  • Todos os nomes dos comandos estarão em negrito.

  • Os comandos que você precisará digitar estarão sempre em “negrito com aspas”.

  • Todos os comandos nesta página devem ser usados em um terminal ou diretamente no shell.

Icones/erro.png

ATENÇÃO: Lembre-se o Linux diferencia maiúsculas de minúsculas. Portanto, comando eCOMANDO são coisas totalmente diferentes.

Iniciando o Interpretador de Comandos

Abrindo um Terminal

No Gnome vá ao menu Aplicações > Acessórios > Terminal ou pressione simultaneamente as teclas Alt+F2, e na caixa de texto digite “gnome-terminal” e tecle “Enter”.

Abrindo uma seção shell

Tecle simultaneamente Crtl+Alt+F1(…F6) que uma console modo texto será exibido solicitando um login, onde você deverá entrar com seu usuário e senha para ter acesso ao prompt de comando.

Os Comandos do Linux

Como já descrito anteriormente, não temos a pretensão de ser um guia completo de comandos, mais uma fonte de referência que irá abranger os principais comandos separados por categorias de acordo com as tarefas que executam.

Um comando do Linux é uma palavra especial que representa uma ou mais ações. Um interpretador de comandos também é conhecido como shell ou modo texto. Ele é o programa responsável por interpretar essas instruções enviadas pelo usuário e seus programas para o kernel. No Linux, você poderá ter vários interpretadores de comandos (ao contrário do que acontece no Windows que só tem o command.com).

O interpretador de comandos é que executa comandos lidos do teclado ou de um arquivo executável. É a principal ligação entre o usuário. Entre os programas interpretadores de comandos podemos destacar o bash, csh e sh entre outros.

Entre eles o mais usado é o Bash (Bourne Again Shell), criado por S.R. Bourne. Os comandos podem ser enviados de duas maneiras para o interpretador:

  • Interativa – Os comandos são digitados no teclado pelo usuário e passados ao interpretador de comandos um a um. Neste modo o computador depende do usuário para executar uma tarefa ou o próximo comando.

  • Não-interativa – São usados arquivos de comandos (scripts) criados pelo usuário para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um, e dependendo do término do comando, o script pode verificar qual será próximo comando que será executado e dar continuidade ou não ao processamento.

Esse sistema é muito útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo.

Uma característica interessante do bash é que ele possui a função de auto-completar os nomes de comandos que foram digitados via entrada padrão. Isso é feito pressionando-se a tecla TAB; o comando é completado e acrescentando um espaço.

Isso funciona sem problemas para comandos internos; caso o comando não seja encontrado, o bash emite um beep. Por exemplo, na sua pasta raiz tente digitar cd pro (aperte TAB)+as( aperte TAB)+os( aperte TAB)+d(aperte TAB) e veja como foi fácil digitar um caminho para entrar no local:/proc/asound/oss/devices.

Outro recurso muito interessante do bash, é que você pode repetir um comando executado sem ter que digitá-lo novamente. Isso é possível utilizando o caractere “!” na frente do comando que você deseja repetir. O bash vai buscar aquele comando no histórico e se lá tiver algo parecido o comando será executado. Veja o exemplo abaixo com esta seqüência de comandos:

tail -f /var/log/squid/access.log
cd /etc/
ls -hl
!tail

O comando “!tail” irá informar ao shell (bash) para executar o último comando tail executado, no caso, “tail -f /var/log/squid/access.log”, e você passara a ver novamente os LOG’s do Squid em tempo real.

Para execução de muitos comandos é necessário ter privilégios de administrador, então como no Ubuntu o usuário root por questões de segurança se encontra desabilitado, será necessário o uso do “sudo”. Assim sendo sempre que um comando necessitar deste privilégio, o mesmo estará precedido do sudo.

Adicione também o comando sudo na frente de todos os comandos, caso esteja trabalhando em um diretório ou em arquivos que não lhe pertencem (arquivos do sistema, por exemplo). Veja RootSudo para maiores informações sobre o sudo.

Documentação

  • man – Formata e exibe uma página man (man page) O comando man é usado para mostrar o manual de outros comandos. Tente “man man” para ver a página do manual do próprio man. Veja a seção “Man & Getting Help” para mais informações.

  • help – Exibe informações sobre os comandos internos do Bash. Ex.: ”help logout”

  • info – Exibe documentação no formato Info, sendo que a navegação pelo documento é feito por meio de comandos internos do Info. Ex.: ”info emacs”

Data e Hora

  • date – Exibe e edita a data e a hora atuais do sistema.

    • ”date” para exibir a data e hora atual.

    • ”sudo date 032914502007” para alterar a data e hora para 14:50 h de 29/03/2007.

  • cal – Exibe um simples calendário.

  • hwclock – Consulta ou define o relógio do hardware (Hardware Clock).

    • “sudo hwclock -s” para atribuir ao sistema a data e hora do hardware (BIOS).

    • “sudo hwclock –set –date=032914502007” para definir a data e hora do hardware como 14:50 h de 29/03/2007.

Informações do Sistema (Hardware e Processos)

  • df – Mostra o espaço em disco do sistema de arquivos usado por todas as partições. “df -h” é provavelmente o mais útil – usa megabytes (M) e gigabytes (G) em vez de blocos para relatar o tamanhos. (-h significa “human-readable”).

  • du – Exibe o tamanho de arquivos e/ou diretórios. Se nenhum arquivo ou diretório for passado como argumento, será assumido o diretório atual. O uso da opção du -h tornará a apresentação mais simples de ser interpretada.

    • Para verificar o tamanho dos subdiretórios ao invés dos arquivos, utilize o comando abaixo.

      “du -k -h –max-depth=1”

  • free – Este comando exibe a quantidade de memória livre e usada no sistema. “free -m” fornece a informação usando megabytes, que é provavelmente mais útil para computadores atuais.

  • arch – Exibe a arquitetura do computador. Equivale ao comando ”uname -m”.

  • lsdev – Lista o hardware instalado no computador, especificando os endereços de E/S (Entrada/Saída), IRQ e canais DMA que cada dispositivo esta utilizando.

  • lspci – Exibe informações sobre os barramentos PCI do computador e sobre os dispositivos a ele conectados.

  • lsusb – Lista informações sobre os barramentos USB do computador e sobre os dispositivos a eles conectados.

  • uname – Este comando exibe várias informações sobre o sistema, incluindo o nome da maquina, nome e versão do Kernel e alguns outros detalhes. É muito útil para verificar qual é o Kernel usado por você.

    • ”uname -a” para exibir todas as informações.

    • ”uname -m” para exibir a arquitetura da maquina. (Equivale ao ”arch”).

    • ”uname -r” para exibir o release do sistema operacional.

  • lsb_release – Este comando fornece informações básicas do sistema operacional (LSB – Linux Standard Base) e sua distribuição.

    • ”lsb_release -a” para exibir as informações completas do sistema conforme abaixo exemplificado.

user@computer:~$ lsb_release -a
LSB Version:    n/a
Distributor ID: Ubuntu
Description:    Ubuntu (The Edgy Eft Release)
Release:        6.10
Codename:       edgy
  • top – Este comando exibe em tempo real informações sobre seu sistema Linux, processos em andamento e recursos do sistema, incluídos CPU, memória RAM e uso do swap, além do número total de tarefas sendo executadas.

    • O ”top” também nos permite a manipulação dos processos por meio de comandos interativos. Veja abaixo alguns dos comandos interativos mais importantes do ”top”.

      • ”k” – Finaliza, ou seja, “mata” um processo.

      • ”m” – Ativa/Desativa a exibição de informações da memória.

      • ”M” – Ordena os processos pelo uso da memória residente.

      • ”N” – Ordena os processos pelos seus PIDs.

      • ”P” – Ordena os processos pelo uso da CPU (este é o padrão).

      • ”ESPAÇO” – Atualiza imediatamente a visualização do quadro de processos.

      • ”h” – Exibe a ajuda dos comandos interativos do ”top”.

      • ”q” – Abandona o comando ”top”.

  • ps – Apresenta um quadro atual, porém estático dos processos que estão sendo executados no sistema.

    • ”ps aux” para apresentar todos processos sendo executados, de todos usuários, incluído o nome do usuário a qual o processo pertence, mesmo os desvinculados de TTYs.

  • kill – Finaliza, ou no popular, “mata” processos sendo executados pelo seu PID, lhes enviando um sinal.

    • ”kill -9 1345” para finalizar o processo de PID número 1345. Para saber qual PID de determinado processo que esta sendo executado pode ser utilizado o comando ps.

  • killall – Finaliza processos pelo nome ao invés do PID como faz o comando kill. Também assim como o comando kill, o killall envia um sinal para o processo.

    • ”killall mozilla-firefox” para finalizar o processo mozilla-firefox, fechando com isso o navegador web Mozilla Firefox. O nome dos processos ativos pode ser observado com uso do comando ps.

Arquivos e Diretórios

  • pwd – O comando pwd lhe permite saber em qual diretório você está no momento, onde pwd significa “print working directory”.

    • Executando “pwd” no diretório Desktop mostrará “~/Desktop”. Observe que o Terminal do Gnome também mostra esta informação na barra de títulos da janela. Veja a imagem de exemplo no topo desta página.

  • cd – Este comando nos permite se deslocar entre a árvore de diretórios do sistema. Quando abrimos um terminal ou seção shell, você entra direto no seu diretório pessoal. Para mover-se pelo sistema de arquivos você deve usar o cd.

    • “cd /” para ir ao diretório raiz.

    • “cd” para ir ao seu diretório pessoal.

    • “cd ..” para acessar um diretório de nível acima do atual.

    • ”cd -” para voltar ao diretório que se encontrava antes de mudar.

    • Para navegar através múltiplos níveis de diretórios em só comando, use por exemplo, “cd /var/www”, que o levará diretamente ao sub-diretório /www do diretório /var.

  • cp – Copia arquivos e diretórios.

    • “cp file foo” para fazer uma cópia exata do arquivo “file” dando-lhe o nome de “foo”.

    • “sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf-bkp” para gerar uma cópia de segurança exata do arquivo “/etc/X11/xorg.conf” dando-lhe o nome de “/etc/X11/xorg.conf-bkp”.

  • mv – Este comando move arquivos e diretórios, sendo muito usado também para renomear um determinado arquivo.

    • ”mv arquivo1 arquivo2” para renomear o arquivo “arquivo1” localizado no diretório pessoal do usuário para “arquivo2” no mesmo local.

    • “mv foo ~/Desktop” moverá o arquivo “foo” para seu diretório Desktop sem alterar seu nome. Você deve especificar um novo nome se quiser renomear um arquivo.

  • ls – Comando utilizado para listar o conteúdo de um diretório. Usado com certas opções, é possível ver o tamanho dos arquivos, quando foram criados, e as permissões de cada um.

    • “ls ~” para mostrar os arquivos que estão em seu diretório pessoal.

    • ”ls -hal ~” para mostrar os arquivos que estão em seu diretório pessoal, inclusive os ocultos (-a) em forma de uma listagem (-l) e com as informações de tamanho mais amigável a nós seres humanos (-h).

  • rm – Utilize este comando para remover (deletar) arquivos e opcionalmente diretórios. Por padrão o comando rm exibe um prompt onde o usuário deve confirmar a exclusão de cada arquivo, digitando a letra “y” seguido de “Enter”.

    • ”rm arquivo1” para remover o arquivo chamado “arquivo1” do diretório corrente após confirmação no prompt.

    • ”rm -f arquivo1” para remover o arquivo chamado “arquivo1” do diretório corrente sem que lhe seja exibido o prompt de confirmação.

    • ”rm -R ~/temp/” para remover de forma recursiva o diretório /temp localizado em sua pasta pessoal e todo seu conteúdo, seja ele arquivos e outras arvores de sub-diretórios.

  • mkdir – Comando cuja finalidade é permitir a criação de um ou mais diretórios.

    • “mkdir musicas” para criar um diretório chamado “musicas” dentro do diretório corrente.

  • chmod – Altera as permissões de acesso de arquivos e diretórios, não alterando estes atributos de links simbólicos passados na linha de comando, mais sim as permissões dos arquivos aos quais eles se referem. Para maiores detalhes sobre o sistema de permissões de arquivos e diretórios no Linux aconselhamos este link aqui do Guia Foca GNU/Linux.

Leitura (r)

Escrita (w)

Execução (x)

Octal

0

0

0

0

0

0

1

1

0

1

0

2

0

1

1

3

1

0

0

4

1

0

1

5

1

1

0

6

1

1

1

7

0  (zero) permissão negada
1   permissão de execução
2   permissão de gravação
3   permissão de gravação e execução
4   permissão de leitura
5   permissão de leitura e execução
6   permissão de leitura e gravação
7   soma de todas as permissões
  • ”chmod 744 file” para alterar as permissões do arquivo “file” de modo ao Dono ter total permissão (leitura, execução e escrita) enquanto que os usuários pertencentes ao Grupo e os Outros terão permissão apenas de leitura.

  • ”chmod -R 744 temp/” para alterar as permissões de forma idêntica ao exemplo anterior, porém do sub-diretório /temp e todo seu conteúdo de forma recursiva.

  • chown – Altera o proprietário e o grupo de arquivos e diretórios.

    • ”chown fulano:vendas file” para alterar o arquivo “file” para ter como Dono o usuário “fulano” e o Grupo como “vendas”.

    • ”chown -R ciclano:compras temp/” para alterar o sub-diretório /temp e todo seu conteúdo de forma recursiva para ter como Dono o usuário “ciclano” e o Grupo como “compras”.

  • diff – Usado para comparar o conteúdo de dois arquivos, exibindo a diferença entre eles.

    • ”diff file foo” para ver a diferença entre o conteúdo do arquivo “file” e o arquivo “foo”.

  • find – Comando utilizado para procurar por arquivos na arvore de diretórios. Se um caminho não for passado ao comando find a busca será feita no diretório corrente.

    • ”find ~/temp/file” para procurar pela ocorrência de um arquivo chamado “file” no sub-diretório /temp do diretório pessoal do usuário.

  • locate – Pesquisa em uma base de dados de nomes de arquivos por nomes que satisfaçam um determinado padrão. O comando slocate é a versão segura do locate, pois não exibe arquivos para os quais o usuário não tenha permissão de acesso. Como a arvore de arquivos e diretórios esta sempre sendo atualizada é necessário que esta base de dados também o seja, por tanto é sempre aconselhável antes de executar estes comandos atualizar a base executando updatedb.

    • ”locate ~/file” para pesquisar por um arquivo que corresponda a expressão “file” no diretório pessoal do usuário. Como este comando pesquisa em um banco de dados, se não for passado ao comando o caminho desejado ele pesquisará em toda sua base de dados, correspondente a toda arvore de diretórios do sistema.

  • tar Usado para armazenar ou extrair arquivos TAR (Tape ARchive). Estes arquivos TAR são os chamados “tarfile” ou “tarball”.

    • ”tar cvf my_ogg_files.tar *.ogg” para criar um arquivo TAR chamado “my_ogg_files.tar” contendo todos os arquivos de extensão “.ogg” do diretório corrente. Notar que a extensão “.tar” não é obrigatória, mais aconselhável para facilitar a identificação do arquivo.

    • ”tar tvf my_ogg_files.tar” para exibir todo o conteúdo do arquivo TAR chamado “my_ogg_files.tar”.

    • ”tar xvf my_ogg_files.tar” para extrair todo conteúdo do arquivo “my_ogg_files.tar” no diretório corrente.

    • ”tar xvf my_ogg_files.tar musica1.ogg” para extrair apenas o arquivo chamado “musica1.ogg” do tarball “my_ogg_files.tar” no diretório corrente.

    • NOTA: Arquivos que possuem a extensão .tar.gz podem ser descompactados e extraídos com as opções xzvf do comando tar. Isto corresponde a usar o comando gunzip para descompactar o arquivo TAR e depois usar o comando tar xvf para extrair os arquivos.

  • gzip Compacta e opcionalmente descompacta arquivos regulares. Os arquivos compactados com o comando são substituídos por outro de menor tamanho com a extensão .gz porém preservando o dono, as permissões e datas de acesso e modificação.

    • ”gzip arq1 arq2” para compactar os arquivos “arq1” e “arq2” gerando os arquivos “arq1.gz” e “arq2.gz” em substituição aos originais.

    • ”gzip -d arq1” para descompactar o arquivo “arq1.gz” trazendo de volta o arquivo original “arq1”. A presença da opção -d equivale ao uso do comando gunzip.

  • bzip2 Compacta e opcionalmente descompacta arquivos regulares. Assim como o gzip, os arquivos compactados com este comando são substituídos por outro de menor tamanho com a extensão .bz2 porém preservando o dono, as permissões e datas de acesso e modificação. O algoritmo empregado por este comando permite uma maior compressão e também segurança dos arquivos gerados, porém o processo se torna um tanto quanto mais demorado.

    • ”bzip2 arq1” para compactar o arquivo “arq1” gerando em substituição o arquivo “arq1.bz2”.

    • ”bzip2 -9 arq2” para compactar o arquivo “arq2” pelo processo de máxima compressão gerando em substituição o arquivo “arq2.bz2”.

    • ”bzip2 -d arquivo.bz2” para descompactar o arquivo “arquivo.bz2” trazendo de volta o(s) arquivo(s) original(is) que tinham sido previamente compactados.

Sistema de Arquivos

  • mount – Monta um sistema de arquivos tornando-o disponível para as operações de E/S (Entrada/Saída) em arquivos, ou exibe uma lista dos sistemas de arquivos atualmente montados.

    • ”mount” para listar os sistemas de arquivos atualmente montados.

    • ”sudo mount -t ext3 /dev/hda3 /media/hda3” para montar a terceira partição primária do disco hda (IDE1) formatado em EXT3 no diretório /media/hda3. É necessário que o diretório /media/hda3 tenha sido previamente criado para que o comando tenha sucesso.

  • umount – Desmonta um sistema de arquivos previamente montado que não esteja em uso.

    • ”sudo umount /dev/hda3” para desmontar o dispositivo /dev/hda3. Para que o comando seja executado com sucesso é importante que o dispositivo não esteja em uso, como por exemplo com arquivos abertos ou mesmo estando dentro do diretório onde o mesmo se encontra montado.

  • fdisk – Gerencia por meio de uma simples interface de texto orientada por menus as partições de um disco. Ao executar o comando fdisk dispositivobasta pressionar a tecla m no prompt para ter acesso ao menu de opções que é bastante auto-explicativo, devendo se usar as setas de direção para movimentar-se pelo mesmo.

    • ”sudo fdisk -l” para listar as tabelas de partições para todos dispositivos.

    • ”sudo fdisk /dev/hda” para gerenciar a partição (ou partições) do dispositivo /dev/hda.

  • fsck – Verifica e opcionalmente repara um ou mais sistemas de arquivos. O fsck na realidade é apenas uma espécie de front-end de comandos específicos de acordo com o sistema de arquivos, que na realidade obedecem em geral ao formato fsck.nome_do_sistema_de_arquivos.

  • ”sudo fsck -t ext3 /dev/hda3” para verificar o sistema de arquivos EXT3 do dispositivo /dev/hda3. O mesmo resultado poderia ser alcançado executando o comando da seguinte forma ”fsck.ext3 /dev/hda3”. O dispositivo deve obrigatoriamente estar desmontado para execução desta operação.

  • mkfs – Formata um dispositivo (geralmente uma partição de disco) criando um novo sistema de arquivos. O mkfs, assim como o fsck é apenas uma espécie de front-end de comandos específicos de acordo com o sistema de arquivos, que na realidade obedecem em geral ao formatomkfs.nome_do_sistema_de_arquivos.

    • ”sudo mkfs -t ext3 /dev/hda3” para formatar o dispositivo /dev/hda3 em um sistema de arquivos EXT3. O mesmo resultado poderia ser alcançado executando o comando da seguinte forma ”mkfs.ext3 /dev/hda3”. O dispositivo deve obrigatoriamente estar desmontado para execução desta operação.

  • badblocks – Procura por blocos ruins em um dispositivo, geralmente uma partição de disco.

    • ”sudo badblocks /dev/hda3” para verificar se o dispositivo /dev/hda3 se encontra com blocos ruins. Normalmente, dependendo do tipo e tamanho do dispositivo este procedimento é um tanto demorado, sendo que se nenhuma informação for retornada é porque blocos ruins não foram encontrados. Uma melhor alternativa ao comando seria ”sudo badblocks -o /tmp/file -n /dev/hda3”, onde o parâmetro -n forçaria um teste de leitura e escrita não-destrutivo e o -o /tmp/file geraria o arquivo /tmp/file com todas mensagens de saída do comando.

Usuários e Grupos

  • useradd – Cria um novo usuário ou atualiza as informações padrão de um usuário no sistema Linux. O comando useradd cria uma entrada para o usuário no arquivo “/etc/passwd” com informações do seu login, UID (user identification), GID (group identification), shell e diretório pessoal, e a senha criptografada deste usuário é armazenada no arquivo “/etc/shadow”.

    • ”sudo useradd fulano” para criar o novo usuário “fulano” no sistema, cujo diretório pessoal do mesmo será “/home/fulano”.

    • ”sudo useradd -d /home/outro_dir fulano” para criar o novo usuário “fulano” no sistema, porém com seu diretório pessoal se localizando em “/home/outro_dir”.

    • ”sudo useradd -s /bin/sh fulano” para criar o usuário “fulano” definindo seu shell como sendo o sh. O shell padrão do Ubuntu, assim como a maioria das outras distribuições é o bash. Com esta opção “-s” é possível criar um usuário sem que o mesmo possa ter acesso a nenhum shell do sistema, bastando executar o seguinte comando ”useradd -s /bin/false fulano”.

    • ”sudo adduser -g 600 -G 500,68 fulano” para criar o usuário “fulano” com grupo padrão de GID 600 e também pertencente aos grupos GID 500 e GID 68. Para saber os GID de cada grupo do sistema consulte o arquivo “/etc/group”.

    • NOTA: Com a mesma finalidade porém com mais opções informativas sobre o usuário a ser cadastrado existe o comando adduser. A configuração padrão usada pelos comandos useradd e adduser é definida em “/etc/default/useradd” e em “/etc/login.defs”.

  • userdel – Usado para remover uma conta de usuário do sistema, deletando todas entradas deste usuário nos arquivos /etc/passwd, /etc/shadow e/etc/group.

    • ”sudo userdel -r fulano” para remover o usuário “fulano” do sistema deletando seu diretório pessoal e todo seu conteúdo.

  • usermod – Altera as informações de um usuário, editando diretamente as informações dos arquivos /etc/passwd, /etc/shadow e /etc/group.

    • ”sudo usermod -d /home/novo_dir fulano” para criar um novo diretório pessoal para o usuário “fulano” em “/home/novo_dir”. Se quiser que o atual diretório do usuário seja movido para o novo diretório utilize a opção “-m” desta forma ”sudo usermod -d /home/novo_dir -m fulano”.

    • ”sudo usermod -g 800 fulano” para alterar o grupo padrão do usuário “fulano” para GID 800.

    • ”sudo usermod -s /bin/false fulano” para alterar o shell do usuário “fulano” para “/bin/false” não mais permitindo que o usuário faça login no sistema.

    • ”sudo usermod -e 03/04/2007 fulano” para alterar a data de expiração da conta do usuário “fulano” para 03/04/2007.

  • finger – Exibe informações dos usuários do sistema. Se um usuário não for passado ao comando o mesmo apresentará informações de todos usuários atualmente logados.

    • ”finger fulano” para exibir informações, como login, diretório pessoal, shell entre outras do usuário “fulano”.

  • passwd – Altera a senha de um usuário exibindo um prompt para que a nova senha seja fornecida, e logo depois repetida para confirmação. O usuário logado pode alterar a própria senha digitando apenas ”passwd”.

    • ”sudo passwd fulano” para alterar a senha do usuário “fulano”.

    • ”sudo passwd -l fulano” para bloquear a conta do usuário “fulano”.

    • ”sudo passwd -u fulano” para desbloquear a conta do usuário “fulano”.

    • ”sudo passwd -d fulano” para desativar a senha do usuário “fulano” deixando-o sem uma senha de acesso.

  • groupadd – Cria um novo grupo no sistema. Deve-se remover os usuários do grupo, antes de apagar o grupo, pois o Linux não faz nenhum tipo de verificação neste sentido.

    • ”sudo groupadd novogrupo” para criar um novo grupo no sistema chamado “novogrupo”.

    • ”sudo groupadd -g 800 novogrupo” para atribuir ao grupo “novogrupo” o GID 800.

  • groupdel – Exclui um grupo no sistema.

    • ”sudo groupdel novogrupo” para excluir o grupo chamado “novogrupo”.

  • groupmod – Altera as informações de um grupo do sistema.

    • ”sudo groupmod -n velho_grupo novo_grupo” para alterar o nome do grupo “velho_grupo” para “novo_grupo”.

    • ”sudo groupmod -g 900 novo_grupo” para alterar o identificador do grupo chamado “novo_grupo” para GID 900.

  • id – Exibe os identificadores (IDs) reais e efetivos de usuário e de grupo de um usuário. Se não for especificado ao comando um usuário será exibido as informações do usuário atual.

    • ”id fulano” para exibir os IDs de usuário e grupo do usuário “fulano”.

Utilitários de Texto

  • cat – Utilizado para concatenar arquivos exibindo o resultado na tela, sendo também utilizado para exibir o conteúdo de arquivos.

    • ”cat arq” para exibir o conteúdo do arquivo chamado “arq”. Se desejar que as linhas do arquivo sejam enumeradas use a opção “-n” junto ao comando, desta forma ”cat -n arq”.

    • ”sudo cat /etc/passwd /etc/group” para exibir na tela o conteúdo dos arquivos “/etc/passwd” e “/etc/group”.

    • ”cat file1 file2 |less” para exibir na tela o conteúdo dos arquivos “file1” e “file2” porém fazendo a paginação das telas. Neste caso a opção “|less”, onde “|” é o chamado pipe, pode ser substituída também por “|more”, sendo que ambos comandos serão vistos posteriormente.

    • ”cat arq arq1 arq2 > arq_final” para concatenar os arquivos “arq”, “arq1” e “arq2” e colocar o resultado em outro arquivo chamado “arq_final”. Notar que neste comando é feito uso do caractere “>” chamado de redirecionador de saída.

    • ”cat arq3 >> arq_final” para inserir o conteúdo do arquivo “arq3” ao final do arquivo “arq_final”.

    • NOTA: O comando cat também pode ser usado para criar arquivos quando usado em conjunto com o “>” redirecionador de saída. Para criar um arquivo execute o comando ”cat > novo_arq” e digite o conteúdo desejado, usando a tecla “Enter” como separador de linhas e “Ctrl+D” para finalizar.

  • less – Faz a paginação de saídas muito extensas exibindo uma tela por vez.

    • ”less arq” para exibir o conteúdo do arquivo “arq” de forma paginada. Para navegação e gerenciamento do comando use as teclas abaixo:

      • Para sair do aplicativo digite q (quit);

      • Use as teclas Page-Down, Ctrl+F ou Space para avançar nas páginas;

      • Use as teclas Page-Up ou Ctrl+B para voltar as páginas;

      • Use Enter para avançar apenas uma linha por vez;

      • Digite h para ver a lista das teclas disponíveis para navegação no comando.

    • NOTA: Para redirecionar a saída de outro comando para o less efetuar a paginação, use o “|” (pipe) conforme exemplo ”ls -hl |less”.

  • more – Semelhante ao comando less também faz a paginação de uma saída muito grande na tela. A sintaxe deste comando é semelhante ao do less, inclusive as teclas de navegação e o redirecionamento com uso do “|” (pipe).

  • grep – Usado para procurar por linhas em um arquivo que contenham expressões que satisfaçam um determinado padrão de busca.

    • ”grep termo arq” para procurar por entradas no arquivo “arq” que correspondam a expressão “termo”.

    • ”grep ‘termo1 termo2’ arq” para procurar por entradas no arquivo “arq” que correspondam as expressões “termo1” e “termo2”. Notar que quando a expressão é composta de mais de uma palavra deve ser usado aspas simples.

    • NOTA: Este comando comumente é utilizado em conjunto com outros comandos canalizados com o “|” (pipe) conforme abaixo exemplificado.

      • ”sudo cat /etc/passwd |grep fulano” para procurar por uma entrada que corresponda a expressão “fulano” no arquivo “/etc/passwd”.

  • tail – Exibe as últimas linhas da saída de um arquivo. Por padrão se nenhum parâmetro diferente for passado ao comando será exibido as últimas 10 linhas do arquivo.

    • ”tail -50 arq” para exibir as últimas 50 linhas do arquivo chamado “arq”.

    • ”sudo tail -f /var/log/messages ” para continuar exibindo indefinidamente as últimas 10 linhas (padrão) do arquivo “/var/log/messages ”. Conforme o exemplo, esta opção “-f” é muito usada para verificar arquivos de log do sistema que estão sendo constantemente atualizados.

    • NOTA: Assim como o tail que exibe as últimas linhas de um arquivo, existe o comando head que faz exibir as primeiras linhas de saída de um arquivo.

Monitoramento de Acesso

  • w – Mostra quem esta logado no sistema e o que esta fazendo. Se não for especificado um usuário ao comando, será exibido informações de todos usuários logados.

    • ”w” para exibir todos usuários logados e o que estão executando neste momento.

    • ”w fulano” para mostrar informações do usuário “fulano” se o mesmo estiver logado no sistema.

  • who – Semelhante ao comando w mostra quais usuários estão logados no sistema.

    • ”who -m” para mostrar o nome do usuário logado no sistema.

    • ”who -q” para mostrar a quantidade total e nomes dos usuário conectados ao sistema.

  • whoami – Este comando fornece o mesmo resultado do comando ”who -m”.

  • last – Mostra todas informações referente as entradas (login) e saídas (logout) de usuários do sistema.

    • ”last -a” para exibir estas informações mostrando o nome da maquina de onde foi efetuado os logins.

    • ”last -d” para exibir estas informações mostrando o endereço IP da maquina de onde foi efetuado os logins.

    • ”last reboot” para exibir um registro de todas as reinicializações efetuadas no sistema.

  • lastlog – Exibe informações referente ao último login de cada usuário cadastrado no sistema. Caso nenhum argumento seja passado, o comando lastlogexibe todas as informações armazenadas no arquivo “/var/log/lastlog” de todos os usuários do sistema.

    • ”sudo lastlog -u fulano” para exibir informações referentes apenas ao último login do usuário “fulano.

    • ”sudo lastlog -t 5” para exibir a lista dos usuários que logaram no sistema nos últimos 5 dias informando o dia e a hora do último acesso de cada um desses usuários.

Rede

  • ifconfig – Permite configurar as interfaces de rede, sendo o comando utilizado na inicialização do sistema para configuração destas interfaces. Caso nenhum argumento seja passado junto ao comando, o mesmo apenas irá exibir o estado das interfaces atualmente definidas.

    • ”sudo ifconfig eth0” para exibir o estado e informações da interface de rede eth0.

    • ”sudo ifconfig eth1 down” para desativar a interface de rede eth1.

    • ”sudo ifconfig eth1 up” para ativar a interface de rede eth1.

    • ”sudo ifconfig eth0 192.168.3.1 netmask 255.255.255.0 up” para configurar a interface de rede eth0 com endereço IP 192.168.3.1 emáscara da rede 255.255.255.0, ativando-a.

    • ”sudo ifconfig eth1 hw ether 00:D0:D0:67:2C:05” para alterar o endereço MAC (MAC Address) da interface de rede eth1 para “ 00:D0:D0:67:2C:05”. É necessário que a placa de rede esteja desativada “sudo ifconfig eth1 down” para esta operação.

    • ”sudo ifconfig eth0:1 10.0.0.2 netmask 255.255.255.0 up” para adicionar um segundo endereço de rede, com IP 10.0.0.2 e máscara255.255.255.0 a interface eth0.

  • arp – Manipula o cache ARP (Address Resolution Protocol) do kernel.

    • ”sudo arp 192.168.3.1” para exibir as entradas para o host 192.168.3.1. Se um host não for especificado, será exibido todas as entradas docache.

    • NOTA: Esta ferramenta é muito útil quando se faz necessário descobrir o endereço MAC de um determinado host da rede.

  • ping Envia requisições ICMP para um determinado host. É uma ferramenta largamente utilizada para testar a conectividade entre uma maquina/rede local e maquinas/redes remotas.

    • ”ping -c 5 200.106.28.125” para verificar se a maquina cujo endereço IP é 200.106.28.125 se encontra conectada e alcançável. É importante ressaltar que muitos servidores, principalmente de redes empresariais, podem bloquear requisições de pacotes ICMP em seu firewall, podendo assim parecer que determinada rede não se encontra alcançável.

  • route – Permite exibir a tabela de roteamento (configuração das rotas) IP do kernel, sendo que com uso das opções add e del permite também modificar esta tabela inserindo ou deletando registros.

    • ”sudo route” para exibir a tabela das rotas atualmente ativas.

    • ”sudo route add -net 192.120.10.0 netmask 255.255.255.0 dev eth0” para adicionar uma rota para rede 192.120.10.0 via interface de rede eth0.

    • ”sudo route del -net 192.120.10.0 netmask 255.255.255.0 dev eth0” para remover a rota anteriormente adicionada.

Módulos carregáveis do Kernel

  • lsmod Lista todos módulos do kernel atualmente carregados na memória. Na realidade, o comando lsmod apenas lista o conteúdo do arquivo “/proc/modules”.

  • modinfo – Exibe informações sobre um determinado módulo carregado do kernel.

    • ”sudo modinfo ip_tables” para exibir informações do módulo “ip_tables” que se encontra carregado na memória do sistema.

  • modprobe – Usado para gerenciar, ou seja, adicionar e remover módulos carregáveis do kernel. O modprobe lê o arquivo de dependências de módulos gerado pelo depmod, portanto devemos sempre antes executar o comando ”sudo depmod -a”.

    • ”sudo modprobe iptable_nat” para carregar na memória o módulo “iptable_nat”.

    • ”sudo modprobe -r ndiswrapper” para remover da memória o módulo “ndiswrapper”.

Shell (Bash) e Utilitários de Terminal

  • alias Tem como finalidade atribuir um “alias” (em inglês, significa outro nome) a outro comando, permitindo nomear um conjunto de comandos, a ser executado pelo sistema por um único nome. Caso nenhum parâmetro seja passado ao comando será listado todos alias atualmente definidos e ativos no sistema.

    • ”alias ls=’ls -hal –color’” para definir uma alias ls para o comando ls -hal que irá mostrar os arquivos que estão no diretório correntel, inclusive os ocultos (-a) em forma de uma listagem (-l) e com as informações de tamanho mais amigável a nós seres humanos (-h) e diferenciado por cores.

    • ”alias fd=’mount /dev/fd0 /mnt/floppy; cd /mnt/floppy && ls’” para criar um alias chamado fd que montará um disquete, acessando e listando seu conteúdo. Observe que, neste exemplo, foram usados dois diferentes separadores de comandos: ponto-e-vírgula e &&. Comandos separados por ; são executados em seqüência. Comandos separados por && são executados de forma condicional, ou seja, o comando após o separador só é executado se o comando anterior tiver sido executado com sucesso.

    • ”alias mcdrom=’mount /mnt/cdrom’” para criar um alias chamado mcdrom que ao ser executado monta o CD em uso.

    • NOTA: Estes aliases são criados apenas para a sessão ativa do usuário, ou seja, ao deslogar do sistema os mesmos se perderão. Para criar aliases permanentes ao sistema edite o arquivo .bashrc de seu diretório pessoal e inclua no mesmo os comando desejados. Em contrapartida ao comando alias existe o comando unalias que faz justamente o inverso, removendo os alias criados.

  • apropos Pesquisa por um padrão na base de dados do comando whatis que veremos logo abaixo, informando quais comandos do Linux correspondem a uma determinada expressão.

    • ”apropos apropos” (1) – search the whatis database for strings (Procura por expressões na base de dados whatis), ou seja exibe todos comandos Linux que tenham alguma correspondência a expressão “apropos”, no caso apenas o comando apropos.

  • login Permite a um usuário efetuar o logon (estabelecer uma conexão) no sistema, bem como ser utilizado para efetuar o logon com um usuário diferente do atual.

    • ”login fulano” para efetuar o login do usuário “fulano”.

    • ”login -p fulano” para efetuar o login do usuário “fulano” sem destruir o ambiente do atual usuário.

  • logout Finaliza um login shell no console ou terminal. No modo gráfico, este comando encerra a sessão do usuário podendo fechar a janela do terminal, e em modo texto encerra a sessão do usuário levando-o de volta ao prompt de login do sistema.

    • ”logout” O mesmo resultado pode ser alcançado executando o comando exit.

  • su Permite alternar entre os usuários cadastrados do sistema, alterando o ID de usuário e grupo do atual usuário para outro usuário especificado.

    • ”su fulano” permite alternar para o usuário “fulano” após senha de login correta.

    • ”su fulano -c ‘vim /home/fulano/arq1’” permite executar o comando vim abrindo o arquivo “/home/fulano/arq1” como sendo o usuário “fulano”. O uso desta opção -c não começa um novo shell, apenas executa um comando como sendo o outro usuário especificado.

  • sudo Permite a um usuário autorizado conforme configurado no arquivo “/etc/sudoers”, a executar comandos como se fosse o super-usuário (root) ou outro usuário qualquer. Veja RootSudo para maiores detalhes.

  • uname Exibe várias informações sobre o sistema. Caso nenhuma opção seja fornecida junto ao comando, apenas o nome do sistema operacional será exibido, equivalente a opção -s.

    • ”uname -a” para exibir todas informações sobre o sistema.

  • whatis Pesquisa em uma base de dados que contem uma curta descrição dos comandos do sistema. Esta base de dados com os comandos do sistema é criada e atualizada com o comando ”sudo makewhatis”

    • ”whatis sudo halt” para obter uma descrição resumida dos comandos sudo e halt.

  • whereis Usado para localizar o binário, o arquivos-fonte e a página man (manual) dos comandos do sistema.

    • ”whereis ls” para descobrir onde se encontra o arquivo binário, os fontes e o manual (man) do comando ls.

  • which Exibe o caminho completo na hierarquia de diretórios para os comandos do sistema.

    • ”which firefox” para exibir o diretório onde se encontra o programa “firefox”.

  • clear Limpa a tela movendo o cursor para primeira linha. Não existem parâmetros passados junto a este comando.

  • echo Permite exibir textos na tela. Este comando também exibe toda estrutura de diretórios e arquivos em ordem alfabética, porém sem formatar em colunas a listagem.

    • ”echo ‘Olá mundo!’” envia para saída de tela a expressão “Olá mundo!”.

    • ”echo /etc/*” para listar todo conteúdo do diretório “/etc”.

  • halt, reboot, shutdown Respectivamente encerra, reinicializa e encerra ou reinicializa o sistema.

    • ”sudo halt” para encerrar o sistema.

    • ”sudo reboot” para reiniciar imediatamente o sistema. Este comando equivale aos comandos ”sudo init 6” e ”sudo shutdown -r now”.

    • ”sudo shutdown -h now” para encerra o sistema imediatamente.

    • ”sudo shutdown -h +15” para encerrar o sistema daqui a 15 minutos.

    • ”sudo shutdown -r 20:30 ‘O sistema será reiniciado as 20:30 horas!’” para reiniciar o sistema as 20:30 horas enviando a mensagem “O sistema será reiniciado as 20:30 horas!” a todos usuários logados.

    • NOTA: O comando ”sudo init 0” também pode ser usado para encerramento do sistema. O comando shutdown é a forma mais segura de reiniciar e finalizar o sistema, advertindo os usuários logados e bloqueando novos logons.

Opções

O comportamento padrão para um comando pode ser modificado por adicionar uma opção para o comando. O comando ls, por exemplo, tem uma opção -s , de forma que “ls -s” incluirá o tamanho dos arquivos na listagem realizada. Há também uma opção -h para que esses dados estejam em um formato “legível para humanos”.

As opções podem ser agrupadas, sendo possível, por exemplo usar “ls -sh”, que funcionará exatamente da mesma forma que “ls -s -h”. Muitas opções têm uma versão longa, prefixadas por dois traços em vez de um, assim “ls –size –human-readable” é o mesmo comando dado anteriormente.

Dicas e Truques

Teclas de controle e atalhos

Teclas

Ação

Ctrl + f

Move o cursor uma palavra para frente

Ctrl + b

Move o cursor uma palavra para trás

Ctrl + a

Para ir ao início da linha de comando

Ctrl + e

Para ir ao final da linha de comando

Ctrl + t

Inverte o caractere sob o cursor com o anterior

Ctrl + u

Limpa a linha de comando corrente

Ctrl + y

Re-insere o último trecho de comando apagado

Ctrl + r

Faz uma busca incremental no histórico de comandos utilizados

Ctrl + c

Termina a execução do comando corrente

Ctrl + d

Encerra entrada de dados pelo teclado fazendo logout

Ctrl + m

Equivalente a tecla Enter

Ctrl + l

Limpa a tela, equivalente ao comando clear

Ctrl + s

Inibe a exibição de informações na tela de saída

Ctrl + q

Ativa a exibição de informações na tela de saída, inibida pelo Ctrl + s

Ctrl + z

Põe o processo corrente em background (segundo plano)

Icones/importante.png

NOTA: Para maiores detalhes, veja aqui nossa página exclusiva sobre atalhos de teclado no bashe Papel de parede das teclas de atalhos para o uso no terminal, clique aqui.

Teclas de emergência do GNU/Linux

Quem é que já não se deparou com um travamento causado por mal-funcionamento de hardware no Linux? Este tópico ensina a usar as teclas de emergência do kernel.

Icones/importante.png

NOTA: As teclas de emergência do kernel são comandos de baixo nível pouco conhecidos que podem desempenhar uma função primordial na vida de usuários Linux.

Desligando o computador

A primeira combinação de emergência é usada para sincronizar os discos e desligar o computador instantaneamente evitando problemas nos sistemas de arquivos. Ela é ideal para quem precisa desligar o computador rapidamente sem danificar seus sistemas de arquivos, ou quando a máquina trava e por qualquer motivo não permite um desligamento natural através do init.

Mantendo ALT pressionado, tecle Print Screen e depois O.

Reiniciando o computador

Assim como o Ctrl+Alt+Del do MS-DOS o kernel do Linux também possui uma chamada de emergência que permite reiniciar a máquina, com a vantagem de sincronizar os discos evitando danos no sistema de arquivos. Veja como fazer:

Mantendo ALT pressionado, tecle Print Screen e depois B.

Sincronizando os discos

Se você acha que a força vai cair e precisa trabalhar até a ultima hora mas tem medo de danificar seu sistema de arquivo, poderá sincronizar seus discos de tempos em tempos.

Para sincronizar discos em caso de emergência:

Mantendo ALT pressionado, tecle Print Screen e depois S.

Segurança

Se por algum motivo algo está ameaçando a segurança do seu sistema, como a execução acidental de um script malicioso como root ou de programa desconhecido, poderá colocar os discos como somente leitura e evitar danos mais sérios.

Mantendo ALT pressionado, tecle Print Screen e depois U.

Otimizando o desempenho do history com navegação contextual

Como sabemos o ambiente shell do GNU/Linux, no caso o bash, mantém no arquivo .bash_history uma lista com o histórico dos últimos comandos digitados. Com isso e o uso das teclas direcionais UP e DOWN nos permitem “navegar” por esta lista, de modo a retornar com um comando já utilizado e que esteja em nosso histórico armazenado.

Porém por padrão esta navegação será por toda gama de comando já utilizados, o que por vezes faz com que percamos até mais tempo necessário do que se digitarmos novamente o comando.

Com uma dica simples veremos então como fazer com que esta navegação seja otimizada de forma a permitir uma filtragem no histórico de comandos bastando inserir alguns caracteres do mesmo antes de usarmos as setas de navegação.

Agora as setas farão uma procura por contexto. Se você não digitar nada, o efeito será o mesmo que antes, mas se você digitar um caractere e pressionar a seta, ele só irá mostrar os comandos que comecem com aquele caractere. Portanto com este ajuste, se você digitar “ls” e pressionar a seta ele vai navegar apenas nos comandos que começam com “ls”.

Para que isso funcione desta forma primeiramente iremos criar no diretório $HOME do usuário desejado o arquivo oculto de nome .inputrc com o seguinte conteúdo abaixo:

“\e[A”: history-search-backward
“\e[B”: history-search-forward

Agora basta fechar a seção atual e abrir uma nova para que a navegação no histórico dos comandos passe a funcionar desta forma mais otimizada.

Notas:

  • Por padrão o Linux armazena no .bash_history os últimos 500 comandos utilizados, mais este número pode ser modificado editando o seu arquivo.bashrc e adicionado as seguintes linhas:

export HISTFILESIZE=XXXX
export HISTSIZE=XXXX

Onde, XXXX deve ser substituído pela quantidade desejada.

  • Como configuração padrão do sistema como um todo existe o arquivo /etc/inputrc, ou seja, caso se deseje que estas novas configurações passem a valer para todos usuários do sistema basta adicionar aquelas 2 linhas do .inputrc neste arquivo.

Usando “grep” com resultados coloridos

Quem costuma usar o grep para fazer filtragens, pode se beneficiar desta pequena e simples dica, fazendo a saída dos resultados ficarem coloridas em destaque.

grep --color=auto

Vamos a um exemplo pratico para entender melhor:

ps aux |grep --color=auto tty

Nota:

Quem gostar do resultado e desejar deixar como padrão, basta editar seu arquivo ~/.bashrc criando um alias para o comando grep conforme abaixo demonstrado.

1. Abra o arquivo em seu editor de texto favorito.

vim ~/.bashrc

2. Adicione a linha baixo no mesmo, e salve o arquivo.

alias grep='grep --color=auto'

3. Agora, basta executar o comando abaixo que este recurso será padrão para este seu usuário.

source ~/.bashrc

Obtendo ajuda

Nosso maior aliado

Warning /!\ Os comandos –help e man podem ser consideradas as duas ferramentas mais importantes em uma linha de comando.

Praticamente todos os comando entendem a opção -h (ou –help), a qual produzirá uma descrição breve e útil do comando e suas opções, e então volta para o terminal. Tente “man -h” ou “man –help” para ver isso em ação.

Todo comando e quase toda aplicação em Linux terá um arquivo man (manual), e encontrá-lo será muito simples. Basta digitar ”man comando” para surgir um manual extenso para o comando especificado. Por exemplo, “man mv” mostrará o manual de mv (Move).

Mova para cima ou para baixo no arquivo man utilizando as teclas Page UP e Page Down ou as setas no teclado, e retorne para a linha de comando teclandoq.

“man man” mostrará a entrada do manual para o comando man, e este é um bom lugar para começar!

“man intro” é especialmente útil, pois mostrará a “Introdução para comandos do usuário” que é uma introdução breve e bem escrita sobre a linha de comando.

Além disso, há as páginas de info, que geralmente serão mais detalhados, se aprofundando mais do que as páginas man. Tente “info info” para uma introdução às páginas info.

Procurando por arquivos “man”

Se você não está certo de qual comando ou aplicação você precisa usar, você pode tentar procurando os manuais (arquivos “man”).

  • “man -k foo” irá procurar manuais para foo. Tente “man -k nautilus” para ver como isso funciona.

    • Observe que isso é o mesmo que o comando apropos.

  • “man -f foo” procura apenas os títulos dos manuais do seu sistema. Tente “man -f gnome”, por exemplo.

    • Isso é o mesmo que o comando whatis.

Outras fontes de consulta

Para maiores informações e detalhes sobre os comandos aqui apresentados, além da consulta as páginas de manuais do seu sistema recomendamos uma visita aos sites abaixo, que também serviram de poderosa fonte de pesquisa para desenvolvimento desta página.

Informações adicionais

  • AptGet – Howto – usando o apt-get para instalar pacotes pela linha de comando.

  • AdicionandoRepositorios – adicionando os repositórios Universe/Multiverse usando a linha de comando.

Créditos

Wikifier: arlei

Atualizado em: 12/08/2007

Mantenedor: arlei

Time de Documentação do Ubuntu Brasil

Referencia: http://wiki.ubuntu-br.org/ComandosBasicos

 

Revisão Segurança Da Informação

1 – Cite cinco exemplos de informação utilizada pelas empresas:

Cadastro de Cliente, Planilha de Indicadores, Pedido de Compra e Venda, Ordem de Produção e Ação Estratégica etc..

2 – Relacione os exemplos citados com sua classificação:

Confidencial: Planilha de Indicadores

Restrita: Cadastro de Cliente, Planilhas de Indicadores e Pedido de Compra e Vendas

Interna: Ordem de Produção e Ação Estratégica.

Publica: Ação Estratégica

3 – Qual seria o impacto das informações restritas ou confidenciais fossem de conhecimento publico?

Impacto na vasão de informação pode gerar prejuízos para a empresa

4 – Quais os tipos de ameaças que pode ser mais prejudiciais para uma organização?

Funcionários ou ex-funcionário descontente,  falta de padrões, politicas e processos no ambiente corporativo, falta de conscientização e treinamento para funcionários etc…

5 – Segundo a pesquisa realizada pela Modulo, explique porque os vírus estão em primeiro lugar, e a espionagem em ultimo?

Vírus por ser mais fácil de entrar em uma empresa para destruir ou obter a informação diferente do espião que pode usufruir de tecnologia e obter a informação mais rápido do que um espião que faz a busca de um meio manual.

6 – Na sua visão porque é tão difícil implantar uma segurança da informação nas empresas?

Falta de Orçamento

7 – Utilizando os três pilar da segurança da informação relacione três informações para cada estrutura.

Integridade: Garantir que as Informações não sejam alteradas

Disponibilidade: Garantir que as informações estejam acessíveis quando necessário pelas pessoas autorizadas

Confiabilidade: Garantir que as informações sejam acessadas por qualquer pessoa

8 – Exemplifique um tipo de solução aplicada para segurança física, lógica e humana.

Física: Sala Reservada, Câmera, Biometria, Reconhecimento Facial.

Logica: Estações, Sistemas, Firewall, Servidores e Aplicações em Geral.

Humana: Normas, Regras e Instruções.

9 – Explique com suas palavras como um vírus, trojan e worm funcionam. O que é preciso para ser infectado com estas pragas?

Trojan ou Cavalo de Troia: quando instado no computador realiza download dos arquivos. Normalmente ele vem mascarado em e-mail contendo anexos.exe, ou através de downloads na internet em sites não seguros ou programas que compartilham informação como torrente.

Worm,W32 ou Qakbot que vem contaminando muitas empresas e usuários domésticos com intuito de roubar informações de conta bancaria online, usando computadores infectados. É replicado através de compartilhamentos de redes, pendrive, paginas na web.

10 – Pesquisem e apresentem um entendimento do porque o Brasil sempre esta nos primeiros lugares quando o assunto são ameaças virtuais.

Pergunta Pessoal do Aluno

11 – O que seria SPAM?

São mensagens eletrônicas enviadas para uma grande quantidade de pessoas porem sem a solicitação do destinatário.

12 – Explique o que é phishing?

Pescaria é o termo em português utilizado por esta técnica de engeria social com intuito de usuário despreparado caírem. São paginas, e-mail falsos que aguçam a curiosidade o medo a confiança dos usuários que acabam abrindo este tipo de ataque.

13 – Comente sobre os tipos de perfis de invasores. Cite algum exemplo exposto na mídia e que você tenha acompanhado.

Curioso: Pessoas que são novas em tecnologia da informação que buscam meios de invadir algum local por curiosidade.

Amadores: São pessoas que já tem conhecimento em tecnologia que buscam em fóruns, blogs ou sites meios de invadir algum local, mas tendo um nível melhor de estudo.

Pessoas más intencionadas: Pessoas que já tem conhecimento e buscam invadir grandes sistemas em busca de informação que possa geram bastante dinheiro.

Profissional: Pessoa que tem um nível de conhecimento avançado que invadem constante mente grandes sistemas para testar vulnerabilidades para mostrar o nível de segurança do sistema ou acabam roubando dados para vender.

14 – Você conhece alguém que foi infectado com alguma praga virtual? Qual perfil você acha que a pessoa anônima tinha?

Profissional que tem conhecimento em invasão de sistemas

15 – Comente sobre a importância do protocolo TCP/IP para o mundo atual.

O Protocolo TCP/IP e base para funcionamento da rede internas e externas como WAN (Internet)  sem ele não  conseguimos identificar outras maquinas na rede e assim não conseguir enviar e receber arquivos

16 – Quais os benefícios da adoção do protocolo TCP/IP versão 6

1° Aumento da quantidade de IPs no mundo, pois o IPV4 esta ficando cada dia menos pela sua utilização no mundo

2° Segurança pois o IPV6 utiliza letras, números e caracteres e assim aumentando a segurança das empresas na questão de invasão.

17 – Comente sobre um dos tipos de ameaças ao protocolo TCP/IP visando acesso não autorizado.

Portas TCP e UDP abertas onde crackers possam invadir.

18 – Descriptografe a frase “Dxod gh fulswrjudila” utilizando o código de césar.

AULA DE CRIPTOGRAFIX

19 – Utilizando o raciocínio lógico e a engenharia reversa desvenda o método utilizado para criptografar a seguinte frase: “FRDNMZ NHDQPBBLQ”

Escola Microcamp

Obs: Utilizado o mecanismo: Primeira letra da frase substitui pela primeira letra uma posição na frente. Segunda letra substituir pela letra a sua, e assim sucessivamente.

Exemplo: CASA = DZTZ

20 – Quais as principais diferenças do algoritmo DES para RSA.

DES: Utiliza a mesma chave para criptografar

RSA: Utiliza um par de chaves e utiliza a cheve publica para encripitografar e a privada para decriptografar

21 – Qual a finalidade do certificado digital?

Com certificado digital é possível gerar a assinatura digital que garante a validade jurídica ao documento assinado digitalmente

22 – Explique como evitar ataques originados de engenharia social.

Não acessar sites desconhecidos, tomar cuidado com o que fala pelo telefone e ao marcar alguma informação no papel rasgar utilizando maquina de fragmentação de papel

23 – Que tipo de informações e documentos deve passar por um descarte seguro, antes de serem enviado para lixo.

Verificar empresa de transporte de lixo e verificar o tempo do documento junto ao responsável para ver se pode fazer o descarte do documento.

23 – Como descobrir se você foi direcionado para uma pagina falsa do banco?

Url do site, código do site, verificar o layout do site e verificar a pagina que você clica no google.

24 – Qual importância da ISO 27001 e 27002 para organizações?

27001: A norma é utilizada para levantar quais requisitos de sistemas de gestão da informação (SGI) devem ser implantados na empresa

27002: É a norma que trata de um guia para orientar a utilização dos controles de segurança da informação.

25 – Qual a função do ciclo PDCA?

A função do PDCA e criar um ciclo de melhoria continuam

26 – Porque utilizar uma politica de segurança da informação?

Utilizar a politica de segurança da informação garante que os dados sigilosos não sejam roubados por meio físico ou tecnológico.

27 – Quais os critérios para tratamento de risco? Comente cada um?

Redução do Risco: Convém que o nível de risco seja reduzido para que possa ser aceitável

Retenção do Risco: Se o nível do risco for aceitável poderá ter retenção do risco

Ação de Evitar o Risco: Executar uma ação que evite o risco.

Transferência do risco: A transferência do risco envolve a decisão de se compartilhar certos riscos com entidades externas.

28 – Qual o objetivo da análise de risco?

O objetivo da nossa análise de risco é mapear os riscos inerentes aos ativos englobados no escopo definido pela organização, permitindo uma melhor compreensão do cenário atual e uma escolha devidamente embasada dos controles de segurança da informação.

29 – Explique o funcionamento do método T.Fine de avaliação de risco.

Esse sistema de prioridade é obtido por intermédio de uma simples fórmula, que calcula o perigo de cada situação. O resultado denomina-se Grau de Criticidade – GC.

O Grau de Criticidade – GC irá determinar a urgência da tomada de decisão, ou seja, se o risco apontado deve ser tratado com maior ou menor brevidade.

A justificativa dos investimentos na segurança deverá estar intimamente relacionada ao GC. Com este método obtém-se um parâmetro para realizar e justificar o investimento na segurança.

O método baseia-se em grades de probabilidades. Se a empresa não possuir histórico de ocorrências, o cálculo será baseado em dados e avaliações subjetivas.

30 – Quais as vantagens de utilizar a calculadora de exposição ao risco?

A calculadora de exposição ao risco consiste em aplicar uma avaliação interna na organização que considera três pontos de pressão para  avaliação: cultura, crescimento e gestão de informações.

31 – Construa uma politica de segurança da informação, utilizando os conceitos apresentados.

Resposta Pessoal do Aluno

32 – Porque é necessária a utilização de senhas fortes?

Por invasão de hacker na exposição de dados pessoais.

33 – Quais os cuidados que devos tomar quando utilizar rede sociais?

1º Não colocar dados pessoais exemplo: endereço, rg, cpf etc….

2º Fotos exemplo: local onde mora, presentes novos (carro, moto, avião etc..)

34 – Faça um resumo das ameaças que internet proporciona.

Sites Falsos, Paginas com links que dão acesso a algum vírus etc…

Brasileiro converte Super Nintendo em PC

SNES PC

Elias Jonatas, membro do fórum ArcadeBR e também conhecido como bruner, transformou seu Super Nintendo em um computador. Sua ideia foi unir um Media Center, um videogame e um computador que o permitissem assistir a séries, filmes e jogar seus jogos favoritos com o controle do Super Nintendo, só que sem fio.

O hardware utilizado foi bem básico, mas suficiente para suas necessidades. Ele utilizou uma placa mãe MSI E350IS-E45, um processador dual-core AMD e350. A memória RAM escolhida foi da marca Markvision com 4 GB DDR3 e clock de 1333Mhz.

Ele optou por um disco rígido de notebook da Seagate com 160 GB de capacidade e a fonte capaz de alimentar o console/PC é a picoPSU de 100W. Os sistemas operacionais utilizados foram o Linux Mint, Windows 7 (para emulação do Super Nintendo) e Openelec (XBMC). Para gerenciar o boot do sistema, Elias optou pelo Burg, uma variação do Grub no linux.

Em poucos minutos após divulgar o PC em vídeo no Youtube, Elias já recebia ofertas pelo produto. Em resposta a um usuário ele disse: “A princípio não fiz para comercialização, até porque foi relativamente caro desenvolver este projeto. A placa mini-itx, mouse do Super Nintendo, teclados sem fio para os controles, fonte, alimentação para fonte, controle remoto, entre outras peças mais fora o trabalho árduo para montar, acaba inviabilizando a comercialização pelo alto custo. Mas, se alguém realmente se interessar pelo Super Nintendo PC, aceito propostas. Estou pensando na possibilidade de fazer algo parecido com o Raspberry, pois custaria muito menos para o caso da comercialização”.

A equipe da INFO tentou entrar em contato com Elias, porém não obteve resposta.

Confira o resultado dessa transformação:

Esta não é a primeira vez que ocorre esse tipo de modificação. Em 2011 um usuáriopostou em seu canal modificações do NES e também do SNES. O resultado de como ficaram os dois consoles após a tranformação você pode conferir abaixo:

Referencia: http://info.abril.com.br/games/noticias/2015/01/brasileiro-transforma-super-nintendo-em-pc.shtml

 

Como fazer um videogame retrô

Eu sou de 1978. O Atari 2600 era novidade nos EUA. Eu faço parte da primeira geração de crianças que teve o videogame como principal brincadeira. Não, não me julgue — se você está lendo este texto, provavelmente teve infância igual ☺

Até hoje curto jogar, e nisso tenho a companhia de um monte de gente da minha idade. O problema é que o meu gosto não evoluiu muito com o tempo. Quer dizer, ainda prefiro o estilo oitentista de videogame. Tenho um Xbox 360, é verdade, e adoro títulos como GTA 5 e Arkham City. Mas, na minha cabeça, nada se compara a Battletoads.

O advento dos emuladores — softwares que conseguem rodar jogos de videogames antigos — possibilitou o retrogaming. Deu permanência para títulos criados há 30, 35 anos, que seguem jogáveis, mesmo sem o hardware original!

Mas emuladores são coisas de computador, e computadores não são a plataforma adequada para se jogar, digamos, Nintendo. Teclado? Monitor? Desde que os emuladores surgiram eu sonho com a possibilidade de encarar uma partidinha de F-Zero na frente da televisão, sentado no sofá com o joystick na mão. Computadores não são tão legais.

Surge o Raspberry Pi

A caixinha do Raspberry Pi, o próprio e a fauna que habita minha mesa.

Mas há uma solução, e ela se chama Raspberry Pi. O Raspberry Pi é um computadorzinho miniatura com processador ARM de 700MHz, 512 MB de memória RAM e saída de vídeo Full HD.

Custa menos de 200 reais.

O Raspberry Pi foi criado no Reino Unido como uma ferramenta educacional, mas virou rapidamente o xodó de entusiastas de automação e informática DIY. Já usaram o RPi como media center, como headless streamer, como sensor de presença em banheiros (sim!) e… para retrogaming! \o/

O RPi como videogame retrô (agora sim!)

Com tanta gente se debruçando sobre isso ao redor do mundo desde 2012, montar um retroconsole com o Raspberry Pi não é exatamente inventar a roda. Você não vai criar nada do zero. Tem um monte de sistemas inteiros pré-construídos que vão te entregar o trabalho quase pronto.

(Ênfase no quase. O RPi roda Linux — por definição, nada baseado em Linux vem pronto para usar.)

Depois de alguns dias lidando com isso, compartilho alguma das coisas que aprendi. Acho que posso contribuir.

Pega na minha mão ☺ Vamos criar juntos um retroconsole Raspberry Pi que usa o joystick wireless do Xbox 360.

Ingredientes

  • Um Raspberry Pi. Recomendo vivamente o modelo B+;
  • Um cartão de memória MicroSDHC, de 8GB, classe 10;
  • Um power outlet USB 5V de 2A. O carregador do seu celular não serve, por ser de 1A. O do iPad, por outro lado, é perfeito. Mesmo assim, é melhor comprar um específico só para o seu retroconsole. Vá ao xing-ling mais próximo de você e especifique que você quer um carregador de 2 amperes;
  • Um cabo Micro USB A-B (igual ao do seu Android!);
  • Um cabo HDMI (ou um cabo composto A/V 3.5mm, se sua TV não tiver entrada HDMI);
  • Um teclado USB qualquer. Será útil só na configuração inicial, então pode ser emprestado de outro computador, de um amigo etc;
  • Um ou mais controles sem fio do Xbox 360. Gosto de controles sem fio porque TVs devem ficar longe de sofás e cabos suficientemente compridos não são nada práticos;
  • Um receptor wireless para o controle do Xbox 360. A Microsoft vende esses adaptadores para PC, mas eles funcionam no RPi também. Você encontra o receptor oficial no xing-ling por 100 reais, mas há genéricos bem mais baratos.

[Você pode optar pelo controle do PlayStation 3. Neste caso, terá de substituir o adaptador do Xbox 360 por um dongle USB bluetooth. Mas confesso que não testei e não sei como funciona; as instruções abaixo são específicas para o controle do Xbox.]

Conectividade

O Rasberry Pi modelo B+ tem entrada ethernet mas muito provavelmente a sua TV está longe de um ponto de rede. Então sugiro a compra de umadaptador wi-fi USB.

Atenção aqui: como o Raspberry Pi não consegue enviar muita energia para as suas portas USB, o adaptador wi-fi não pode ser daqueles grandes, cheios de recursos, tipo aqueles TP-Link. Eu comprei no xing-ling o adaptador mais barato da loja, totalmente genérico. 30 reais e funciona perfeitamente, sem drenar toda a energia do meu RPi.

Modo de preparo

Montar o sistema operacional

Vamos começar o nosso trabalho a partir de um esforço genial chamadoRetroPie. Trata-se de uma customização do Raspbian — o sistema operacional padrão do RPi — criada especialmente para retrogaming. Ele contém (quase) todos os emuladores, drivers e front-ends que vamos precisar.

Baixe este arquivo aqui (ele é grande, mais ou menos 1GB; mas o download via torrent é muito rápido). Esse arquivo contém o que se chama de “imagem” do RetroPie, o molde do cartão SD que colocaremos no RPi.

Para gravar essa imagem no SD você vai precisar de lidar com linha de comando (Linux, Mac) ou baixar um software específico (Windows). Siga as instruções nos links que coloquei no nome do seu sistema operacional, ou visite esta página do site oficial do Raspberry Pi.

O processo não deve ser demorado — cerca de 5 minutos. Prefira usar um computador com leitor de cartões embutido. Vários notebooks têm isso. Se o seu não tem, você pode usar um adaptador. Mas preste atenção. Adaptadores USB simplezinhos, como aqueles “pen drives” fáceis de encontrar por aí, são muito lentos e ineficientes. A gravação de uma imagem grande neles demora tipo 75 minutos e não raro sai corrompida. Procure umleitor de verdade.

Ligar o Raspberry Pi

Com o SD pronto, basta inseri-lo no Raspberry Pi. Em seguida, conecte o bichinho à TV (com o cabo HDMI ou composto) e plugue o teclado, o receptor do joystick e o dongle wi-fi (ou o cabo de rede, se for o caso). Coloque o RPi na tomada e — voilà!—, ele já está ligado, bootando. Sim, o RPi não tem botão “power”. Na tomada = funcionando. Ele foi projetado para ser always on. Não se preocupe que ele consome muito pouca energia.

Este é o Raspberry Pi com quase tudo plugado nele: HDMI, força e o receptor do Xbox. O microSD é encaixado na parte de baixo do RPi. Só faltou o wi-fi, que ocuparia uma das quatro portas USB disponíveis.

Enquanto o sistema carrega, aproveite para sincronizar o controle do Xbox com o receptor. Basta ligar o controle e apertar o botãozinho de sync que fica acima da pilha, ao mesmo tempo em que aperta o botão do receptor. Pronto!

Assim que o boot terminar, você estará na tela do Emulation Station, que é ofront-end adotado pelo Retro Pie. Ele é todo controlado pelo joystick, então é muito prático para escolher jogos, por exemplo, sem precisar do teclado.

Deixe para brincar com o Emulation Station depois. No teclado, aperte F4 — você vai cair na tela preta do terminal. Não se assuste. Precisaremos do terminal algumas vezes ainda.

Precisamos ajustar o tamanho do SD, configurar o wi-fi e outras configurações importantes. Para isso, digite:

sudo raspi-config

Irá surgir uma tela azul, assim:

Primeiramente, vá em “Expand Filesystem” — isso vai fazer o seu microSD ter disponível toda sua capacidade (a imagem que gravamos tinha cerca de 1GB somente, lembra?). Em seguida, mude sua senha em “Change User Password”. Aproveite para mudar o layout do teclado em “Internationalisation Options”.

Agora vamos fazer o Raspberry Pi ser um pouco menos lento, graças aoverclocking. Sim, o RPi suporta oficialmente o truque de mandar mais energia para o processador e assim aumentar sua velocidade. Vá em “Overclock” e, na tela que abre, opte pelo item “High”:

Volte ao terminal. Se você não está usando cabo de rede, hora de configurar o wi-fi: siga as instruções aqui.

Rede funcionando, hora de configurar o RetroPie em si. No terminal (lembre-se: para chegar a ele, basta apertar F4 no Emulation Station), digite:

sudo ./RetroPie-Setup/retropie_setup.sh

A tela azul acima irá aparecer. Selecione a opção 3, “setup”. Surgirá outro menu:

O suporte ao controle do Xbox já vem pré-instalado. Se você perceber que o joystick não está funcionando, selecione a opção 320, “Install Xbox contr. 360 driver” e siga as instruções.

Ao final de tudo, escolha a opção 7, “Perform Reboot” e aguarde o RPi reinicializar.

Configurar o joystick

Agora o Emulation Station deve pedir para você configurar seu joystick. A pegadinha: essa configuração serve somente para o Emulation Station em si, não para os jogos. Para os jogos vamos precisar voltar ao terminal. Aperte F4 e digite, numa linha só:

sudo /opt/retropie/emulators/RetroArch/installdir/bin/retroarch-joyconfig -p 1 -j 0 >> /opt/retropie/configs/all/retroarch.cfg

(Você precisa repetir esse passo para cada controle que quiser instalar, alterando sempre os parâmetros -p e-j incrementalmente: -p 2 -j 1, -p 3 -j 2etc.)

Agora configure os botões usados para sair do jogo com o joystick. O padrão é usar o teclado, pressionando “esc”. Você não vai ter um teclado, então precisa fazer o emulador usar o joystick nesse caso. Digite:

sudo nano /opt/retropie/configs/all/retroarch.cfg

E acrescente, no final do arquivo, as linhas:

input_enable_hotkey_btn = “6″
input_exit_emulator_btn = “7″

São os botões “back” e “start” do Xbox 360. Eles devem ser pressionados simultaneamente para que você saia do jogo e retorne ao Emulation Station.

Enviar jogos via SFTP

Você deve fazer essa etapa no seu computador principal, não no Raspberry Pi. É bem simples: basta enviar os arquivos ROM dos jogos, que você já tem (certo? se não, use o Google), para o RPi via SFTP. Recomendo, para isso, oFileZilla, que está disponível em todas as plataformas. Configure o FileZilla para acessar o IP de seu Raspberry Pi (se você não souber qual é, digiteifconfig no terminal e anote), usando o usuário “pi” e a senha que você definiu. Conecte e encontre o diretório abaixo:

/home/pi/RetroPie/roms/

Lá você vai ver uma lista dos diversos videogames suportados. Envie os ROMs para as pastas apropriadas e prontinho.

Melhorar a performance

Saia do computador principal e vá ao Raspberry Pi. Nele, no terminal, digite:

emulationstation

Veja que mágico: os sistemas para os quais você enviou ROMs aparecem no menu!

No meu retroconsole só há jogos das plataformas que me importam: Atari 2600, Master System, Mega Drive (Genesis nos EUA) e, principalmente, NES e Super NES.

A essa altura você já pode brincar um pouquinho com os menus e inclusive jogar os ROMs instalados!

Mas você vai reparar que a performance nos jogos não é das melhores. Há engasgos aqui e ali e o som fica distorcido em muitas ocasiões. A triste verdade é que o Raspberry Pi não é um equipamento rápido, mesmo comoverclock. Emular sistemas, mesmo os mais antigos, exige bastante do processador. O bom é que dá para melhorar bastante — o setup padrão do RetroPie é meio conservador e podemos ajustá-lo.

O emulador do RetroPie é o RetroArch, que na verdade é um front-end para diversas bibliotecas de emulação. Em geral, ele roda até bem no Raspberry Pi, com exceção do Super Nintendo. Então a nossa tarefa aqui é melhorar a performance do RetroArch e usar outro emulador para o SNES.

Você deve ter reparado que, ao começar o jogo, o Raspberry Pi muda de resolução: sai de 1920×1080 (Full HD) e vai para 1280×720 (HD). O RetroPie é configurado assim para economizar um pouco de processamento — fazeroversampling dos jogos come recursos do RPi. Vamos ser radicais. Jogos antigos não exigem tanta resolução. Para aliviar ainda mais o processador e fazer a emulação ser fluida, sugiro que rodemos os jogos em VGA (640×480).

Volte para o terminal (F4) e digite:

sudo nano /etc/emulationstation/es_systems.cfg

Procure os consoles que você pretende usar e altere suas linhas <command>, que deve ter essa cara aqui:

<command>/opt/retropie/supplementary/runcommand/runcommand.sh 4 “/opt/retropie/emulators/RetroArch/installdir/bin […] </command>

Altere o número que está logo após “runcommand.sh”. No exemplo acima, é4 (resolução HD). Mude para 3 (VGA). Fica algo assim:

<command>/opt/retropie/supplementary/runcommand/runcommand.sh 3“/opt/retropie/emulators/RetroArch/installdir/bin […] </command>

Salve o arquivo (control+X e responda “Y” à pergunta de confirmação) e execute novamente o Emulation Station (digitando emulationstation no terminal). Teste com algum jogo de Mega Drive ou NES, por exemplo. Muito melhor!

Se a imagem do jogo estiver muito pequenininha é porque o seu televisor está configurado para manter a imagem na resolução original (“unscaled”). Configure, no controle remoto da TV, para que ela preencha a tela mantendo as proporções (cada TV tem um nome para essa opção; geralmente é algo como “auto zoom”). Em outras palavras, quem deve fazer o trabalho deoversampling é a TV e não o Raspberry Pi — sacou a malandragem? 😉

Mudando o emulador do Super Nintendo

Particularmente eu considero o RetroArch ruim para emular o Super Nintendo em um equipamento simples como o Raspberry Pi. (Veja nos comentários ao lado que ele tem seus defensores — vale experimentar e decidir você mesmo.) Por isso recomendo outro emulador. Sugiro que usemos o SNES9x-rpi, uma adaptação do consagrado SNES9x para o RPi e que performa muito melhor. O problema é que o SNES9x-rpi que vem pré-instalado no RetroPie só aceita o direcional analógico do joystick, algo muito ruim para jogos antigos. Sorte que algum ser iluminado das interwebs criou uma versão alternativa desse emulador com suporte ao d-pad. Azar que vamos ter que compilá-la nós mesmos.

No terminal, digite:

wget https://github.com/fradinni/snes9x-rpi/archive/master.zip; unzip master.zip

Arquivo baixado e descompactado, execute:

cd snes9x-rpi-master; ./build.sh

A compilação deve demorar alguns minutos. Depois de realizada, execute:

sudo cp /home/pi/snes9x-rpi-master/release/snes9x /opt/retropie/emulators/snes9x-rpi

Você estará substituindo a compilação padrão do SNES9x-rpi pela sua. Em seguida, precisamos criar um arquivo de configuração que habilite o controle do Xbox 360. Execute a seguinte linha:

sudo nano /opt/retropie/emulators/snes9x-rpi/snes9x.cfg

E faça esse arquivo ter o seguinte conteúdo:

[Graphics]
DisplaySmoothStretch=0
[Joystick]
A_1=0
B_1=1
X_1=2
Y_1=3
L_1=4
R_1=5
UP_1=13
DOWN_1=14
LEFT_1=11
RIGHT_1=12
START_1=7
SELECT_1=6
QUIT=96
ACCEL=97
QLOAD=98
QSAVE=99

Salve. Agora precisamos dizer para o Emulation Station que o SNES9x-rpi é o emulador que queremos usar para o Super Nintendo, no lugar do RetroArch. Execute, no terminal:

sudo nano /etc/emulationstation/es_systems.cfg

Procure, no arquivo, a seção dedicada ao Super Nintendo e altere a linha <command> dele para a seguinte:

<command>/opt/retropie/supplementary/runcommand/runcommand.sh 3 “/opt/retropie/emulators/snes9x-rpi/snes9x %ROM%”</command>

Salve. Inicie o Emulation Station e teste algum jogo de Super Nintendo. Deve estar super suave agora. SU-CES-SO! \o/

~BALD BULL!~

Tornando a escolha do jogo mais agradável

A interface do Emulation Station suporta informações extras sobre o jogo — descrição, ano de lançamento, imagem da capa etc. Esse recurso se chamascraping e a fonte dessas informações é um site chamado TheGamesDB.net. Para ativá-la, basta escolher o jogo, apertar o botão “back” do controle do Xbox (que faz o papel do “select”) e selecionar a opção “Edit this game’s metadata”.

Maaaas… principalmente se você tiver muitos jogos, o processo oferecido pelo Emulation Station é lento e manual ☹

A dica que eu dou é: faça o processo de scraping no computador, não no Raspberry Pi. Dá algum trabalho e funciona melhor se você usar Linux ou OSX. Mas, garanto, vai economizar muitas horas.

Seu acervo de jogos ainda está no computador, certo? Certifique-se disso e baixe o script Python disponibilizado em https://github.com/elpendor/ES-scraper. Em seguida, instale uma biblioteca Pyhton chamada PIL, para edição de imagens. No Linux, uma das maneiras de instalá-la é:

sudo apt-get install python-imaging

Agora você vai precisar criar uma pasta chamada .emulationstation no diretório do seu usuário (/home/nome-do-seu-usuario). O pontinho faz parte do nome do diretório, cuidado! Crie dentro dessa pasta um arquivo chamado es_systems.cfg e coloque um bloco de texto assim para cada console de sua biblioteca:

NAME=NES
DESCNAME=NES
PATH=~/ROMS/NES/
EXTENSION=.nes
PLATFORMID=7

Preste atenção no caminho onde estão os ROMs e no ID do console. A lista completa de IDs pode ser vista aqui.

Em seguida, rode o script, com a seguinte linha de comando, para cada console (ele irá perguntar qual logo em seguida):

python scraper.py -w 700 -p -f -newpath

Processo terminado, hora de tratar os arquivos e mandar para o Rasbperry Pi. No diretório /home/seu-usuario/.emulationstation/nome-do-console você encontrará um arquivo gamelist.xml com o resultado do scraping. O arquivo é uma lista e cada jogo tem a seguinte estrutura:

<game>
<path>./2020 Super Baseball (U).smc</path>
<name>Super Baseball 2020</name>
<desc>Different from real baseball and other baseball video games, this game consists of both male and female characters, as well as robots. All three types of players have the same basic abilities and vary only on their personal strengths. In many cases, human players are better than their robot counterparts. One major difference between the human and robot characters is that the robot characters can blow up (or lose all their power) if they are worked too hard during a game. That can happen if you constantly make them dive for a ball, run extra bases, or even if they get hit by a pitch. Under no stress whatsoever, some robots, especially pitchers, will naturally run out of power as the game progresses. When this happens, they will lose all their abilities and be useless, both offensively and defensively. When that occurs, you can either power them up or replace them with another person on the roster. Human players do not blow up, but human pitchers can tire out. When they are tired, they will pant heavily and throw the ball very slowly. This can be remedied by either an upgrade or, as in real baseball, switching to a relief pitcher.</desc>
<image>~/.emulationstation/downloaded_images/snes/2020 Super Baseball (U).png</image>
<releasedate>03/12/1993</releasedate>
<publisher>SNK</publisher>
<developer>SNK</developer>
<genres>
<genre>Sports</genre>
</genres>
</game>

Você precisa alterar a tag <path> para que seu valor seja exatamente ./nome-do-arquivo-rom, e a tag <image> para que seu valor seja exatamente~/.emulationstation/downloaded_images/nome-do-console/nome-do-arquivo-imagem. Com um ou dois comandos de “find and replace”, no seu editor de texto predileto, você resolve isso fácil 😉

Agora basta mandar tudo para o Raspberry Pi. Use o FileZilla ou outro programa de SFTP e envie os arquivos gamelist.xml para a pasta/home/pi/.emulationstation/gamelists/ (há uma para cada console) e as imagens para a pasta /home/pi/.emulationstation/downloaded_images/ (novamente, uma para cada console). Reinicie o Emulation Station e deleite-se:

O melhor jogo de todos os tempos, de acordo comigo mesmo.

Fazendo ajustes cosméticos

No blog do Rafael Rigues (um dos grandes inspiradores deste post) encontrei duas dicas que irão agradar os preciosistas.

A primeira ensina como tirar aquele monte de texto que surge na tela quando o Raspberry Pi é iniciado. Basta editar o arquivo /boot/cmdline.txt, substituir a opção console=tty1 por console=tty3 e adicionar, no final da mesma linha, o comando loglevel=3 logo.nologo.

A segunda mostra como tirar os textos que surgem na tela entre o carregamento dos jogos. É necessário editar o arquivo/opt/retropie/supplementary/runcommand/runcommand.sh e, antes da linha que diz starttype=$1, adicionar o seguinte código:

clear
exec 2> /dev/null

Mais à frente, depois das linhas que dizem echo “performance” e echo ondemand, acrescente outra linha com apenas uma palavra: clear.

Jogar

Divirta-se! \o/

Dar sua opinião

Achou algum furo neste guia? Tem técnicas melhores ou mais fáceis para algum dos passos descritos acima? Fale comigo! Ao lado de cada parágrafo há um botãozinho de “+” próprio para comentários. Vamos conversar! ☺

Autor e Criador: Adriano Brandão

Referencia: https://medium.com/brasil/como-montar-um-videogame-retro-com-um-raspberry-pi-e-controles-do-xbox-360-b5b92fa61465