Introdução

Em um alto nível, computadores fazem quatro coisas:

  • Rodam programas
  • Armazenam dados
  • Comunicam-se entre eles
  • Interagem com humanos

A interação com humanos pode ser feita de diferentes maneiras, mas a que mais conhecemos é atrave’sde um teclado, mouse e monitor. Embora a maioria dos sistemas operacionais atuais se comuniquem com humanos através de janelas, ícones e botões, essa tecnologia só começou a se popularizar em meados dos anos 1980.

Este tipo de interface é chamada de interface gráfica do usuário (GUI, graphical user interface). Antes dessa fase, a interação com computadores se resumia a comandos digitados em um terminal, uma interface chamada de interface por linha de comando (CLI, command-line interface). A CLI consiste no processo em um loop ler-avaliar-imprimir (REPL, read-evaluate-print loop). Ou seja, quando um usuário digita um comando e aperta Enter, o computador lê, executa e imprime uma saída.

Com esta descrição, pode parecer que o usuário envia um comando direto para o computador, e o computador envia um resultado direto para o usuário. Na verdade, existe um programa intermediário, chamado de shell. O que um usuário digita é enviado para o shell, que então determina a execução pelo computador.

O shell é um programa como qualquer outro. O que ele tem de especial é que seu trabalho é executar outros programas ao invés de fazer cálculos propriamente ditos. O shell mais popular se chama Bash, e é o padrão na maioria das distribuições Linux.

Usar o Bash é muito mais parecido com programação do que com usar um mouse para executar programas. Alguns comandos podem parecer “estranhos” em um primeiro momento, e você pode se sentir como se estivesse voltando ao passado para usar o computador quando não existiam GUIs (apenas CLIs, como o DOS por exemplo). No entanto, com apenas alguns comandos você será capaz de executar diversas tarefas rotineiras de maneira muito mais rápida, e principalmente automatizar tarefas (com um pouco mais de dedicação).

Possui r familiaridade com o shell é essencial para rodar uma variedade de ferramentas especializadas, como por exemplo servidores remotos de alta-performance. Como clusters e computação em nuvem estão se tornando cada vez mais popular para análise de grandes bases de dados, ser capaz de interagir com estes sistemas é uma habilidade essencial.


Licença Creative Commons 4.0

Este conteúdo está disponível por meio da Licença Creative Commons 4.0