Olá, esta é mais uma de um conjunto de práticas em bioinformática desenvolvidas para o curso de Biomedicina da PUC MG. Você pode encontrar as demais práticas aqui.
Linux e WSL
Praticamente todos os computadores dedicados a análises de bioinformática rodam sistemas operacionais do tipo Unix, em especial o Linux e o macOS. Em nossas práticas na linha de comando, utilizaremos o sistema operacional Ubuntu. Caso o seu computador seja Windows, você pode emular um sistema operacional Unix utilizando o WSL, ou Windows subsystem for linux.
Você pode conferir as instruções de instalação originais da Microsoft aqui. Mas, resumidamente, para habilitar o WSL você precisa que o seu computador tenha as aseguintes especificações.
- Windows 10 versão 2004 ou superior.
- Build 19041 ou superior.
Compatibildiade com WSL
Para conferir esses atributos, proceda da seguinte maneira:
No seu teclado, aperte conjuntamente as teclas win key (⊞) e R. Na janela que se abriu, digite winver e pressione \(enter\) (↵).
Compare as informações exibidas com os pré-requisitos acima.
Habilitar e instalar o WSL
Aperte a tecla win key (⊞). Uma janela se abrirá, contendo um campo de busca. Basta digitar powershell que a opção do Windows Powershell será exibida. Clique na mesma com o botão direito e selecione Abrir como administrador.
Uma janela azul se abrirá. Esta é a interface por linha de comando do Windows. Nela iremos digitar os comandos para a instalação do WSL. Para a execução de cada comando, após digitar a instrução, basta apertar \(enter\) (↵).
Liste as distribuições de Linux disponíveis.
wsl --list --online
Você verá uma lista das distribuições de Linux que podem ser instaladas no seu WSL. Utilizaremos a Ubuntu-20.04. Prossiga com a instalação.
Inicie a instalação da distribuição desejada.
wsl --install -d Ubuntu-20.04
Primeiro a distribuição (distro) será baixada, e depois instalada. Ao final da instalação, uma nova janela, de fundo preto, se abrirá. Este já é o Ubuntu, e as primeiras mensagens que você vai receber são para configurar o seu usuário.
O primeiro passo será escolher um login, um nome para o seu usuário. Para facilitar, recomendo que o seu login:
- Seja curto, com no máximo 8 caracteres.
- Tenha apenas letras minúsculas.
- Não contenha caracteres especiais como ~, ^, ç, …
- Não contenha espaços.
Uma vez definido o seu login, você será solicitado a criar um password, uma senha para o seu usuário. Uma vez que você está no seu próprio computador, ou num login institucional, sugiro criar uma senha mais simples, como o nome do seu usuário + 12345, pois será de fácil dadução caso você se esqueça durante estes primeiros passos. Quando for utilizar usuários em computadores compartilhados ou em servidores, recomendo criar senhas o mais complicadas o possível, sem o nome do seu usuário.
A linha de comando
Todos os sistemas operacionais podem ser operados sem a necessidade de uma interface gráfica, ou seja, sem uma tela com ícones que você selecione clicando (mouse). Isto é realizado apenas atavés do teclado. A linha de comando é a interface por onde você transmite instruções escritas para o computador (input), que te retorna o resultado do processamento dessas instruções (output). Há uma infinidade de comandos que podem ser executados, mas alguns que conheceremos nestas práticas são fundamentais no dia a dia do bioinformata.
Comandos básicos
Criando e modificando diretórios
Agora vamos criar diretórios para explorar outros comandos. Para criar um diretório, utilizamos o comando mkdir, seguido do nome do diretório a ser criado, com caminhos completos ou não. Caso não seja fornecido um caminho, o novo diretório será criado no diretório onde se está.
Utilize o comando mkdir para criar uma pasta aula1, na sua $HOME. Entre nessa pasta com cd.
cd
mkdir aula1
cd aula1
Utilize o comando mkdir para criar 3 pastas, pasta_A, pasta_B, pasta_C, dentro de aula1. Liste os arquivos do diretório onde você está com o comando ls.
ls
mkdir pasta_A
mkdir pasta_B
mkdir pasta_C
ls
O comando ls (assim como a grande maioria de comandos) aceita argumentos. Argumentos são elementos que modificam a maneira como cada comando funciona. Experimente a variação a seguir e veja a diferença.
ls -lh
Você acaba de listar os arquivos e pastas, bem como outras informações. Da esquerda para a direita: a) tipo de arquivo e permissões; b) contagem de links; c) usuário e grupo proprietários do arquivo; d) tamanho do arquivo (em bytes); e) data da última modificação; f) nome do arquivo.
Agora vamos criar alguns arquivos.
Utilize o comando touch para criar dentro da pasta pasta_A alguns arquivos.
cd pasta_A
touch arquivo_{1..3}_{A..D}
Veja que, com um comando apenas, você criou diversos arquivos (vazios). Isso acontece porque o uso de {} possibilita a representação de múltiplos caracteres. Faça experiencias com o comando echo, que imprime algum texto ou expressão.
Faça experiencias com o comando echo, que imprime algum texto ou expressão.
echo arquivo_{1..3}_{A..C}
echo {1..3}
echo {1..30}
echo {A,T,G,C}{A,T,G,C}
echo {A,T,G,C} {A,T,G,C}
Todos os arquivos e diretórios podem ser movidos. O comando mv é utilizado para isto. Este comando tem uma sintaxe definida, e para seu funcionamento é preciso especificar duas coisas.
arquivo/diretório a ser movido;
arquivo/diretório de destino;
Este comando pode ser utilizado tanto para mover (trocar de local) quanto para renomear um arquivo ou diretório. Por isso, sua sintaxe deve ser analisada com calma antes da execução. Vamos vazer alguns testes.
Utilize o comando mv para renomear um arquivo, de acordo com o exemplo a seguir:
ls
mv arquivo_1_D arquivo_1_D_renomeado
ls
Agora, vamos remover alguns arquivos. O comando rm é utilizado para remover arquivos, mas pode remover qualquer coisa (à força). Já o comando rmdir, para remover diretórios, necessáriamente vazios.
Não é possível desfazer ações na linha de comando. Uma vez deletado, para sempre perdido. Assim, recomenda-se muita atenção na hora de executar comandos de remoção. Uma opção é utilizar o argumento -i para ativar a confirmação de remoção.
Remova todos os arquivos terminados em D.
rm arquivo_1_D_renomeado
rm arquivo_2_D
Estrutura de diretórios
O comando tree mostra a distribuição de arquivos e diretórios a partir de um determinado diretório.
Utilize o comando tree para ver a estrutura de pastas a partir da pasta aula1, contida na sua $HOME.
tree ~/aula1 -L 2
## /home/noreh/aula1
## ├── pasta_A
## │ ├── arquivo_1_A
## │ ├── arquivo_1_B
## │ ├── arquivo_1_C
## │ ├── arquivo_2_A
## │ ├── arquivo_2_B
## │ ├── arquivo_2_C
## │ ├── arquivo_3_A
## │ ├── arquivo_3_B
## │ └── arquivo_3_C
## ├── pasta_B
## └── pasta_C
##
## 3 directories, 9 files
Note que o seu nome de usuário será diferente do meu, mostrado neste exemplo.
Instalando funcionalidades
Se a sua tentativa de usar o comando tree não foi bem sucedida e você recebeu um aviso de command not found, nem tudo está perdido. Você pode instalar esse comando (ou praticamente qualquer outro) executando poucas linhas. O Linux tem um sistema de gerenciamento de pacotes e aplicativos, o apt. Através dele você interage diretamente com repositórios de códigos de cada versão do Linux.
Vamos fazer a instalação do comando tree, mas antes, vamos atualizar o sistema. Isto é necessário para sincronizar essa sua nova instalação com os repositórios mais recentes.
Todos esses comandos de atualização e instalação precisam ser executados como super usuário (ou como chamamos, sudo, que é o mesmo nome que aparece no começo de qualquer comando executado como super usuário). Para executá-los, você vai precisar fornecer a sua senha.
Como super usuário, atualize o sistema:
sudo apt update
É possível que você tenha encontrado alguns erros, a depender do computador onde você está realizando a prática. De qualquer maneira, vamos prosseguir:
Como super usuário, instale o aplicativo/comando tree
sudo apt install tree
Teste o comando tree. Abra o help do comando para ver as opções de configuração.
tree
tree --help
Agora, com o comando instalado, tente executar o passo anterior para visualizar a organização dos seus arquivos e diretórios.
Exercícios
Utilizando os comandos que você aprendeu, execute as instruções a seguir. Sempre que pssível, utilize a tecla \(TAB\) para completar os nomes de arquivos e caminhos. Lembre-se que o caracter \(*\) serve como coringa, ele representa qualquer outro caracter.
- mova os arquivos cujo nome começa com arquivo_1, arquivo_2 e arquivo_3 da pasta de onde eles foram criados para a pasta correspondente à última letra de seus nomes.
Tente, com um único comando:
- remover os arquivos com numeração 3 de todas as pastas.
Agora, vejamos como ficou a organização.
- visualize a distribuição das subpastas e arquivos dentro da pasta aula1.
Voltar para a página inicial