Command-line shell (Português)
Do Wikipédia:
- Um shell do Unix é um interpretador de linha de comando ou shell que fornece uma interface semelhante ao Unix tradicional. Os usuários indicam a operação do computador pela entrada de comandos como texto para um interpretador de linha de comando executar, ou criando scripts de texto de um ou mais de tais comandos.
Lista de shells
Shells que são mais ou menos compatíveis com POSIX são listados sob #Compatíveis com POSIX, enquanto shells que têm uma sintaxe diferente estão sob #Shells alternativos.
Compatíveis com POSIX
Esses shells podem todos serem vinculados a /usr/bin/sh
. Quando Bash, mkshAUR e zsh são chamados com o nome sh
, eles se tornam mais compatíveis com POSIX.
- Bash — O Bash estende o shell Bourne com histórico e conclusão de linha de comando, arrays indexados e associativos, aritmética de inteiros, substituição de processos, strings here, correspondência de expressões regulares e expansão de chaves.
Shells alternativos
- fish — Shell de linha de comando inteligente e amigável. O fish executa o realce da sintaxe da linha de comando em cores, bem como o realce e a completação dos comandos e dos argumentos, da existência do arquivo e do histórico. Ele oferece suporte à completação na medida em que você escreve para o histórico e os comandos. O fish é capaz de analisar as páginas man do sistema para determinar argumentos válidos para comandos, permitindo que ele realce e complete os comandos. Uma revisão fácil do último comando pode ser feita usando
Alt+Up
. O daemon de fish (fishd) facilita ter um histórico sincronizado em todas as instâncias do fish, bem como variáveis de ambiente universais e persistentes. Além disso, fish possui sintaxe de programação significativamente simplificada e fluxo de controle (similar ao ruby). Para mais informações, veja o tutorial.
- xonsh — AUm shell retrocompatível com base no interpretador python.
Alterando seu shell padrão
Depois de instalar um dos shells acima, você pode executar esse shell dentro do seu shell atual, apenas executando o executável. Se você quiser ser servido nesse shell quando você fizer login no entanto, você precisará alterar seu shell padrão.
Para listar todos os shells instalados, execute:
$ chsh -l
E para definir um como padrão para seu usuário, faça:
$ chsh -s caminho-completo-do-shell
sendo caminho-completo-do-shell é o caminho completo como fornecido em .
Se você agora você encerrar a sessão e iniciá-la novamente, você será saudado pelo outro shell.
Arquivos de configuração
Para iniciar automaticamente programas no console ou no login, você pode usar os arquivos/diretórios de inicialização do shell. Leia a documentação do seu shell, ou seu artigo do ArchWiki, p. ex., Bash#Configuration files ou Zsh#Startup/Shutdown files.
Veja também arquivos de configuração.
/etc/profile
Após o login, todas os shells compatíveis com Bourne usam , o que, por sua vez, origina qualquer arquivo legível em /etc/profile.d/
: estes scripts não requerem uma diretiva de interpretador, nem precisam ser executáveis. Eles são usados para configurar um ambiente e definir configurações específicas do aplicativo.
Padronização
É possível fazer com que os arquivos de configuração de shells (alguns) sigam a mesma convenção de nomenclatura, além de ter suporte a alguma configuração comum entre os shells.
Veja o artigo sobre isso e o repositório relacionado.
Entrada e saída
Veja também GregsWiki e Redirecionamento de E/S.
- Redirecionamentos truncam arquivos antes que os comandos sejam executados: não funcionará como esperado. Enquanto alguns comandos (sed, por exemplo) fornecem uma opção para editar arquivos no local, isso não acontece para muitos outros. Nesses casos, você pode usar o comando do pacote .
- Como o cat não está embutido no shell, em muitas ocasiões você pode achar mais conveniente usar um redirecionamento, por exemplo, em scripts, ou se você se importa muito com desempenho. De fato, faz o mesmo que .
- Shells compatíveis com POSIX possuem suporte a Here Documents:
- Pipelines de shells operam no stdout por padrão. Para operar no , você pode redirecionar stderr para stdout com ou, para Bash 4,
comando |& outrocomando
. - Lembre-se que muitos utilitários principais do GNU aceitam arquivos como argumentos, então, por exemplo,
grep padrão < arquivo
pode ser substituído por .
Veja também
- Evolução de shells no Linux no IBM developerWorks
- terminal.sexy — Designer de esquema de cores de terminal
- Hyperpolyglot — Comparação lado a lado das sintaxes do shell
- UNIX Power Tools — Uso geral da ferramenta de linha de comando
- commandlinefu.com — Compartilhamento de trechos de linha de comando
- List of applications#Terminal emulators