Terminal de texto

Os primeiros computadores eram geralmente separados em diversas peças muito grandes. O compartimento de armazenamento e unidade central de processamento foram separados dos dispositivos periféricos usados pelos operadores para controlá-los, chamados de “console”. Este termo foi mantido, mas seu significado foi alterado. Tornou-se mais ou menos sinônimo de “terminal”, sendo um teclado e uma tela.

O terminal é um recurso que permite ao usuário acessar uma linha de comandos, que por sua vez é o campo onde são digitados os comandos que serão interpretados pelo sistema operacional para obter os resultados desejados. Seu uso também é conhecido como “modo texto”, pois toda interação restringe-se a escrever os comandos, mas pode ser aberta uma janela para sua utilização, a partir do modo gráfico.

Prompt do DOS (esquerda) e terminal do Linux
Prompt do DOS (esquerda) e terminal do Linux

O MS-DOS é um sistema operacional antigo da Microsoft, que funcionava de base para o Windows “rodar” sobre o DOS. A partir do Windows 95, o DOS passou a vir integrado ao sistema mais novo, podendo ser utilizado através do programa “cmd”. c:> é o prompt de comando oficial do MS-DOS, onde “c” é letra do drive (unidade e pasta), em que se está posicionado.

O bash é o mais conhecido utilitário usado em sistemas POSIX (Linux, BSD, incluindo MAcOS, etc) e está disponível opcionalmente no Windows 10 à partir da atualização de 2016. Além do CMD (command prompt), o Windows também dispõe do PowerShell: um shell de linha de comando e linguagem de script associada embutida no framework .NET.

A maioria dos sistemas GNU/Linux oferecem seis consoles virtuais (modo texto), acessíveis, digitando as combinações de teclas Control+Alt+F1 até F6 (F7 é o terminal modo gráfico). Também pode se referir a um emulador de terminal em uma sessão X11 gráfica (como xterm, gnome-terminal ou konsole). Pode-se fazer o acesso remoto a um computador linux através do terminal, usando programas como ConnectBot (no Android) e Putty (no Windows).

Ambiente Shell

Um interpretador de linha de comando, também chamado de “shell”, é um programa que executa comandos que são ou inseridos pelo usuário ou armazenados em um script. O shell padrão e mais comumente usado é o bash (Bourne Again SHell), mas existem outros interpretadores de comando com suas sintaxes específicas e seus próprios arquivos de configuração, como o dash, csh, tcsh e zsh.

O Bash usa o script de inicialização “/etc/bash.bashrc” para shells “interativos” (por exemplo, ele permite ativar o “preenchimento automático”), e o “/etc/profile” para shells de “login” (invocado quando ocorre autenticação no console, tanto localmente quanto remotamente via ssh). Com o preenchimento automático, o shell completa automaticamente um nome de arquivo, comando ou argumento parcialmente digitado quando o usuário pressiona a tecla Tab – no caso de ter muitas opções, é impressa na tela uma lista de possibilidades que iniciam com o texto já digitado.

Independente de ser um shell de login ou não, um shell pode ser interativo (num terminal estilo xterm, por exemplo) ou não-interativo (quando executando um script). Cada usuário pode criar seu próprio ~/.bashrc e ~/.bash_profile para configurar seu shell. As mudanças mais comuns são a adição de “aliases”: palavras que são automaticamente substituidas pela execução de um comando, o que faz ficar mais rápido a invocação desse comando. Por exemplo, é possível inserir a linha “alias ll=’ls -alF'” no arquivo “~/.bashrc” para realizar uma listagem mais detalhada digitando apenas “la”. Para colocar cores, deve-se descomentar a linha “force_color_prompt=yes”. Caso o “.bashrc” não execute ao realizar o login do usuário, inclua a linha “” no fim do arquivo “~/.profile” ou “~/.bash_profile”.

Uma boa maneira de inspecionar o que um comando é se dá através de outro comando, o type: se é um programa ou um script, ele dá sua localização; se for um alias, ele diz o que é o alias; se for uma função, ele irá imprimir o funciton; caso contrário, ele irá dizer-lhe se é um built-in ou uma palavra-chave.

No modo interativo, ele exibe um prompt (geralmente terminando em $ para um usuário normal, ou por # para um administrador) indicando que ele está pronto para ler um novo comando. O til geralmente é usado para indicar o diretório o qual a variável de ambiente, HOME, aponta (sendo o diretório home do usuário, como por exemplo /home/usuario/). Já o barra indica o diretório raiz.

Variáveis de ambiente permitem o armazenamento de configurações globais para o shell ou vários outros programas executados, localizadas no arquivo “/etc/environment”, que também dá aos programas login, gdm, ou até mesmo ssh as variáveis de ambiente corretas a serem criadas. Ele não cria essas variáveis diretamente, mas sim via um módulo PAM (pam_env.so). O PAM (Pluggable Authentication Module – Módulo de autenticação plugável) é uma biblioteca centralizadora de mecanismos para autenticação, inicialização de sessão, e gerenciamento de senhas. O arquivo “/etc/default/locale” funciona de maneira similar, mas contém apenas a variável de ambiente LANG.

Certas ações somente podem ser tomadas pelo superusuário, ou root. Para realizar essas ações ou mude de usuário através do comando “su” e digite a senha de root ou digite “sudo” antes do comando (ao pedir a senha, digite a sua senha de usuário comum). Porém, para dar ao usuário comum a habilidade “sudo”, ele deverá ser adicionado à lista de usuários administradores. Para isso, entre como root (comando “su” acompanhado da senha de root), instale o programa sudo (comando “apt-get install sudo”) e execute o comando “adduser [usuário] sudo”. Uma alternativa à execução do último comando é editar diretamente o arquivo /etc/sudoers. Inclua o nome do usuário seguido de “ALL = (ALL) ALL” logo abaixo das especificações de privilégios do root, ficando o trecho do arquivo dessa maneira:

# User privilege specification
 root ALL=(ALL:ALL) ALL
 username ALL = (ALL) ALL

Todos os programas podem ser acessados através do terminal. Usando-se um e comercial (&) no final do comando, o terminal fica “liberado” para receber novos comandos após abrir a janela do programa. Outros programas rodam diretamente no terminal, como o lynx, que é um navegador de internet de texto puro. Para utilizá-lo, deve-se instalar o programa e escrever “lynx” no terminal, teclando ENTER para executar o comando. No programa, para acessar algum site, digite g e escreva o endereço para o acesso.

Os comandos vão desde manutenção de hardware e desempenho até edição de texto, programação de rotinas e edição de vídeos. O interpretador de comandos é que executa comandos lidos do teclado ou de um arquivo executável. Entre os programas interpretadores de comandos podemos destacar o bash, csh e sh entre outros. Basicamente, o comando segue a seguinte estrutura: comando [opções] [arquivos]. Vejamos alguns dos principais comandos.

Dicas de terminal

Para auto completar um nome de arquivo, digite as primeiras letras e tecle “tab” para completar o resto. Se tiver mais de um nome com aquele início, ele só completa até onde é comum, cabe ao usuário digitar um pouco mais e dar “tab” de novo para completar o resto. Note que o Linux é “case sensitive”, ou seja, ele diferencia se a letra é maiúscula ou minúscula. Caso tenha um espaço ou algum outro caractere especial, deve-se utilizar uma barra invertida antes, que é conhecida como “caractere de escape”.

Veja os principais comandos mais úteis no terminal de texto Linux clicando no link.

5 comments

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.