/ / Identifica la shell in esecuzione nel mio sistema - bash, shell, unix, scripting

Identifica la shell in esecuzione nel mio sistema: bash, shell, unix, scripting

Qualcuno può dirmi quale shell ha installato nel mio sistema?

Perché quando mi collego al mio sistema usando il mio nome utente, inizialmente sto mostrando bash shell, ma in seguito mostra la shell korn dopo aver fatto sudo.

Si prega di vedere sotto per i dettagli.

-bash-3.2$ pwd
/home/w4x2spxt
-bash-3.2$ echo $SHELL
/bin/bash
-bash-3.2$ su - XXXXXXX
Password:
You have new mail.
The Oracle base remains unchanged with value /apps/oracle
abc0300ab123:/a30/home/XXXXXXX >> echo $SHELL
/bin/ksh

risposte:

1 per risposta № 1

SHELL variabile d'ambiente ti dà la tua shell di login.

controlla il percorso della shell menzionato (ultima colonna) con il tuo nome utente o XXXXXXX(per su) in /etc/passwd come questo: grep ^XXXXXXX /etc/passwd.

La shell menzionata in quel file sarà la tua shell predefinita quando accedi o su a quell'utente.

Per verificare tutte le shell installate sul tuo sistema, usa questo: cat /etc/shells


0 per risposta № 2
  • Il tuo utente sta usando /bin/bash come shell di default.

  • root sta usando /bin/ksh come la sua shell di default.

La shell di default è un'impostazione specifica dell'utente, quindi non c'è nulla di pignolo nell'avere persone diverse tra loro. Basta controllare l'ultima colonna in /etc/passwd e sorprenditi con una varietà di valori.

Nota a proposito quando lo fai su, accedi come root. Se aggiungi il trattino e dì su - stai caricando il profilo root, in modo da avere il suo ambiente.


0 per risposta № 3

La variabile di ambiente SHELL contiene sempre la shell di login dell'utente collegato, definito in /etc/passwd.

Se l'utente cambia la propria shell dopo l'accesso, ad es. exec bash (bash), il SHELL si espanderà ancora alla shell di login.

Nel tuo caso, l'utente XXXXXXX ha la shell di login /bin/ksh, fare:

grep "<user_name>" /etc/passwd

per abbinare i risultati.

Per trovare la shell corrente:

echo $0

O

ps -p $$

0 per risposta № 4

Quando lo fai:

-bash-3.2$ su - XXXXXXX

stai iniziando qualsiasi shell viene assegnata all'utente XXXXXXX. Questo di solito è una buona cosa su -, dal momento che esegue la shell come processo di accessoin modo da ottenere la loro inizializzazione di avvio della shell normale (profilo, * shrc, ecc.). Se si esegue una shell diversa da quella per cui è stato impostato il proprio account, probabilmente si perdono tutte le personalizzazioni.

Puoi vedere quale shell è associata ad un account osservandoli nel database delle password. Questo è abbastanza affidabile tra diversi tipi di sistemi e schemi di autenticazione:

perl -MUser::pwent -le "print( (getpwnam "XXXXXXX")->shell || "/bin/sh" )"

È sempre possibile eseguire una shell esplicitamente come l'altro utente se si ha in mente che si desidera:

su XXXXXXX -c "bash --login"

o

sudo -u XXXXXXX bash --login # if you have sudo privs

Per vedere quale shell stai attualmente correndo, guarda $0:

echo $0

Per vedere quale shell ottieni automaticamente come te, guarda $SHELL.