GNU/Linux >> Tutoriels Linux >  >> Linux

Sur quel shell suis-je en cours d'exécution ?

Quand j'exécute echo $SHELL la sortie indique /bin/tcsh ce qui signifie que j'exécute un tcsh shell.
Mais par exemple lorsque j'émets la commande suivante

alias emacs 'emacs -nw' 

J'obtiens l'erreur suivante :

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

et quand j'émets alias emacs="emacs -nw" ça marche bien !

C'est déroutant puisque j'utilise tcsh mais les commandes sont interprétées par bash .

Quelle pourrait en être la raison ?

Réponse acceptée :

$SHELL n'est pas nécessairement votre shell actuel, c'est le shell de connexion par défaut. Pour vérifier le shell que vous utilisez, essayez

ps $$

Cela devrait fonctionner sur les Unix/Linux les plus récents avec un ps qui prend en charge la syntaxe BSD. Sinon, c'est la méthode portable (POSIX)

ps -p $$

Cela devrait retourner quelque chose comme ça si vous exécutez tcsh :

8773 pts/10   00:00:00 tcsh

Si vous voulez avoir tcsh être votre shell par défaut, utilisez chsh pour le définir.


Linux
  1. Comment vérifier quelle version de Postgres est en cours d'exécution/installée

  2. Linux - Comment identifier quelle distribution Linux est en cours d'exécution ??

  3. Quel shell dois-je utiliser - Tcsh Vs Bash ??

  4. Shell - Comment trouver le répertoire d'une commande ?

  5. Modifier le script shell pendant son exécution

Comment vérifier si le shell en cours d'exécution est BusyBox

Exécuter des scripts à partir d'un autre répertoire

Déterminez quel invité s'exécute sur XEN :invité HVM ou PV

Comment identifier la distribution Linux en cours d'exécution ?

Identification du MTA en cours d'exécution

Quel système d'exploitation s'exécute dans mon conteneur Docker ?