Quando aprender a versão da linha de comando de uma ferramenta de programação? [fechadas]

12

Quase toda ferramenta de programação possui uma versão de linha de comando; muitos dos quais também têm uma versão gui. É preciso muito tempo e esforço de memorização para aprender os diferentes comandos e várias opções / opções da versão da linha de comando.

Então, eu tenho algumas perguntas (que não são necessariamente mutuamente exclusivas):

1) Quando você se incomodaria em aprender / memorizar os comandos na versão de linha de comando de uma ferramenta que também vem em uma versão GUI?

2) De quais ferramentas devo aprender a versão da linha de comando? .... compiladores? sistema de controle de versão? etc etc

explorador
fonte
Se a ferramenta que você está usando fornece uma interface de linha de comando, mas não possui documentação decente, seria prudente usar essa ferramenta. Se isso acontecer, então RTFM. Não é tão difícil e, se chegar a esse ponto, faça uma pergunta no StackOverflow.com. Se você precisar descobrir como fazer algo na linha de comando, acredito que você pode. Se você não tem certeza se precisa descobrir algo, provavelmente não precisa. A vida é cheia de coisas interessantes fora do trabalho, se ao menos houvesse tempo suficiente ...
Job

Respostas:

21

Eu posso ver duas razões pelas quais você deve aprender as opções de linha de comando de um programa:

  1. Quando você precisa automatizar o programa de alguma forma - crie scripts, processamento em lote etc.

  2. Quando você precisar otimizar o comportamento do programa - reduza o consumo de memória, etc.

Quanto a quais ferramentas você deve aprender - bem, isso depende totalmente do que você deseja fazer em seguida.

ChrisF
fonte
1
Você sempre quer ser capaz de roteiro de um programa para ser capaz de automatizar isso ...
1
@ Thorbjørn - não foi o que eu disse? Ou não estava claro?
ChrisF
3
Sim. Eu apenas enfatizei a parte da automação - não entender que logo no início causará dor ao tentar adaptar as metodologias atuais em algo que possa ser escrito.
9

Muitas boas respostas já. Eu adiciono mais um ponto de vista adicional.

Você substitui a GUI por ferramentas de linha de comando quando deseja tirar o humano da equação / processo. Alguns motivos e / ou benefícios para fazer isso:

  • Você se livra do erro humano (ao repetir o comando)
  • Excelente para todo tipo de automação, por exemplo, implantação, construção ou execução de testes com entradas aleatórias.
  • Você realmente é um usuário avançado . Dá a você a opção de subir na escada da meta programação. Você não precisa fazer todas as ações (clique na GUI), você pode facilmente criar um script!
  • Você pode encadear ferramentas (pense em tubos Unix).
  • Faça os computadores fazerem o trabalho - você não escala, os computadores fazem!

Quando fazer isso? Quando você se encontra se repetindo.

Claro que há lugar e hora para a GUI. Mas se você realmente deseja aproveitar o poder dos computadores e navegar na onda da Lei de Moore, precisa aprender a criar scripts para suas tarefas.

Edit : Bônus extra. Você pode usar essa camiseta :)

Maglob
fonte
7

Minas são:

1) Para se tornar mais produtivo . Para mim, é mais rápido fazer as coisas em um shell do que apenas clicar. Estou falando de usar uma ferramenta, não de configurar um serviço / ferramenta / etc, porque às vezes é mais rápido ter um assistente e apenas clicar Next Next Next, embora esses assistentes também existam nas versões da linha de comando :)

2) Para usar a versão da linha de comando em seus aplicativos. Por exemplo, suponha que você deseje converter um PDF em um arquivo de texto . Se você usa a versão da GUI, tudo bem. Mas se ele também fornece uma interface de linha de comando na qual você pode fazer algo como : ./pdf2text input.pdf output.txt, se precisar desenvolver um aplicativo que leia texto de um PDF, poderá usá-lo facilmente, sem usar APIs ou fazer alguns ajustes. .

3) Para aprender as coisas gerais de uma aplicação. Por exemplo, se você possui o diff instalado no Windows e um front-end para comparar dois arquivos. Perfeito. Mas e se você precisar usá-lo no Linux ? Você pode encontrar o mesmo front-end para Linux, mas e se ele não existir? Você precisará aprender novamente como usá-lo no Linux, instalar um novo front-end e se acostumar a trabalhar com ele. Se você aprendeu a usar a versão da linha de comando, não precisaria dela;)

Cerca de 3) ... algumas pessoas têm muitos problemas para se acostumarem a trabalhar com o Git no Windows. Eles dizem que não há bons front-ends no Windows, mas se você apenas aprender a linha de comando, não terá problemas. Isso funciona do mesmo jeito. Obviamente, o problema é que às vezes as pessoas têm medo da linha de comando ;)

Eu sugiro que você aprenda versões de linha de comando de:

  • Compiladores como o gcc
  • Depuradores como o gdb
  • Git ;)
  • e muitas ferramentas no GNU / Linux que você pode trabalhar no Windows, como egrep , awk , find , ...
Oscar Mederos
fonte
Yeahhhh +1 para git: D Embora diff seja o único exemplo para o qual não usaria o comando real; Eu prefiro vimdiff (embora eu acho que tecnicamente isso é o terminal também, então qualquer que seja)
alternativa
@mathepic você está certo, mas vimdifftambém é uma ferramenta de linha de comando, não é?
Oscar Mederos
Ao mesmo tempo, ele amaldiçoa (acho, não tenho certeza), então faço uma pequena distinção.
alternativa
sim, mas eu estou tomando as como ferramentas de linha de comando também :)
Oscar Mederos
@mathepic: A resposta para sua preocupação:gvimdiff
Lie Ryan
3

Por que você precisa confirmar a sintaxe do parâmetro na memória? É por isso que manexiste e --help( /?se você estiver em terra winblowz).

Acho que posso procurar as opções para qualquer coisa em menos de um minuto. O objetivo é lembrar o que os comandos fazem , para que você saiba o que procurar!

Orbling
fonte
1

Pragmaticamente, tudo se resume a falta ou não de um recurso da ferramenta de interface gráfica ou se é mais rápido na linha de comando.

O benefício colateral de usar uma linha de comando, no entanto, é que você provavelmente lerá a documentação e descobrirá o que realmente está acontecendo. Especialmente com o seu exemplo de controle de versão, fazer isso na linha de comando o ensinará bastante.

jdl
fonte
1
  • Compilador: será necessário para compilações automatizadas
  • Make ou seu sistema de construção: construções automatizadas capturam erros
  • Controle de versão: acho que sim, mas é o menos importante dos três. Mas então eu posso fazer outras operações de linha de comando, por exemplo, grep através das mensagens de alteração.

Mas você não precisa memorizar as opções para o compilador ou o make; Uma vez configurados para o projeto, você não precisará alterá-los com frequência.

Brian Carlton
fonte
1

Os benefícios de aprender uma ferramenta de linha de comando, penso, superam em muito os benefícios do uso da GUI. Há muitas vezes que as GUI perdem recursos, no entanto, não seria justo dizer que esse é sempre o caso (por exemplo, veja cmake no Windows - não há razão para usar a linha de comando fora das circunstâncias normais).

No que diz respeito à memorização, não há uma necessidade específica de lembrar que o comando do programa foi definido na primeira vez que você o usou. Marque o manual como favorito (se você usar o manual on-line, use "man" no * nix) e se precisar de uma funcionalidade específica (que você não memorizou), consulte o manual. A memorização dessas coisas deve vir naturalmente pelo uso. Por exemplo, eu executo "tar" e "gzip" na linha de comando com muita frequência, mas precisaria fazer referência ao manual para realizar tarefas que normalmente não faço.

Acima de tudo, se você estiver enviando um produto ou enviando algum tipo de código-fonte ou de outra forma a um desenvolvedor, é muito mais fácil incluir um esqueleto de comandos do que escrever instruções detalhadas sobre o uso da GUI. Se o desenvolvedor não entender as opções de linha de comando que você usou, ele ou ela pode simplesmente procurá-las. Explicar uma GUI para alguém nem sempre é a solução mais portátil.

Atenciosamente,
Dennis M.

RageD
fonte
0

Tudo, para que você não dependa do X11 / Windows para desenvolvimento. É bom poder desenvolver completamente a partir de um terminal.

alternativo
fonte
Eu concordo com você;)
Oscar Mederos
0

Resposta curta: A melhor hora para mudar (ou seja, usar a linha de comando) é AGORA . Homens de verdade usam teclado. Homens de verdade NÃO clicam. Período.

Resposta mais longa: na perspectiva de longo prazo, além de ser mais produtivo e, portanto, mais valioso (menos provável de ser demitido), o uso da linha de comando pode / irá / deve torná-lo mais inteligente (devido à prática / memorização substancial) e mais saudável (porque usar as duas mãos simultaneamente na interface da linha de comando em vez de uma com o mouse é mais adequado para ergonomia).

Aqui está um artigo / ensaio altamente recomendado, " Por que o Windows causa estupidez ", em http://www.over-yonder.net/~fullermd/rants/winstupid/1


fonte
3
Brincando ou não, essa porcaria de homens de verdade não vai ganhar nenhum prêmio, mesmo que eu concorde 100% de que usar o CLI seja muito mais produtivo, o barulho dos machos é simplesmente idiota.
Ocodo 15/02
0

Eu não tenho certeza que você deve sempre tentar memorizar as chaves em uma ferramenta de linha de comando. Se você estiver criando um script de shell ou qualquer outra coisa para automatizar alguma tarefa, é melhor procurar todas essas coisas - gaste os trinta segundos agora, para evitar horas de dor para descobrir o que deu errado mais tarde. Se você estiver usando a mesma ferramenta de linha de comando repetidamente, talvez faça um shell script ...

mjfgates
fonte