
ログインシェルが /bin/bash で、~/.bash_profile ~/.profileが存在している環境で、ログインすると ~/.profileが読み込まれています。~/bash_loginはありません。
自分としては、ログインシェルが /bin/bashで、~/.bash_profileと~/.profileが存在していれば、~/.bash_profileだけが読み込まれるべきと思うのですが、下記の状況でなぜ ~/.profileが読み込まれるのか、わかりませんでしょうか?
$ cat /etc/passwd | grep ${USER} | cut -d: -f7
/bin/bash
$ cat ~/.bash_profile
#########################################
# originally written by OS
[[ -f ~/.bashrc ]] && . ~/.bashrc
# my test
touch ${HOME}/tmp/bash_profile-made-this.file
#########################################
$ cat ~/.profile
#########################################
# originally written by OS
SOME VARIABLES ARE SET.
# my test
touch ${HOME}/tmp/profile-made-this.file
#########################################
(再ログイン後に)
$ ls ~/tmp/
profile-made-this.file
No.2ベストアンサー
- 回答日時:
Lightdmが、そういうbashの起動をしているのでしょう。
ps axfww で、Lightdmからどのようにbashが起動されているか分かります。
ALT + F2 が効くならそのコンソール画面で、
ALT+F2でコンソールが切り替わらないなら、sudo init 3 でGUIをオフにしてコンソールから直接ログインすると、bashの仕様通りになると思います。
No.3
- 回答日時:
lightdmを介さずログインした場合は、.bash_profileだけが実行されたことが確認できたと思います。
> $ ps axfww | less
> 2158 ? SLsl 0:00 /usr/bin/lightdm
それらの子プロセスのbashの行を見ましょう。
> $ ps ax | grep profile | grep -v grep
> なにも出力されない。
これは全く無意味なコマンドだと思いますが、何目的ですかね??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトとかで、net...
-
シェルスクリプトの中であるプ...
-
ubuntuの端末の左にカレントデ...
-
mac os x10.6.4のターミナルでp...
-
シェルとシェルの間で環境変数...
-
Cシェル内でBシェルの様な関数...
-
UNIX コマンドにおける # や円...
-
Linux のシェルスクリプトの強...
-
ファイル名一覧の印刷
-
スクリプトのエラー「unexpecte...
-
IPアドレスだとPingが通るのに...
-
net use /d の強制実行
-
SONYの音楽ソフト「x-アプリ」...
-
「環境変数名の編集」ウィンド...
-
bashでシングルクォート内の変...
-
PowerShellのスクリプト実行に...
-
LD_LIBRARY_PATHって?
-
Dirコマンドでフォルダ内ファイ...
-
pingは正常なのにtracerouteで...
-
シェルスクリプト実行で”そのよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
export と set は違うの?
-
Cシェル内でBシェルの様な関数...
-
.cshrc ファイルについて
-
シェル 会話形式でエンターキ...
-
x11のTerminalが複数個起動しない
-
BシェルとBashの違い
-
if [ "$PS1" ]の意味を教えてく...
-
コマンドプロンプトとかで、net...
-
シェルスクリプトで #!/bin/sh ...
-
Cシェルでのファイルからの入...
-
『存在するかどうか分からない...
-
ターミナルが全く入力できない
-
シェルとシェルの間で環境変数...
-
Linuxのファイル禁止文字
-
ubuntuの端末の左にカレントデ...
-
シェル(ksh)で変数にある文字列...
-
solarisのsetenvが無効
-
ログインシェルについて
-
Tabキー補完や↑キーのヒストリ...
-
UNIX(hp-ux)のコマンド履歴↑↓
おすすめ情報
今、2021年5月1日17時22分です。
先ほどPCを起動し、Arch系のManjaro Linuxが起動され、Lightdmのログイン画面からログインし、Xfceデスクトップ環境となりました。
ターミナルソフトを起動し、"ls -s ~/tmp/"とすると、下記となっています。
$ ls -l ~/tmp/
合計 0
-rw-r--r-- 1 user group 0 5月 1 17:20 profile-made-this.file
artoo様、ありがとうございます。
補足の文字数制限により、分割して報告します。
「通常のPC起動でデスクトップ環境に入る時は~/.profileだけが読み込まれ、デスクトップ環境を起動しないログインの時は~/.bash_profileが読み込まれる」と理解しました。
$ ps axfww | less
2158 ? SLsl 0:00 /usr/bin/lightdm
2170 tty7 Ssl+ 0:04 \_ /usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
3047 ? Sl 0:00 \_ lightdm --session-child 12 19
以下、省略
$ ps ax | grep profile | grep -v grep
なにも出力されない。
5月2日7時42分頃に、Android端末からWake On LanにてPCを起動し、sshにてAndroid端末からログインした。
前記でAndroid端末から起動されたPCに、5月2日7時56分頃に、Lightdmから通常のログインした。
$ ls -l ~/tmp/
合計 0
-rw------- 1 user group 0 5月 2 07:42 bash_profile-made-this.file
-rw-r--r-- 1 user group 0 5月 2 07:56 profile-made-this.file
5月2日8時8分頃に、Alt+F2でコンソール画面としてログインした。
$ ls -l ~/tmp/
合計 0
-rw------- 1 user group 0 5月 2 08:08 bash_profile-made-this.file
-rw-r--r-- 1 user group 0 5月 2 07:56 profile-made-this.file
5月2日8時41分頃、Android端末からWake On LanにてPCを起動し、sshにてAndroid端末からログインし、Android端末から "$ ls -l ~/tmp/"を実行した出力
$ ls -l ~/tmp/
合計 0
-rw------- 1 user group 0 5月 2 08:41 bash_profile-made-this.file
-rw-r--r-- 1 user group 0 5月 2 07:56 profile-made-this.file
umaskは ~/.bashrcで 0077にしています。
~/.bashrcは~/.bash_profile内で読み込まれる設定となっています。
補足の文字数制限のため出力を掲載できませんが、"ps axfww"で表示される/usr/bin/lightdmの子プロセスにbashが表示された行は無いです。
psコマンドでのbash関連行は次のものですが、"ps axfww"を実行するためにデスクトップ上でターミナルを開いた時のbashと思います。
2147 ? Sl 0:06 /usr/bin/xfce4-terminal
2153 pts/0 Ss 0:00 \_ bash
2370 pts/0 R+ 0:00 \_ ps axfww
"$ ps ax | grep profile | grep -v grep"は「~/.bash_profileや~/.profileの痕跡がないか」と思ってやってみましたが、確かに無意味でした。