Перепутал файл 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 

Первоначально это, казалось, работало нормально, за исключением того, что теперь sudo , ls , find и все остальное больше не работают.

Затем я попытался стереть эти строки и перезапустить систему, но команда не была доступна; ошибки:

 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 строки 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/ 

Но я должен набирать source /etc/environment и source /etc/bash.bashrc во всех окон терминала, чтобы получить как java и команды. Это похоже на то, что мои изменения не постоянны.

В настоящее время результатом 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 cnf 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/ и # 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 cnf 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

  • Установка JDK 7 на debian
  • Попытка установить 32-битный java-плагин на Centos 6.5 64-bit mozilla firefox
  • Местоположение Java из / usr / bin / java
  • Найдите идентификатор процесса приложения java в сценарии bash (чтобы узнать, запущено ли целевое приложение)
  • Запустить Java в chroot тюрьме
  • Java постоянно создает журнал ошибок в моем домашнем каталоге?
  • Проблема обновления Java на CentOS 6.5
  • Возможно ли глобальное определение местоположения журнала java hs_err?
  • 2 Solutions collect form web for “Перепутал файл bash.bashrc, команды больше не работают”

    Попробуйте восстановить bash.bashrc по умолчанию и отредактируйте свою локальную копию PATH в файле ~ / .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/ 

    в файле ~ / .bashrc вместо /etc/bash.bashrc. Возможно, вам придется перезапустить изменения.

    Если это работает, и вы все еще хотите, чтобы изменения были общесистемными, добавьте переменную PATH в / etc / environment, чтобы иметь путь Java.

    Чтобы восстановить /etc/bash.bashrc в исходное состояние (если вы не можете вспомнить, что это такое), вы можете сделать следующее:

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

    В противном случае ответ @ aprad046 кажется лучшим решением.

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.