Shell do Unix / Linux 101

Autor: Eugene Taylor
Data De Criação: 11 Agosto 2021
Data De Atualização: 22 Junho 2024
Anonim
Unix Shell Crash Course || Unix Shell Tutorial for Beginners
Vídeo: Unix Shell Crash Course || Unix Shell Tutorial for Beginners

Contente



Fonte: Tomasz Bidermann / Dreamstime.com

Leve embora:

Os shells Unix e Linux são muito poderosos e extremamente personalizáveis.

A linha de comando nos sistemas Unix e Linux já é muito poderosa, mas os shells são uma ferramenta ainda mais poderosa do que aparenta. Você pode personalizá-los e alterá-los para o conteúdo do seu coração, desde que saiba como.

O que é uma concha?

Quase todos os manuais do Unix e Linux têm o diagrama padrão de um invólucro em torno do sistema operacional, semelhante a algum tipo de barra de chocolate. O shell realmente não passa de uma interface entre o sistema operacional, incluindo o kernel, o sistema de arquivos e as várias chamadas do sistema e o usuário. Por muitos anos, foi a única interface de usuário interativa antes que as interfaces gráficas de usuário se tornassem comuns na década de 1980. As interfaces gráficas do usuário também podem ser consideradas um tipo de shell, pois servem muitas das mesmas funções: iniciar programas, configurar o sistema e gerenciar arquivos.

Essas interfaces humildes têm uma quantidade surpreendente de energia. Por um lado, eles são linguagens de programação completas. Antes do surgimento de linguagens de script ainda mais poderosas, como o Python, os shell scripts eram ideais para escrever programas que não precisavam necessariamente do poder de C. Eles ainda são úteis para automatizar tarefas do sistema e para prototipagem rápida.

Eles também têm vários recursos que facilitam o trabalho e a localização de arquivos. Um dos mais amplamente utilizados é "curinga" ou "globbing". Quase todos os usuários de Unix e Linux estão familiarizados com o curinga "*" para corresponder a qualquer caractere. Este é realmente o trabalho do shell. Conchas diferentes têm opções ainda mais poderosas.

Uma das características distintivas do Unix é a capacidade de redirecionar a entrada e a saída do programa. O shell implementa essa funcionalidade.

O shell é apenas mais um programa, portanto, é possível que qualquer programador com as habilidades certas crie um. Houve várias conchas principais que surgiram ao longo dos anos.

História e um resumo de conchas

Embora houvesse várias conchas do Unix nos primeiros dias do sistema operacional, a primeira a obter grande reconhecimento fora do Bell Labs foi a Bourne Shell, em homenagem a Stephen R. Bourne. A principal inovação do shells foi o suporte a recursos para programação estruturada, possibilitando, pela primeira vez, o uso do shell como uma linguagem de programação real. É tão indispensável que todas as versões modernas de Unix e Linux ainda o utilizam, embora seja geralmente uma das novas conchas que emulam o shell Bourne.

O próximo shell principal foi o C Shell, geralmente abreviado como "csh". Esse shell foi desenvolvido na UC Berkeley, tornando-se um componente importante do sabor BSD do Unix. Como o nome sugere, sua sintaxe é projetada para se parecer com a linguagem de programação C, mas foi realmente projetada para uso interativo.

Ele incluía um mecanismo de histórico que permitia aos usuários voltar e repetir quaisquer comandos emitidos anteriormente, sem precisar redigitar uma linha inteira e melhorar o controle de tarefas, o que tornava mais fácil a execução de várias tarefas. (Lembre-se, era uma época em que a maioria das pessoas ainda usava terminais baseados em).

A próxima grande concha foi a Korn Shell, que também saiu do Bell Labs. A concha foi nomeada após David Korn, não a banda, por sinal. A principal inovação do shell Korn é a introdução da edição por linha de comando, estendendo a funcionalidade do histórico ainda mais. Os usuários podem voltar e editar os comandos digitados usando comandos semelhantes aos editores do vi ou do Emacs.

Das conchas principais, o Bourne Again Shell, ou bash, é o mais popular desde a sua introdução no final dos anos 80. Esse shell, desenvolvido como parte do projeto GNU, incorpora as inovações dos shells C e Korn, mantendo a compatibilidade com o shell Bourne, daí o nome. É o shell "padrão" na maioria das distribuições Linux.

O Z Shell (zsh), lançado pela primeira vez em 1990, é o sonho de um usuário de linha de comando. Ele não só possui a maioria dos outros recursos importantes que os outros projetores têm, como é incrivelmente personalizável com muitos recursos poderosos. Um dos mais poderosos é o globbing recursivo, que permite aos usuários combinar nomes de arquivos em subdiretórios ao emitir comandos, em vez de arquivos no diretório de trabalho atual. Usuários realmente avançados também podem personalizar as opções de conclusão, combinando arquivos sem precisar digitá-los completamente. E para os digitadores de dedos gordos, também pode corrigir a ortografia. Esse shell é tão avançado que sua página de manual foi dividida em várias seções muito longas.

Script

Como mencionado anteriormente, os shells não são apenas interfaces de linha de comando, mas poderosas linguagens de programação. A vantagem do script de shell é que você pode usar a mesma linguagem tanto no uso interativo regular quanto nos scripts, o que torna a curva de aprendizado muito mais plana. Os shells modernos incluem todos os recursos usuais da linguagem de programação, incluindo controle de fluxo, funções e variáveis. Alguns deles têm estruturas de dados avançadas, como matrizes associativas.

Apesar de seu poder, a programação em conchas tem algumas armadilhas. O maior problema é que é muito fácil escrever scripts que dependem de algum programa que pode não estar em outro sistema ou que dependem de um tipo específico de Unix ou Linux. É por isso que os scripts shell são mais adequados para programas que você sabe que só serão executados em um sistema. Se você está tentando criar algo portátil e não deseja escrever um programa em C, sua melhor aposta é escrever em outra linguagem de script como Perl ou Python.

Uma espiada sob o capô da linha de comando Unix / Linux

Há mais energia escondida abaixo da superfície da sua linha de comando Unix / Linux. Este artigo pode inspirá-lo a dar uma espiada sob o capô do seu shell favorito para ver o que você realmente pode fazer. Se você quiser entrar no script de shell, confira os livros Unix Power Tools e Learning the Bash Shell. O artigo original de Stephen R. Bournes em seu shell também serve como uma boa introdução ao mundo dos scripts de shell, mesmo que seja antigo.