Cambiare shell

0
(0)
https://www.officineinformaticheroma.it/wp-content/uploads/2021/10/Cambiare-shell.mp4

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’ $

[morro@fedolinux]$ echo $SHELL
/bin/bash
[morro@fedolinux]$

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

https://www.officineinformaticheroma.it/wp-content/uploads/2019/03/Cambiare_shell.mp4

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

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)
[morro@fedolinux]$ sh
sh-4.35

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

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

[morro@fedolinux]$ 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:

[morro@fedolinux]$ chsh -s /usr/bin/ksh
Modifica shell per morro in corso
Password:*********
Shell modificata
Posso ora simulare un login
[morro@fedolinux]$ 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:

[root@fedolinux 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:

[morro@fedolinux]$ 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

/ 5
Grazie per aver votato!
Vuoi abilitare le notifiche?
Desiderate avere la possibilita’ di ricevere delle notifiche? Se si avrete la possibilita’ di essere sempre aggiornati con le nostre ultime proposte o notizie . Consigliamo l’adesione Grazie !
Attiva

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

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

Vai alla barra degli strumenti