GNU/Linux >> Linux の 問題 >  >> Linux

どのシェルで実行していますか?

echo $SHELLを実行すると 出力には/bin/tcshと表示されます これは、tcshを実行していることを意味します シェル。
しかし、たとえば、次のコマンドを発行した場合

alias emacs 'emacs -nw' 

次のエラーが発生します:

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

alias emacs="emacs -nw"を発行すると 正常に動作します!

tcshを実行しているので、これは混乱を招きます ただし、コマンドはbashによって解釈されます 。

理由は何でしょうか?

承認された回答:

$SHELL 必ずしも現在のシェルである必要はなく、デフォルトのログインシェルです。使用しているシェルを確認するには、

ps $$

これは、psを使用する最新のUnix/Linuxで機能するはずです。 BSD構文をサポートします。それ以外の場合、これはポータブル(POSIX)の方法です

ps -p $$

tcshを実行している場合は、次のようになります。 :

8773 pts/10   00:00:00 tcsh

tcshが必要な場合 デフォルトのシェルにして、chshを使用します 設定します。


Linux
  1. どのシェルを使用していますか?

  2. どのシェルインタープリターがシバンなしでスクリプトを実行しますか?

  3. 使用しているシェルを確認するにはどうすればよいですか?

  1. シェル - コマンドのディレクトリを見つける方法は?

  2. 実行中にシェルスクリプトを編集する

  3. ネストされたシェルを実行しているかどうかを確認するにはどうすればよいですか?

  1. シェルスクリプトの並列実行

  2. シェルコマンドは何語で書かれていますか?

  3. XEN で実行されているゲストを特定する:HVM または PV ゲスト