Come ridurre il dolore del prompt dei comandi


38

Voglio imparare a usare meglio il prompt dei comandi su Windows per avere un maggiore controllo su ciò che faccio e solo per l'esperienza di apprendimento. Il fastidio principale che ho in questo momento è tutta la digitazione. Se voglio eseguire un'operazione su un file con un grande percorso sono seduto lì a scriverlo almeno per un minuto, e se commetto un errore devo premere il tasto freccia su, scorrere l'intero oggetto e trovare cosa ho sbagliato. Esistono strumenti per renderlo più semplice?


Mi piacerebbe che il prompt dei comandi di Windows avesse l'opzione "-o vi" che bash fa. Rende le cose molto velocemente (quando conosci un po 'di vi ovviamente)
OscarRyz

2
Completamento della scheda! Qualsiasi terminale decente lo avrà (e in caso contrario metterei in dubbio la capacità del terminale in cui ti trovi).
nuovo123456,

Soprattutto se stai imparando, impara PowerShell. Per le vecchie scoregge, imparare un nuovo trucco può essere difficile. Ma per i principianti, è bene ottenere questo consiglio in anticipo in modo da indirizzare le energie di apprendimento lungo il percorso migliore fin dall'inizio.
music2myear,

Risposte:


33

Se si intende utilizzare il prompt dei comandi solo in Windows, è possibile utilizzare Windows PowerShell , poiché è più semplice da utilizzare rispetto al prompt dei comandi iniziale e copia alcuni comportamenti dai terminali simil-nix. (Fornisce anche molte più funzionalità, ma all'inizio, almeno per me, è una "shell di comando più semplice").

foto di powershell

Modifica: immagine modificata per una più "amichevole".


a quanto pare di Wikipedia, l'immagine appare un po 'più dura di quella che sto usando in questo momento. Faccio ancora fatica ad imparare a Windows, per non parlare di uno di questi terminali * nix, ma lo verificherò grazie.

3
Sì, in questo caso forse non è davvero adattato. Per quanto ne sapessi prima i terminali * nix, questo PowerShell mi ha aiutato, poiché fornisce anche molti alias (scorciatoie) per i normali comandi * nix. In genere, "ls" funziona come "dir". In generale, è anche più coerente per il "completamento della scheda", a mio avviso, rispetto alla shell originale, che semplifica la navigazione.
Gnoupi,

1
PowerShell è davvero la strada da percorrere. Come utente di lunga data di cmd.exe posso dirti che è davvero limitato. Una volta che vuoi fare qualcosa di intelligente, finirai per avere bisogno di VBScript o qualcosa di simile, quindi dovrai impararlo. Ogni comando ha la sua sintassi e raramente sono simili, quindi devi imparare ognuno e non puoi indovinarlo facilmente. PowerShell è molto più potente e molto più coerente in modo da poter applicare ciò che hai imparato da un comando all'altro.
serialhobbyist,

Inoltre alcuni dei comandi PoSh hanno alias uguali ai comandi cmd per facilitare la transizione. Ad esempio dir funziona (con alias Get-ChildItem). Ma in PowerShell puoi anche indirizzare il registro e altre cose.
serialhobbyist,

1
Inoltre, PowerShell ha un testo di aiuto MOLTO migliore (IMO). Qualcuno ti ha mai detto di leggere le pagine cmd?
Ciao,

45

È possibile utilizzare la Tabchiave per completare automaticamente i nomi dei file. Anche se tieni presente che devi prima digitare abbastanza del nome del file per identificarlo in modo univoco altrimenti dovrai mescolare tra corrispondenze errate. Ad esempio, hai una cartella con questi file ed è la tua directory corrente in cui ti trovi cmd:

.
..
Su.exe
Sup.txt
SuperUser.COM

se si desidera completare automaticamente SuperUser.COM, è necessario digitare supequindi premere Tab, poiché nessuno degli altri file inizia con quei 4 caratteri. Nota che se hai digitato sue poi premuto Tab, potresti premere Tabaltre due volte per raggiungere SuperUser.COM oppure digitare ShiftTabper tornare indietro nell'elenco e arrivarci.

Un altro trucco è se hai il file in una finestra di Explorer, puoi trascinarlo nella cmdfinestra e digiterà il nome per te.


2
Funziona benissimo grazie, ma quando faccio una tabulazione tra i file a volte passo sopra il mio, c'è un modo per tornare indietro?

14
Sì, maiusc-tab :)
John T

2
Bonus infatti: shift+ <any key that cycles through tabs/windows>è sempre equivalente a invertire ad esempio alt-tab-> alt-shift-tab.
glenneroo,

27

Ecco alcuni suggerimenti e trucchi per l'utilizzo del prompt dei comandi, tra cui:

"... trascina e rilascia file o cartelle da una finestra di Explorer in un prompt dei comandi; questo inserisce il percorso citato come se lo avessi incollato manualmente ..."

Questo è un altro modo per ridurre la quantità di digitazione coinvolta nei percorsi di file lunghi.


3
Ora è utile. Non lo sapevo affatto.
EvilChookie,

1
Lo avevo già nella mia risposta originale: P
John T

Questo non funziona in Windows Vista o Server 2008, ma funziona di nuovo in Windows 7 e Windows Server 2008 R2. Vedi superuser.com/questions/27347/what-is-conhost-exe/28897#28897 per alcuni dettagli.
Reuben,

Anche l'altro consiglio è molto buono
Casebash,

21

Ecco l' elenco completo delle azioni dei tasti funzione:

F1 retypes the previous command one character at a time
F2 brings up a dialog and asks “Enter the char to copy up to:”
F3 retypes the last command in full
F4 brings up a dialog and asks “Enter char to delete up to:”
F5 as for F3
F6 Print EOF character (Ctrl+Z)
F7 brings up a dialog of all the recent command history
F8 brings up each of the most recent commands, one at a time
F9 brings up a dialog and asks “Enter command number:”

2
Qualcuno ha fatto funzionare F4? La finestra di dialogo appare ma non elimina.
Charles Beattie,

15

Premendo F7 verranno elencati gli ultimi comandi eseguiti.

cd \ per tornare alla c:directory.


2
Hmm, non lo sapevo.
Gnoupi,

FREDDO! (Questo è tutto ciò che ho da dire, ma una risposta deve essere lunga 15 caratteri ...)
Traveling Tech Guy

Uso sempre il prompt dei comandi e non sapevo che F7 uno - molto utile!
Giustino,

8

Spesso è possibile ridurre la digitazione trovandosi nella directory corretta. È possibile aprire una shell dei comandi nella directory visualizzata in una finestra di Explorer aggiungendo cmd.exe nelle associazioni del tipo di cartella.

(Strumenti - Opzioni cartella - Tipi di file - Cartella - Avanzate - Nuovo - cmd)

Quindi, quando si seleziona cmd facendo clic con il tasto destro su quella cartella, la finestra di comando che si aprirà avrà come directory corrente quella della cartella su cui si è fatto clic.

testo alternativo


1
per gli utenti di XP, MS Power Toys per XP fornirà anche questo per te: microsoft.com/windowsxp/Downloads/powertoys/Xppowertoys.mspx
akf

Sapevo che c'erano vari widget che facevano questo per te, ma mi piace sempre un'auto-configurazione che sostituirà un widget. Grazie per queste informazioni
music2myear,

7

Se Windows PowerShell è troppo travolgente, ci sono anche alcune shell di sostituzione cmd:

E altro ancora può essere trovato tramite Google.


+1 per cygwin: l'uso di quel set di strumenti significa che i trucchi che impari sono portabili su installazioni Linux e in una certa misura su altri sistemi operativi (BSD, MacOS, ...) in cui sono presenti strumenti uguali o simili e shell bash-a-like. Sebbene se PowerShell è schiacciante, è probabile che lo sia anche Cygwin.
David Spillett,

+1 per Console, che non è una shell sostitutiva, ma un terminale migliore per le shell esistenti.
wfaulk,

+1 per Cygwin, ma l'emulatore è terribile. Suggerirei Terminator + Cygwin, in quel caso.
James,

Sono un grande fan di TCC (è stato da quando era 4DOS, intorno al 1989); Lo preferisco di gran lunga a PowerShell. E ora che TCC / LE è freeware, posso inviare script .BTM completi di un'installazione TCC :-) Si noti che PowerCMD e Console non sono processori di comando sostitutivi, ma terminali sostitutivi. Personalmente, utilizzo la console con più schede, ciascuna contenente una sessione TCC (o Cmd o Cygwin).
Billdehaan,

andlinux.org andLinux è molto più intuitivo di Cygwin.

7

Qualcosa che uso costantemente durante l'utilizzo del prompt dei comandi è la freccia su (e la freccia giù) per scorrere i comandi utilizzati di recente. Soprattutto quando ho inserito un comando lungo e desidero solo modificarne una parte senza riscriverlo.

Un breve esempio se:

c:\>ping 192.168.1.1

E poi vuoi fare un ping ad un altro indirizzo simile, puoi semplicemente premere la freccia su. Il comando appare sul prompt con il cursore alla fine. Ciò semplifica il backspace una volta e cambia l'indirizzo in 192.168.1.2 o qualcosa di simile.


4

Ti suggerisco di usare il prompt dei comandi.

Lo so, sembra faceto, ma questo è un consiglio serio - se non immediatamente utile ---. C'è molto da sapere e per assorbirlo profondamente, è necessario riutilizzarlo più volte.


9
Sì, lo vuole, ma vorrebbe sapere cosa può farci, credo. Perché "bruteforcing" i comandi disponibili potrebbero richiedere del tempo.
Gnoupi,

Ho imparato il prompt dei comandi scrivendo un ambizioso script batch di distribuzione del sistema. Ho cercato di incorporare tutte le funzionalità che mi sono venute in mente e che avrebbero giovato al compito desiderato continuando a porre domande nei forum e di altri che conoscevo fino a quando non ha funzionato. 1500 linee e tanta buona esperienza che uso ancora.
music2myear,

@ music2myear hai 28 anni, abbastanza grande. Dove sei stato che non hai imparato il DOS ai suoi tempi?
barlop

Mio padre ha comprato il nostro primo computer quando avevo 10 anni. DOS 4, immagino che fosse, e ho vinto 3.1. Mi interessava solo dipingere app e quali giochi poteva giocare. Non è stato fino al 98 che ho avuto il mio computer per studiare ingegneria. E non è stato fino a quando quel sistema ha iniziato ad avere problemi e ho dovuto ripararlo da solo che mi sono davvero appassionato di tecnologia e computer. È stato nel 2003 che ho ottenuto un lavoro facendo supporto IT e ho creato lo script batch di cui ho parlato in precedenza. Ero solo un inizio in ritardo per gli standard geek.
music2myear il

4

Abilita la modalità di modifica rapida per:

  • Copia testo per: seleziona testo + INVIO
  • Incolla il codice premendo il tasto destro.

inserisci qui la descrizione dell'immagine

Cambio anche il carattere e il layout in qualcosa di più piacevole della bitmap predefinita.

inserisci qui la descrizione dell'immagine

Infine aggiungi più righe e colonne alla finestra di modifica e più righe al buffer.

inserisci qui la descrizione dell'immagine

Le schermate sono in spagnolo, ma sono esattamente nello stesso posto in inglese


1
La modifica della larghezza della finestra della console è una delle prime cose che faccio su un nuovo computer.
Giustino,

+1 L'altezza predefinita è altrettanto inutile.
glenneroo,

2

Prendi una copia di Cygwin e aggiungi la sua cartella \ bin alla variabile PATH. È come un prompt dei comandi utilizzabile!

Ma davvero, l'unico modo per abituarsi è abituarsi, quindi usalo!


Ho difficoltà a vivere con Windows senza il mio prompt bash
jweede

1

Se si utilizza XP (non si conosce Vista) è possibile scaricare un powertoy che aggiunge una voce di menu "Apri finestra di comando qui" al menu di scelta rapida della cartella di Explorer.

Qualcos'altro che ho trovato utile è smettere di usare i percorsi predefiniti di Windows per tutto. Sono troppo difficili da ricordare e gli spazi possono diventare un problema. Usare qualcosa di più simile alla struttura delle directory di Linux può essere un vero risparmio di tempo. Le mie directory sono simili a queste (a titolo di esempio):

 - C:\usr\bin\firefox 
 - C:\usr\bin\7zip
 - C:\usr\bin\dropbox

 - C:\usr\lang\cpp\gcc
 - C:\usr\lang\cpp\lib\qt_4_5_0
 - C:\usr\lang\python\py25

 - C:\usr\home\wrksp\cpp
 - C:\usr\home\doc
 - C:\usr\home\wrksp\svn

Molto più facile da ricordare.


5
Vista (almeno Ultimate Edition) ha questo per impostazione predefinita, ma nascosto all'utente medio. Tieni premuto MAIUSC e quindi fai clic con il pulsante destro del mouse su una cartella nel riquadro Explorer di destra e dovresti vedere "Apri finestra di comando qui".
GAThrawn

@GAThrawn, ho Vista Home Premium e confermo di aver visto anche questa funzione lì.
Shivasubramanian,

"C: \ usr \ bin \ 7zip" è molto più veloce da raggiungere rispetto a "c: \ Programmi \ 7zip"? In termini di sequenze di tasti .. c: \ prog <tab> \ 7zip vs c: \ usr \ bin \ 7zip forse i file di programma sono più veloci da raggiungere?
barlop

1

Personalmente penso che se vuoi imparare ad usare il Prompt dei comandi e non lo trovi gioioso, probabilmente non hai bisogno di usare il Prompt dei comandi.

Non appena devi toccare una CLI, la troverai utile e persino piacevole. Se stai provando a fare i tuoi compiti quotidiani con esso, allora stai sbattendo la testa contro un muro.

Una volta che hai familiarità con il prompt dei comandi, puoi migrare le attività quotidiane lì solo perché è più facile che raggiungere sempre il mouse :)


Così vero. La necessità genera familiarità.
J. Polfer,

1

Utilizzare le variabili di ambiente.

Ad esempio, invece di digitare c: \ documenti e impostazioni \ nomeutente puoi semplicemente usare% userprofile%. Per un elenco di variabili di ambiente standard, digitare SET e premere Invio al prompt dei comandi.

Inoltre, acquisisci familiarità con i comandi a tua disposizione: mi piacciono due siti per loro: www.ss64.com e www.robvanderwoude.com

Puoi anche imparare gli script batch: in tal modo, puoi automatizzare le attività utilizzate di frequente.


1
  • Per incollare in una finestra di comando utilizzando la tastiera, premere alt-spazio, e, p.
  • Per ripetere l'ultimo comando iniziato con la lettera "d" (ad esempio; potrebbe essere un carattere qualsiasi) premere d e quindi F8.

Quest'ultimo suggerimento può sembrare un po 'oscuro, ma quando passi molto tempo nella console può essere molto più veloce e più semplice che premere più volte la freccia su o F8.


1

Ci sono alcuni ottimi consigli pubblicati in questa discussione!

A mio avviso, la pubblicazione di sostituzioni CMD è piuttosto "Off Topic". Ma sembra essere OK qui, quindi potrei aggiungere ColorConsole all'elenco.

L' interfaccia a schede , il menu dei comandi preferiti , Copia / Taglia e incolla e in effetti l' esportazione HTML sono funzioni molto utili che non voglio più perdere.

ps: prova questo nel thread "Must have Firefox addons": Ragazzi, prendi Opera, hai le chicche integrate! :)



0

Sono d'accordo con il suggerimento di utilizzare PowerShell. Inoltre trovo incredibilmente utile impostare funzioni e alias per ridurre le attività comuni a un minor numero di lettere digitate.

Ad esempio, per avviare un collegamento http ho impostato questo nel mio profilo PowerShell:

function browse-url { param($url="http://www.google.com/"); (new-object -com shell.application).ShellExecute($url); }
set-alias -name "browse" -value "browse-url"

e poi scrivo solo browseper aprire google o browse http://....per aprire un collegamento specifico

Un altro esempio per elencare file o directory:

function lsa { param($path="."); Get-ChildItem -Force $path }
set-alias -name "la" -value "lsa"
set-alias -name "ll" -value "lsa"
function lsd { param($path="."); lsa $path | ? { $_.PSIsContainer } }
function lsf { param($path="."); lsa $path | ? { !$_.PSIsContainer } }
function lat { param($path="."); lsa $path | sort -property lastwritetime -descending }
function latr { param($path="."); lsa $path | sort -property lastwritetime }
function fi { param($pat,$root="."); gci -r $root | ? {$_.Name -match $pat} | % { $_.FullName } }

E poi uso lsaper mostrare tutti gli elementi in una directory, inclusi quelli nascosti. Usa lao llcome alias anche più brevi.

Uso lsdper elencare solo le cartelle, lsfper elencare solo i file, latper elencare ordinati in base all'ultima ora di scrittura e latrper elencare in base al tempo nella direzione opposta.
fiè stato impostato come semplice sostituto del findcomando unix , basta cercare ricorsivamente un nome file.


0

Installa Xplorer2 sostitutivo di Windows Explorer . Include uno strumento del prompt dei comandi che consente tutte le funzioni del prompt dei comandi CON LA GUI di Windows come l'uso del mouse, il tasto destro del mouse per le funzioni di copia e incolla ecc. Dai un'occhiata allo screenshot qui sotto.

Schermata del prompt dei comandi

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.