o que são considerados comandos antigos e poderosos? [fechadas]

0

Eu me deparei com os termos awk e sed, o awk percorre todas as linhas e executa uma tarefa sempre que uma linha atende a uma determinada condição, o sed pode manipular um fluxo de entrada antes de ir além da saída. Eu não sei pessoalmente para que finalidade usá-los, mas notei que eles são referidos como poderosos comandos sagrados. Além desses dois, quais comandos / aplicativos têm esse status?

    
por Abdul Al Hazred 12.02.2015 / 14:36

2 respostas

1

Para definir comandos "poderosos", é preciso primeiro decidir o que isso significa.

O primeiro requisito é universalidade. Algumas ferramentas são muito dedicadas a uma coisa, mas podem resolver uma grande variedade de problemas. gnuplot é uma ferramenta de plotagem muito básica que é tão boa que, mesmo nos círculos científicos, você quase não precisa de mais nada. E uma única ferramenta que pode processar expressões regulares, pode ser usada para quase qualquer coisa, e é por isso que sed é muito poderoso. Você pode fazer conversões entre formatos, extração de dados, análise, pesquisa, substituição e quase tudo que você possa imaginar. awk é semelhante, mas também muito diferente: significa mais para dados estruturados, analisados linha por linha, de acordo com padrões, e está mais próximo de linguagens de programação mais convencionais (tem mais fluxo de controle e assim por diante). Uma vez dominadas estas ferramentas, você pode resolver qualquer problema com elas: ambas estão atualizadas e podem, em princípio, resolver qualquer problema, mesmo que não esteja relacionado ao processamento de strings - universalidade é o nível mais alto de poder: você pode fazer qualquer coisa. Mas você tem que "querer" tentar brincar com isso. Daqui segue o próximo requisito.

O segundo componente é legado e tradicional: comandos que existem há 40 anos e têm uma enorme base de código, são também os mais estáveis (desenvolvimento longo), confiáveis (eles não podem parar de desenvolvê-los ou mudar a funcionalidade porque 40 anos de scripts quebrariam), e há um grande número de gurus por aí que podem fazer mágica. Isso significa que uma ferramenta que é amplamente conhecida e uma primeira escolha para o uso de muitas pessoas, não é necessariamente a que foi a melhor no início, mas a que "ficou presa". No entanto, se muitas pessoas o usam, provavelmente não é ruim, mesmo que algumas coisas possam ser feitas melhor. A idade é importante aqui: python é extremamente poderoso como uma linguagem, mas ainda não alcançou o status dos antigos gnu toolkits - ainda dá uma sensação de novidade. bash é um padrão de ouro não apenas porque é intuitivo e poderoso, mas também porque é enviado como padrão em quase todos os lugares e todo mundo o usa.

O status da seita é muito importante aqui: as pessoas sentem orgulho de fazer parte de uma subcultura nerd. Posso dizer em primeira mão que me senti muito bem quando dominei emacs e latex , e também adotei o ódio por vi quase que imediatamente: em parte porque não é uma interface intuitiva para mim, mas sim Claro, isso é reforçado quando você descobre que outras pessoas se sentem assim. O que estou tentando dizer é que uma ferramenta poderosa também é poderosa socialmente: uma ferramenta menos conhecida ou mal projetada não pode despertar emoções tão strongs nas pessoas (nem negativas nem positivas - elas são apenas brandas). Algumas das ferramentas que mencionei têm seguidores que podem ser comparados a trekkies - o que não é uma conquista ruim para um software. awk pode ser considerado como um predecessor de perl , e perl definitivamente tem seguidores: a maioria das pessoas concorda que perl tem uma legibilidade terrível e muitas peculiaridades desajeitadas. É também a linguagem mais poderosa focada em cordas, mas sem o status de cult, a maioria das pessoas pode desistir dela mais cedo, em vez de brincar e tentar salvar o mundo e preparar o jantar com a mesma ferramenta que deveria ser mastigada um monte de páginas da web.

Finalmente, pessoas como consistência, elegância e caráter ... uma ferramenta pode ser poderosa em termos de capacidades, mas ninguém vai querer usá-la porque não parece certo. Uma ferramenta poderosa deve ser intuitiva, pelo menos, para as pessoas que gostam de usá-la. Eu não estou começando flamewars aqui, mas certamente a maioria dos leitores encontrará seus próprios exemplos de design infeliz e desajeitado.

Em suma: bem concebido para um propósito bem definido, universal, legado e acompanhamento, e ... uma "alma". Essa seria minha definição.

    
por 12.02.2015 / 15:37
3

Uma maneira de classificar alguns comandos "antigos" - embora não para "mais poderosos" - é que eles são comandos embutidos, ou seja, um comando ou uma função, chamada a partir de um shell, executada diretamente no próprio shell. de um programa executável externo que o shell carregaria e executaria.
Exemplos incluem logout, cd, echo e histórico.

Você pode ver se um comando é embutido com

builtin [command]

e..g

builtin echo

NO output significa que é um builtin (usa a filosofia unix para nada por ok)

Se o comando não for incorporado, por exemplo Então,

builtin ls

retorna um erro -bash builtin: cp: not a shell builtin

Quanto aos comandos 'mais poderosos' como sed e awk , eu realmente removo isso da questão, pois parece muito subjetivo e improvável que resulte em um argumento definitivo.

    
por 12.02.2015 / 14:52