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

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 кажется лучшим решением.

  • альтернативы обновления только для одного пользователя
  • Mathematica не звучит под Ubuntu 11.04
  • Есть ли проблема с использованием xdotool для прямого нажатия клавиш на окна Java?
  • Java-процесс зависает с .exec и ssh
  • Местоположение Java из / usr / bin / java
  • Как проверить, установлена ​​ли Java на rhel
  • Процесс Java зависает, пока я не использую 100% CPU
  • Процесс Java часто убивается OOM - Killer на обновленном оборудовании
  • В чем смысл локального в этом примере
  • Параметры оптимизации TCP / IP в Linux Mandriva
  • Символическая ссылка на файл jar и службу init.d
  • Interesting Posts

    Автомобильный диск, подключенный через USB, когда компьютер включен

    Как можно найти emacs?

    Crontab самовосстанавливается

    Почему запрос будет перезаписан?

    команда sed добавить несколько строк

    Как поддержка SuSE Linux для btrfs отличается от Ubuntu и Fedora?

    Как изменить настройки клавиатуры активного пользователя с помощью udev и setxkbmap?

    Способы оптимизации производительности в трубопроводах по сети (RSH и SSH)

    Как я могу эффективно управлять своим crontab, чтобы избежать проблем с помощью нескольких обновлений несколькими пользователями?

    XFCE / LightDM: исправление разрывов и отсутствие рабочего стола после входа в систему

    Emacs – странные пробелы

    Преобразование нескольких секунд, прошедших до даты с произвольной даты начала

    Как определить, работает ли система внутри контейнера systemd-nspawn?

    Что такое loop0 и как это сделать e2fsck?

    Замена определенного номера в файлах unix

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