Material do aluno na linha de comando

A linha de comando é uma forma de controlar um computador sem uma GUI. Nesta unidade, aprenderemos os comandos básicos para interagir com o computador.

Pontos-chave

  • Os alunos podem usar os comandos para navegar pelo computador.
  • Os alunos podem criar, mover, copiar e excluir arquivos e pastas.

O que é a linha de comando?

Na maioria das vezes, os usuários usam uma interface gráfica do usuário (GUI) para interagir com o computador. As GUIs normalmente dependem de um mouse ou toque para manipular janelas com ícones, botões, barras de rolagem etc.

A linha de comando é uma visualização alternativa no computador. Às vezes chamada de "um shell", "o terminal", "bash" ou de uma "interface de texto" a linha de comando é:

  • Uma maneira de interagir com um programa de computador em que o usuário digita comandos. Por exemplo:
open README.txt
  • Uma forma de navegar e operar o computador sem o mouse.
  • Uma maneira não explícita de criar, ler, atualizar, operar e excluir arquivos e diretórios. Por exemplo:
mv README.txt readme.txt

A GUI e a linha de comando têm a mesma aparência. Eles são formas diferentes de interagir com o computador.

Quando usamos a linha de comando?

As interfaces de linha de comando geralmente são preferidas pelos desenvolvedores:

  • Eles fornecem um meio mais conciso para controlar um programa ou sistema operacional. Por quê? Como tudo acontece na mesma janela e, com a prática, é mais fácil do que encontrar e manipular coisas com um mouse.
  • Eles expõem facilmente opções para controlar um comando. Por quê? Os menus nas GUIs fornecem um número muito pequeno de opções. Na linha de comando, há centenas de comandos, e alguns caracteres adicionados a um comando podem fazer com que ele faça muitas coisas diferentes, por exemplo:
  • ls arquivo de lista básico
  • ls -a Lista todos os arquivos, inclusive os normalmente ocultos.
  • ls -l Lista longa, mostrando informações sobre cada arquivo
  • ls -R Recursivo, liste o conteúdo dos diretórios
  • ls -la Lista longa de todos os arquivos
  • Eles facilitam a ação de vários arquivos de uma vez de forma complexa.
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
  • Eles fornecem uma forma de programar o sistema operacional (programas de shell). Por exemplo: o exemplo acima é um programa shell muito simples projetado para modificar imagens com nomes de arquivos que terminam em .png.

Linha de comando em ação

Partes de um comando de linha de comando

Todos os comandos têm três partes:

  • O comando (ou utilitário) sempre vem em primeiro lugar.
  • As sinalizações são opcionais, dependendo do utilitário que você está usando. As sinalizações sempre começam com - (menos).
  • Os argumentos são as ações necessárias para o comando ou as informações necessárias. Geralmente, os nomes dos arquivos.

Frames

Contexto e finalidade

A linha de comando é uma forma de controlar um computador sem mouse ou uma GUI (Interface gráfica do usuário). Antes de a Apple Computer começar a criar máquinas com ícones e pastas, você só podia interagir com o computador pela linha de comando.

Como desenvolvedores, usamos a linha de comando porque ela é muito mais rápida e eficiente do que a GUI, sem precisar perder tempo clicando. A linha de comando permite a execução de praticamente todas as interações com o computador.

Como o terminal é uma interface muito mais simples, ele tem uma grande vantagem em relação à GUI quando você precisa se conectar remotamente a um computador por um link de rede. Isso é algo que os desenvolvedores fazem com frequência, por exemplo, durante viagens.

Nesta lição, aprenderemos os comandos básicos para interagir com nosso computador: criando arquivos e diretórios, movendo pastas, alterando diretórios e listando o conteúdo de uma pasta.

Objetivos de aprendizagem

Os alunos poderão

  • Usar o Terminal para navegar por arquivos e pastas
  • Listar o conteúdo de uma pasta
  • Criar arquivos e pastas na linha de comando
  • Mover arquivos e pastas
  • Copiar arquivos e pastas
  • Excluir arquivos e pastas

Como começar

Como acessar o terminal

Enquadramento e propósito das seções

O Terminal fornece uma interface de linha de comando (CLI) para o sistema operacional. Com ela, você pode dar ao computador instruções diretas por texto.

Para isso, precisamos iniciar seu terminal com base no sistema que você está usando.

Quando o terminal for iniciado, ele será iniciado no diretório principal do computador (o que você tiver nomeado). O diretório principal é indicado pelo til ~.

Ao discutir nosso mundo dentro do terminal, diretórios são os mesmos que pastas (podemos simplesmente chamá-los de diretórios).

Diretórios variáveis

Enquadramento e propósito das seções

Para falar com o computador no Terminal e dizer o que queremos fazer, precisamos falar uma linguagem comum. A linha de comando entende os comandos escritos na linguagem de script bash. Os comandos são acrônimos ou abreviações de palavras em inglês.

Quando você navega no terminal, é importante saber onde você está. Isso também se traduz em situações reais. Para chegar a algum lugar, é preciso saber sua localização atual.

# See your current location - abbreviation for 'print working directory'
pwd

Listar os arquivos e diretórios disponíveis

No seu diretório de trabalho, existem vários arquivos que você pode acessar. Normalmente, contamos com indicações visuais, como ícones, para nos dizer quais estão disponíveis, mas seria difícil navegar no nosso computador se estivéssemos apenas adivinhando onde os arquivos e as pastas estavam localizados. Na linha de comando, usaremos um comando específico para listar o que pode ser acessado de qualquer diretório de trabalho / um determinado local.

Para ver quais arquivos ou pastas estão no nosso diretório atual, use o comando ls (uma abreviação de "list") para exibir uma visualização em lista do conteúdo.

# See files and folders in current location - abbreviation for 'list'
ls

Mudar o diretório de trabalho

Se você precisar de acesso a um arquivo ou diretório que não esteja na lista, altere seu diretório de trabalho para acessá-lo mais facilmente.

A sintaxe que orienta a linha de comando a mover você para um novo diretório (também conhecido como pasta) é cd seguida (na mesma linha) pelo caminho da nova pasta.

Se você navegar para um diretório que está dentro do diretório atual (ou seja, uma subpasta do seu diretório de trabalho), use o comando cd seguido pelo nome da pasta.

# Change your current working directory (current location)
# Abbreviation for 'change directory'
cd Documents

Também é possível navegar a partir do diretório ~ inicial.

# Add a `~/` to begin from the home directory.
cd ~/Downloads

Se você mudou os diretórios, mas precisa voltar para o diretório principal, faça isso navegando diretamente para o início usando ~ ou usando .. para navegar para um nível acima.

# Option 1: navigate directly to the home directory
cd ~

# Option 2: navigate back one level
cd ..

Observe que o cd .. sobe (voltar) um nível. Portanto, se você tiver alterado os diretórios três vezes até o momento (três níveis abaixo), será necessário usar cd .. três vezes para ir até a página inicial, mas você só precisará usar cd ~ uma vez.

Minidesafios

  • Use ls para ver o que há no seu diretório atual.
  • Volte ao diretório principal e use ls para ver o conteúdo da pasta inicial.
  • Escolha o nome de uma das pastas dentro do diretório principal e navegue até essa nova pasta.
  • Use o comando "list" para ver o que há nele.

Dica: preenchimento automático com tab

Ao mudar de diretório com o comando cd, um único erro de digitação impedirá que ele seja executado corretamente. No entanto, usar a chave tab preencherá automaticamente o nome dos diretórios disponíveis dentro do diretório atual. Portanto, em vez de digitar cd Documents, digite apenas cd Do e pressione a tecla tab. O terminal preencherá automaticamente o comando cd Documents/ (o / no final é opcional, mas informa que o destino é um diretório).

Esse recurso não só economiza tempo quando funciona, mas também fornece informações valiosas quando não funciona. Se o botão "Tab" não estiver no preenchimento automático, você provavelmente tem um dos três problemas mais comuns:

  1. O diretório que você quer acessar não pode ser acessado no diretório de trabalho atual.
  2. Há dois diretórios com nomes iniciais semelhantes (como Documents e Downloads) e você não forneceu informações suficientes para o preenchimento automático saber qual é o seu. Pressione tab novamente para ver uma lista dos diretórios que podem corresponder ao que você digitou. Em seguida, digite um pouco mais (suficiente para que haja apenas uma correspondência) e pressione tab novamente.
  3. Você já incluiu um erro de digitação na primeira metade da palavra.

Quanto mais cedo você usar o hábito de usar a tecla Tab para preencher automaticamente os comandos, maior será a probabilidade de você enfrentar problemas frustrantes em que eles parecem não estar funcionando.

Diretórios pais e filhos

Diretórios e arquivos podem ter relações de filho e pai entre si. Se directory_b estiver dentro de directory_a, directory_b será chamado de filho de directory_a. directory_a é conhecido como o pai de directory_b. Se um terceiro item, my_file, estiver dentro de um directory_b, ele será considerado filho de directory_b e de neto de directory_a.

Essas relações são frequentemente ilustradas em fóruns com um diagrama de texto, como este:

directory_a/
  directory_b/
    my_file

Observe que os nomes dos diretórios terminam em um /, mas os nomes dos arquivos não. Essa organização hierárquica geralmente é chamada de estrutura em árvore de um sistema de arquivos.

Irmãos

Quando há vários arquivos ou pastas no mesmo nível, eles são conhecidos como irmãos. Exemplo: se file_b e file_c estiverem dentro de directory_a, eles serão irmãos.

O diagrama de texto ficaria assim:

directory_a/
  file_b
  file_c

Observe que, como file_b e file_c são irmãos, eles aparecem recuados na mesma quantidade.

Caminhos de arquivos

Este é um diagrama de texto mais complexo que mostra as relações pai-filho e irmão.

north_america/
  united_states/
    new_york/
      new_york_city/
        manhattan
        queens
        staten_island
        bronx
        brooklyn
    california/
      mountain_view
      los_angeles
    illinois/
      chicago
  mexico/
    mexico_city

Neste exemplo, new_york_city/ é um nome de diretório, mas também tem um caminho, que detalha como acessá-lo: ~/north_america/united_states/new_york/new_york_city/.

Para mudar o diretório para new_york_city/,, você pode navegar em etapas usando nomes ou navegar por todo o caminho em um comando usando o caminho.

# Option 1: in four steps, using directory names.
cd ~ # navigate home, where these folders are located
cd north_america/
cd united_states/
cd new_york/
cd new_york_city/

# Option 2: in one step, using the path.
cd ~/north_america/united_states/new_york/new_york_city/

Resumo dos comandos de navegação

# See your current location - abbreviation for 'print working directory'
pwd

# Change to a new location - abbreviation for 'change directory'
cd ~/Downloads

# Navigates into a child directory called `some_directory`
# Only works if `some_directory` is a child of the current directory
cd some_directory

# Navigates into the parent of the current directory
# `..` is shorthand for parent.
cd ..

# Will take you back home
cd

Minidesafios

  • Use o pwd para descobrir a pasta em que você está.
  • Use outro diretório e confirme o novo local.
  • Tente novamente e acesse outra pasta. Use os novos comandos para ver seu local e também os arquivos dentro desse diretório.

Como criar arquivos e diretórios

Enquadramento e propósito das seções

Como desenvolvedores, precisamos criar arquivos com código. Para manter esses arquivos organizados, precisamos criar pastas / diretórios em que podemos armazenar os arquivos.

Esteja ciente do local no terminal antes de criar arquivos e pastas.

# See your current location.
pwd

Para criar um arquivo, use o comando touch seguido do nome do arquivo.

# `touch` creates a new file.
touch style.css

Ao criar arquivos, adicione uma extensão de arquivo para especificar o tipo. Exemplos de tipos de arquivo:

  • .js transformam-se em arquivos JavaScript
  • .html cria um arquivo HTML
  • .css cria um arquivo CSS
  • .md cria um arquivo de marcação

Os nomes dos arquivos não devem incluir espaços.

# make a file - this will create a file in the current folder
touch my_text_file.txt

# make a file - this will create a file on the desktop
touch ~/Desktop/my_new_style_sheet.css

Como criar vários arquivos

Você pode criar vários arquivos de uma só vez, incluindo espaços entre cada um dos nomes.

# make multiple files - this will create multiple files in the current folder
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

Criação de diretórios

Para criar um diretório / pasta, use o comando mkdir , uma abreviação de "make directory' - seguida pelo nome da pasta.

# make a folder - this will create a directory in the current folder
mkdir my_new_folder

# make a folder - this will create a directory on your desktop
mkdir ~/Desktop/my_new_desktop_folder

Criação de vários diretórios

Para criar várias pastas ao mesmo tempo, inclua espaços entre os nomes.

# make multiple folders - this will create multiple folders in the current
# directory
mkdir folder_one folder_two folder_three

Minidesafios

  • Criar um novo arquivo.
  • Crie alguns arquivos em um comando.
  • Crie um novo diretório.
  • Crie mais alguns diretórios novos. Tente usar apenas um comando para fazer isso.
  • Usando o que você sabe sobre a navegação em diretórios e a criação de arquivos e pastas, crie uma "family_tree' no seu computador usando arquivos e pastas.

Mover e copiar

Mover arquivos e diretórios

Enquadramento e propósito das seções

Podemos mover um arquivo ou uma pasta na linha de comando, mas sempre precisamos especificar três itens:

  1. Usamos o comando mv, abreviação de move.
  2. Siga o comando "move" com o nome do arquivo ou da pasta que você quer mover.
  3. Siga o nome do arquivo com o destino para onde ele será movido.

Por exemplo, se você tiver uma estrutura de arquivos como esta:

my_child_folder/
my_parent_folder/

Vocês podem ver que ele não está organizado como deveria ser — eles são irmãos quando precisam ser pais e filhos. Use este comando:

# move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder
mv my_child_folder/ my_parent_folder/

A estrutura resultante terá esta aparência.

my_parent_folder/
  my_child_folder/

Veja outras variações do comando mv:

# move a directory - this will move the folder `my_folder` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_folder ~/Desktop/my_desktop_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_folder` that is in the current folder
mv my_file.txt my_folder

# move a file - this will move the file `my_file.txt` into the file named
# `my_desktop_folder` that is located on the Desktop
mv my_file.txt ~/Desktop/my_desktop_folder

Aviso: mv também é o comando para renomear um arquivo usando a sintaxe mv old_name new_name. Isso significa que, se você mover um arquivo para um diretório que não existe ou se escrever errado o destino, o próprio arquivo será renomeado em vez de movido.

Minidesafios

  1. Crie cinco arquivos de texto (.txt).
  2. Crie um novo diretório
  3. Mova os cinco arquivos que você criou para a pasta.
  4. Crie uma pasta e mova-a dentro de outra pasta.

Copiar arquivos e diretórios

Enquadramento e propósito das seções

Ao criar nossos apps da Web, podemos duplicar um arquivo (se criarmos duas páginas da Web semelhantes, talvez não queiramos recomeçar do zero), e a sintaxe do comando cp (cópia) é muito semelhante à sintaxe mv.

Copiar um arquivo

O comando de cópia tem três partes:

  1. O comando cp: abreviação da palavra cópia
  2. O nome do arquivo a ser copiado.
  3. Nome da cópia (se permanecer na mesma pasta) ou local e nome (se for movido para uma pasta diferente).
# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`
# The copy will be located in your Documents folder.
cp my_file.txt ~/Documents/my_file_copy.txt

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt`.
# Since no directory was specified, this will occur within the same folder.
cp my_file.txt my_file_copy.txt

Se você quiser que a cópia mantenha o mesmo nome do original, é possível especificar o local da cópia sem um nome de arquivo.

# Copy a file named `my_file.txt` to your Documents folder.
# The destination ends with a directory, so the copy will have the same name.
cp my_file.txt ~/Documents/

Ter muitos arquivos com o mesmo nome pode ser confuso, então só use esse método se tiver certeza do que você precisa.

Copiar um diretório

Copiar uma pasta ou um diretório é um pouco mais complicado, porque você provavelmente quer copiar não apenas a pasta, mas também tudo que está dentro dela.

  1. O comando cp -R: abreviação de copiar recursiva, use-o para pastas vazias e não vazias.
  2. O nome da origem (pasta ou arquivo que queremos mover)
  3. Nome da cópia (se permanecer na mesma pasta) ou local e nome (se for movido para uma pasta diferente).

Aviso: ao especificar o nome da cópia, se ela não tiver sido criada anteriormente, ela será criada quando você fizer a cópia. Se o arquivo tiver sido criado antes da execução do comando de cópia, ele substituirá tudo o que estava antes do arquivo, portanto, tenha cuidado.

# copy a directory named `my_folder` from your Desktop folder to a folder
# called `my_folder_copy` in your Documents folder
cp -R ~/Desktop/my_folder ~/Documents/my_folder_copy

# copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder
cp -R my_folder my_folder_copy

Observação: o componente -R da cp -R é chamado de sinalização. As sinalizações sempre começam com um traço e são usadas em combinações com comandos para fornecer instruções mais específicas sobre como esse comando deve ser executado.

Minidesafios

  1. Crie um arquivo chamado my_original.txt
  2. Faça uma cópia de my_original.txt com o nome de algo novo na mesma pasta.
  3. Crie um novo diretório
  4. Faça uma cópia desse diretório, mas dê outro nome.
  5. Faça uma cópia do arquivo copiado (da etapa 2), mas coloque-o no diretório copiado (da etapa 4).

Removendo arquivos e pastas

Enquadramento e propósito das seções

É possível excluir arquivos e pastas na linha de comando, mas isso é permanente.

Remover um arquivo

Para remover um arquivo, podemos usar o comando rm (abreviação de remove) seguido do nome do arquivo.

# delete a file in the working directory
rm unwanted_file.txt

# delete a file not in the working directory
rm ~/Desktop/unwanted_file.txt

Como remover um diretório vazio

Para remover um diretório vazio , use o comando rmdir (abreviação de remove diretório) seguido pelo nome da pasta.

# delete an empty folder
rmdir empty_directory

# delete an empty folder
rmdir ~/Documents/my_files/empty_directory

Remover um diretório que não está vazio

Para remover uma pasta que não está vazia, precisamos colocar uma sinalização -R, abreviação em inglês de recorrente, após o comando rm que instrui o computador a excluir o conteúdo da pasta. Como atalho, alguns desenvolvedores usam a sinalização -Rf, que remove fortemente o conteúdo. Caso contrário, você pode receber solicitações sobre a exclusão de alguns arquivos ou pastas filhos.

# delete a folder which contains other files or folders
rm -R directory_which_isnt_empty

# delete a folder which contains other files or folders
rm -R ~/Downloads/directory_which_isnt_empty

Aviso: usar o comando rm não é como a lixeira ou a seção excluída do seu e-mail. Não é possível recuperar esses arquivos facilmente. Tenha cautela ao excluir arquivos dessa maneira.

Minidesafios

  1. Crie quatro arquivos.
  2. Exclua dois dos arquivos.
  3. Crie uma pasta.
  4. Crie outra pasta dentro de uma pasta.
  5. Exclua os dois diretórios.

O código deste laboratório está na pasta abaixo do repositório de alunos que você salvou do GitHub: command-line/labs/around-the-world

Contexto

Seu semestre no exterior está chegando, e você começou a planejar suas viagens na Europa...

Com três meses de vidas importantes, você quer aproveitar ao máximo todas as viagens dos fins de semana.

Felizmente, você não está começando do zero, e seus amigos forneceram algumas das atividades favoritas deles a partir do semestre exterior. Infelizmente, alguns dos arquivos se misturaram...

Não se preocupe, com a magia da linha de comando, você os corrigirá rapidamente.

Tarefa

Verifique se cada cidade está no país correto e se cada pasta tem os monumentos certos. Cuidado ou talvez você acabe em Amsterdã procurando a Torre Eiffel!

Se você sentir que o app está realmente confiante, oculte a GUI e enfrente esse desafio na linha de comando. Você precisa permanecer na pasta geral ao redor do mundo enquanto faz tudo isso. Isso significa usar caminhos absolutos ao se referir a pastas e arquivos.

Depois de ter certeza de que tudo está no lugar certo, é sua vez de usar o comando nos próximos meses. Pense em novas cidades, países e monumentos que você PRECISA ver e adicionar à sua árvore de arquivos.

Parabéns! Você oficialmente aprendeu a falar computação. Tudo pronto para ir além? Vamos usar as extensões de conversa...

Extensões

  1. Combine todos os arquivos novamente e conquiste a cidade de sua preferência. Reorganize os arquivos e permaneça dentro dela.
  2. Experimente um dos jogos de linha de comando divertidos abaixo
    Terminus Game
    Advanced Game (pronto para entrar no Google)
  3. Grande fã de Star Wars? Execute telnet towel.blinkenlights.nl na linha de comando e pressione Enter... Nas versões recentes do MacOS, o comando telnet não é mais instalado por padrão. Nesse caso, o comando nc towel.blinkenlights.nl 23 pode ser usado.

O código deste laboratório está na pasta abaixo do repositório de alunos que você salvou do GitHub: command-line/labs/bashing-away-repetition

Tudo pronto para eliminar a repetição do uso diário da linha de comando? Ótimo!

Contexto

Se há algo que os programadores odeiam, é a repetição. Como cientistas da computação, é nosso trabalho fazer com que o computador faça o máximo de trabalho possível. Escrever scripts bash nos ajuda a tornar o uso da linha de comando mais eficiente.

Antes de mais nada, o que é um script bash?

GREAT. Felizmente, nosso amigo Ryan Chadwick, em este ótimo lugar para encontrar tutoriais de linha de comando, tem uma resposta para nós.

Um script Bash permite definir uma série de ações que o computador executará sem precisar digitar os comandos. Se uma tarefa específica é feita com frequência ou repetitiva, um script pode ser uma ferramenta útil.

Sem repetições? É issoo que estou falando.

Tutorial

Antes de executar seu script, você precisará dar permissão ao seu computador. Para isso, execute o comando abaixo.

chmod 755 myScript.sh

Bem, é hora de criar seu primeiro programa. Volte para o myScript.sh e veja se é possível abrir o arquivo na linha de comando. No final do arquivo, adicione:

echo "Hello World"

Agora, execute:

./myScript.sh

no seu terminal. ** TA DA ** ** deve aparecer "Hello World" impresso no terminal.

comemoração

Tudo o que você escrever no script bash será executado como se tivesse sido digitado no terminal. Vamos analisar mais um exemplo antes de falar sobre as extensões. Primeiro crie um arquivo para seu script. Ele pode ser chamado o que você quiser, mas deve ter a extensão .sh . Próxima: dê permissão para a execução do script digitando chmod 755, o nome do script no terminal e pressione Enter. Sempre que você iniciar um novo script bash, conclua essas duas etapas.

Desafio de introdução

Agora, tente escrever um script que crie uma nova pasta. Que comando sabemos que cria uma nova pasta? Se você está pensando em uma palavra que começa com uma m e termina com kdir, então está no caminho certo. Escreva o comando que criará sua nova pasta e nomeie-a como algo legal no novo arquivo .sh e execute-o no terminal.

Se funcionar, siga para os outros desafios listados abaixo. Se ainda estiver um pouco confuso, confira seu laboratório ao redor do mundo e pense em como você criou novas pastas de país e cidade.

Não tenha medo de usar o tutorial mencionado acima e de ter as mesmas habilidades do Google. Escreva e execute scripts que:

Tarefas principais

  1. Adicione um comando ao arquivo que você criou acima para navegar até a pasta que está sendo criada. Qual comando usamos para mudar de diretório?
  • Carimbo do nome da nova pasta. Por exemplo, seu programa deve criar uma pasta chamada "2017-12-07my_super_cool_folder"
  1. Imprime "Meu diretório atual é: " seguido pelo diretório de trabalho e "Veja uma lista de tudo nesse diretório! " seguido pelo conteúdo do seu diretório atual.
  2. Descubra como criar uma entrada para o script bash e criar um arquivo com base nessa string de entrada. Você pode conferir alguns exemplos na seção de variáveis do tutorial já mencionado no laboratório.
  3. Pergunte o nome do usuário e imprima "Oi para conhecer você. Insira o nome dele aqui"
  • Peça mais informações ao usuário e crie uma mensagem personalizada para ele.

CONTEXTO

A linha de comando (ou terminal) fornece uma interação direta com o sistema operacional (SO) do computador, tudo o que a interface gráfica do usuário (GUI) faz, mas por comandos de texto, da navegação à criação de novos arquivos ou à execução de scripts. A linha de comando será usada para abrir arquivos e iniciar o ambiente para desenvolvedores no Google App Engine.

Linha de comando em ação

Como acessar o terminal

Atalho no Mac:

  • Abra o Destaque com o comando + espaço.
  • Digite Terminal na Pesquisa do Spotlight.
# See your current location - abbreviation for 'print working directory'.
pwd

# Change to a new location - abbreviation for 'change directory'.
cd /Users/jsmith/Downloads

# Navigate into a child directory called `some_directory`. This only works if
# `some_directory` is a child of the current directory.
cd some_directory

# Navigate into the parent of the current directory. `..` is shorthand for parent.
cd ..

# Return home.
cd

# Change directories to a folder called `my_folder` that is within the current
# directory.
cd my_folder ```

#### File Path Shorthand `~`

The `~` is generally short for "home". Home can be configured to mean different
things for different users and across different operating systems, but in the
example above, for a Mac user named "jsmith", the `~` is short for that user's
home directory: `/Users/jsmith`.

This means that `~/Downloads` and `/Users/jsmith/Downloads` are the same for
this user. But starting with a `~` allows us to specify absolute file paths
(agnostic of your current working directory, and starting at the root `/`)
without having to write out a full path each time.

### <a id="view"></a>Viewing the Contents of Folders

```bash
# See files and folders in current location - this is an abbreviation for 'list'.
ls

Como criar arquivos e pastas

Criação de arquivos

# Make a file - this will create a file in the current folder.
touch my_text_file.txt

# Make a file - this will create a file on the Desktop.
touch ~/Desktop/my_new_style_sheet.css

# Make multiple files - this will create multiple files in the current folder.
touch my_new_js_file.js my_new_html_file.html my_second_html_file.html

Como criar pastas

# Make a folder - this will create a directory in the current folder.
mkdir my_new_folder

# Make a folder - this will create a directory on your Desktop.
mkdir ~/Desktop/my_new_desktop_folder

# Make multiple folders - this will create multiple folders in the current
# directory.
mkdir folder_one folder_two folder_three

Mover arquivos e pastas

Mover arquivos

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_folder` that is in the current folder.
mv my_file.txt my_folder
# Note that this will rename the file instead of moving it if the destination
# folder does not yet exist.  Read below for more details on renaming.

# Move a file - this will move the file `my_file.txt` into the folder named
# `my_desktop_folder` that is located on the Desktop.
mv my_file.txt ~/Desktop/my_desktop_folder

Mover pastas

# Move a directory - this will move the folder `my_child_folder` into the
# folder named `my_parent_folder` that is in the current folder.
mv my_child_folder my_parent_folder

# Move a directory - this will move the folder `my_folder` into the folder
# named `my_desktop_folder` that is located on the Desktop.
mv my_folder ~/Desktop/my_desktop_folder

Mudança de nome

Lembre-se de que mv também é o mesmo comando usado para renomear arquivos ou pastas.

# Rename a file from `old_name.txt` to `new_name.txt`.
mv old_name.txt new_name.txt

Copiar arquivos e pastas

Copiar arquivos

# Copy a file named `my_file.txt` from your Desktop folder to your Documents
# folder.
cp ~/Desktop/my_file.txt ~/Documents

# Copy a file named `my_file.txt` to a file called `my_file_copy.txt` within
# the same folder.
cp my_file.txt my_file_copy.txt

Copiar pastas

# Copy a directory named `my_folder` (and its contents) from your Desktop
# folder to a folder called `my_folder_copy` in your Documents folder.
cp -r ~/Desktop/my_folder ~/Documents/my_folder_copy

# Copy a directory named `my_folder` (and its contents) from the current
# working directory to a folder called `my_folder_copy` in the current working
# directory.
cp -r my_folder my_folder_copy

Como excluir arquivos e pastas

Como excluir arquivos

# Delete a file in the current working directory.
rm unwanted_file.txt

# Delete a file using its exact location and name.
rm ~/Desktop/unwanted_file.txt

Excluindo pastas

# Delete an empty folder.
rmdir empty_directory

# Delete a folder which contains other files or folders.
rm -r directory_which_isnt_empty

Dicas e sugestões

  • Pratique usando a linha de comando, mesmo quando você não achar necessário. Você ficará cada vez melhor com o passar do tempo.
  • A chave tab preencherá automaticamente o nome do arquivo ou da pasta. Ela pode diferenciar maiúsculas de minúsculas.
  • Se houver apenas uma pasta ou arquivo restante restante, ela será preenchida automaticamente.
  • Se houver vários arquivos ou pastas correspondentes, pressione Tab para ver uma lista das outras correspondências.
  • A seta para cima / para baixo alterna o histórico de comandos para que você não precise digitar comandos novamente.
  • Use o comando clear para limpar a janela do Terminal. Isso mantém todo o seu trabalho anterior. Role para cima para vê-lo.
  • Use reset para reiniciar o terminal. Isso não manterá seu trabalho anterior na tela, mas poderá resolver vários problemas se o Terminal começar a se comportar de maneira imprevisível.
  • Pressione option + arrow para mover o cursor por uma palavra.

Resumo das práticas recomendadas

  • Navegue pelo Terminal usando cd, cd .. ou cd <folder name>.
  • Veja o conteúdo das pastas usando ls.
  • Crie arquivos usando touch. Crie pastas usando mkdir.
  • Mova arquivos e pastas usando o mv <item to move> <destination>.
  • Copie arquivos e pastas usando o cp <item to copy> <destination>.
  • Exclua arquivos e pastas usando rm <item to remove>.

Pergunta 1

O que você usaria para identificar seu diretório de trabalho atual?

  1. pwd
  2. ls
  3. cd
  4. mkdir
  5. touch

Pergunta 2

Como você moveria dois níveis do diretório de trabalho atual?

  1. mv ~
  2. cd ../..
  3. mv up/up
  4. cd ^(2)

Pergunta 3

Qual comando você usaria para renomear um arquivo?

  1. mv
  2. cd
  3. ls
  4. python
  5. rename

Pergunta 4

Por que o comando mv script.py gera um erro?

  1. Porque "script.py' é um nome de arquivo inválido".
  2. Porque o comando mv não pode ser seguido por outras informações.
  3. Essa é uma pergunta complicada. Não gera um erro.
  4. Como mover um arquivo requer pelo menos dois argumentos: um destino e um destino

Pergunta 5

O que o comando cd ~ faria?

  1. Mude o diretório de trabalho para o diretório principal.
  2. Repita o comando anterior.
  3. Use um algoritmo para determinar o comando mais útil no momento.
  4. Um erro é exibido.

Pergunta 6

Qual das seguintes opções NÃO é um motivo para usar a guia de preenchimento automático de nomes de arquivos?

  1. Porque isso economiza tempo.
  2. Porque ajuda a eliminar erros de ortografia.
  3. Porque ele precisa de menos capacidade de processamento.

Pergunta 7

Se um novo desenvolvedor tentar criar um arquivo chamado "my script.py" por que o comando touch my script.py não funcionará?

  1. Porque touch não pode criar novos arquivos.
  2. Porque .py não é uma extensão de arquivo válida.
  3. Porque isso criará dois arquivos, um chamado "quoquo;my" e outro chamado "quot;script.py" em vez de apenas um.
  4. Porque é impossível criar novos arquivos na linha de comando.

Pergunta 1

O que você usaria para identificar seu diretório de trabalho atual?

pwd

Pergunta 2

Como você moveria dois níveis do diretório de trabalho atual?

Com o cd ../.., você sobe dois níveis, e cada .. representa um nível acima.

Pergunta 3

Qual comando você usaria para renomear um arquivo?

O mv é usado para mover um arquivo de um local para outro, além de permitir alterar o nome do arquivo.

Pergunta 4

Por que o comando mv script.py gera um erro?

O comando mv requer dois argumentos, um arquivo de origem e um arquivo de destino.

Pergunta 5

O que o comando cd ~ faria?

Ele mudaria seu diretório de trabalho para o diretório principal. O caractere especial ~ é usado para identificar o diretório inicial do usuário atual. Ele também pode ser usado com um nome de usuário diferente: ~user2 para apontar para a pasta inicial.

Pergunta 6

Qual das seguintes opções NÃO é um motivo para usar a guia de preenchimento automático de nomes de arquivos?

Como requer menos capacidade de processamento, não está correto. O tab exige uma quantidade (geralmente insignificante) de capacidade de processamento para verificar as pastas que buscam o nome de arquivo para preenchimento automático, mas economiza tempo e evita erros de ortografia no processo.

Pergunta 7

Se um novo desenvolvedor tentar criar um arquivo chamado "my script.py" por que o comando touch my script.py não funcionará?

Você criará dois arquivos, em vez de apenas um. O comando touch criará novos arquivos. Nos espaços do terminal, são separadores, não caracteres a serem incluídos no nome do arquivo. Recomendamos evitar todos eles, mas se precisar usá-los, o nome do arquivo precisará ficar entre aspas duplas:

touch "my script.py"

Pergunta 1

O comando do terminal para alterar os diretórios é:

  1. move
  2. mkdir
  3. pwd
  4. cd

Pergunta 2

Que comando você executaria se quisesse navegar para a pasta pai do seu diretório de trabalho atual?

  1. cd up
  2. cd .
  3. cd ..
  4. cd ~

Pergunta 3

Qual comando é usado para criar arquivos?

  1. touch
  2. mkdir
  3. create
  4. pwd

Pergunta 4

Qual dos seguintes comandos criará dois arquivos chamados index.html e style.css?

  1. touch index.html, touch style.css
  2. touch index.html, style.css
  3. touch index.html style.css
  4. touch index.html + style.css

Pergunta 5

Qual comando você usa para renomear um arquivo ou uma pasta?

  1. rename
  2. move
  3. mv
  4. rm

Pergunta 6

Qual sinalização os comandos rm e cp precisam funcionar em pastas?

  1. -f
  2. -r
  3. -x
  4. -d

Pergunta 7

Para mover projects para ~/Documents e renomeá-lo como Projects, qual comando precisa ficar em branco?

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
  1. pwd
  2. cd projects
  3. mv ~ projects
  4. cd ~/Documents
  5. ls

Pergunta 8

O que o comando a seguir fará?

rm -r projects

  1. Exclua um arquivo chamado projects
  2. Exclua uma pasta chamada projects
  3. Renomear um arquivo chamado projects
  4. Pesquisar o conteúdo do diretório atual para projects

Pergunta 1

O comando do terminal para alterar os diretórios é:

O comando do terminal para alterar os diretórios é cd. O próprio comando é uma abreviação para "alterar diretório".

Pergunta 2

Que comando você executaria se quisesse navegar para a pasta pai do seu diretório de trabalho atual?

O comando para navegar até a pasta mãe é cd ..

Pergunta 3

Qual comando é usado para criar arquivos?

O comando para criar arquivos é touch

Pergunta 4

Qual dos seguintes comandos criará dois arquivos chamados index.html e style.css?

O comando touch index.html style.css criará os dois arquivos. Nenhuma vírgula é necessária, e é possível criar vários arquivos dessa maneira, separados por espaços.

Pergunta 5

Qual comando você usa para renomear um arquivo ou uma pasta?

Embora ele queira dizer "move" e possa ser usado para mover arquivos ou pastas, mv também pode ser usado para renomear arquivos e pastas.

Pergunta 6

Qual sinalização os comandos rm e cp precisam funcionar em pastas?

Os comandos rm e cp exigem que a sinalização -r funcione em pastas, já que a sinalização -r significa "cumulative" e executa o comando novamente para todos os arquivos e pastas contidos nela.

Pergunta 7

Para mover projects para ~/Documents e renomeá-lo como Projects, qual comando precisa ficar em branco?

cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects

Como começamos no diretório inicial, precisamos executar cd ~/Documents para que o comando final seja executado no diretório correto.

Pergunta 8

O que o comando a seguir fará?

rm -r projects

O comando excluirá um arquivo OU uma pasta chamada projects porque ele foi chamado com a sinalização -r ou recursiva. Sem essa sinalização, o comando só funciona para excluir um arquivo com esse nome.