web-dev-qa-db-ja.com

bash.bashrcファイルをめちゃくちゃにして、コマンドが機能しなくなった

Javaをインストールしようとして、次の行で実行可能パスに追加しようとしました。

    export PATH=/usr/lib/jvm/jdk1.7.0_60/bin:$PATH

システム全体の/etc/bash.bashrcファイル内。

どういうわけかこれはうまくいかなかったので、私は使用しました:

Java_HOME=/usr/lib/jvm/jdk1.7.0_60
PATH=$PATH:$HOME/bin:$Java_HOME/bin
export Java_HOME
export JRE_HOME
export PATH

Sudolsfindと他のすべてがもう機能していないことを除いて、最初はこれはうまく機能していたようです。

次に、それらの行を消去してシステムを再起動しようとしましたが、コマンドを使用できませんでした。エラーは次のとおりです。

Command 'Sudo' is available in '/usr/bin/Sudo'
The command could not be located because '/usr/bin' is not included in the PATH  environment variable.
Sudo: command not found

これを修正するには、/etc/environment/etc/bash.bashrcの内容をコピーし、export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_60/binという行を追加して、source /etc/bash.bashrcと入力しました。

繰り返しますが、すべてが機能していましたが、再起動後ではなく、単一のターミナルウィンドウでのみ機能しました。

私は他のものを試しました、そして現在/etc/bash.bashrcの終わりに行があります:

export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_60/bin/
export Java_HOME=$Java_HOME:/usr/lib/jvm/jdk1.7.0_60/bin/Java/

しかし、Javaとコマンドの両方を取得するには、すべてのターミナルウィンドウでsource /etc/environmentsource /etc/bash.bashrcを入力する必要があります。それは私の変更が永続的ではないようです。

現在、クリアなターミナルウィンドウでのecho $PATHの結果は次のとおりです。

/usr/lib/jvm/jdk1.7.0_60/bin/

source /etc/environment以降は次のようになります:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

そして最終的には、source /etc/bash.bashrcの後は次のようになります。

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/jdk1.7.0_60/bin/

完全なbash.bashrcファイル:

# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# set variable identifying the chroot you work in (used in the Prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy Prompt (non-color, overwrite the one in /etc/profile)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@Host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    Prompt_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
#    ;;
#*)
#    ;;
#esac

# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

# Sudo hint
if [ ! -e "$HOME/.Sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
    case " $(groups) " in *\ admin\ *)
    if [ -x /usr/bin/Sudo ]; then
        cat <<-EOF
        To run a command as administrator (user "root"), use "Sudo <command>".
        See "man Sudo_root" for details.

        EOF
   fi
   esac
fi

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
            if [ -x /usr/lib/command-not-found ]; then
                /usr/bin/python /usr/lib/command-not-found -- "$1"
                return $?
            Elif [ -x /usr/share/command-not-found/command-not-found ]; then
                /usr/bin/python /usr/share/command-not-found/command-not-found -- "$1"
               return $?
        else
           printf "%s: command not found\n" "$1" >&2
           return 127
        fi
    }
fi

export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_60/bin/
export Java_HOME=$Java_HOME:/usr/lib/jvm/jdk1.7.0_60/bin/Java/

誰でも手伝ってくれる?私はUbuntu 12.04 LTSの下にいます

3
FN11

Bash.bashrcをデフォルト設定に復元して、代わりに〜/ .bashrcファイルのPATHのローカルコピーを編集してください。つまり、これらの最後の2行を入れます。

export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_60/bin/
export Java_HOME=$Java_HOME:/usr/lib/jvm/jdk1.7.0_60/bin/Java/

/etc/bash.bashrcの代わりに〜/ .bashrcファイル内。変更を有効にするには、再起動する必要がある場合があります。

それが機能し、システム全体に変更を加えたい場合は、/ etc/environmentにPATH変数を追加して、Javaパスを指定します。

1
aprad046

/etc/bash.bashrcを元の状態に戻すには(それが何であるか思い出せない場合)、次のようにします。

Sudo rm /etc/bash.bashrc
Sudo apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall bash

それ以外の場合 @ aprad046の回答 が最善の解決策のようです。

2
Graeme