• ベストアンサー

ログインシェルの役割

ログインシェルの役割って何でしょう? 何のためにあるのでしょうか? bash だと、bash --login としてログインすると「.bash_profile が読み込まれて、ログインシェルとしてログインした」ということになります。 でも、--login をつけなくても普通に仕事をできますよね? 何か歴史的な意味でもあるのでしょうか? 好くなとも、実用的な価値はさっぱり分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • e-marimo
  • ベストアンサー率24% (9/37)
回答No.3

ログインシェルにbashを設定して初めてログイン するときに.bash_profileが自動で読み込まれます。 それ以外では読み込まれません。 なのでコマンドライン上からbashと打つと.bashrcが 読み込まれます。 基本的な考えからとしては初回起動時に使うbashと bash上から呼び出すbashの使いかたを変えたい時など に使います。(ほとんどありませんが・・・) なのでbash使用中に bash --loginとするのは 初回ログイン時に起動させたbashに環境を戻す 事と同じですね。(これもあまりやりませんが・・) もちろんこれらは .bashrcがなければ意味ありません。

white-tiger
質問者

補足

ありがとうございます。 > (ほとんどありませんが・・・) > (これもあまりやりませんが・・) やっぱりそうですよね。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • e-marimo
  • ベストアンサー率24% (9/37)
回答No.2

--login をつけなくてもいいのはデフォルトシェルが bashに設定されてるからですね。 たぶんですがsh (ボーンシェル)が主流時代の なごりではないかと思います。 デフォルトシェルをshにしてみるとわかりやすいかと 思います。

white-tiger
質問者

補足

ありがとうございます。 デフォルトシェルがbashだと、なぜ --login がいらないのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 ログインbash上でbashを起動して普通に仕事をでいるのは、ログインbashが主な設定をエクスポートしているからだ。--loginをつけないと、bashは~/.bashrcしか読み込まない。  なので、.bashrcには全bashで使いたい設定を記述し、.bash_profileには一度だけ実行したいものを記述する。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ログインシェルと対話型シェルの区別について

    ログインシェルと対話型シェルの区別について理解していません。  ログインシェルはpsコマンドで見たときに-bashと表示されると書籍にありました。  テキストログイン(init 3)してpsコマンドをうっても-bashになっていません。  ご存知の方、いらっしゃいますでしょうか?

  • puttyというsshクライアントでログインと同時にシェルスクリプトを実行したい

    はじめまして。 WINDOWS XP SP2でputtyを使い sshでRH ES3サーバーに接続しています。 ログイン後あるシェルスクリプトを自動で実行させたいのですが、.bash_profile以外に方法はありますか? .bash_profileだとそのユーザー全員が対象になってしまうため他の方法を探しています。

  • bash --login -i ??

    windows の cygwin でセットアップされる cygwin.bat を見ると、 bash --login -i と書いてあります。 --login 、-i とは何だろう、と思って man bash とすると、 --login はログインシェル -i はインタラクティブモード となっています。 (1) ログインシェルとはなんでしょう? 気づいたこととしては、コマンドプロンプトから bash と入力するだけのときと、--login をつけたときでは、プロンプトがちがうようです。(.bashrcを読み込まない?) (2) インタラクティブモードとはなんでしょう。 -i をつけたときとつけなかったときで、特に目に見えた違いはわからなかったのですが。。

  • シェルについて

    cshやbash、zsh、tcshなど色々ありますがどう違うのでしょうか。 これまであまり考えずにSoalrisやLinuxにログインして普通に作業してきましたが、ただtabやバックスペースが使用できないというだけでzshやtcshにして使用してきました。 ただこれだけ色々シェルがあるとしたら使用方法がいろいろ違うのではないかと思っております。 シェルスクリプトを作成する時の文法が違うとかでしょうか。

  • シェル上からWEBログイン

    シェル上からWEBログイン 取得したフリーアドレスが30日に一度ログインしないと削除されてしまうのですが、 そのフリーアドレスは常に自動返信させたまま使い続けたいのです。 たまにログインすればよいのですが、できればシェルスクリプトで 自動的にログインだけできないかと考えてます。 ベーシック認証ならwgetで--http-user=USERとパスワードを利用すればログインできますが、 プロバイダのフリーアドレスだとIDパスの入力フォームになっているので困っています。 GETとかPOSTとか自分の要望にかないそうなコマンド?はみつかったのですが どうしたらよいかわかりません。 Windowsでvbsを作って自動的にログインさせる事はできますが、 LINUXサーバー内で勝手にログインを行わせたいと思っています。 パールとかPHPとかbashとか何でも良いので、LINUXサーバ内で フリーアドレスへログインするツールを作成できないでしょうか。

  • 代替のシェルに入れ替えるための、具体的な方法

    少し前から、bashの脆弱性の問題が指摘されていると思うのですが、例えばJPCERTは その対策の一つとして 「GNU bash を代替のシェルに入れ替える」 というものを上げています。 代替のシェルに入れ替える場合の具体的な方法ですが、例えば、(/etc/passwd等の)ログイン情報を見て、bashがログインシェルに設定されているユーザを、zsh等に書き換えて、再起動してしまう、というやり方で、十分なのでしょうか。 今現在問題に直面しているわけではないのですが、「入れ替え」の方法について、教えていただければと思います。

  • シェルスクリプトについて

    とあるUNIXサーバが1台あるとします。 でそのマシン上の管理プログラムが同一マシン上にある 「シェルスクリプト(bash)」をキックするとします。 となるとそのシェルスクリプトの実行者(?)は Unixにログオンしているユーザーになるのでしょうか?。 目的としてはそのログインしているユーザーの環境変数 をシェルから参照したいのですが・・ 考え方がWindowsなもので。。すみませんが よろしくお願いします。

  • Bシェルの.profileについて

    Solaris9を使っています。 シェルはデフォルトのBシェルを使っているのですが、 ユーザー環境定義ファイルのドットファイルを /etc/.profile のように作って環境定義 PATH=$PATH:/usr/local/bin export PATH のように書き再起動してみても、全く反映されません。 手元にある本をみると .profileはユーザー設定ファイル、 としかかかれていず、ユーザー事の設定にできるのかな?とも思うのですが、それ以上の情報が見つかりません・・・ ネットの情報を見てもbashやtcshの説明は多いのですが・・・ できれば自分のIDでログインしたときだけにその設定で起動するようにしたいのです。 つまりはユーザー設定ファイルがうまく有効になるようにしたいです。 よろしくお願いいたします

  • Linuxでログインしないユーザーを作成した場合

    Linuxでログインさせたくないユーザーを useradd -s /sbin/nologin XXX の様にして作成した場合、 /home/XXX 以下に .bashrc, .bash_profile, .bash_logout 等のファイルが作成されましたが、 元々シェルは使わせたくないので削除しても問題ないでしょうか?? また、もし問題がないのであれば、 始めから.bash* のファイルを作成させないようなユーザー追加方法はあるのでしょうか? ご教授ねがいまする。

  • ~/.profile を変更するにもみつからない

    まず、ご回答くださった皆様に感謝しております。 ありがとうございます。 まずSolaris 10に挑戦中です。 実はシェル(bash)環境設定というかシェル変数の設定を LINUXのようにしてコマンドラインを ユーザ名@ホスト名 現在のディレクトリ# としたいのですが、~/.profileを変更すればよいと書籍に記載され ているものの、そのファイルが見当たりません。 ~はホームディレクトリを言うことで、/homeを見ても これはマウントされるものと言うことで、実際は/exportにある とのことなので、そちらも見ましたが、それらしきものが ありません。 /etc/profile ~/.bash_profile ~/.bash_login ~/.profileと 読み込まれていくのは分かったのですが、どのファイルも ~=ホームディレクトリですので、先ほどのように どこを探してもない・・・状態で困っています。 どこにPS1="$user$host~~~を書いたらよいのか ご教授願います。 よろしくお願い致します。

このQ&Aのポイント
  • フリーウェイ経理サーバーとの通信が切断しています。インターネットへの接続が切れている可能性があります。
  • 昨日、意識なくクリックしてしまったのか、わからない画面になりました。その画面は終了ボタンなく、✖記しで消しました。もう一度立ち上げようとしたら、エラーが出るようになりました。
  • フリーウェイ経理を立ち上げた時は繋がり、入力をして終了しました。しかし、再度立ち上げようとしたらエラー状態になりました。トラブルシューティングや対応方法を試みましたが、解決できません。
回答を見る