Cambiare shell

14 / 100
()

In generale esistono molti tipi di shell, che si dividono principalmente in testuali e grafiche: 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 terminale virtuale (quest’ultimo può anche far parte della shell stessa anziché essere un programma a parte) tramite un’interfaccia a riga di comando; nel caso di shell grafiche è comune fare riferimento ai cosiddetti desktop environment, che forniscono agli utilizzatori un ambiente grafico da cui è possibile gestire file e avviare programmi.

Quando diamo dei comandi li diamo tramite una shell
La shell pertanto mi permette di eseguire i comandi e di avere un ambiente con delle variabili.

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 command-line 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 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.

C’e’ una variabile che puo’ essere stampata a video ed ‘ e’ $

[[email protected]]$ echo $SHELL
/bin/bash
[[email protected]]$

Questa variabile contiene per l’utente che esegue, il contenuto /bin/bash/
Viene pertanto detto quale e’ la shell di default e cioe’ /bin/bash
Questa e’ una variabile e viene inizializzata ad ogni avvio di sistema

Ora digitiamo
[[email protected]] $ grep morro /etc/passwd
morro:x:1000:1000:morro:/home/morro: /bin//bash
[[email protected]]$

In questa analisi si evince che l’utente fa uso della shell /bin//bash

Posso pero’ cambiare per il mio utente quella che e’ la mia shell di default
digitando ad esempio ksh ( kornshell) oppure sh ( un altro tipo di shell)
[[email protected]]$ sh
sh-4.35

E questo pero’ bisognera’ farlo manualmente, ad ogni avvio di terminale, non e’ persistente.
Digitando
[[email protected]]$ sh
sh-4.35
exit
[[email protected]] $
Digitando exit si ritorna in bash shell.

Possiamo visualizzare un elenco delle shell disponibili, su cui cambiare.

[[email protected]]$ chsh -l
Il comando chsh (change shell) che si trova nei sistemi operativi Unix e Unix-like permette di modificare la shell di login, ovvero la shell predefinita che si presenta all’utente al momento dell’accesso al sistema. Le shell valide utilizzabili sono elencate generalmente nel file /etc/shells

/bin/sh/
/bin/bash/
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/bin/rbash
/usr/bin/nologin
/bin/ksh
/user/bin/ksh

E questo e’ l’elenco delle shell a disposizione.
Poniamo ora il caso che si voglia definitivamente stabilire quale sara’ la mia shell di default:

[[email protected]]$ chsh -s /usr/bin/ksh
Modifica shell per morro in corso
Password:*********
Shell modificata
Posso ora simulare un login
[[email protected]]$ su -l morro
Password:********
ksh
Abbiamo cambiato la shell

Questa lista:
/bin/sh/
/bin/bash/
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/bin/rbash
/usr/bin/nologin
/bin/ksh
/user/bin/ksh


Fa parte di un file di configurazione, modificabile solo da root e quindi:

[[email protected] morro]# vi /etc/shells

/bin/sh/
/bin/bash/
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/bin/rbash
/usr/bin/nologin
/bin/ksh
/user/bin/ksh
“/etc/shells” 9L, 113C

Dove noi potremo opportunamente cancellare o modificare le shells presenti, al riavvio e tornando in shell avremo quindi:

[[email protected]]$ chsh -l
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/bin/rbash
/usr/bin/nologin
/bin/ksh

Avendo ora cancellato /user/bin/ksh.

Il comando per determinare il cambio di shell e’ quindi: chsh

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?