Experimente as novas distribuições Linux com o QEMU

Tem meses em que a comunidade do software livre está “em polvorosa”, com os lançamentos quase simultâneos de novas distribuições.
Haja DVD ou pendrive para gravar… 😉

Com uma plataforma de virtualização, como o VirtualBox, o VMWare, o QEMU etc. é possível experimentar qualquer distro live, sem a necessidade de ter que passar pelo processo da instalação — e você ainda preserva seus pendrives.
Neste texto, vou demonstrar o uso do QEMU, como minha plataforma favorita de virtualização para rodar uma distro brasileira, que eu acredito que vale a pena conhecer.
Os princípios são os mesmos para qualquer outra distro Linux — portanto, não se prenda às minhas opções.
O SimbiOS é um sistema operacional GNU/Linux (brasileiro) baseado no Debian testing.
Você pode encontrar uma ISO para instalação ou apenas para experimentar no site oficial: http://simbioslinux.weebly.com/.
O site SempreUpdate tem um review atualizado sobre a distro — link no final do texto. Não deixe de ler 😉

Como compor uma máquina virtual para rodar a minha distro favorita

Eu me sinto bastante confortável para usar ferramentas CLI (de linha de comando). Se este não for o seu caso, experimente uma das várias alternativas do QEMU para interfaces gráficas (GUI).
Neste exemplo, vou mostrar como rodar o SimbiOS em uma máquina virtual, nas seguintes condições:

  • Arquitetura básica de 64 bit
  • 2 GiB de memória RAM

qemu-system-x86_64 -enable-kvm -m 2048 -name 'SimbiOS 17 Light' -cdrom SimbiOS_17.0_light-amd64.iso -boot d

Entenda as opções:

  • -enable-kvm, habilita a virtualização completa com suporte ao módulo KVM.
  • -m 2048, determina a quantidade de memória RAM presente no hardware virtual.
  • O valor da opção ‘-name’ pode ser qualquer um à sua escolha.
  • Por fim, a opção ‘-boot d’ (opcional) força o boot pela unidade de cd-rom virtual.

Tenha o cuidado para usar o nome exato da ISO baixada do site, no comando acima.

Você pode usar um utilitário do pacote do QEMU para criar uma unidade de armazenamento virtual adicional, em que se pode instalar um sistema operacional.
Com isso, dá para ter uma melhor usabilidade.
Veja como rodar o qemu-img para criar uma unidade virtual de 30 GB:


qemu-img create -f qcow2 simbios17.qcow2 30G

Formatting 'simbios17.qcow2', fmt=qcow2 size=32212254720 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16

Note que eu usei o nome ‘simbios17.qcow2’.
Sinta-se livre para usar o nome/extensão que quiser para a sua unidade.
Agora, já dá para iniciar o sistema operacional a partir do arquivo ISO, com suporte à unidade de armazenamento virtual em simbios17.qcow2:


qemu-system-x86_64 -enable-kvm -m 2048 -name 'SimbiOS 17 Light' -cdrom SimbiOS_17.0_light-amd64.iso -hda simbios17.qcow2 -boot d

A partir daí, já é possível iniciar o processo de instalação, se este for o seu desejo, na unidade adicionada.
qemu Simbios 17
Ao fim do processo, desligue a máquina virtual e, na linha de comando, dispare o boot a partir da unidade que você criou:


qemu-system-x86_64 -enable-kvm -m 2048 -name 'SimbiOS 17 Light' -hda simbios17.qcow2

É quase certo que, desta maneira, vai rodar bem melhor do que a partir da ISO.
simbios linux boot menu

referências

Site oficial do SimbiOS: http://simbioslinux.weebly.com/

Downloads: http://simbioslinux.weebly.com/downloads.html

Review no SempreUpdate: https://sempreupdate.com.br/conheca-o-simbios-uma-distribuicao-baseada-no-debian-gnulinux/.

Personalize ou crie comandos próprios no Linux com o alias

Mesmo que você não conheça o comando alias, ele provavelmente já está sendo usado em seu sistema.
Os arquivos de configurações pessoais .bashrc ou .bash_profile devem ter uma série de configurações com o uso do alias.

“Alias”, quer dizer apelido.
Sua função é dar nomes curtos para sequências grandes de comandos.

Por exemplo, você pode criar um alias para realizar a atualização do seu sistema, na linha de comandos (CLI):


alias atualiza="sudo apt update"

atualiza

[sudo] senha para justincase: 

O arquivo de configuração .bashrc, presente no seu diretório home (no Debian), já vem com alguns alias predefinidos:

 
cat .bashrc | grep alias

# enable color support of ls and also add handy aliases
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

No meu caso, a maioria está relacionada ao comando grep e ls.

Armazene os apelidos em um arquivo externo

Opcionalmente, você pode adicionar todos os seus alias a um arquivo externo, chamado .bash_aliases (ou outro nome, à sua escolha). Para isto, acrescente ao arquivo de configuração pessoal do Bash (.bashrc), as seguintes linhas:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

No Debian, estas linhas já estão presentes. De forma que é possível já criar e editar o arquivo .bash_aliases.
Não é obrigatório. Apenas pode ajudar a organizar melhor seus arquivos de configuração do sistema.

Sugestões de alias para usar no seu sistema

Se há sequências de comandos muito longas e usadas, elas podem ser encurtadas em apelidos.
As sequências de atualização do sistema, por exemplo:

alias sau="sudo apt update"
alias alu="apt list --upgradable"
alias saf="sudo apt full-upgrade"

Você pode adicionar apelidos para chegar mais rápido às suas pastas de arquivos mais acessadas:

alias documentos="cd ~/Documentos"
alias scripts="cd ~/scripts/python"
alias vid="cd ~/Vídeos"
alias down="cd ~/Downloads/"
alias mus="cd ~/Músicas/"
alias wallp="cd ~/Imagens/wallpapers"

Alguns comandos úteis para o seu sistema:

alias sair="exit" # para encerrar a sessão no terminal atual
alias reset="systemctl reboot" # para reiniciar o sistema
alias desligar="systemctl poweroff" # para desligar o sistema
alias suspender="systemctl suspend" # para suspender o sistema
alias hibernar="systemctl hibernate" # para hibernar

Obtenha outras sugestões de uso do alias, neste artigo.


Saiba mais sobre as diferenças entre suspender, hibernar e hybrid-sleep.
Use sempre alias para criar apelidos curtos para sequências de comandos grandes — mas que não são tão extensos, que justifique criar um script. 😉
Você tem outras sugestões?! Então, conta pra gente, na caixa de comentários.

Use o utilitário tr para substituir caracteres dentro de arquivos texto

O tr, no Linux, é usado para traduzir ou remover caracteres dentro de arquivos de sequências de texto.
Pode ser usado também para fazer substituições de caracteres, como veremos nos exemplos abaixo — que fazem uso também do utilitário cat.
Para os meus exemplos, vou criar um arquivo a partir do /etc/fstab:


cp /etc/fstab teste.txt

Agora tenho um lugar mais seguro para brincar…
Este é o conteúdo original dele:


cat teste.txt 

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#                
# / was on /dev/sdb1 during installation
UUID=ae9797c5-677a-400d-aad7-4fbe960b94ad /               btrfs   defaults        0       0
# /home was on /dev/sda1 during installation
UUID=d44c3678-1743-4c24-85b1-a6f437f4bb87 /home           btrfs   defaults        0       0
# o swap fica em /dev/sdb2 /dev/sda2 
/dev/sdb2   swap    swap    defaults    0   0
/dev/sda2   swap    swap    defaults    0   0

Como substituir espaços por tabulações dentro de um arquivo texto

Com o pipe |, é possível passar o conteúdo de um arquivo texto para o tr, que realiza o procedimento, no caso abaixo, de substituir os espaços por tabulações:


cat teste.txt | tr ':[space]:' '\t' > teste-a.txt

Use o cat, para ver o resultado no arquivo teste-a.txt:


cat teste-a.txt

Se você prefere substituir cada espaço por 2 espaços, troque o ‘\t’ por ‘ ‘ (com 2 espaços dentro):


cat teste.txt | tr ':[space]:' '  ' > teste-a.txt

Experimente usar ‘ ‘ (com espaços de verdade dentro), em vez de ‘:[space]:’, para ver a diferença.

Como converter todos os caracteres minúsculos para maiúsculos e vice-versa, dentro de um texto

Com o comando abaixo, vamos converter o conteúdo do arquivo teste.txt de minúsculas para maiúsculas:


cat teste.txt | tr a-z A-Z > teste-b.txt

Veja o meu resultado:


cat teste-b.txt 

# /ETC/FSTAB: STATIC FILE SYSTEM INFORMATION.
#
# USE 'BLKID' TO PRINT THE UNIVERSALLY UNIQUE IDENTIFIER FOR A
# DEVICE; THIS MAY BE USED WITH UUID= AS A MORE ROBUST WAY TO NAME DEVICES
# THAT WORKS EVEN IF DISKS ARE ADDED AND REMOVED. SEE FSTAB(5).
#
#                
# / WAS ON /DEV/SDB1 DURING INSTALLATION
UUID=AE9797C5-677A-400D-AAD7-4FBE960B94AD /               BTRFS   DEFAULTS        0       0
# /HOME WAS ON /DEV/SDA1 DURING INSTALLATION
UUID=D44C3678-1743-4C24-85B1-A6F437F4BB87 /HOME           BTRFS   DEFAULTS        0       0
# O SWAP FICA EM /DEV/SDB2 /DEV/SDA2 
/DEV/SDB2   SWAP    SWAP    DEFAULTS    0   0
/DEV/SDA2   SWAP    SWAP    DEFAULTS    0   0

Se você tem alguma sugestão de uso do tr, deixe a gente saber, nos comentários 😉

Como criar um registro da sua linha de comando no Linux

Você pode querer registrar todos os comandos dados durante uma sessão, no terminal.
Usualmente, para depois analisar com calma e, se for o caso, criar um script a partir deles, para automatizar a tarefa.
Pode ser útil também em aulas, quando o professor deseja aplicar um teste. O aluno apenas envia para ele o arquivo resultado.
O utilitário script inicia automaticamente a gravação (no arquivo typescript) de todas os comandos executados no seu terminal.
Quando terminar e desejar sair da gravação, use o comando exit.
Veja um exemplo:


script


Script iniciado, o arquivo é typescript
justincase@ultra-5 

echo "Toda esta linha será gravada em um arquivo chamado typescript."

ls # esta também.

exit

Script concluído, o arquivo é typescript

cat typescript

linux script save
Se preferir, é possível indicar um outro nome para o seu arquivo:


script meuarquivo.log

Como comportamento padrão, o script sobrescreve o arquivo existente.
Use a opção ‘–append’ ou ‘-a’ para adicionar código a um arquivo preexistente.


script --append backup.sh

Reexecute o último comando como superusuário

O utilitário sudo tem a função de investir temporariamente usuários comuns nas vestes do administrador do sistema.
Se você rodou um comando e descobriu que ele precisava ser executado como root, use apenas o sudo acompanhado de ‘!!’.
sudo apt update
Veja um exemplo:


apt update

Lendo listas de pacotes... Pronto
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operação não permitida)
E: Não foi possível abrir arquivo de trava /var/lib/apt/lists/lock - open (13: Permissão negada)
E: Impossível criar acesso exclusivo ao directório /var/lib/apt/lists/
W: Problema ao remover o link do ficheiro /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permissão negada)
W: Problema ao remover o link do ficheiro /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permissão negada)

Como você pode ver, o comando acima, precisava de privilégios administrativos para ser executado.
Para resolver isto, não precisa digitar tudo de novo.
O comando abaixo, resolve:


sudo !!

sudo apt update
[sudo] senha para justincase: 
Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease
Ign:2 http://ftp.br.debian.org/debian stretch InRelease                                
Atingido:3 http://ftp.br.debian.org/debian stretch-updates InRelease                   
Atingido:4 http://linux-libre.fsfla.org/pub/linux-libre/freesh freesh InRelease        
Atingido:5 http://dl.google.com/linux/chrome/deb stable Release                        
Atingido:6 http://ftp.br.debian.org/debian stretch Release                             
Atingido:7 http://ftp.debian.org/debian stretch-backports InRelease                    
Atingido:8 http://security.debian.org/debian-security stretch/updates InRelease        
Lendo listas de pacotes... Pronto                         
Construindo árvore de dependências       
Lendo informação de estado... Pronto
All packages are up to date.