LinuxMindItalia

Supporto hardware e software => Supporto software, installazione e configurazione => Installazione e primi passi => Discussione aperta da: Gianky54 il Domenica 08 Novembre 2009, 15:03:25

Titolo: Importanza della Shell
Inserito da: Gianky54 il Domenica 08 Novembre 2009, 15:03:25
Linux ci ha ben abituati, poiché ci offre soluzioni talora anche semplici. Tuttavia è bene imparare a prendere confidenza con il terminale, visto che talvolta per risolvere un problema le soluzioni "automatiche" non bastano. Per questa ragione mi sonopermesso di postare una sintesi di comandi e suggerimenti atti a familiarizzare con la shell.
Naturalmente è un esperimento, suscettibile di critica e miglioramento da parte di tutti.

Nella tabella che segue vi sono le più comuni operazioni da eseguire da shell.
Notate in particolar modo il comando apt-get, col quale potete installare, aggiornare e rimuovere (disinstallare) pacchetti .deb.




alien -d nomefile.rpm   per convertire pacchetti rpm in .deb. Se non avete alien, scaricatelo da Synaptic.
apt-get clean   E' molto più radicale di "apt-get autoclean", poichè rimuove dalla cache di apt ogni file .deb, anche quelli relativi ai pacchetti correntemente installati. Generalmente non avete bisogno dei file .deb per i pacchetti installati, quindi potrebbe essere la cosa migliore se avete problemi di spazio.
apt-get autoremove    Pulizia pacchetti
apt-get install nomepacchetto    Installa il pacchetto. Puoi usare anche il gestore di pacchetti "Synaptic" che si trova nel menu per installare nuovi pacchetti
sudo apt-get -f install   Potreste avere bisogno di eseguire questo comando qualora, cercando di installare un pacchetto, vi venga restituito un errore di dipendenze irrisolvibili, nonostante questo pacchetto si trovi in Synaptic.

Può succedere ad esempio, se voi aggiungete nella vostra source.list un repository nuovo che contenga delle versioni aggiornate di pacchetti che avete gia in Synaptic. E' complicato spiegare come e quando questo può andarvi a dare problemi, ma vi basti sapere che con questo comando potreste risolvere i vostri problemi.
apt-get remove nomepacchetto    Rimuove il pacchetto (ma non i suoi file di configurazione). Si può usare anche Synaptic per la stessa funzione.
apt-get --purge remove nomepacchetto   Eseguendo apt-get remove verranno rimossi i pacchetti, ma non i loro file di configurazione, per eliminare anch'essi è necessario anteporre --purge a remove.

Tenete bene a mente questa istruzione perchè se avete dei problemi irrisolvibili a reinstallare un pacchetto, grazie a questo comando potreste risolvere tutto.
apt-get update   Aggiorna la lista dei pacchetti disponibili dai repositories.

Da eseguire in special modo ogni volta che avete cambiato le "liste dei repositoires", tipo /etc/apt/sources.list. Dopo avere eseguito questo comando è probabile che nella lista di Synaptic troviate del software nuovo da scaricare, che prima non avevate.

E' consigliabile eseguire l'update periodicamente per essere sicuri che le proprie liste rimangano sempre aggiornate.
apt-get upgrade   Aggiorna tutti i pacchetti installati.

È anche possibile aggiornare un singolo pacchetto attraverso l'esecuzione del comando: apt-get upgrade nomepacchetto
apt-get install build-essential   Build-essential è un pacchetto che si trova nei repository. In questo pacchetto vi stanno i compilatori di base, gcc, make, g++ e altro
apt-get install linux-headers-`uname -r`   Versione kernel in uso
dpkg --list   Elenca tutti i pacchetti installati
dpkg --list | grep gnome    Elenca tutti i pacchetti "gnome" installati.

dpkg è un gestore di pacchetti Debian. APT è considerato un gestore di pacchetti più avanzato rispetto a dpkg
dpkg-reconfigure nome_pacchetto   Problemi con un pacchetto, dovrebbe risolverlo. Tipo reinstallazione
tar -xvzf file.tar.gz    Scompattare tar.gz o tar.gz2. "x" è per estrarre, "v" sta per "verbose" cioè visualizza i file che vengono estratti, "z" è per filtrare l'archivio con gzip, "f" è perchè è un file archivio.
find . -name "*.tar" -exec tar xvf {} ;   Questo comando è utile se dovete decomprimere molti archivi tutti in una volta. Cerca (find) tutti files che finiscono per .tar (-name "*.tar") e per ognuno di questi ({}) esegue il tar xvf (-exec)

La direttiva -exec deve terminare per ;


Se dovete scompattare un archivio .rar ed avete difficoltà, potrebbe essere perchè dovete installare l'apposito pacchetto "rar" da Synaptic. Controllate da Synaptic se l'avete installato, altrimenti installatelo.

Quando del pacchetto che vi interessa non avete il .deb ma avete i "sorgenti", vi è una tipica procedura in linux per installarli, che è composta da tre comandi, da eseguire uno dopo l'altro:

   ./configure
    make
    sudo make install


in cui:
./configure    Con ./configure viene lanciato un script che si occupa di controllare se il sistema risponde ai requisiti richiesti come librerie e programmi (per esempio dei compilatori).
Si occupa anche di creare il Makefile, un file contenente delle variabili settate da ./configure (come la directory dove verrà installato il programma e il percorso delle librerie necessarie alla compilazione).
E' in questa fase che avvengono i maggiori problemi di installazione da sorgente. Infatti una libreria mancante causa quasi sempre un'errore e quindi l'interruzione del ./configure.

Anzichè scrivere semplicemente ./configure, potete anche scrivere:

    ./configure --prefix=/usr/local/

--prefix farà in modo che ./configure crei un makefile tale che il programma verrà installato dentro la cartella da noi indicata, in questo caso /usr/local/.
make   Make è il programma che si occupa di analizzare il file Makefile creato da ./configure e di compilare il programma.
Ma cosa ha di diverso il comando make dal comando gcc?
Make è concepito per compilare interi programmi, e ogni buon grosso programmone che si rispetti, è costituito da tanti, anche tantissimi file, magari di centinaia di mega, e compilare tutta questa roba può richiedere molto tempo.
Make fa questo lavoro per voi: spulcia le relazioni dei file che compongono il programmone nel "makefile" creato da ./configure e compila per voi tutta quella gran mole, generando dei file ".o" ("oggetto"), da ogni file sorgente e da questi, alla fine, ricava il da voi tanto desiderato file eseguibile.

Se anzichè "installare" state "reinstallando" sopra una precedente installazione del programmone, magari perchè volete semplicemente aggiornarlo, può capitare che "make" vi pianti in asso con un errore che non riuscite a capire..
Questo perchè make si ricontrolla ogni file sorgente e capisce, se dall'epoca ultima vostra compilazione, il file è cambiato oppure no e solo i file modificati saranno ricompilati, facendovi risparmiare moltissimo tempo. Ma allora perchè questo errore? Capita MOOOLTO di rado, tipo quando vi ricompilate il kernel o cercate di riaggiornare qualcosa con il metodo "svn".

E' complicato da spiegare il perchè questo errore si verifichi in queste situazioni, ma vi basterà sapere che la situazione si risolve facilmente: prima di eseguire il comando "make", scrivete: 

    make clean

Con questo comando vengono eliminati i precedenti file ".o" e potete fare una reinstallazione bella pulita del programmone..
sudo make install   Make install si occupa di andare ad installare (tramite il comando make) il programma sul nostro sistema.


Quella appena descritta è la procedura "classica" per installare un file a partire dai sorgenti.

In generale un programma in Linux, installato a partire da pacchetto o da sorgenti, sostanzialmente si sparpaglia fra le diverse cartelle di sistema di Linux.

I file di configurazione di questo programma, ad esempio, finiranno nella cartella "/etc/", che per convenzione è fatta apposta per contenere i file di configurazione del software che viene installato.

I file che non saranno soggetti ad ulteriori modifiche (quindi il programma vero e proprio) finiscono in genere in una qualche sottocartella di "/usr/share/" o "/usr/local/", mentre i file che subiscono modifica vanno in genere sotto "/var/".

Il file per lanciare il programma, ovvero "l'eseguibile", va in genere in "/bin/", le librerie vanno in genere sotto "/usr/lib/" o (piu raramente), sotto "/usr/libexec/".

Come potete vedere il programma si sparpaglia, ma in modo "razionale". Segue una logica che è regolata da uno standard chiamato "Filesystem Hierarchy Standard (FHS)".

Tuttavia a volte può capitare di avere qualche problema nel disinstallare il software, o perchè il programmatore del software non ha pensato a un sistema per la disinstallazione, o perchè comunque sia non riusciamo a rintracciare tutti i file installati.

Proprio per questo motivo è consigliata in Ubuntu una procedura di installazione da sorgenti che è diversa dalla solita triade di comandi "./configure && make && make install", e questa procedura è:

    sudo auto-apt run ./configure
    sudo make
    sudo checkinstall




auto-apt run   "auto-apt run" serve ad eseguire un comando ma sotto il controllo di auto-apt.

Auto-apt serve a fare in modo che se il programma che state installando manca di qualche file (in gergo si dice "ha problemi di dipendenze"), lui prova a cercare nel database dei pacchetti se esista un pacchetto che abbia il file che gli serve e ci chiederà se può installarlo. Il database può essere aggiornato con " auto-apt update ".

Attenzione però di non fare troppo affidamento alle capacità di ricerca di auto-apt per la risoluzione delle dipendenze in quanto in realtà piuttosto spesso lui fallisce nella sua ricerca e dobbiamo essere noi stessi a cercare il pacchetto che serve mediante Synaptic (cioè dobbiamo essere noi stessi, manualmente, a "risolvere le dipendenze"). Nonostante non sia infallibile vale sempre la pena di provare ad installare con auto-apt perchè male che vada può solo farci risparmiare del tempo.

auto-apt potrebbe non essere installato. In tal caso aprite Synaptic ed installatelo.

checkinstall   checkinstal l tiene traccia di tutti i file installati da make install o equivalenti, crea pacchetti Slackware, rpm o deb con tutti i file, e li aggiunge nel database dei pacchetti installati, permettendo di essere facilmente rimossi con il gestore dei pacchetti della distribuzione.


Dopo avere digitato "sudo auto-apt run ./configure" vedrete che il sistema opererà un controllo sui file che possiede. Se li possiede tutti, alla fine verrà generato il makefile che verrà usato dal successivo comando che digiterete, "sudo make" (in realtà make potrebbe essere eseguito anche senza "sudo", a meno che i nostri sorgenti non si trovino in una directory protetta da scrittura. Io lo uso lo stesso).

Se i file non sono tutti presenti non avrete il makefile per continuare l'installazione. In tal caso riguardatevi tutta la lista di operazioni eseguite su shell dopo il comando "sudo auto-apt run ./configure" e cercate cosa è che non trova. A questo punto scaricate voi stessi la roba mancante servendovi di Synaptic. Tutto questo può sembrare noioso ma è il prezzo che si deve pagare, spesso, nell'installazione da sorgenti.

A volte può essere difficile capire quale sia esattamente il file che manca.. Ad esempio l'esecuzione del nostro comando " auto-apt run ./configure " potrebbe terminare con un errore del tipo "SDL could not be found". In questo caso lui vi sta dicendo in realtà che ciò che non sta trovando sono le "librerie di sviluppo SDL".
Voi cercherete in Synaptic questo fantomatico pacchetto "SDL" che lui non trova e non lo troverete nemmeno voi, perchè in realtà quello che cerca è un pacchetto di nome "libsdl1.2-dev".

Si perchè in generale normalmente i file che mancano a ./configure in una installazione sono pacchetti di tipo "librerie per sviluppatore", che sono pacchetti che normalmente cominciano con la parola "lib" e finiscono con la parola "dev".

Quindi non appena vi si presenta un problema di dipendenze, partite sempre dal presupposto che molto probabilmente (spesso ma non sempre) il pacchetto che voi state cercando in realtà comincia con "lib" e termina con "dev"..

Se nonostante tutto avete ancora dei problemi a capire quale pacchetto manca ed è richiesto per completare una installazione, servitevi delle funzioni di ricerca di questo sito: http://packages.ubuntu.com/. (http://packages.ubuntu.com/.)

Utilizzando la procedura consigliata (cioè quella, che fa uso di auto-apt run, make, checkinstall), i sorgenti vengono trasformati in pacchetto in futuro facilmente eliminabile da Synaptic oppure da Shell digitando:
sudo dpkg -r nomepacchetto


Certo non pretendo di aver esaurito l'argomento... ed anzi per questo mi appello alla competenza ed esperienza di Amici indubbiamente più in gamba.
Titolo: Re: Importanza della Shell
Inserito da: Facocero il Domenica 08 Novembre 2009, 15:33:16
Aspetto che qualcuno un pò più esperto di me puntualizzi anche le qualità di apt in luogo di apt-get in Linux Mint... ;)
Titolo: Re: Importanza della Shell
Inserito da: Gianky54 il Domenica 08 Novembre 2009, 15:56:03
Citazione di: Facocero il Domenica 08 Novembre 2009, 15:33:16
Aspetto che qualcuno un pò più esperto di me puntualizzi anche le qualità di apt in luogo di apt-get in Linux Mint... ;)

Intendi aptitude rispetto ad apt-get?
Titolo: Re: Importanza della Shell
Inserito da: bobol il Domenica 08 Novembre 2009, 16:01:55
 :bravo: buona idea......
Titolo: Re: Importanza della Shell
Inserito da: dieguitus il Domenica 08 Novembre 2009, 16:21:00
Io non saprei aggiungere molto; solo che pressoché tutti i comandi apt-get sopra elencati, in mint possono tranquillamente essere rimpiazzati dall'analogo, semplice 'apt'. Ben quattro caratteri in meno ogni volta ;)
In un articolo del nostro blog (http://linuxminditalia.org/blog/?p=147) sono indicati dei recenti miglioramenti apportati a questo comando.
Titolo: Re: Importanza della Shell
Inserito da: Pedro il Domenica 08 Novembre 2009, 16:49:56
Volevo precisare solo una cosa che riguarda il seguente comando
Citazione./configure --prefix=/usr/local/
che nel senso e tutto guisto quello che dice doc anzi molte volte basta solo ./configure per avere l'installazione in /usr/local/,invece sarebbe meglio dare solo ./configure --prefix=/usr/ questo perché la maggior parte delle  librerie sono in /usr/lib/ e puo' capitare che l'applicazione installata in /usr/local/ non partira' perché non trova le librerie che avra' magari installato in /usr/local/lib/ invece di /usr/lib/,diciamo che basta copiare le librerie che eventualmente si sono installate in /usr/local/lib/ in /usr/lib/,ma se non si sa quali sono e meglio rimuovere l'applicazione eventualmente installata che non funge e rifare la compilazione con ./configure --prefix=/usr/.
Comunque leggete sempre il file install e/o il file Reademe dopo l'estrazione dei pacchetti dove ci sono molte informazioni utili per come fare e/o eventuali opzioni da dare per attivare alcune funzioni.
Titolo: Re: Importanza della Shell
Inserito da: dieguitus il Sabato 28 Novembre 2009, 11:14:03
Citazione di: dieguito il Domenica 08 Novembre 2009, 16:21:00
Io non saprei aggiungere molto; solo che pressoché tutti i comandi apt-get sopra elencati, in mint possono tranquillamente essere rimpiazzati dall'analogo, semplice 'apt'. Ben quattro caratteri in meno ogni volta ;)
Mi accorgo appena ora che con il comando apt non è nemmeno necessario mettere il 'sudo'. Se sono richiesti i privilegi di amministratore vi chiederà automaticamente la pwd, altromenti no.
Per capirci, al posto di 'sudo apt-get-update' è sufficiente un 'apt update'.
Mica male, eh? ;)
Titolo: Re: Importanza della Shell
Inserito da: panoramix il Lunedì 15 Febbraio 2010, 10:43:08
Salve,
è un'ottima tabella che permette di avere a portata di "occhi" tutti i comandi shell essenziali
Titolo: Re: Importanza della Shell
Inserito da: lelio il Domenica 28 Marzo 2010, 17:04:02
Non sono sicuro di aver capito; in Mint ci sono apt e apt-get? se digito "man apt" dal terminale di karmic, di fatto non ho opzioni per la gestione pacchetti a disposizione
Titolo: Re: Importanza della Shell
Inserito da: Pedro il Domenica 28 Marzo 2010, 17:53:26
Si, e come spiega dieguito nel post qua sopra non ce bisogno di mettere il sudo davanti ad apt.
Titolo: Re: Importanza della Shell
Inserito da: lelio il Domenica 28 Marzo 2010, 18:29:54
E il fatto che non sia necessaria la PW non potrebbe creare dei problemi di sicurezza?
Titolo: Re: Importanza della Shell
Inserito da: Pedro il Domenica 28 Marzo 2010, 19:12:35
Nessuno a detto che la password non è necessaria, ma solamente che sono stati semplificati questi comandi risparmiando ben 9 caratteri.
La domanda più corretta sarebbe: se do "apt update" (o qualsiai altro comando che parta con apt) non verra più chiesta la password ?
Risposta: la password verra chiesta sempre, come detto prima si è solo ridotto i numeri dei caratteri da battere.
 
Titolo: Re: Importanza della Shell
Inserito da: lelio il Domenica 28 Marzo 2010, 20:29:06
Ho capito, grazie
Titolo: Re: Importanza della Shell
Inserito da: Hotoko il Venerdì 16 Aprile 2010, 00:08:23
Bè un po di caratteri in meno da digitare ....non possono che far piacere...!
Complimenti x la guida....
Titolo: Re: Importanza della Shell
Inserito da: giasonetux il Venerdì 16 Aprile 2010, 13:27:11
Hotoko, e se vai in "guide" ci sono altri comandi per il terminale. :ciao:
Titolo: Re: Importanza della Shell
Inserito da: Hotoko il Venerdì 16 Aprile 2010, 16:54:40
Citazione di: giasonetux il Venerdì 16 Aprile 2010, 13:27:11
Hotoko, e se vai in "guide" ci sono altri comandi per il terminale. :ciao:

ho gia dato un occhiata....grazie
è un po che non uso GNU/linux ......per problemi di lavoro....cmq prima avevo installata ubuntu.....quindi mi trovo molto a mio agio....
di primo impatto devo dire che è una distro che mi rilassa ....non so il perchè ma è cosi....
Complimeti per il lavoro Ragazzi!!
Titolo: Re: Importanza della Shell
Inserito da: Nova 107 il Martedì 22 Giugno 2010, 19:29:08
apt-get --purge remove nomepacchetto   Eseguendo apt-get remove verranno rimossi i pacchetti, ma non i loro file di configurazione, per eliminare anch'essi è necessario anteporre --purge a remove.

mi potete spiegare meglio questo passaggio, ho necessita di eliminare i file di configurazione, ma non so come perchè ho un pacchetto che crasha quando si avvia, senza le impostazioni dovrebbe ripartire come prima.

qui dice solo di anteporre purge a remove, ma purge è gia prima di remove o la frase è sbagliata in italiano o sono io scemo o_O
Titolo: Re: Importanza della Shell
Inserito da: Pedro il Martedì 22 Giugno 2010, 20:39:44
No e giusto, se per esempio vuoi rimuovere la configurazione del pacchetto pippo il comando sarà:
sudo apt-get --purge remove pippo
Nel caso il pacchetto fosse cairo-dock il comando e questo
sudo apt-get remove cairo-dock* --purge
Titolo: Re: Importanza della Shell
Inserito da: Nova 107 il Giovedì 24 Giugno 2010, 00:03:03
ah ecco la confusione mi era nata dal fatto che c'è il comando completo poi ilc omando soloc on il remove e poi spiega a che serve il purge, ma sopratutto dal fatto che per eliminare definitvamente i settaggi dovevo anche riavviare.

se elimino tutto e reinstallo mi rimette anche i settaggi che evidentemente non ha ancora del tutto eliminato, se riavvio invece l'installazione e di nuovo pulita come fosse la prima volta
Titolo: Re: Importanza della Shell
Inserito da: nardogodfather il Sabato 18 Settembre 2010, 14:34:25
non mi sembra una bella mossa usare il giallo come colore dei caratteri  :hmm: ......... :)
Titolo: Re: Importanza della Shell
Inserito da: ken il Sabato 18 Settembre 2010, 14:42:50
Citazione di: nardogodfather il Sabato 18 Settembre 2010, 14:34:25
non mi sembra una bella mossa usare il giallo come colore dei caratteri  :hmm: ......... :)

Dal tuo profilo puoi cambiare il tema del forum...nel caso di green leaf, il giallo è appropriato; certo che con il colore azzurrino è quasi impossibile vedere
Titolo: Re:Importanza della Shell
Inserito da: Squ@ll il Venerdì 18 Dicembre 2015, 19:54:24
Per approfondimenti sull'utilizzo di apt, oltre all'esaustiva guida di doc54, c'è questa (https://www.debian.org/doc/manuals/apt-howto/ch1.it.html).
Io mi trovo benissimo utilizzando la shell al punto di averla personalizzata al massimo anche nella forma sia per l'utente che per root.

EDIT:
Sorry, leggo solo ora che la discussione era datata.
Spero comunque che il link serva a qualcuno.
Titolo: Re:Importanza della Shell
Inserito da: CharlySierra-mint.x3f il Martedì 12 Luglio 2016, 23:00:55
 :good: BELLISSIMO !!!!!! :good:

Grazie

Ciao

Carlo
Titolo: Re:Importanza della Shell
Inserito da: Il_sacerdote il Domenica 17 Luglio 2016, 22:14:03
Intanto ringrazio doc54 per l'idea e per il lavoro compiuto.

Colgo l'occasione di questa guida per muovere, (non una critica, quanto meno negativa), ma un suggerimento per i molti esperti che popolano il forum.

Penso, (e credo di non sbagliare), ci siano molti utenti come me, "nudi e crudi" d'informatica e sopratutto di Unix, con sole basi derivanti da un uso pluriennale di Windows, ove, per quel che mi riguarda, mi districavo sufficientemente bene, avendo percorso dal 3.11 a salire ed anche grazie alle tante guide fra edicola, motri di ricerca ed esperienza condivise fra utenti.

Ora qui vi leggo da Giugno del corrente anno, medesimo mese nel quale ho deciso di resettare Microsoft dalla mia esistenza, dedicandomi solo a Linux. Bene debbo dire che, per la prima volta ho letto un thread interessantissimo, perchè io non cerco, (come sempre nella mia vita), chi mi dice: "sudo apt update, poi sudo apt upgrade e aggiorni il sistema"... Questo non mi aiuta... Cerco chi mi spiega, come ha fatto doc, sudo permette di entrare coi privilegi di amministratore,
apt serve a... ipdate vuole dire... e svolge questa funzione...

Questo è il metodo corretto per far apprendere noi poveri niubbi di questa meraviglia chiamata Linux, questo è il metodo corretto per rendere il forum appetibile a nuovi utenti, questo è il metodo per far si che chi cerchi anche coi vari motori di ricerca trovi guide interessanti nel NOSTRO forum, è inoltre il metodo per far crescere me e chi come me domani può, o meglio, potrebbe essere un valido aiuto al forum.

E scusatemi tutti ancora, ripeto che se proprio la si vuole vedere come critica, quanto meno spero la vediate costruttiva, ma critica non vuol essere ma solo consiglio, ripeto.
Grazie a doc ed a tutti voi che permettete la nostra crescita giorno dopo giorno, con professionalità, allegria ed il giusto pizzico di umorismo che mai guasta, anzi...
Titolo: Re:Importanza della Shell
Inserito da: bobol il Domenica 17 Luglio 2016, 22:29:04
Perchè hai pensato che potesse essere una critica? A me sembra tutt'altro, hai elogiato dall'inizio alla fine l'iniziativa di un utente (ex membro dello staff) non più molto attivo, e per questo ti ringrazio (anche a nome dell'amico Doc54).  :)
Titolo: Re:Importanza della Shell
Inserito da: Il_sacerdote il Domenica 14 Agosto 2016, 20:46:33
Rinnovo il grazie a voi tutti,  ;)
Titolo: Re:Importanza della Shell
Inserito da: evilwillneverdie il Martedì 16 Agosto 2016, 04:48:53
Ho visto solo oggi i nuovi post, e vorrei dire al Sacerdote che qui, nel nostro piccolo villaggio, sono sempre ben accette anche le critiche, purché fatte con buonsenso, altrimenti come si fa a migliorare?  :ciao:
Titolo: Re:Importanza della Shell
Inserito da: xenical il Martedì 31 Gennaio 2017, 11:29:55
Per un novellino una guida molto interessante.

Grazie
Titolo: Re:Importanza della Shell
Inserito da: Gigios il Martedì 21 Marzo 2017, 19:09:36
Grazie, son "ringiovanito" di almeno 20 anni ai tempi del buon DOS 6.22  :ok:
Titolo: Re:Importanza della Shell
Inserito da: SupertuxKart il Martedì 21 Marzo 2017, 22:36:23
Beh con l'IBMDOS 5.0 erano solo un settecento pagine di manuale operativo, con centinaia di comandi e qualche millanta di opzioni, insomma niente di diverso dalla shell di linux.