A linha de comando é uma forma de controlar um computador sem uma GUI. Nesta unidade, vamos aprender os comandos básicos para interagir com o computador.
Pontos-chave
- Os estudantes vão se movimentar pelo computador com comandos.
- Os estudantes vão criar, mover, copiar e excluir arquivos e pastas.
O que é a linha de comando?
A maioria dos usuários usa uma interface gráfica do usuário (GUI) para interagir com o computador. As GUIs geralmente usam um mouse ou toque para manipular janelas com ícones, botões, barras de rolagem etc.
A linha de comando é uma visualização alternativa do computador. Às vezes chamada de "shell", "terminal", "bash" ou "interface de texto", a linha de comando é:
- Uma forma de interagir com um programa de computador em que o usuário digita comandos. Por exemplo:
open README.txt
- Uma maneira de navegar e operar o computador sem um mouse.
- Uma maneira não gráfica 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 estão analisando a mesma coisa. São maneiras diferentes de interagir com o computador.
Quando usamos a linha de comando?
As interfaces de linha de comando geralmente são preferidas pelos desenvolvedores:
- Elas oferecem uma maneira mais concisa de controlar um programa ou sistema operacional. Por quê? Como tudo acontece na mesma janela, e com a prática, é menos trabalhoso do que encontrar e manipular coisas com um mouse.
- Elas expõem facilmente opções para controlar um comando. Por quê? Os menus em GUIs oferecem 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 execute muitas ações diferentes. Por exemplo:
ls
Arquivos de lista básicals -a
Listar todos os arquivos, incluindo os normalmente ocultosls -l
Lista longa, mostrando informações sobre cada arquivols -R
Recursivo, lista o conteúdo dos diretóriosls -la
Lista longa de todos os arquivos- Eles facilitam a ação em vários arquivos de uma só vez de maneiras complexas.
for i in *.png; do pngtogif $i `echo $i | sed s/png/gif/`; done
- Eles oferecem uma maneira de programar o sistema operacional (programas de shell). Por exemplo, o exemplo acima é um programa de 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 da linha de comando
Todos os comandos têm três partes:
- O comando (ou utilitário) sempre vem primeiro.
- As flags são opcionais, dependendo da utilidade que você está usando. As flags sempre começam com um sinal de menos (-).
- Os argumentos são as coisas em que o comando precisa agir ou as informações necessárias. Muitas vezes, nomes de arquivos.
Enquadramento
Contexto e finalidade
A linha de comando é uma maneira de controlar um computador sem um 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 em que era possível clicar, a única maneira de interagir com o computador era pela linha de comando.
Como desenvolvedores, usamos a linha de comando porque ela é muito mais rápida e poderosa do que a GUI. Não é preciso perder tempo clicando por aí. A linha de comando permite realizar praticamente qualquer interação com o computador.
Como o terminal é uma interface muito mais simples, ele tem uma grande vantagem sobre a GUI quando você precisa se conectar remotamente a um computador por um link de rede. É algo que os desenvolvedores fazem com muita frequência, por exemplo, quando viajam.
Nesta lição, vamos aprender os comandos básicos para interagir com o computador: criar arquivos e diretórios, mover pastas, mudar de diretório e listar o conteúdo de uma pasta.
Objetivos de aprendizagem
Os estudantes 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
Primeiros passos
Como acessar o terminal
Enquadramento e finalidade da seção
O Terminal oferece uma interface de linha de comando (CLI) para o sistema operacional. Com ele, você pode dar instruções diretas e baseadas em texto ao computador.
Para isso, precisamos iniciar o terminal com base no sistema que você está usando.
Quando o terminal for iniciado, ele vai começar no diretório inicial do seu computador (qualquer que seja o nome dele). O diretório principal é indicado pelo til ~
.
Ao discutir nosso mundo dentro do Terminal, Diretórios são o mesmo que Pastas (às vezes, podemos chamá-los apenas de Diretórios).
Como mudar diretórios
Enquadramento e finalidade da seção
Para conversar com o computador no Terminal e dizer o que queremos fazer, precisamos falar uma linguagem comum. A linha de comando entende comandos escritos na linguagem de programação bash. Os comandos são acrônimos ou abreviações de palavras em inglês.
Imprimir diretório de trabalho (pwd
)
Ao navegar no terminal, é importante saber onde você está. Isso também se aplica à vida real: se você quiser chegar a algum lugar, primeiro precisa saber sua localização atual.
# See your current location - abbreviation for 'print working directory'
pwd
Listar arquivos e diretórios disponíveis
Dentro do seu diretório de trabalho, provavelmente há vários arquivos que podem ser acessados. Normalmente, usamos pistas visuais, como ícones, para saber o que está disponível. No entanto, seria difícil navegar no computador se estivéssemos apenas adivinhando onde os arquivos e pastas estão localizados. Na linha de comando, vamos usar um comando específico para listar o que podemos acessar de qualquer diretório de trabalho ou local.
Para ver quais arquivos ou pastas estão no diretório atual, use o comando ls
(abreviação de "list") para conferir uma lista do conteúdo.
# See files and folders in current location - abbreviation for 'list'
ls
Mudar diretório de trabalho
Se você precisar acessar um arquivo ou diretório que não está na lista, mude o diretório de trabalho para facilitar o acesso.
A sintaxe para informar à linha de comando que você quer ir para um novo diretório (também conhecido como pasta) é cd
seguida (na mesma linha) pelo caminho para a nova pasta.
Se você navegar até um diretório que está dentro do diretório em que você está (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
Você também pode navegar começando pelo diretório inicial ~.
# Add a `~/` to begin from the home directory.
cd ~/Downloads
Se você mudou de diretório, mas precisa voltar para o diretório principal, navegue diretamente de volta para a página inicial usando ~
ou use ..
para subir um nível.
# Option 1: navigate directly to the home directory
cd ~
# Option 2: navigate back one level
cd ..
O comando cd ..
volta apenas um nível. Portanto, se você mudou de diretório três vezes (três níveis abaixo), precisará usar cd ..
três vezes para voltar à página inicial, mas só precisará usar cd ~
uma vez.
Minidesafios
- Use
ls
para ver o que está no 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 no diretório inicial e navegue até essa nova pasta.
- Use o comando "list" para ver o que há dentro.
Dica: preenchimento automático com tab
Ao mudar de diretório com o comando cd
, um único erro de digitação impede que o comando seja executado corretamente. No entanto, usar a tecla tab
vai preencher automaticamente com o nome de qualquer diretório disponível que esteja dentro do diretório atual. Em vez de digitar cd Documents
, digite apenas cd Do
e pressione a tecla tab
. O terminal vai preencher automaticamente o comando cd Documents/
para você. O /
no final é opcional, mas informa que o destino é um diretório.
Esse preenchimento automático não apenas economiza tempo quando funciona, mas também fornece informações valiosas quando não funciona. Se o botão de tabulação não for preenchido automaticamente, provavelmente você cometeu um destes três erros comuns:
- O diretório que você quer acessar não está disponível no diretório de trabalho atual.
- Há dois diretórios com nomes iniciais semelhantes (como
Documents
eDownloads
), e você não forneceu informações suficientes para que o preenchimento automático saiba qual deles você quer. Pressionetab
novamente para ver uma lista dos diretórios que podem corresponder ao que você digitou. Em seguida, digite um pouco mais (o suficiente para que haja apenas uma correspondência) e pressionetab
novamente. - Você já incluiu um erro de digitação na primeira metade da palavra.
Quanto mais rápido você se acostumar a usar a tecla Tab para preencher automaticamente os comandos, mais fácil será lidar com situações frustrantes em que os comandos parecem não estar funcionando.
Diretórios principais e secundários
Diretórios e arquivos podem ter relações 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 um filho de directory_b
e um 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 de diretórios terminam com uma /
, enquanto os nomes de arquivos não. Essa organização hierárquica é geralmente chamada de estrutura em árvore de um sistema de arquivos.
Irmãos
Se houver vários arquivos ou pastas no mesmo nível, eles serão chamados de irmãos. Por exemplo, se file_b
e file_c
estiverem localizados dentro de directory_a
, eles serão elementos irmãos.
O diagrama de texto ficaria assim:
directory_a/ file_b file_c
Como file_b
e file_c são irmãos, eles têm o mesmo nível de indentação.
Caminhos de arquivos
Este é um diagrama de texto mais complexo que apresenta relações entre pai-filho e irmãos.
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 chegar lá: ~/north_america/united_states/new_york/new_york_city/
.
Para mudar o diretório para new_york_city/,
, navegue por etapas usando nomes ou use o caminho em um único comando.
# 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
pwd
para descobrir a pasta em que você está. - Mude para outro diretório e confirme o novo local.
- Tente de novo e acesse outra pasta. Use os novos comandos para conferir sua localização e os arquivos dentro desse diretório.
como criar arquivos e diretórios
Enquadramento e finalidade da seção
Como desenvolvedores, precisamos criar arquivos com código. Para manter esses arquivos organizados, precisamos criar pastas / diretórios onde podemos armazenar nossos arquivos.
Preste atenção na sua localização no terminal antes de criar arquivos e pastas.
# See your current location.
pwd
Para criar um arquivo, use o comando touch
seguido pelo nome do arquivo.
# `touch` creates a new file.
touch style.css
Ao criar arquivos, adicione uma extensão para especificar o tipo. Exemplos de tipos de arquivo:
.js
como um arquivo JavaScript.html
criar um arquivo HTML.css
cria um arquivo CSS.md
cria um arquivo Markdown
Os nomes de arquivos não podem 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
É possível 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
Como criar diretórios
Para criar um diretório / pasta, use o comando mkdir
, uma abreviação de "criar diretório", seguido 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
Como criar vários diretórios
É possível criar várias pastas de uma só vez incluindo espaços entre cada um dos 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. Tente usar apenas um comando para fazer isso.
- Usando o que você sabe sobre como navegar em diretórios e criar arquivos e pastas, crie uma "family_tree" na sua área de trabalho usando arquivos e pastas.
Mudança e cópia
como mover arquivos e diretórios
Enquadramento e finalidade da seção
É possível mover um arquivo ou uma pasta na linha de comando, mas sempre precisamos especificar três coisas:
- Usamos o comando
mv
, abreviação de mover. - Siga o comando de movimentação com o nome do arquivo ou da pasta que você quer mover.
- Siga o nome do arquivo com o destino para onde você quer movê-lo.
Por exemplo, se você tiver uma estrutura de arquivos como esta:
my_child_folder/ my_parent_folder/
É possível notar que ele não está organizado como deveria: eles são irmãos, mas deveriam ser pai e filho. 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 será assim.
my_parent_folder/ my_child_folder/
Confira 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 digitar errado o destino, o arquivo será renomeado em vez de movido.
Minidesafios
- Crie cinco arquivos de texto (.txt).
- Crie um novo diretório
- Mova os cinco arquivos que você criou para a pasta.
- Crie uma pasta e mova essa nova pasta para dentro de outra.
como copiar arquivos e diretórios
Enquadramento e finalidade da seção
Ao criar webapps, talvez seja necessário duplicar um arquivo (se estivermos criando duas páginas da Web semelhantes, talvez não seja necessário começar do zero). A sintaxe do comando cp
(copiar) é muito parecida com a sintaxe mv
.
Como copiar um arquivo
O comando de cópia tem três partes:
- O comando
cp
, abreviação de copiar - O nome do arquivo a ser copiado
- O nome da cópia (se ela ficar na mesma pasta) ou o local e o nome (se ela for movida para outra pasta).
# 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 quiser que a cópia mantenha o mesmo nome do original, especifique 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. Por isso, use esse método apenas se tiver certeza de que é o que você precisa.
Como copiar um diretório
Copiar uma pasta ou um diretório é um pouco mais complicado, porque provavelmente você quer copiar não apenas a pasta, mas também tudo o que está dentro dela.
- O comando
cp -R
, abreviação de copy recursive, é usado para pastas vazias e não vazias. - O nome da origem (pasta ou arquivo que queremos mover)
- O nome da cópia (se ela ficar na mesma pasta) ou o local e o nome (se ela for movida para outra pasta).
Aviso: ao especificar o nome da cópia, se o arquivo ou a pasta não tiver sido criado antes, ele será criado quando você fizer a cópia. Se o arquivo foi criado antes de você executar o comando de cópia, ele vai substituir tudo o que estava nele. 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
do cp -R
é chamado de flag. As flags sempre começam com um traço e são usadas em combinações com comandos para dar instruções mais específicas sobre como o comando deve ser executado.
Minidesafios
- Crie um arquivo chamado
my_original.txt
. - Faça uma cópia de
my_original.txt
com um novo nome na mesma pasta. - Crie um novo diretório
- Faça uma cópia desse diretório, mas dê um nome diferente a ele.
- Faça uma cópia do arquivo copiado (da etapa 2), mas coloque-o no diretório copiado (da etapa 4).
Como remover arquivos e pastas
Enquadramento e finalidade da seção
É possível excluir arquivos e pastas na linha de comando, mas essa ação é permanente.
Removendo um arquivo
Para remover um arquivo, use o comando rm
(abreviação de remover) seguido pelo 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
Remover um diretório vazio
Para remover um diretório vazio , use o comando rmdir
, abreviação de remover 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 flag -R
, abreviação de recursivo, depois do comando rm
, que informa ao computador para excluir o conteúdo dentro da pasta. Como atalho, alguns desenvolvedores usam a flag -Rf
, que remove tudo (caso contrário, você pode receber solicitações para excluir alguns dos arquivos ou pastas secundários).
# 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 de itens excluídos do seu e-mail. Esses arquivos não podem ser recuperados facilmente. Tenha EXTREMO CUIDADO ao excluir arquivos dessa forma.
Minidesafios
- Crie quatro arquivos.
- Exclua dois dos arquivos.
- Criar uma pasta.
- Crie outra pasta e um arquivo dentro dela.
- Exclua os dois diretórios.
O código deste laboratório está na seguinte pasta dentro do repositório de estudantes que você baixou do GitHub: command-line/labs/around-the-world
Contexto
Seu semestre no exterior está chegando, e é hora de começar a planejar suas viagens pela Europa...
Com três meses de vida pela frente, você quer aproveitar ao máximo cada viagem de fim de semana.
Felizmente, você não está começando do zero, e seus amigos já deram algumas dicas de atividades favoritas do semestre no exterior. Infelizmente, alguns dos arquivos foram misturados...
Não se preocupe, com a magia da linha de comando, você vai corrigir tudo rapidinho!
Tarefa
Verifique se cada cidade está no país correto e se cada pasta tem os monumentos certos. Tenha cuidado para não acabar em Amsterdam procurando a Torre Eiffel!
Se você estiver MUITO confiante, oculte a GUI e enfrente esse desafio direto da linha de comando. Você precisa ficar na pasta geral "ao redor do mundo" enquanto faz tudo isso. Isso significa usar caminhos absolutos ao se referir a pastas e arquivos.
Quando tiver certeza de que tudo está no lugar certo, é sua vez de assumir o controle dos próximos meses. Tenha ideias de novas cidades, países e monumentos que você PRECISA conhecer e adicione-os à sua árvore de arquivos.
Parabéns! Você aprendeu oficialmente a falar com o computador. Tudo pronto para ir além? Vamos falar sobre extensões...
Extensões
- Misture todos os arquivos novamente e vá para uma cidade de sua escolha. Reorganize os arquivos novamente, permanecendo nessa cidade.
- Teste um dos jogos divertidos de linha de comando vinculados abaixo
Jogo Terminus
Jogo avançado (prepare-se para pesquisar no Google) - É fã de Star Wars? Tente executar
telnet towel.blinkenlights.nl
na linha de comando e pressione Enter… Em versões recentes do macOS, o comandotelnet
não é mais instalado por padrão. Nesse caso, use o comandonc towel.blinkenlights.nl 23
.
O código deste laboratório está na seguinte pasta dentro do repositório de estudantes que você baixou do GitHub: command-line/labs/bashing-away-repetition
Pronto para acabar com a repetição no uso diário da linha de comando? Que ótimo, eu também!
Contexto
Se há uma coisa que os programadores odeiam, é repetição. Como cientistas da computação, nosso trabalho é fazer com que o computador faça o máximo possível do nosso trabalho. Escrever scripts bash vai ajudar a tornar o uso da linha de comando mais eficiente.
Primeiro, o que é um script bash?
ÓTIMA pergunta. Felizmente, nosso amigo Ryan Chadwick, do melhor 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 vai executar sem que precisemos inserir os comandos. Se uma tarefa específica for feita com frequência ou for repetitiva, um script pode ser uma ferramenta útil.
Sem repetição? É disso que estou falando.
Tutorial
Primeiro, para executar o script, você precisa dar permissão ao computador. Para isso, execute o comando abaixo.
chmod 755 myScript.sh
Chegou a hora de escrever seu primeiro programa. Acesse seu myScript.sh
. Veja se é possível abrir o arquivo na linha de comando. No final do arquivo, adicione:
echo "Hello World"
Agora, execute:
./myScript.sh
no terminal. ** TA DA ** você vai ver "Hello World" impresso no terminal.
Tudo o que você escrever no script bash será executado como se tivesse sido digitado no terminal. Vamos ver mais um exemplo antes de passar para as extensões. Primeiro, crie um arquivo para seu script. Ele pode ter qualquer nome, mas precisa ter a extensão .sh
. Em seguida, digite chmod 755
e o nome do script no terminal e pressione "Enter" para dar permissão de execução. Sempre que você iniciar um novo script bash, conclua essas duas etapas.
Desafio introdutório
Agora, vamos tentar escrever um script que cria uma nova pasta. Qual comando cria uma nova pasta? Se você está pensando em uma palavra que começa com m
e termina com kdir
, está no caminho certo. Escreva o comando que vai criar sua nova pasta e dê um nome legal a ela no novo arquivo .sh
. Em seguida, execute o comando no terminal.
Se funcionar, passe para os outros desafios listados abaixo. Se você ainda estiver um pouco confuso, consulte o laboratório "Ao redor do mundo" e pense em como você criou novas pastas de países e cidades.
Use o tutorial vinculado acima e prepare suas melhores habilidades de pesquisa no Google. Escrever e executar scripts que fazem o seguinte:
Tarefas principais
- Adicione um comando ao arquivo criado acima que navega até a pasta que você está criando. (Qual comando usamos para mudar de diretório?)
- Adicione um carimbo de data/hora ao nome da nova pasta. Por exemplo, seu programa precisa criar uma pasta chamada "
2017-12-07my_super_cool_folder
".
- Imprime "Meu diretório atual é: " seguido pelo seu diretório de trabalho e "Aqui está uma lista de tudo neste diretório! " seguido pelo conteúdo do seu diretório atual.
- Descubra como dar uma entrada ao seu script bash e criar um arquivo com base nessa string de entrada. O tutorial vinculado anteriormente no laboratório tem alguns exemplos ótimos na seção de variáveis para conferir.
- Peça o nome do usuário e imprima "Olá, muito prazer em conhecer você, insira o nome aqui"
- Peça mais informações ao usuário e crie uma mensagem personalizada para ele.
CONTEXTO
A linha de comando (ou terminal) oferece uma interação direta com o sistema operacional do computador. Tudo o que a interface gráfica do usuário (GUI) faz, mas com comandos de texto, desde a navegação até a criação de novos arquivos e a execução de scripts. A linha de comando será usada para abrir arquivos e iniciar o ambiente de desenvolvimento ao usar o Google App Engine.
Linha de comando em ação
Como acessar o terminal
Atalho do Mac:
- Abra o Spotlight com Command + espaço.
- Digite Terminal na Pesquisa Spotlight.
Como navegar no terminal
# 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
Como criar 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
Movimentação de arquivos e pastas
Movimentação de 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
Movimentação de 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
Mover é renomear
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
Como copiar arquivos e pastas
Copiando 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
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
Excluir 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 o uso da linha de comando, mesmo quando não achar necessário. Com o tempo, você vai melhorar.
- A tecla
tab
preenche automaticamente o nome do arquivo ou da pasta (ela diferencia maiúsculas de minúsculas). - Se houver apenas um arquivo ou pasta correspondente restante, ele será preenchido automaticamente.
- Se houver vários arquivos ou pastas correspondentes, pressione a tecla Tab duas vezes para ver uma lista das correspondências restantes.
- As setas para cima e para baixo alternam o histórico de comandos para que você não precise digitar novamente.
- Use o comando
clear
para limpar a janela do terminal. Isso mantém todo o seu trabalho anterior. Role para cima para conferir. - Use
reset
para reiniciar o terminal. Isso não vai manter seu trabalho anterior na tela, mas pode 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 ..
oucd <folder name>
. - Veja o conteúdo das pastas usando
ls
. - Crie arquivos usando
touch
e pastas usandomkdir
. - Mova arquivos e pastas usando
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?
pwd
ls
cd
mkdir
touch
Pergunta 2
Como você subiria dois níveis do seu diretório de trabalho atual?
mv ~
cd ../..
mv up/up
cd ^(2)
Pergunta 3
Qual comando você usaria para renomear um arquivo?
mv
cd
ls
python
rename
Pergunta 4
Por que o comando mv script.py
geraria um erro?
- Porque "
script.py
" é um nome de arquivo inválido. - Porque o comando
mv
não pode ser seguido por outras informações. - Essa é uma pergunta difícil, porque não geraria um erro.
- Porque mover um arquivo requer pelo menos dois argumentos: um destino e um destino
Pergunta 5
O que o comando cd ~
faria?
- Mude o diretório de trabalho para o diretório inicial.
- Repita o comando anterior.
- Use um algoritmo para determinar o comando mais útil no momento.
- Gerar um erro.
Pergunta 6
Qual das opções a seguir NÃO é um motivo para usar a tecla Tab para preencher automaticamente os nomes de arquivos?
- Porque economiza tempo.
- Porque ajuda a eliminar erros de ortografia.
- Isso acontece porque ele exige 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 vai funcionar?
- Porque
touch
não pode criar novos arquivos. - Porque
.py
não é uma extensão de arquivo válida. - Porque ele vai criar dois arquivos, um chamado "
my
" e outro chamado "script.py
", em vez de apenas um. - Porque não é possí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ê subiria dois níveis do seu diretório de trabalho atual?
Com cd ../..
, você sobe dois níveis (cada ..
representa um nível acima).
Pergunta 3
Qual comando você usaria para renomear um arquivo?
mv
é usado para mover um arquivo de um local para outro e também pode ser usado para mudar o nome do arquivo.
Pergunta 4
Por que o comando mv script.py
geraria um erro?
O comando mv
exige dois argumentos: um arquivo de origem e um de destino.
Pergunta 5
O que o comando cd ~
faria?
Ele muda o diretório de trabalho para o diretório inicial. O caractere especial ~ é usado para identificar o diretório inicial do usuário atual. Também pode ser usado em combinação com um nome de usuário diferente: ~user2 para apontar para a pasta inicial.
Pergunta 6
Qual das opções a seguir NÃO é um motivo para usar a tecla Tab para preencher automaticamente os nomes de arquivos?
Porque exige menos capacidade de processamento não está correto. tab
exige uma quantidade (geralmente insignificante) de poder de processamento para verificar as pastas em busca de nomes de arquivos 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 vai funcionar?
Ele vai criar dois arquivos em vez de apenas um. O comando touch
vai criar novos arquivos. No terminal, os espaços são separadores, não caracteres a serem incluídos no nome do arquivo. É melhor evitar completamente, mas, se você precisar usar, o nome do arquivo deve estar entre aspas duplas:
touch "my script.py"
Pergunta 1
O comando do terminal para mudar de diretório é:
move
mkdir
pwd
cd
Pergunta 2
Qual comando você executaria se quisesse navegar até a pasta mãe do seu diretório de trabalho atual?
cd up
cd .
cd ..
cd ~
Pergunta 3
Qual comando é usado para criar arquivos?
touch
mkdir
create
pwd
Pergunta 4
Qual dos comandos a seguir cria dois arquivos chamados index.html
e style.css
?
touch index.html, touch style.css
touch index.html, style.css
touch index.html style.css
touch index.html + style.css
Pergunta 5
Qual comando você usa para renomear um arquivo ou uma pasta?
rename
move
mv
rm
Pergunta 6
Qual flag os comandos rm
e cp
precisam para trabalhar com pastas?
-f
-r
-x
-d
Pergunta 7
Para mover projects
para ~/Documents
e renomear como Projects
, qual comando precisa ser inserido no espaço em branco?
cd ~
mv projects ~/Documents
# fill in the blank here
mv projects Projects
pwd
cd projects
mv ~ projects
cd ~/Documents
ls
Pergunta 8
O que o comando a seguir faz?
rm -r projects
- Excluir um arquivo chamado
projects
- Excluir uma pasta chamada
projects
- Renomear um arquivo chamado
projects
- Pesquisar o conteúdo do diretório atual por
projects
Pergunta 1
O comando do terminal para mudar de diretório é:
O comando do terminal para mudar de diretório é cd
. O comando em si é uma abreviação de "change directory" (mudar diretório).
Pergunta 2
Qual comando você executaria se quisesse navegar até a pasta mãe do seu diretório de trabalho atual?
O comando para navegar até a pasta principal é cd ..
Pergunta 3
Qual comando é usado para criar arquivos?
O comando para criar arquivos é touch
Pergunta 4
Qual dos comandos a seguir cria dois arquivos chamados index.html
e style.css
?
O comando touch index.html style.css
vai criar os dois arquivos. Não é necessário usar vírgula, e é possível criar qualquer número de arquivos dessa forma, separados por espaços.
Pergunta 5
Qual comando você usa para renomear um arquivo ou uma pasta?
Embora signifique "mover" e possa ser usado para mover arquivos ou pastas, mv
também pode ser usado para renomear arquivos e pastas.
Pergunta 6
Qual flag os comandos rm
e cp
precisam para trabalhar com pastas?
Os comandos rm
e cp
exigem a flag -r
para funcionar em pastas, já que a flag -r
significa "recursivo" e executa novamente o comando para todos os arquivos e pastas contidos nela.
Pergunta 7
Para mover projects
para ~/Documents
e renomear como Projects
, qual comando precisa ser inserido no espaço 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 faz?
rm -r projects
O comando vai excluir um arquivo OU uma pasta chamada projects
porque é chamado com a flag -r
ou recursiva. Sem essa flag, o comando só funcionaria para excluir um arquivo com esse nome.