O básico do Shell
O shell é um programa que permite a comunicação por texto entre o sistema operacional e o usuário. Trata-se de um programa em modo texto que lê os dados inseridos pelo usuário e os interpreta na forma de comando para o sistema.
Existem vários shells diferentes no Linux, segue alguns exemplos:
- sh: Bourne Shell
- Criador: Stephen Bourne (Bell Labs, 1979)
- Shell original do Unix
- Presente em praticamente todos os sistemas Unix/Linux
- bash: Bourne-again shell
- Criador: Brian Fox (GNU Project, 1989)
- Shell padrão na maioria das distribuições Linux
- Compatível com
sh, mas com muitas extensões - Recursos avançados: arrays, expressões regulares, completion
- zsh: Z shell
- Criador: Paul Falstad (1990)
- Autocompletar inteligente
- Temas e plugins (Oh My Zsh)
- Compartilhamento de histórico entre sessões
- csh: C shell
- Criador: Bill Joy (1978)
- Estruturas de controle similares à linguagem C
- Sistema robusto de aliases de comandos
- ksh: Korn shell
- Criador: Korn Shell (1983)
- Combina recursos de sh e csh
- Popular em ambientes Unix comerciais (AIX, Solaris)
- Recursos avançados de programação
No Linux, o mais comum é o shell Bash, que é o shell que usaremos em nossos exemplos.
No shell, o usuário insere comandos no chamado prompt. Para cada distribuição Linux, o prompt padrão tem uma aparência um pouco diferente, mas geralmente segue esta estrutura:
username@hostname diretório_atual tipo_de_shellNo Debian/Ubuntu, o prompt terá a seguinte aparência:
fernando@meucomputador:~$root@meucomputador:~#No Red Hat/CentOS, o prompt terá a seguinte aparência:
[fernando@meucomputador ~]$[root@meucomputador ~]#Componente de cada estrutura:
- username: Nome do usuário que está executando o shell
- hostname: Nome da máquina na qual o shell é executando
- diretório_atual: O diretório que o shell está atualmente. Um
~indica que o shell está no diretório Home do usuário atual. - tipo_de_shell: Indica o tipo de usuário que está executando o shell
$: Usuário comum#: Superusuário (root)