Quando imparare la versione da riga di comando di uno strumento di programmazione? [chiuso]

12

Quasi tutti gli strumenti di programmazione hanno una versione da riga di comando; molti dei quali hanno anche una versione gui. Ci vuole un sacco di tempo e sforzo di memorizzazione per imparare i diversi comandi e le varie opzioni / opzioni della versione da riga di comando.

Quindi ho un paio di domande (che non sono necessariamente mutuamente esclusive):

1) Quando ti preoccuperesti di imparare / memorizzare i comandi nella versione da riga di comando di uno strumento che viene fornito anche in una versione gui?

2) Quali strumenti dovrei imparare dalla versione da riga di comando di? .... compilatori? sistema di controllo della versione? ecc. ecc.

    
posta explorest 05.02.2011 - 18:42
fonte

10 risposte

21

Posso vedere due motivi per cui dovresti imparare le opzioni della riga di comando di un programma:

  1. Quando è necessario automatizzare il programma in qualche modo - creare script, elaborazione batch ecc.

  2. Quando è necessario ottimizzare il comportamento del programma - ridurre l'impronta di memoria ecc.

Per quanto riguarda quali strumenti dovresti imparare - beh, questo dipende totalmente da cosa vuoi fare dopo.

    
risposta data 05.02.2011 - 18:54
fonte
9

Già un sacco di buone risposte. Aggiungo un altro punto di vista aggiuntivo.

Sostituisci la GUI con gli strumenti della riga di comando, quando vuoi estrarre l'essere umano dall'equazione / processo. Alcuni motivi e / o vantaggi per fare questo:

  • Ci si sbarazza dell'errore umano (quando si ripete il comando)
  • Eccellente per tutti i tipi di automazione, ad esempio implementazione, creazione o esecuzione di test con input casuali.
  • Diventi davvero un potere utente. Ti dà la possibilità di salire sulla scala della meta programmazione. Non devi fare tutte le azioni (fai clic sulla GUI) da solo, puoi facilmente copiarlo!
  • Puoi concatenare gli strumenti (pensa a pipe Unix).
  • Fai in modo che i computer svolgano il lavoro: non esegui ridimensionamenti, i computer lo fanno!

Quando farlo? Quando trovi ripetere te stesso.

Ovviamente c'è posto e tempo per la GUI. Ma se vuoi davvero sfruttare la potenza dei computer e navigare nell'onda della Legge di Moore, devi imparare a scrivere script dei tuoi compiti.

Modifica : bonus extra. Devi indossare questa T-shirt :)

    
risposta data 05.02.2011 - 22:21
fonte
7

Le mine sono:

1) Per diventare più produttivo . Per me, è più veloce fare cose in una shell piuttosto che semplicemente cliccando. Sto parlando dell'utilizzo di uno strumento, non dell'impostazione di un servizio / tool / etc, perché a volte è più veloce avere una procedura guidata e basta fare clic su Next Next Next , anche se queste procedure guidate esistono anche in riga di comando versioni:)

2) Per utilizzare la versione da riga di comando nelle applicazioni. Ad esempio, supponiamo di voler convertire un PDF in un file di testo . Se si utilizza la versione della GUI, va bene. Ma se fornisce anche un'interfaccia a riga di comando dove puoi fare qualcosa del tipo: ./pdf2text input.pdf output.txt , quindi se hai bisogno di sviluppare un'applicazione che legge il testo da un PDF, puoi facilmente usarlo, senza usare alcuna API, o facendo qualche tweaks ...

3) Per imparare le cose generali di un'applicazione. Ad esempio, se hai diff installato su Windows e un front-end per confronta due file. È perfetto. Ma cosa succede se devi usarlo su Linux ? Puoi trovare lo stesso front-end per Linux, ma cosa succede se non esiste? Dovrai imparare di nuovo come usarlo su Linux, installare un nuovo front-end e abituarti a lavorare con esso. Se hai imparato a usare la versione da riga di comando, non avresti avuto bisogno di questo;)

Informazioni su 3) ... alcune persone hanno molti problemi per abituarsi a lavorare con Git su Windows. Dicono che non ci sono buoni front-end su Windows, ma se impari semplicemente il modo da riga di comando, non avrai problemi. Funziona allo stesso modo. Certo, il problema è che a volte la gente ha paura della linea di comando ;)

Ti suggerisco di imparare le versioni da riga di comando di:

risposta data 05.02.2011 - 20:43
fonte
3

Perché è necessario salvare la sintassi dei parametri in memoria? Ecco perché man esiste e --help ( /? se ti trovi in winblowz land).

Trovo che posso cercare le opzioni per qualsiasi cosa in meno di un minuto. L'obiettivo è ricordare quali comandi fanno , quindi sai cosa cercare!

    
risposta data 05.02.2011 - 22:38
fonte
1

Pragmaticamente, si tratta di capire se lo strumento GUI manchi o meno una funzione o se è più veloce dalla riga di comando.

Il beneficio secondario dell'utilizzo di una riga di comando, tuttavia, è che avrai maggiori probabilità di leggere la documentazione e capire cosa sta realmente accadendo. Soprattutto con il tuo esempio di controllo della versione, farlo dalla riga di comando ti insegnerà un bel po '.

    
risposta data 05.02.2011 - 18:54
fonte
1
  • Compiler: sarà necessario per le build automatizzate
  • Crea o il tuo sistema di compilazione: errori di acquisizione automatici delle build
  • Controllo della versione: penso di sì, ma è il meno importante dei tre. Ma poi posso fare altre operazioni da riga di comando, ad es. grep attraverso i messaggi di modifica.

Ma non è necessario memorizzare le opzioni per il compilatore o il make; una volta impostati per il progetto, non è necessario cambiarli frequentemente.

    
risposta data 05.02.2011 - 19:20
fonte
1

I vantaggi dell'apprendimento di uno strumento a riga di comando, a mio parere, superano di gran lunga i vantaggi dell'uso della GUI. Ci sono molte volte che le GUI perdono funzionalità, tuttavia, non sarebbe corretto dire che questo è sempre il caso (ad esempio guardare cmake su Windows - non c'è motivo di usare la riga di comando al di fuori delle circostanze normali).

Per quanto riguarda la memorizzazione, non è necessario ricordare che il comando del programma viene impostato la prima volta che lo si utilizza. Basta aggiungere un segnalibro al manuale (se si utilizza il manuale online altrimenti utilizzare "man" su * nix) e se si necessita di una funzionalità particolare (che non è stata memorizzata), fare semplicemente riferimento al manuale. La memorizzazione su queste cose dovrebbe venire naturalmente usando. Ad esempio, eseguo "tar" e "gzip" dalla riga di comando molto spesso, ma dovrei fare riferimento al manuale per svolgere compiti che normalmente non faccio.

Soprattutto, se si spedisce un prodotto o si invia una specie di codice sorgente o altrimenti ad un altro sviluppatore, è molto più facile includere uno scheletro di comandi piuttosto che scrivere istruzioni dettagliate sull'uso della GUI. Se lo sviluppatore non capisce le opzioni della riga di comando che hai usato, lui o lei può semplicemente cercarle. Spiegare una GUI a qualcuno non è sempre la soluzione più portabile.

Saluti,
Dennis M.

    
risposta data 05.02.2011 - 19:41
fonte
0

Tutto, in modo da non dipendere da X11 / Windows per lo sviluppo. È bello essere in grado di svilupparsi completamente da un terminale.

    
risposta data 05.02.2011 - 20:40
fonte
0

Risposta breve: Il momento migliore per cambiare (ad esempio, utilizzare la riga di comando) è NOW . I veri uomini usano la tastiera. I veri uomini NON cliccano. Periodo.

Risposta più lunga: Nella prospettiva a lungo termine, oltre ad essere più produttivi e quindi più preziosi (meno probabilità di essere licenziati), usare commandline può / vorrà / renderti più intelligente (a causa di pratica sostanziale / memorizzazione) e più sano (perché usando entrambe le mani contemporaneamente nell'interfaccia a linea di comando invece di uno con il mouse è più adatto per l'ergonomia).

Ecco un articolo / saggio altamente raccomandato, Perché Windows causa stupidità ", a link

    
risposta data 15.02.2011 - 06:41
fonte
0

Non sono sicuro che dovresti ever provare a memorizzare gli switch su uno strumento da riga di comando. Se stai creando uno script di shell o qualsiasi altra cosa per automatizzare alcune attività, faresti meglio a cercare tutte quelle cose - trascorri ora i trenta secondi, per evitare ore di dolore a capire cosa è andato storto in seguito. Se stai usando lo stesso strumento da riga di comando più e più volte, forse dovresti creare uno script di shell ...

    
risposta data 02.04.2012 - 23:53
fonte

Leggi altre domande sui tag