Programação em Ruby. Terminal para principiantes - parte 1
Damian Watroba
Software Engineer
Está na altura de discutir o segundo ponto (Terminal) da entrada Como começar a programar em Ruby em 7 passos. Sem mais demoras, convido-o a ler o conteúdo e a acompanhar com alguns exercícios práticos que preparei para si. Vamos lá!
Terminal - teoria
O terminal é uma ferramenta básica em qualquer sistema operativo, também chamada consola ou linha de comandos. Sempre que ouvir um destes termos, saberá que se trata disso. Permite a comunicação com a shell do sistema, por exemplo, com o bass (a shell predefinida do Ubuntu). A shell funciona como um intermediário entre o sistema operativo ou as aplicações e o utilizador. Em termos simples, a consola permite-lhe dar comandos ao sistema. Não importa a língua em que programa - quanto mais cedo dominar esta ferramenta, melhor. O terminal será utilizado para instalar/executar programas na sua máquina, gerir os recursos do computador, navegar nos diretórios, criar ficheiros ou executar scripts previamente preparados. Estas competências são necessárias para gerir um servidor que não tenha uma interface gráfica de utilizador (GUI).
O atalho de teclado que abre o terminal é ctrl + alt + t
Muitas pessoas tentam adiar a aprendizagem da linha de comandos, procurando versões de programas com uma interface gráfica agradável. No entanto, se quiser começar a aventura com a programação, o terminal será um elemento indispensável da aprendizagem, por isso está na altura de se tornar amigo. Os inícios podem ser difíceis, mas não se preocupe.
Terminal - Prática
Na imagem acima, temos um terminal Ubuntu já aberto onde pode ver:
damian@rubydev:~$
A primeira parte, antes dos dois pontos, não é mais do que o nome de utilizador que escolhemos ao instalar o Ubuntu e o nome do nosso computador. No entanto, o til ~ significa o diretório pessoal. O último carácter $ é o chamado "prompt". Depois disso, os comandos podem ser introduzidos.
Onde é que eu estou?
pwd (Imprimir diretório de trabalho) - devolve sempre o caminho para o local onde se encontra no momento. Quando se perde, pode sempre usar a opção pwd comando.
Neste ponto, vale a pena notar que, imediatamente após iniciar a consola, está sempre no seu diretório pessoal, ou seja / casa / NOME_DO_UTILIZADOR, em que NOME_DO_UTILIZADOR significa o seu nome de utilizador.
Mostra-me o que tens!
ls (List) - é um dos comandos mais utilizados para mostrar o conteúdo do diretório em que se encontra atualmente.
Os comandos também podem receber argumentos (opções) que irão modificar o comportamento dos seus comandos de alguma forma. Pode escrevê-los juntos ou separadamente, por exemplo:
damian@rubydev:~$ ls -la
ou:
damian@rubydev:~$ ls -l -a
-l é uma opção que imprime ficheiros e diretórios sob a forma de uma lista com informação detalhada, enquanto que -a ou --tudo também imprime ficheiros ocultos (isto é, ficheiros com nomes que começam por um ponto).
As opções passadas são geralmente precedidas por - ou --. Outro truque útil é introduzir o caminho para o diretório cujo conteúdo se pretende verificar logo após ls ou após as opções passadas (se as utilizar). Desta forma, fá-lo-á sem alterar a sua localização atual.
Neste caso, aprendemos quais os ficheiros que temos na pasta Documentos sem sair do diretório de origem.
Vamos pôr-nos a caminho!
É altura de explorar um pouco o seu sistema e aprender a navegar nele. Iremos utilizar o cd (mudar de diretório) para mover.
Se quiser ir para o Documentos do seu diretório pessoal, o comando terá o seguinte aspeto: cd Documentos. Para ter a certeza de que está no sítio certo, pode verificá-lo com o já conhecido pwd comando:
Se quiser voltar atrás, pode utilizar cd ..., mas lembre-se que .. irá levá-lo de volta ao diretório principal, não ao local a partir do qual introduziu o comando. Talvez este ecrã ilustre melhor esta questão:
Também vale a pena conhecer alguns atalhos que o ajudarão a trabalhar de forma mais eficiente. Os cd ou cd ~ irá levá-lo diretamente para o diretório home, a partir de qualquer ponto do seu sistema.
damian@rubydev:~/Pulpit/Praca$ cd
damian@rubydev:~$ pwd
Escolha a opção / se precisar de aceder ao diretório raiz, o chamado "root". É o diretório básico do sistema, contendo os diretórios com os ficheiros de configuração, as aplicações instaladas e os diretórios dos utilizadores (incluindo o seu diretório pessoal).
damian@rubydev:~$ cd /
damian@rubydev:/$ pwd
/
Outra coisa que facilitará o seu trabalho é a utilização do botão TAB. Não precisa de introduzir sempre o nome completo do diretório para onde quer ir, nem sequer de se lembrar do seu nome completo. Se introduzir a primeira letra do catálogo e premir TAB, o terminal irá sugerir as opções disponíveis ou completar o comando imediatamente se só houver uma possibilidade. Vamos experimentar:
damian@rubydev:/$ cd P[tab]
Pobrane/ Publiczny/ Pulpit/
damian@rubydev:/$ cd P
damian@rubydev:~$ cd D[tab]
damian@rubydev:/$ cd Dokumenty/
Utilizaremos o tabulador com bastante frequência nesta sessão de formação.
Ajuda?
Esqueceu-se das opções que o <codecd funciona? Pode utilizar o suporte de documentação que o seu sistema oferece. O homem (manual) é utilizado para o efeito:
damian@rubydev:/$ man cd
Esta não é a única forma. Também é possível utilizar o -ajuda ou -h que lhe mostrará um guia de ajuda rápida, por exemplo:
damian@rubydev:~$ ls --help
Tarefas:
1. Descobrir que outras opções para além da -l -a a ls pode aceitar, e quais os pormenores que o comando -l devolve exatamente.
2. Uma vez que pode navegar através dos diretórios, familiarize-se com a estrutura de ficheiros do seu sistema.
É altura de acrescentar e alterar alguma coisa!
Para criar novos diretórios nos quais irá guardar os seus projectos, utilize o comando mkdir (make diretory) seguido do nome da sua escolha.
damian@rubydev:~/Pulpit$ mkdir Projekty
damian@rubydev:~/Pulpit$ ls
Lista de projectos
Se pretender criar um ficheiro, pode utilizar a função toque comando:
damian@rubydev:~/Pulpit/Projekty$ touch rubydev.rb
damian@rubydev:~/Pulpit/Projekty$ ls
rubydev.rb
Uma vez que pode adicionar novos diretórios e ficheiros, também pode copiá-los! Para copiar os ficheiros, utilizará o comando cp (copy), e para copiar diretórios cp adicionar o -r opção (recursiva). Ao copiar um ficheiro / diretório, o comando recebe dois parâmetros:
o ficheiro que pretende copiar, por exemplo, o ficheiro criado anteriormente rubydev.rb ficheiro,
o local para onde copia (pode dar um novo nome à cópia inserindo-o no final do caminho de destino).
Eu copiei o arquivo rubydev.rb para o diretório pai, ou seja, o diretório Desktop
Também é possível transferir ficheiros. Vamos tentar mover o ficheiro previamente copiado de volta para o diretório em que se encontra, alterando o seu nome ao mesmo tempo.
Nós movemos o arquivo rubydev_copy.rb do diretório pai para o diretório no qual estamos atualmente localizados
Para mover ficheiros e diretórios, utilize o comando mv (mover), que - tal como cp - recebe duas informações de entrada: o que e para onde mover.
Desnecessário? Vamos apagar!
Como normalmente acontece, após algum tempo, terá ficheiros e diretórios de que já não precisa ou que já não utiliza. Existem também comandos apropriados para eliminar esses ficheiros e diretórios.
rmdir (remove diretory) - remove o diretório vazio que você deu como parâmetro. Se fornecer mais caminhos para diretórios, serão todos eliminados.
rm (remove) - remove o ficheiro. Para apagar um diretório com este comando, usamos o comando -r -f opção. Este comando aceita apenas um parâmetro, nomeadamente o caminho para o ficheiro ou diretório. Se quiser apagar todos os ficheiros no diretório em que se encontra, pode passar a opção * como parâmetro. O comando terá então o seguinte aspeto: rm *
damian@rubydev:~/Pulpit/Projekty$ ls rubydev_move.rb rubydev.rb
damian@rubydev:~/Pulpit/Projekty$ rm *
damian@rubydev:~/Pulpit/Projekty$ ls
damian@rubydev:~/Pulpit/Projekty$
Antes de utilizar *, certifique-se de que (com pwd) que se encontra no sítio certo para não apagar ficheiros importantes.
As opções mencionadas anteriormente -r (recursivo, elimina ficheiros em subdirectórios) e -f (forçar, eliminar sem confirmação, incluindo ficheiros protegidos contra eliminação) são utilizados em conjunto para remover um diretório com todo o seu conteúdo. Portanto, antes de usar rm -rfÉ necessário ter a certeza do que se está a remover.
Tarefas:
1. Usando man, leia a documentação dos comandos discutidos acima,
2. Crie dois diretórios: projecto_1, projecto_2
3. Crie três ficheiros no diretório project_1 (quaisquer nomes), por exemplo application.rb, routes.rb, puma.rb
4. Copiar todos os ficheiros de projecto_1 para projecto_2e, em seguida, apagar projecto_1.
Resumo
Como pode ver, o manuseamento do terminal não é difícil, apenas requer um pouco de prática. Para o dominar realmente, recomendo que utilize o terminal para todas as operações simples. Na segunda parte deste tutorial, mostrarei alguns outros comandos que vale a pena conhecer. Adeus!