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


12

Quasi ogni strumento di programmazione ha una versione da riga di comando; molti dei quali hanno anche una versione gui. Ci vuole molto tempo e sforzi di memorizzazione per apprendere i diversi comandi e le varie opzioni / opzioni della versione da riga di comando.

Quindi ho un paio di domande (che non si escludono necessariamente a vicenda):

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

2) Quali strumenti devo imparare la versione da riga di comando? .... compilatori? sistema di controllo versione? ecc. ecc


Se lo strumento che stai utilizzando fornisce un'interfaccia da riga di comando, ma non dispone di una documentazione decente, allora sarei cauto nell'utilizzare tale strumento. In tal caso, RTFM. Non è così difficile, e se arriva a quel punto, quindi fai una domanda su StackOverflow.com Se hai bisogno di capire come fare qualcosa dalla riga di comando, ho fiducia che puoi. Se non sei sicuro di dover capire qualcosa, probabilmente non lo fai. La vita è piena di cose interessanti al di fuori del lavoro, se solo ci fosse abbastanza tempo ...
Giobbe

Risposte:


21

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

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

  2. Quando è necessario ottimizzare il comportamento del programma, ridurre l'ingombro della memoria, ecc.

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


1
Volete sempre essere in grado di script di un programma per essere in grado di automatizzarlo ...

1
@ Thorbjørn - non è quello che ho detto? O non ero chiaro?
ChrisF

3
Sì. Ho appena sottolineato la parte dell'automazione, non capendo che in anticipo causerà dolore in seguito quando si cerca di adattare le metodologie attuali a qualcosa di programmabile.

9

Molte buone risposte già. Aggiungo un ulteriore punto di vista aggiuntivo.

Sostituisci la GUI con gli strumenti da riga di comando, quando vuoi far uscire l'umano dall'equazione / processo. Alcuni motivi e / o benefici per farlo:

  • Sbarazzati dell'errore umano (quando ripeti il ​​comando)
  • Eccellente per tutti i tipi di automazione, ad esempio distribuzione, costruzione o esecuzione di test con input randomizzati.
  • Devi diventare davvero un potente utente. Ti dà la possibilità di salire sulla scala della meta-programmazione. Non devi fare ogni azione (fai clic sulla GUI) da solo, puoi facilmente copiarlo!
  • Puoi concatenare gli strumenti insieme (pensa ai tubi Unix).
  • Fai lavorare i computer: non ridimensionare, i computer fanno!

Quando farlo? Quando trovi che ti stai ripetendo.

Naturalmente c'è spazio e tempo per la GUI. Ma se vuoi davvero sfruttare la potenza dei computer e navigare sull'onda della Legge di Moore, devi imparare a scrivere i tuoi compiti.

Modifica : bonus extra. Indossa questa maglietta :)


7

Le mie sono:

1) Per diventare più produttivi . Per me, è più veloce fare le cose in una shell che semplicemente fare clic. Sto parlando dell'uso di uno strumento, non della creazione di un servizio / strumento / ecc., Perché a volte è più veloce avere una procedura guidata e fare clic su Next Next Next, anche se quei maghi esistono anche nelle versioni da riga di comando :)

2) Per utilizzare la versione della riga di comando nelle applicazioni. Ad esempio, supponiamo che tu voglia convertire un PDF in un file di testo . Se usi la versione della GUI, va bene. Ma se fornisce anche un'interfaccia da riga di comando in cui puoi fare qualcosa di simile:, ./pdf2text input.pdf output.txtquindi se hai bisogno di sviluppare un'applicazione che legge il testo da un PDF, puoi facilmente usarlo, senza usare alcuna API o fare alcune modifiche. .

3) Imparare le cose generali di un'applicazione. Ad esempio, se hai installato diff su Windows e un front-end per confrontare due file. È perfetto. E se fosse necessario 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 lavorarci. Se hai imparato ad usare la versione da riga di comando, non ne avresti avuto bisogno;)

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

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

  • Compilatori come gcc
  • Debugger come gdb
  • Git ;)
  • e molti strumenti in GNU / Linux che puoi far funzionare su Windows come egrep , awk , find , ...

Yeahhhh +1 per git: D Sebbene diff sia l'unico esempio per cui non userei il comando reale; Preferisco vimdiff (anche se suppongo che tecnicamente sia il terminale, quindi qualunque cosa)
alternativa il

Hai ragione @mathepic, ma vimdiffè anche uno strumento da riga di comando, no?
Oscar Mederos,

Allo stesso tempo le sue cure (penso, non sono sicuro), quindi faccio una piccola distinzione.
alternativa il

sì, ma prendo anche quelli come strumenti da riga di comando :)
Oscar Mederos,

@mathepic: la risposta alla tua preoccupazione:gvimdiff
Lie Ryan,

3

Perché è necessario eseguire il commit della sintassi dei parametri in memoria? Ecco perché manesiste e --help( /?se sei nella terra di Winblowz).

Trovo di poter cercare le opzioni per qualsiasi cosa in meno di un minuto. L'obiettivo è quello di ricordare ciò che i comandi fanno , in modo da sapere cosa cercare in su!


1

Pragmaticamente, dipende dal fatto che lo strumento gui manchi o meno una funzione, o se sia più veloce dalla riga di comando.

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


1
  • Compilatore: sarà necessario per build automatizzate
  • Crea o il tuo sistema di compilazione: build automatizzate rilevano errori
  • Controllo della versione: penso di sì, ma è il meno importante dei tre. Ma poi posso fare altre operazioni da riga di comando, ad esempio grep attraverso i messaggi di modifica.

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


1

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

Per quanto riguarda la memorizzazione, non è necessario ricordare il comando impostato dal programma la prima volta che lo si utilizza. Aggiungi semplicemente il segnalibro al manuale (se usi il manuale online, altrimenti usa "man" su * nix) e se hai bisogno di una particolare funzionalità (che non hai memorizzato), fai semplicemente riferimento al manuale. La memorizzazione su queste cose dovrebbe venire naturalmente dall'uso. Ad esempio, eseguo "tar" e "gzip" dalla riga di comando molto spesso, ma dovrei fare riferimento al manuale per eseguire attività che normalmente non faccio.

Soprattutto, se stai spedendo un prodotto o inviando una sorta di codice sorgente o altrimenti a un collega sviluppatore, è molto più facile includere uno scheletro di comandi piuttosto che scrivere istruzioni dettagliate sull'uso della GUI. Se lo sviluppatore non comprende le opzioni della riga di comando utilizzate, può semplicemente cercarle. Spiegare una GUI a qualcuno non è sempre la soluzione più portatile.

Saluti,
Dennis M.


0

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


Sono d'accordo con te;)
Oscar Mederos,

0

Risposta breve: il momento migliore per cambiare (cioè usare la riga di comando) è ADESSO . I veri uomini usano la tastiera. I veri uomini NON fanno clic. Periodo.

Risposta più lunga: in una prospettiva a lungo termine, oltre ad essere più produttivo e quindi più prezioso (meno probabilità di essere licenziato), l'uso della linea di comando può / vorrà / dovrebbe renderti più intelligente (a causa di una pratica / memorizzazione sostanziale) e più sano (perché usare entrambe le mani contemporaneamente nell'interfaccia della riga di comando invece di una con il mouse è più adatto all'ergonomia).

Ecco un articolo / saggio altamente raccomandato, " Perché Windows causa la stupidità ", all'indirizzo http://www.over-yonder.net/~fullermd/rants/winstupid/1


3
Scherzando o no, che la vera merda degli uomini non vincerà alcun premio, anche se sono d'accordo al 100% che l'uso della CLI è molto più produttivo, il rumore macho è semplicemente stupido.
ocodo,

0

Non sono sicuro che dovresti mai provare a memorizzare le opzioni su uno strumento da riga di comando. Se stai creando uno script di shell o qualsiasi altra cosa per automatizzare qualche attività, faresti meglio a cercare tutte quelle cose - trascorri ora i trenta secondi, per evitare ore di dolore per capire cosa è andato storto in seguito. Se usi sempre lo stesso strumento da riga di comando, forse dovresti creare uno script shell ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.