Windows-Linux commands cheat-sheet
In un sistema operativo, una shell (o terminale) è un programma che permette agli utenti di comunicare con il sistema e di avviare altri programmi. È una delle componenti principali di un sistema operativo, insieme al kernel. La shell è l'ambiente di lavoro attraverso il quale è possibile impartire al computer comandi, richiedendo l'esecuzione di programmi.
Esistono molti tipi di shell; quando si parla semplicemente di "shell", o anche di "terminale", si intende di solito una shell testuale con cui l'utente interagisce attraverso un terminale o un emulatore di terminale.
Una shell testuale è un programma dotato di un'interfaccia a riga di comando, che viene eseguito all'interno di un terminale testuale. L'utente digita un comando, ovvero richiede l'esecuzione di un programma, e il programma eseguito può interagire con l'utente e/o mostrare dati sul terminale.
Una delle più note shell testuali è il tradizionale "prompt dei comandi", ben noto a quanti hanno familiarità con i sistemi operativi DOS (MS-DOS, DR-DOS, FreeDOS). Per gli utenti di MS-DOS e di alcuni dei sistemi Microsoft Windows la shell è il programma command.com. Anche i sistemi della famiglia Windows NT dispongono di una shell testuale, il programma cmd.exe.
Nei sistemi operativi Unix e Unix-like esistono diverse shell testuali; tra le più note vi sono sicuramente Bash (Bourne-Again Shell) e la Korn shell, ma ne esistono altre come la C shell, con un insieme di funzionalità e caratteristiche di base in comune.
Sono inoltre presenti potenti strumenti per collegare tra loro diversi programmi per svolgere compiti complessi, come le pipe e la redirezione. I programmi Unix più propensi ad essere collegati in questo modo sono detti filtri.
Le moderne shell testuali posseggono diverse funzionalità ergonomiche, tra le quali:
-
la cronologia dei comandi eseguiti (o command history), che permette di ripetere gli ultimi comandi digitati;
-
il completamento dei comandi (o completion), che permette di completare automaticamente nomi di programmi e di file
-
il job control, che permette di avviare in background più programmi o di sospenderli temporaneamente.
Le shell testuali dei sistemi Unix integrano un linguaggio di scripting con il quale è possibile scrivere veri e propri programmi che possono ad esempio automatizzare le operazioni di amministrazione di sistema, semplificandola. La sintassi di tale linguaggio è un'estensione di quella usata interattivamente, per cui chi è familiare con l'uso interattivo della shell trova facile e naturale creare degli script.
Alcune delle funzionalità delle shell dei sistemi Unix sono state riprese in varia misura anche dalle shell testuali per i sistemi Microsoft Windows... Un utente che passa a Linux ha spesso bisogno di "tradurre" i comandi ms-dos in comandi per la shell bash. Bene... a me è capitato l'inverso, dopo 5 anni di utilizzo della shell Linux mi è capitato di gestire un server Windows 2003, e non conoscevo i comandi!!!
Per questo ho letto un manuale, ed ho scoperto che possiamo trovare comandi simili nei due ambienti; eccoli riportati in tabella:
Descrizione | Windows/Dos | Linux |
Listato dettagliato dei file della directory corrente | DIR | ls -l |
Listato dei file della directory corrente | DIR /W | ls |
Crea una directory Pippo | MD Pippo | mkdir Pippo |
Cambia la directory corrente in ./Pippo | CD Pippo | cd Pippo |
Rimuove la directory Pippo (solo se vuota) | RD Pippo | rmdir Pippo |
Copia tutti i file nella directory Prova | COPY . \Prova | cp * /Prova |
Copia ricorsivamente tutti i file nella directory Prova | XCOPY . \PROVA /E /S | cp -dpR * /prova |
Rinomina Atricolo in Lettera | REN Articolo Lettera | mv Articolo Lettera |
Muove tutti i file nella directory Prova | MOVE . \PROVA | mv * /prova |
Cancella il file Articolo | DEL Articolo | rm Articolo |
Cancella ricorsivamente una directory (non incluso in windows xp e 2003) | DELTREE Temp | rm -R Temp |
Visualizza il contenuto di Lettera | TYPE Lettera | cat Lettera |
Visualizza il contenuto di Lettera dividendolo per schermate | TYPE LETTERA | MORE | cat lettera | more |
Aiuto sui comandi | HELP HELP | man man |
Formatta un floppy | FORMAT A: /N:18 /T:80 | fdformat /dev/fd0u1440 |
Copia un floppy in un altro usando due drive | DISKCOPY A: B: | cp /dev/fd0 /dev/fd1 |
Copia un floppy in un altro usando un solo drive | DISKCOPY A: A: | cp /dev/fd0 /tmp/pippo ; cp /tmp/pippo /dev/fd0 |
Carica le impostazione della tastiera italiana | KEYB IT | loadkeys it |
Pulisce lo schermo | CLS | clear |
Cerca la stringa "saluti" nel file Primo.doc | FIND "saluti" Primo.doc | grep "saluti" Primo.doc |
Partizionare e gestire i dischi | DiskPart | [c]fdisk |
Formattare le partizioni | FORMAT | mkfs.(tipo-fs) |
Cerca la stringa "saluti" in tutti i dile .doc | FOR %A IN (*.DOC) DO | grep "saluti" *.doc |
Visualizza le variabili di ambiente | SET | env |
Setta una variabile d'ambiente temporanea | SET Var=Value | export Var=Value |
Cancella una variabile d'ambiente temporanea | SET Var= | unset Var |
Elenca i driver caricati nel sistema | DRIVERQUERY | lsmod (non solo per i driver) |
Visualizza il tempo di funzionamento del sistema | SYSTEMINFO | uptime |
Visualizza lo stato della memoria RAM | MEM | free |
Schedulare processi in modo automatico. | schtasks | cron |
La lista non finisce qua, questi sono solo i comandi più importanti :-) , con la quale potete tradurre comandi per DOS in comandi per Linux, e comandi per Linux in comandi per DOS. Se sei un nuovo utente, ti consiglio la shell di Linux, molto più espressiva e personalizzabile!
Se conoscete altri comandi utili alla gestione dei sistemi, commentate pure questo articolo. CIAO!!!