Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


40 anos de evolução das shells: você sabia que o /bin/sh original tinha menos de 900 linhas de código?

Embora já seja frequente ver membros da Geração Y fazendo campanha para alguém arregaçar as mangas em nome deles e extinguir a demanda por interação com o Linux via linha de comando, as shells estão aí para ficar, mesmo que cada vez mais só nos bastidores, em modo não-interativo ou nas mãos de usuários experientes que apreciam seus recursos.

Mas você sabia que a shell original – o primeiro /bin/sh, escrito por Ken Thompson – surgiu há 40 anos, em 1971 (2 anos depois do nascimento do próprio Unix) e tinha menos de 900 linhas de código? Isso porque boa parte do que hoje conhecemos como comandos builtin da shell (incluindo elementos essenciais, como o if) na época eram apenas utilitários externos, até mesmo recursos como o glob (que “interpreta” caracteres especiais como * e ? em parâmetros correspondentes a nomes de arquivo) eram implementações à parte, e a shell era exclusivamente interativa: a capacidade de interpretar scripts veio mais tarde.

Em compensação, recursos como pipes (| ou, na época, ^) e redirecionamento de entrada e saída (<, >, >>, etc.) já estavam presentes.

Daí pra frente a evolução foi acelerada: Stephen Bourne criou a Bourne Shell (que ainda pode ser vista em sistemas contemporâneos) em 1977, fazendo a base do que no final da década de 1980 surgiu como o mestiço /bin/bash (Bourne Again Shell) que hoje vemos como shell default em boa parte das distribuições Linux, do OS X e de outros sistemas UNIX e Unix-like atuais.

Este artigo do developerWorks gringo apresenta esta evolução, falando também de outras shells importantes (e algumas exóticas também), como csh, ksh, scsh e mais.

Aproveitando o embalo: estou terminando de ler (e gostando!) o livro novo do Júlio Neves, Bombando o Shell, com foco em interatividade, incluindo o controle de diálogos em modo gráfico. Em breve publicarei uma análise mais detalhada, mas isso não me impede de recomendá-lo desde já!


• Publicado por Augusto Campos em 2011-12-08

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Alexandre Gorges (usuário não registrado) em 8/12/2011 às 9:22 am

    deviam fazer uma entrevista com o Júlio Neves. pessoal monta as perguntas e o Augusto entrevista !

    Lucas Willian Bocchi (usuário não registrado) em 8/12/2011 às 10:45 am

    Não vi nenhuma referência no artigo ao fish, que já foi notícia, se não me engano, aqui no BR-Linux. Gostei dessa shell e acho ela bem legalzinha. De uns tempos pra cá estou usando ela para acessar meus consoles, porém, para os scripts, o bash, na minha opinião, continua imbatível.

    Spif (usuário não registrado) em 8/12/2011 às 11:10 am

    Entrevista com o Júlio ia ser muito legal.

    Se você for em um evento que ele estiver, vale a pena conversar, pois ele é muito gente boa.

    eu (usuário não registrado) em 8/12/2011 às 11:52 am

    Deixe “a” shell para “as” conchas. Considere “o” shell para “os” interpretadores de comandos – a menos que você chame de interpretadora de comandos, então OK :)

    Weber Jr. (usuário não registrado) em 8/12/2011 às 12:10 pm

    “seja frequente ver membros da Geração Y fazendo campanha para alguém arregaçar as mangas em nome deles e extinguir a demanda por interação com o Linux via linha de comando”

    Ando pessimista com esse futuro orientado ao desejo dessa geração emo.

    -”CLI é difícil, que acabe”

    -”Só uso tablet, que ninguém mais use desktop”

    -”Se não estiver em uma AppStore(bem restritiva) um ‘app’ não existe”.

    Cabral (usuário não registrado) em 8/12/2011 às 12:17 pm

    Ele já foi até no Jô Soares.

    André Luiz (usuário não registrado) em 8/12/2011 às 12:29 pm

    @Weber Jr.

    Pode ser que o Shell “suma”(diga-se, não fique mais acessível) para o usuário tablet, mas na minha opinião, ele nunca deixará de existir por um motivo muito simples: todo poder dos tablets só é possível devido à nuvem, ou seja, servidores. E se tem servidor, tem Shell. Duvido que alguem em sã consciência exclua-os dos servidores. Até a MS se rendeu a eles e incluiu um Shell de vergonha(o PowerShell) no Server2008! Por outro lado, sempre existirão usuários que não se contentarão com as “limitações” das interfaces gráficas(de minha parte eu garanto isto pelos próximos 60 anos + ou -!).

    então OK!

    Weber Jr. (usuário não registrado) em 8/12/2011 às 1:48 pm

    André Luiz

    ‘Pode ser que o Shell “suma”(diga-se, não fique mais acessível) para o usuário tablet, mas na minha opinião, …’

    Acho que acabei não sendo claro. Não acredito que sumam nenhum deles, Shell ou desktop. Acho preocupante é essa coisa de todos seguirem o mesmo barco.

    Daqui a pouco se continuam com essa moda, os computadores desktops que hoje estão MUITO baratos começam a escassear porque o tablet é o hype da hora.

    Zé do Mato (usuário não registrado) em 8/12/2011 às 2:07 pm

    Shell faz parte de todo meu uso. Apesar de sempre usar o ambiente gráfico, tenho sempre um emulador com bash pronto, acho que fica até 50/50 de uso em ambos.

    Quando a esse pessoal falando que tem que sumir com shell, não sei se choro ou rio… cada coisa que sou obrigado a “ouvir”…

    Caio César (usuário não registrado) em 8/12/2011 às 2:11 pm

    Eu não abro mão de CLI em Linux. Coisas como bash, fvwm e emacs são imortais, por mais antiquadas que pareçam. Sorry a quem deseja a morte ou sumiço do shell, pois em Unix/Unix-like nunca ocorrerá, a menos que a intenção seja acabar com a plataforma.

    Quem usa, nem sempre usa a fundo, desenvole, administra, documenta etc. É necessário respeitar os espaços, simples e fácil hoje em dia.

    Bremm (usuário não registrado) em 8/12/2011 às 4:32 pm

    Desktop e shell estão tão “mortos” que uso o ConnectBot para acessar o meu desktop via SSH pelo tablet que roda Android. :-P

    @Weber Jr.

    Essa “Geração Y” poderia ser renomeada para “Geração Restart” sem prejuízo no significado.

    Heaven (usuário não registrado) em 8/12/2011 às 11:00 pm

    Shell é fundamental para economia de recursos de processamento ou memória, principalmente para sistemas complexos que necessitam de todo poder computacional.

    ted (usuário não registrado) em 8/12/2011 às 11:10 pm

    Nossa, trabalho com o shell todos os dias, é meu ganha pão :-). Com tudo na nuvem, preocupo-me se um dia minha profissão, analista de suporte, não será mais uma a figurar nos museus nos próximos 20 anos.

    Shell rocks, man!

    Spif (usuário não registrado) em 9/12/2011 às 7:47 am

    Oras, nem o Mac OS ou o Windows, que são considerados mais “amigáveis” que o Linux não abrem mão dos seus terminais.

    Isso traduz meu sentimento em ouvir discussões sobre acabar com os terminais: http://www.cslacker.com/images/funny/meme/demotivational/stop_that/

    Julio Neves (usuário não registrado) em 9/12/2011 às 7:50 am

    Que acabem com o Shell, com a cerveja, com as mulheres bonitas e com todas as coisas boas da vida! Vamos viver em um monastério! Lá a vida é tão simples quanto um tablet, mas vale a pena? ;)

Este post é antigo (2011-12-08) e foi arquivado. O envio de novos comentários a este post já expirou.