2016-11-30 12 views
-2

Linux-Mint 18では、非対話型シェルの起動時にどのファイルが読み込まれますか?linux-mint非対話型シェルの起動ファイル

私は ssh [email protected] coolcommand のように、ssh経由でコマンドを実行しようとしているが、私は、私は/home/norio/.bashrcに、このディレクトリ を含めるようにPATH環境変数を設定し bash: coolcommand: command not found /home/norio/bin/に座っcoolcommandファイル、および のようなエラーが出ますこの.bashrcは、/home/norio/.profileおよび/home/norio/.bash_profileによって供給されるように設定されています。 しかし、リモートの非対話型シェルが起動したときに、これらのファイルのいずれも読み込まれないようです。実際には、/etc/profileはこれらのファイルのソースには見えません。このファイルを編集する必要はありますか?あるいは、root以外のユーザーとして非中核シェルの起動プロセスを設定する他の方法はありますか?

documentationから
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) 
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). 

if [ "$PS1" ]; then 
    if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then 
    # The file bash.bashrc already sets the default PS1. 
    # PS1='\h:\w\$ ' 
    if [ -f /etc/bash.bashrc ]; then 
     . /etc/bash.bashrc 
    fi 
    else 
    if [ "`id -u`" -eq 0 ]; then 
     PS1='# ' 
    else 
     PS1='$ ' 
    fi 
    fi 
fi 

if [ -d /etc/profile.d ]; then 
    for i in /etc/profile.d/*.sh; do 
    if [ -r $i ]; then 
     . $i 
    fi 
    done 
    unset i 
fi 
+0

面白い事実: 'coolcommand'は' bash'ではないので、 '〜/ .bashrc'やbash関連ファイルでは何の仕事もありません。 –

+0

@IporSircerそして、どのシェルがsshによって渡されたリモートコマンドを処理しますか? – norio

+0

デフォルトでは、コマンドを指定しないとsshdはログイン後に 'bash'を実行します。コマンドを指定した場合、sshdは** bashや他のシェルや他のプログラムの代わりに**を実行します。 'coolcommand'を実行する –

答えて

0

:バッシュは、リモートシェルデーモンによって実行されたとき、通常RSHD、またはセキュアとしては、ネットワーク接続に接続された標準入力で実行されているときに決定しようと

シェルデーモンsshd。 Bashがこの方法で実行されていると判断した場合、〜/ .bashrcのファイルが存在し、読み込み可能であれば、〜/ .bashrcからコマンドを読み込んで実行します。これは、shとして呼び出された場合はこれを行いません。 --norcオプションはこの動作を抑止するために使用され、--rcfileオプションは別のファイルを強制的に読み込むために使用されますが、rshdやsshdは一般的にこれらのオプションを持つシェルを呼び出すことも、指定することもできません。

関連する問題