Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


Guida verificata con Ubuntu: 20.04 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida spiega come abilitare le shell più comunemente usate nei sistemi unix-like in Ubuntu e derivate.

Per l'utilizzo della shell Bash si rimanda alla relativa guida.
Per l'utilizzo di altre shell si raccomanda di consultare i manuali dei singoli progetti.

Concetti generali

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 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.
La shell si può quindi 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 riga di comando.
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, integrazione con alcuni linguaggi di programmazione ecc.

Installazione shell più comuni

Vengono riportate di seguito alcune delle shell più utilizzate nei sistemi Unix o derivati.
Ove necessario, è indicato il relativo pacchetto necessario all'installazione.

Nome

Breve descrizione

Pacchetto

Bourne (sh)

È la shell storica dei sistemi UNIX. Garantisce la compatibilità con gli standard POSIX.

-

Korn (ksh o ksh88/ksh93)

È una shell sviluppata in passato dalla AT&T, retrocompatibile con Bourne. È la shell di default di OpenBSD.

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 (fino alla versione 10.14 Mojave).

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 ortografico, manipolazione avanzata di variabili e array, retrocompatibilità, temi ecc.). È la shell predefinita di Arch Linux e macOS (dalla versione 10.15 Catalina).

zsh

C-Shell (csh)

Creata da sh, utilizza una sintassi modellata dal linguaggio C.

csh

TC-Shell (tcsh)

Basata su csh e da essa derivata, è presente in FreeBSD e in vecchie versioni di macOS.

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.

fish

Numerose altre shell possono essere installate sia dai repository ufficiali (es.: elvish, mksh, rc, xonsh, yash, ecc.) sia da sorgenti esterne di terze parti (ad esempio Dune. Nushell, Windows PowerShell).

Individuare shell in uso

Digitare nel 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

Shell presenti nel sistema

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

Per consultare il file digitare nel 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 terminale.
    Ad esempio per utilizzare zsh è sufficiente digitare:

    zsh

    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

È fortemente raccomandato provare temporaneamente la nuova shell e di assicurarsi del suo regolare funzionamento prima di effettuare le modifiche di seguito esposte.

  1. Digitare nel terminale il comando:

    chsh
  2. Quando richiesto, inserire la password e quindi il percorso della shell desiderata.
    Ad esempio per impostare zsh digitare:

    /usr/bin/zsh
  3. 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.

Ulteriori risorse


CategoryProgrammazione