お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2014-07-08 19:25:52

ysato
メンバ
From: Utsunomiya, Japan
登録日: 2010-12-05

Ubuntu14.04 の .bashrc の設定。動作がおかしい

Ubuntu14.04 クリーンインストールしました。

~/bin に PATH を設定するために .bashrc の最後に次を追加した。

export PATH=/home/satouy/bin;$PATH


再起動した後、ターミナルを開いた時のメッセージです。
------------------------------
bash: /home/satouy/bin: ディレクトリです
satouy@Ubuntu-1:~$ pwd
/home/satouy
satouy@Ubuntu-1:~$ ls
コマンド 'ls' は '/bin/ls' で利用できます
'/bin'がPATH環境変数に含まれていないためコマンドを特定できませんでした。
ls: コマンドが見つかりません
satouy@Ubuntu-1:~$
------------------------------

Ubuntu 12.04 では正常に動いていたのですが、Ubuntu 14.04 では正常に動作しないです.
何がおかしいのでしょうか?
教えていただけないでしょうか.

オフライン

 

#2 2014-07-08 20:32:49

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

ユーザホームの、.profile に、

コード:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

とありますので、ユーザホームに、bin ディレクトリを作成、ログイン、ログアウトするだけで、PATH に追加されます。

オフライン

 

#3 2014-07-08 20:39:43

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

##追加##
また .profile には、

コード:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

とあります。
シェルを、デフォルトの dash から bash に変更すれば、.bashrc が実行されるのではないでしょうか?

オフライン

 

#4 2014-07-08 20:59:42

makopi
メンバ
登録日: 2009-11-01

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

export PATH=/home/satouy/bin;$PATH

直接的な原因は・・・、 セミコロン ';' ではなくて コロン ':' だと思います。

si が仰られる方法で自分もやっていますよ。

オフライン

 

#5 2014-07-08 21:41:32

makopi
メンバ
登録日: 2009-11-01

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

「si さんが仰られる方法で自分もやっていますよ。」

に訂正します。失礼しました。

オフライン

 

#6 2014-07-08 23:24:23

ysato
メンバ
From: Utsunomiya, Japan
登録日: 2010-12-05

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

コメントありがとうございます。
「:」と「 ; 」の単純ミスから、.profile のことを教えていただきありがとうございます。

「ユーザホームに、bin ディレクトリを作成、ログイン、ログアウトするだけで、PATH に追加されます。」
を実行することにします。確認しました。

---------------------------
ついでに質問させていただきます。

~/bin 以外の PATH を設定する場合は、どこで行えばよいのでしょうか?
.bashrc でよいのでしょうか?

>シェルを、デフォルトの dash から bash に変更すれば、.bashrc が実行されるのではないでしょうか?
シェルを、デフォルトの dash から bash に変更する方法とは、どのようにするのですか?
ターミナルから、 cd , ls など実行できるのですが、シェルが bash になっている状態でしょうか?
よろしくお願いします。

オフライン

 

#7 2014-07-09 08:02:53

ry
メンバ
登録日: 2008-07-30

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

ysato による投稿:

>シェルを、デフォルトの dash から bash に変更すれば、.bashrc が実行されるのではないでしょうか?
シェルを、デフォルトの dash から bash に変更する方法とは、どのようにするのですか?

シェルを変更する必要はありません。
#0 に書かれたターミナルを開いたときのメッセージは、.bashrc に書き足した export PATH=/home/satouy/bin;$PATH を実行した際の出力です。
; はコマンドの区切りになるので、export PATH=/home/satouy/bin;$PATHexport PATH=/home/satouy/bin$PATH のふたつのコマンドを順に実行すると解釈されます。
前半のコマンドで、環境変数 PATH に /home/satouy/bin がセットされ、後半で $PATH が展開された /home/satouy/bin を実行します。
前半の実行時は何もメッセージを表示しませんが、後半を実行しようとしても /home/satouy/bin はディレクトリなので #0 のメッセージが表示されます。

オフライン

 

#8 2014-07-09 11:54:04

katsu07
ゲスト

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

ubuntuでは、.bashrcの最後の方に以下の記述があります。

コード:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

ユーザーが新たに定義する物は ~/.bash_aliases を作成し、そこへ記述すると良いと思います。
(処理の都合上~/.bashrc内でないと困る等の理由が無ければ)
アップデートやアップグレード等における.bashrcの上書き対策にもなりますし、.bash_aliases をバックアップしておけば新たにインストールしたubuntuシステムにコピー及び反映させるだけで済みます。
(定義する物が少なければ問題ありませんが、多い場合は手間を省ける)

 

#9 2014-07-09 12:29:25

ysato
メンバ
From: Utsunomiya, Japan
登録日: 2010-12-05

Re: Ubuntu14.04 の .bashrc の設定。動作がおかしい

katsu07 さん、

丁寧な説明ありがとうございます。
.bashrc や .profile に書かれている スクリプトをこれまで注意して読んでいませんでした。
作法が書かれていることがわかりました。
ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB