Skip to main content

Windows-Linux commands cheat-sheet

· 6 min read
Saverio Ferrara
Software Engineer

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
FIND "saluti" %A

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.
Notare che questo è un modo per far eseguire a windows processi in background

schtasks
at

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!!!