Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "andreas-xavier/prova3"
Differenze tra le versioni 162 e 164 (in 2 versioni)
Versione 162 del 03/03/2018 12.22.44
Dimensione: 8528
Commento:
Versione 164 del 29/03/2018 12.52.08
Dimensione: 1894
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
Linea 8: Linea 9:
Questa guida spiega come abilitare le '''shell''' più comunemente usate nei [[https://it.wikipedia.org/wiki/Unix-like|sistemi unix-like]] in Ubuntu e derivate. Inserire testo.
Linea 10: Linea 11:
Per l'utilizzo della shell '''Bash''' si rimanda alla relativa [[Programmazione/LinguaggioBash|guida]].<<BR>>
Per l'utilizzo di altre shell si raccomanda di consultare i manuali dei singoli progetti.
= Tabella di prova =
Linea 13: Linea 13:
== Concetti generali == ||<tablestyle="width:100%; text-align:center;" #cccccc:-12> '''IDE (Ambienti di sviluppo integrato)'''||
||<rowstyle="background-color: #E6E4E2;" 25%> '''Software proprietario'''||{{attachment:Ubuntu.png}}||{{attachment:Linux.gif}}||{{attachment:Windows.png}}||{{attachment:Macosx.png}}||{{attachment:wiki.png}}||<25%> '''Software libero'''||{{attachment:Ubuntu.png}}||{{attachment:Linux.gif}}||{{attachment:Windows.png}}||{{attachment:Macosx.png}}||{{attachment:wiki.png}}||
|| [[https://www.visualstudio.com|Visual Studio]] || || || (./) || (./) || || [[https://www.eclipse.org/|Eclipse]] || (./) || (./) || (./) || (./) || [[Programmazione/Eclipse|Wiki]] ||
|| [[https://code.visualstudio.com/|Visual Studio Code]] [[#visual|*]] || || (./) || (./) || (./) || || [[https://netbeans.org/|NetBeans]] || (./) || (./) || (./) || (./) || ||
|| [[https://www.jetbrains.com/idea/|IntelliJ IDEA]] [[#IDEA|**]] || || (./) || (./) || (./) || || [[http://www.aptana.com/|Aptana Studio]] || || (./) || (./) || (./) || [[Programmazione/Aptana|Wiki]] ||
|| [[https://www.jetbrains.com/pycharm/|PyCharm]] [[#IDEA|**]] || || (./) || (./) || (./) || || [[https://www.qt.io/qt-features-libraries-apis-tools-and-ide/|QtCreator]] || (./) || (./) || (./) || (./) || ||
|| [[https://www.liclipse.com|LiClipse]] || || (./) || (./) || (./) || || [[https://www.kdevelop.org/|KDevelop]] || (./) || (./) || (./) || (./) || ||
|| || || || || || || [[http://www.codeblocks.org/|Code::Blocks]] || (./) || (./) || (./) || (./) || ||
|| || || || || || || [[https://atom.io/|Atom]] || || (./) || (./) || (./) || ||
Linea 15: Linea 23:
In informatica si usa il termine generico di '''shell''' per indicare una qualunque interfaccia che permette all'utente di interagire con il sistema. Possono quindi essere individuate due macro-categorie di shell, ossia:
 * shell a riga di comando
 * shell grafiche (come ad esempio i vari [[AmbienteGrafico|ambienti desktop]])
Tuttavia, nell'uso comune, è più frequente utilizzare il termine '''shell''' per indicare soltanto la prima categoria. Sarà pertanto questa l'accezione a cui si farà riferimento in questa guida.<<BR>>
La shell si può pertanto definire come il programma che fornisce l'interfaccia testuale per il sistema operativo. La sua funzione principale è di leggere i comandi opportunamente inseriti nella console e di eseguirli.

Ubuntu utilizza di default la shell '''Bash''', che è quindi in funzione ogni qual volta si utilizzi la [[AmministrazioneSistema/Terminale|riga di comando]].<<BR>>
Pur essendo '''Bash''' uno strumento valido, completo e versatile, in alcuni casi potrebbe essere utile l'uso di altre shell. Infatti alcune di queste dispongono di caratteristiche e/o ''features'' avanzate, che talvolta possono risultare più funzionali a seconda del lavoro o dei compiti da svolgere: maggiore responsività, informazioni su file e directory, personalizzazioni estetiche, presenza e/o integrazione con alcuni linguaggi di programmazione ecc.

= Installazione shell più comuni =

Vengono riportate di seguito alcune delle shell più utilizzate nei sistemi '''Unix'''. <<BR>>Ove necessario, è indicato il relativo pacchetto necessario all'[[AmministrazioneSistema/InstallareProgrammi|installazione]].

||<tablestyle="width: 100%; text-align: center;" rowstyle="background-color: #cccccc;" 20%:> '''Nome''' ||<60%:> '''Breve descrizione'''||<20%:> '''Pacchetto''' ||
||<:> '''Bourne''' ('''sh''') ||<(> È la shell storica dei sistemi UNIX. Garantisce la compatibilità con gli [[https://it.wikipedia.org/wiki/POSIX|standard POSIX]]. || - ||
||<:> '''Korn''' ('''ksh''' o '''ksh88'''/'''ksh93''') ||<(> È una shell sviluppata in passato dalla AT&T, retrocompatibile con Bourne. È la shell di default di OpenBSD. || [[apt://ksh|ksh]] ||
||<:> '''Bash''' ('''bash''') ||<(> Acronimo di «Bourne Again SHell», è nata come versione avanzata e retrocompatibile di Bourne. Viene utilizzata dalle maggiori distribuzioni GNU/Linux, rappresentandone ''de facto'' uno standard. È inoltre la shell utilizzata da macOS || preinstallata ||
||<:> '''Debian Almquist Shell''' ('''dash''') ||<(> Nata originariamente come porting della shell '''ash''' di NetBSD, è stata quindi adattata agli standard Debian e rinominata nella forma attuale. È presente in Debian e derivate. || preinstallata ||
||<:> '''Z-Shell''' ('''zsh''') ||<(> Integra molte funzionalità, anche avanzate, mutuate da altre shell (autocompletamento, controllo ortografco, manipolazione avanzata di variabili e array, retrocompatibilità, temi ecc.). È la shell predefinita di Arch Linux. || [[apt://zsh|zsh]] ||
||<:> '''C-Shell''' ('''csh''') ||<(> Creata da '''sh''', utilizza una sintassi modellata dal linguaggio C. || [[apt://csh|csh]] ||
||<:> '''TC-Shell''' ('''tcsh''') ||<(> Basata su '''csh''' e da essa derivata, è presente in FreeBSD e in vecchie versioni di macOS. || [[apt://tcsh|tcsh]] ||
||<:> '''Friendly Interactive shell''' ('''fish)''' ||<(> Nata con l'intento di essere ''user friendly'', si presenta con molte funzionalità pre-abilitate di default, mutuate da altre shell. || [[apt://fish|fish]] ||

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Numerose altre shell possono essere installate sia dai [[Repository|repository ufficiali]] (es.: '''rc''', '''yash''', '''mksh''' ecc.) sia da sorgenti esterne di terze parti (ad esempio [[https://docs.microsoft.com/en-us/powershell/|Windows PowerShell]]). Un elenco (non esaustivo, ma provvisto di link e riferimenti) può essere consultato in [[https://www.freebsd.org/ports/shells.html|questa pagina]].||

= Individuare shell in uso =

Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
echo $0
}}}
Verrà restituito il nome della shell in uso, ad esempio:{{{
bash
}}}

Per conoscere anche il percorso digitare:{{{
echo $SHELL
}}}
Verrà restituito un output simile al seguente:{{{
/bin/bash
}}}

<<Anchor(disponibili)>>
= Shell presenti nel sistema =

Il file `/etc/shells` contiene un elenco delle shell presenti nel sistema.

Per consultare il file digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
cat /etc/shells
}}}

Verrà restituito un output simile al seguente:{{{
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/zsh
/usr/bin/zsh
}}}

= Cambiare shell =

== Modifica temporanea ==

 * Per utilizzare temporaneamente una shell installata è sufficiente invocarla da [[AmministrazioneSistema/Terminale|terminale]].<<BR>>Ad esempio per utilizzare '''zsh''' è sufficiente digitare:{{{
zsh
}}}
 ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Si noti che, a seconda della shell in uso, potrebbe modificarsi l'aspetto della console. Alcuni esempi: potrebbe comparire il solo carattere «$» e venir omesso il nome dell'utente, o potrebbero essere utilizzati altri simboli, oppure potrebbero comparire delle istruzioni a schermo.||

 * Per individuare la shell in uso digitare il seguente comando per visualizzare i processi attivi nel terminale:{{{
ps -T
}}}
 L'output sarà simile al seguente:{{{
PID TTY TIME CMD
13964 pts/0 00:00:00 bash
22450 pts/0 00:00:00 csh
22451 pts/0 00:00:00 ps
}}}
 dove la shell in uso è '''csh'''.

 * Per ritornare ad usare la shell predefinita digitare:{{{
exit
}}}
 oppure invocare la shell impostata. Ad esempio, in Ubuntu e derivate con le impostazioni di default, digitare:{{{
bash
}}}

== Modifica permanente ==

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''È fortemente raccomandato provare temporaneamente la nuova shell e di assicurarsi del suo regolare funzionamento prima di effettuare le modifiche di seguito esposte.''' ||

 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{
chsh
}}}
 0. Quando richiesto, inserire la password e quindi il [[#disponibili|percorso]] della shell desiderata.<<BR>>Ad esempio per impostare '''zsh''' digitare:{{{
/usr/bin/zsh
}}}
 0. Chiudere il terminale oppure effettuare il logout affinché la modifica abbia effetto.

In alternativa è possibile effettuare l'operazione utilizzando un solo comando simile al seguente:{{{
chsh -s /usr/bin/zsh
}}}
modificandolo con il percorso della shell desiderata.
 
Linea 120: Linea 24:

 * [[https://wiki.ubuntu.com/ChangingShells|Wiki internazionale]]
 * [[https://it.wikipedia.org/wiki/Shell_(informatica)|Voce enciclopedica]]
 * [[http://www.kornshell.com/|KornShell]] (sito ufficiale)
 * [[https://wiki.ubuntu.com/DashAsBinSh|DashAsBinSh]] (wiki internazionale)
 * [[http://www.zsh.org/|Z-Shell]] (sito ufficiale)
 * [[https://fishshell.com/|Fish Shell]] (sito ufficiale)
 * [[https://en.wikipedia.org/wiki/Comparison_of_command_shells|Tabelle comparative]] (pagina enciclopedica)
 * [[http://www.softlab.ntua.gr/facilities/documentation/unix/shelldiff.html|Informazioni e consigli sulla scelta della shell]] (inglese)
 * [[https://www.ibm.com/developerworks/library/l-linux-shells/|Breve storia della shell in Linux]]
 * [[AmministrazioneSistema/Terminale|Guida comandi base del terminale]]
 * [[Programmazione/LinguaggioBash|Guida bash scripting]]