GNU/Linux >> Linux Esercitazione >  >> Linux

Su quale shell sto correndo?

Quando eseguo echo $SHELL l'output dice /bin/tcsh il che significa che sto eseguendo un tcsh shell.
Ma per esempio quando eseguo il seguente comando

alias emacs 'emacs -nw' 

Ottengo il seguente errore:

bash: alias: emacs: not found
bash: alias: emacs -nw: not found

e quando emetto alias emacs="emacs -nw" va bene!

Questo è fonte di confusione poiché sto eseguendo tcsh ma i comandi sono interpretati da bash .

Quale potrebbe essere il motivo?

Risposta accettata:

$SHELL non è necessariamente la tua shell attuale, è la shell di login predefinita. Per controllare la shell che stai utilizzando, prova

ps $$

Questo dovrebbe funzionare sui più recenti Unix/Linux con un ps che supporta la sintassi BSD. Altrimenti, questo è il modo portatile (POSIX)

ps -p $$

Dovrebbe restituire qualcosa del genere se stai eseguendo tcsh :

8773 pts/10   00:00:00 tcsh

Se vuoi avere tcsh essere la tua shell predefinita, usa chsh per impostarlo.


Linux
  1. Come verificare quale versione di Postgres è in esecuzione/installata

  2. Quale shell sto usando?

  3. Quale interprete di shell esegue uno script senza Shebang?

  4. Quale shell dovrei usare:Tcsh Vs Bash??

  5. Python può rilevare su quale sistema operativo è in esecuzione?

Come faccio a sapere se sto eseguendo una shell nidificata?

Esecuzione di script di shell in parallelo

Come verificare se la shell attualmente in esecuzione è BusyBox

Esecuzione di script da un'altra directory

Determina in quali gruppi si trova un processo in esecuzione?

Identificare quale MTA è in esecuzione