Agora serão dados alguns conceitos necessários para a utilização do shell (neste caso o bash) e também com algumas noções sobre a organização do sistema de arquivos no Linux.
O sistema de arquivos no Linux é semelhante a uma árvore de cabeça para baixo. Existe inicialmente o diretório raiz, e abaixo deste a estrutura que segue na Tabela 8.1. Estrutura de Diretórios do Linux:
![]() | Nota |
|---|---|
Diretório também pode ser considerado como uma pasta. | |
Tabela 8.1. Estrutura de Diretórios do Linux
Diretório | Descrição dos arquivos que estão nesse diretório |
|---|---|
/ | Diretório raiz do sistema de arquivos. É abaixo dele que se situam todos os outros. |
/bin | Arquivos executáveis de comandos essenciais. |
/boot | Arquivos necessários à inicialização do sistema. |
/dev | Arquivos de dispositivos do sistema. |
/etc | Arquivos de configuração do sistema. |
/home | Lugar onde ficam as pastas locais dos usuários. |
/lib | Arquivos de bibliotecas essenciais ao sistema, utilizadas pelos programas em /bin. |
/mnt | Usualmente é o ponto de montagem de dispositivos na máquina, ou dispositivos de rede. |
/proc | Informações do kernel, dos processos e interrupções da máquina. |
/root | Pasta local, ou home, do superusuário. |
/sbin | Arquivos relacionados diretamente ao sistema. Normalmente só o superusuário tem acesso a estes arquivos. |
/tmp | Pasta de arquivos temporários. |
/usr | Arquivos pertencentes aos usuários, bem como documentação do sistema, dentre outros tipos de arquivos. |
/var | Pasta onde são guardadas informações variáveis sobre o sistema. |
Não será necessário, por enquanto, compreender as funções de todas as pastas enumeradas acima. A idéia é fornecer uma visão global de onde estão os arquivos que serão mencionados mais adiante e aqueles que já foram vistos.
Aproveitando que está sendo falado de sistema de arquivos, será comentado um detalhe muito importante: os nomes de arquivos no Linux são case-sensitive, ou seja, distinguem maiúsculas de minúsculas e vice-versa. Sendo assim, um nome de arquivo como: Teste é diferente de teste e também de tesTe, assim como as possíveis variações de maiúsculas e minúsculas da palavra teste.
Note bem que aqui não é utilizada extensão de arquivos, como é necessário em outros sistemas operacionais. Na realidade, no Linux esta característica "não existe" de uma maneira que limite a implementação. Observe que existem arquivos do tipo start.pl no Linux. Esse tipo de nome de arquivo é perfeitamente possível pelo fato de os nomes de arquivos poderem ter até 255 caracteres, independendo de quais sejam os caracteres. Ou seja, as extensões não existem como forma limitante do nome do arquivo, elas são parte do nome do arquivo. Alguns aplicativos utilizam as extensões para poder manipular os arquivos, ou seja, as extensões estão presentes, mas como parte do nome do arquivo e não como um item obrigatório.
![]() | Dica |
|---|---|
No Linux existe um recurso muito interessante chamado de Tab Completion. Quando você está digitando um comando ou nome de arquivo muito longo, basta que você digite os primeiros caracteres desse comando e aperte a tecla Tab que o shell se encarrega de completar o resto do nome. Nem todos os nomes podem ser completados até o final pelo fato de existirem outras opções no processo de complementação. Então, o shell para de completar e emite um bip avisando que não conseguiu completar totalmente a sentença. Caso você aperte Tab novamente, o shell irá lhe mostrar as opções que você tem para completar a sentença. | |
O modo texto do Linux é composto por terminais. Um terminal, ou console, é o conjunto formado pelo teclado e o monitor, que constitui o dispositivo padrão de entrada e saída de dados. Imagine o seguinte: você tem vários conjuntos de monitor e teclado que estão ligados na mesma CPU. Enquanto você está digitando um texto num desses terminais, o outro está executando um processo demorado, como uma procura no disco. No Linux, existem terminais virtuais que podem ser ativados e alternados pela seqüência de teclas Ctrl-Alt-Fn, onde n é um número entre um e sete. Ou seja, você tem sete terminais virtuais, como padrão, nos quais pode estar trabalhando ao mesmo tempo. [37].
No Linux, não existe somente o teclado como meio de entrada de dados, pois esta pode ser dada através de um arquivo, um mouse e/ou qualquer outro dispositivo. Essa entrada pode ser direcionada para outros lugares também, como outro arquivo, o monitor ou uma impressora. Esse redirecionamento é feito de diversas maneiras, utilizando os caracteres > e >> para redirecionar o local de saída[38] e os caracteres < e << para redirecionar a entrada.