Executando verificação de segurança...
1

Básico de terminal pra devs

Muitas vezes quando você estiver instalando pacotes de JavaScript ou configurando algumas funcionalidades, você vai precisar fazer uso do terminal. Então é bom que se saiba pelo menos o básico.

Nota: esses comandos consideram que você faz uso de uma das 3 seguintes alternativas: terminal no Linux ou Mac (ou qualquer software que você use para acessar os recursos do sistema via linha de comando) ou o WSL no Windows.

Nota 2: se você não faz uso do do WSL, dê uma chance. É o mais perto que um desenvolvedor que gosta de navegar usando Windows consegue ficar de um sistema estável pra desenvolvimento de software. Ele cria um sistema em Linux que tem interfaces definidas pra que você possa interagir com seus programas no Windows. Por exemplo, você pode criar uma aplicação dentro do WSL e editar o conteúdo usando seu VSCode e rodar a aplicação no Chrome ambos instalados no Windows.

Entendendo o terminal

Digite os comandos a seguir pra você ver o terminal em ação. Não copie e cole os comandos, escrevê-los vai te ajudar a lembrar com mais facilidade deles no futuro. Use esse artigo como referência até que esses comandos se tornem mais naturais pra você.

Toda vez que você abre o terminal, ele carrega dentro de uma pasta.

  1. Digite pwd para mostrar o caminho completo da pasta em que você se encontra.
    1. Por padrão, você abre o terminal na pasta /home/Thiago ou /Users/Thiago onde Thiago é o nome do seu usário. Essa pasta é comumente abreviada com ~.
  2. Digite ls para ver os conteúdos dessa pasta. Esse comando vai mostrar todos os arquivos e pastas contidos na pasta atual.
    1. Se você adicionar a flag -l, você vai ver os arquivos e pastas em lista e com mais informações sobre eles. Tente ls -l.
    2. Se você adicionar a flag -a, você vai ver os arquivos e pastas ocultos. Eles são identificados por conter um . no início de seus nomes. Tente ls -a.
    3. Você pode combinar flags. Tente ls -la.
  3. Digite mkdir teste para criar (make) um diretório/pasta (dir) com o nome de teste.
  4. Digite cd teste para acessar a pasta teste.
    1. Quando você digita ls -la você vai sempre ver no início da lista, duas pastas especias o . (ponto) e o .. (ponto ponto). O . representa a pasta atual e o .. representa a pasta anterior.
    2. Ao dar um cd . você permanece na própria pasta.
    3. Ao dar um cd .. você volta para a pasta anterior.
  5. Digite cd teste novamente, case tenha dado cd ...
  6. Digite mkdir projeto && cd projeto assim você pode combinar comandos dizendo pro terminal: primeiro crie a pasta projeto e depois acesse a pasta projeto.
  7. Digite ls e vai ver que nada acontece. Faz sentido já que a pasta foi recém criada e está vazia.
  8. Vamos criar um arquivo com touch terminal.txt. touch <nome-do-arquivo>.<extensão> e você vai criar um arquivo em branco com aquelo extensão.
  9. Agora , ao dar ls vemos o nosso arquivo. Vamos adicionar conteúdo nesse arquivo, mas vamos fazer isso através do nosso próprio terminal. Isso pode ser muito útil ao executarmos a instalação de algumas ferramentas de terminal.
  10. O primeiro passo é aprendermos sobre o comando echo. O comando echo printa textos no terminal. Por exemplo, echo javascript vai produzir o resultado javascript no terminal. Se quisermos imprimir um texto que contenha espaços, usamos aspas no pra indicar o texto echo 'hello world'. Aqui algumas dicas extras para lidar com echo:
    1. Se você precisar usar aspas simples no conteúdo, use aspas duplas para indicar a string. Por exemplo: echo “copo d’água”.
    2. Se precisa usar ambas as aspas, use aspas duplas ao redor da string e use \ para “escapar” as aspas duplas de dentro do texto. Por exemplo: echo “Ele me disse: \”Por favor, me vê um copo d’água?\””.
  11. O legal do comando echo é que ele pode não só escrever no terminal, mas também em arquivos. Use echo ‘hello world’ >> terminal.txt e o conteúdo é inserido ao final do arquivo terminal.txt ao invés de ser inserido no terminal.
  12. Você pode ler o conteúdo do arquivo usando o comando cat assim: cat terminal.txt.
  13. Isso é muito útil pra gente fazer instalação de scripts. Abaixo temos um script que faz parte da instalação de um programa chamado NVM (node version manager).
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  1. No momento, isso não é importante, mas vamos jogar o conteúdo desso arquivo dentro do nosso terminal.txt.
echo 'export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> terminal.txt
  1. Agora podemos mostrar nossas alterações usando o cat denovo cat terminal.txt.
  2. Uma outra opção que temos para editar arquivos é usar um editor de texto de terminal. Um exemplo é o vim. Para acionar o vim digite vim terminal.txt.
    1. Vim é um editor de texto de terminal. Ele te permite scrollar pelo conteúdo, mas movimentar o cursor é algo que só é possível com o teclado.
    2. Como vim é muito complicade e caso você tenha o atalho do VSCode instalado você pode abrir um arquivo usando code <nome-do-arquivo>, eu vou ser breve aqui.
    3. Para movimentar o cursor pro cima e pra baixo, você usa a tecla k e j repectivamente.
    4. Para movimentar o cursor pra esquerda e pra direita, você usa as teclas h e l respectivamente.
    5. Para inserir texto você aperta a tecla i e digita a seu texto. Experimente apertar i com o vim aberto e digite o seu nome.
    6. Aperte ESC para sair do modo de inserção.
    7. Digite :wq após apertar ESC pra sair e salvar. Se quiser sair e abortar as alterações, digite :q!.
  3. Agora, vamos aprender a mover arquivos. mv move o arquivo de uma pasta pra outra. A anatomia do comando é mv <caminho-do-que-mover> <caminho-pra-onde-mover>. Tente mv terminal.txt .. para mover o arquivo da pasta atual para a pasta anterior. cd .. e depois ls e você vai ver o arquivo na pasta anterior.
  4. mv também pode ser usado para renomear arquivos, pra isso basta informar o mesmo caminho. Tente mv terminal.txt sample.txt.
  5. Agora vamos aprender a copiar arquivos. cp <caminho-do-que-copiar> <caminho-pra-onde-copiar> é o comando. Vamos testar copiando o arquivo sample.txt pra pasta projeto. cp sample.txt projeto. Ao acessar a pasta cd projeto, vemos o arquivo dentro ao dar um ls.
  6. Pra finalizar vamos aprender a remover. rm é o comando para remover arquivos e pastas. Vamos experimentar remover o arquivo sample.txt dentro de projeto. Digite rm sample.txt. ls pra verificar que ele foi mesmo removido. Agora vamos remover a pasta projeto. cd .. e depois rm projeto.
    1. Como projeto é uma pasta a gente precisa adicionar a flag -r para remover a pasta e todos os arquivos aos quais o usuário tenha permissão de excluir.
    2. Você pode usar a opção rm -ri projeto e pra cada item a ser removido dentro de projeto você terá um prompt de confirmação e poderá autorizar a remoção do arquivo com y ou negar com n.
  7. A versão mais perigosa do comando rm é a rm -rf projeto que remove toda a pasta junto de seu conteúdo sem preguntar e sem se importar com as permissões do usuário. Apesar disso tudo, a gente usa bastante esse comando pra remover a pasta de módulos npm do projeto com rm -rf node_modules em uma pasta que contenha um projeto node.
  8. Vamos voltar pra home cd ~ e remover tudo o sobrou da pasta teste com rm -rf teste.
  9. Pra fechar, você pode sempre limpar o terminal quando tiver muita coisa em tela com o comando clear.

Isso cobre os pontos básicos. Eventualmente, você vai ter dúvidas quando estiver rodando comandos no terminal, mas saber e ter habilidade para rodar esses comandos já vai te dar o contexto necessário pra 90% dos problemas relacionados a terminal e desenvolvimento web.

Pro tip: você pode sempre aprender mais sobre um comando usando o comando man. Exemplos: man ls, man mkdir. Aperte q a qualquer momento pra sair do manual.

Se algo não funcionar ou se algo puder ser melhor aqui, deixe seu feedback.

Sumário dos comandos listados aqui

pwd
ls
ls -l
ls -a
ls -la
mkdir teste
cd teste
cd .
cd ..
cd teste
mkdir projeto && cd projeto
ls
touch terminal
echo
echo javascript
echo 'hello world'
echo "copo d'água"
echo "Ele me dise: \"Por favor, me vê um copo d'água?\""
echo 'hello world' >> terminal.txt
cat terminal.txt
echo 'export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> terminal.txt
cat terminal.txt
vim terminal.txt
# movimentando dentro do vim e saindo do editor
mv terminal.txt ..
cd ..
ls
mv terminal.txt sample.txt
cp sample.txt projeto
cd projeto
ls
rm sample.txt
cd ..
rm projeto
rm -r projeto # opcinalmente rm -ri projeto ou rm -rf projeto
cd ~
rm -rf teste
clear
man rm
# q pra sair do manual
man ls
# q pra sair do manual
Carregando publicação patrocinada...