Как мне восстановить файл .bashrc по умолчанию?

Я пытался установить инструменты разработчика Android в Eclipse, и я следил за информацией в это видео.

Как сказано в видео, я добавил следующие две строки кода в .bashrc файл:

export PATH=$(PATH):-/android-sdk/tools/export PATH=$(PATH):-/android-sdk/platform-tools/

Однако, похоже, что это не помогло мне установить файлы Android в Eclipse, так как у меня все еще возникают проблемы с этим. Более того, кажется, что я не могу выполнить ни одной команды в терминале, не получив серьезной ошибки сейчас! Каждый раз, когда я пытаюсь выполнить команду в терминале, я получаю следующее сообщение:

Команда не может быть найдена, поскольку '/usr/bin' не включен в переменную окружения PATH.

Есть ли что-то, что можно восстановить .bashrc к своему умолчанию?

Идея: Существуют резервные копии .bashrc, .profile и т.д. в /etc/skel/. Таким образом, можно было бы заменить коррумпированный .bashrc просто перехитрив оттуда.

Осторожность: если вы замените .bashrc файл с новым файлом, он удалит любые другие изменения, которые вы внесли в него. Например, можно было бы добавить псевдонимы, изготовленный на заказ функция или путь в .bashrc. Когда вы замените файл, все эти изменения будут потеряны. Лучше, если вы сможете сохранить копию своего измененного .bashrc прежде чем заменить его. Позже вы сможете аккуратно извлечь из него нужную деталь. Чтобы сохранить резервную копию вашего измененного .bashrc в вашем домашнем каталоге с именем my_bashrc используйте следующее в терминале,

/bin/cp ~/.bashrc ~/my_bashrc

Почему? /bin/cp: В случае, если вы испортили свой $PATH переменная при изменении ~/.bashrc все исполняемые файлы будут недоступны с вашего терминала и cp больше не будет работать. Поэтому рекомендуется позвонить cp с его полным путем, как /bin/cp в то время как вы пытаетесь скопировать что-то с поврежденным ~/.bashrc.

Наконец, используйте следующую команду в вашем терминале, чтобы заменить ~/.bashrc со свежей копией,

/bin/cp /etc/skel/.bashrc ~/

Это заменит ваш коррумпированный ~/.bashrc с новым. После этого вам нужно создать источник ~/.bashrc чтобы изменение произошло немедленно, напишите в терминале,

. ~/.bashrc

или,

source ~/.bashrc

или, если это не сработает, вы можете закрыть терминал и открыть его снова.

Если вы не можете получить рабочую оболочку

Через файловый браузер

  • Откройте файловый браузер, перейдите в домашний каталог, нажмите CtrlH так, чтобы были показаны скрытые файлы. Редактировать .bashrc по мере необходимости.
  • Откройте файловый браузер, перейдите к /etc/skel, нажмите CtrlH так, чтобы были показаны скрытые файлы. Копировать .bashrc в вашу домашнюю папку, чтобы восстановить ее по умолчанию.

Через меню "Выполнить"

  • Нажмите AltF2, тип gedit .bashrc, нажмите Enter. Редактируйте по мере необходимости.
  • Нажмите AltF2, используйте команду /bin/cp /etc/skel/.bashrc ~/ как указано в ответ суравца чтобы восстановить его по умолчанию.

Через терминал

  • Откройте терминал и не обращайте внимания на то, что у вас нет оболочки. Идти к РедактироватьПредпочтенияПрофили:

    enter image description here

  • Либо создайте новый профиль, либо отредактируйте текущий профиль, чтобы изменить команду:

    enter image description here

    Используйте либо /bin/bash --norc или /bin/bash --rcfile=/etc/skel/.bashrc.

  • Откройте новую вкладку (с пользовательским профилем, если вы его создали). Используйте рабочую оболочку по мере необходимости.
  • Удалите пользовательский профиль или снимите флажок с параметра пользовательская команда, если вы отредактировали профиль по умолчанию, как только закончите.

Если у вас есть SSH

Запустите SSH с помощью пользовательской команды, которая должна помочь вам обойти .bashrc:

ssh -t <host> dash

То dash оболочка (она же /bin/sh) является минимальным, но достаточным для восстановления .bashrc.

Если вы не можете получить графический интерфейс и у вас нет SSH

Загрузитесь в режим восстановления (Как мне загрузиться в режим восстановления?), который даст вам корневую оболочку. Загляни в /home для домашнего каталога вашего пользователя.

Через TTY

Вы можете ввести TTY, нажав ctrl+alt+f1 где вы должны войти в систему, указав свое имя пользователя и пароль. ctrl+alt+f7 позже вы вернетесь к своему графическому интерфейсу.

Теперь скопируйте существующий raw .bashrc от /etc/skel в ваш домашний каталог с помощью

cp /etc/skel/.bashrc ~/

Может быть, даже принесите остальное, если вы не уверены, что ваш .profile тоже изменился.

cp /etc/skel/.profile ~/

Теперь, чтобы получить .bashrc чтобы получить немедленный эффект, вы можете захотеть использовать его с помощью:

source ~/.bashrc

Если вы заменили свой .profile кроме того, вам нужно перезагрузиться, чтобы это вступило в силу.

Я попробовал приведенные выше ответы, но по какой-то причине мой /etc/skel/ в каталоге не было правильных файлов.

Я нашел копию стандартного ~/.bashrc досье на это Суть GitHub от Марио Боналеса. Полный сценарий скопирован здесь для полноты картины.

# ~/.bashrc: executed by bash(1) for non-login shells.# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)# for examples# If not running interactively, don't do anything[ -z "$PS1" ] && return# don't put duplicate lines in the history. See bash(1) for more options# ... or force ignoredups and ignorespaceHISTCONTROL=ignoredups:ignorespace# append to the history file, don't overwrite itshopt -s histappend# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)HISTSIZE=1000HISTFILESIZE=2000# check the window size after each command and, if necessary,# update the values of LINES and COLUMNS.shopt -s checkwinsize# make less more friendly for non-text input files, see lesspipe(1)[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"# 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, unless we know we "want" color)case "$TERM" in    xterm-color) color_prompt=yes;;esac# uncomment for a colored prompt, if the terminal has the capability; turned# off by default to not distract the user: the focus in a terminal window# should be on the output of commands, not on the prompt#force_color_prompt=yesif [ -n "$force_color_prompt" ]; then    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then    # We have color support; assume it's compliant with Ecma-48    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such    # a case would tend to support setf rather than setaf.)    color_prompt=yes    else    color_prompt=    fifiif [ "$color_prompt" = yes ]; then    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 'else    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 'fiunset color_prompt force_color_prompt# If this is an xterm set the title to user@host:dircase "$TERM" inxterm*|rxvt*)    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"    ;;*)    ;;esac# enable color support of ls and also add handy aliasesif [ -x /usr/bin/dircolors ]; then    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"    alias ls='ls --color=auto'    #alias dir='dir --color=auto'    #alias vdir='vdir --color=auto'    alias grep='grep --color=auto'    alias fgrep='fgrep --color=auto'    alias egrep='egrep --color=auto'fi# some more ls aliasesalias ll='ls -alF'alias la='ls -A'alias l='ls -CF'# Add an "alert" alias for long running commands.  Use like so:#   sleep 10; alertalias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'# 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_aliasesfi# enable programmable completion features (you don't need to enable# this, if it's already enabled in /etc/bash.bashrc and /etc/profile# sources /etc/bash.bashrc).if [ -f /etc/bash_completion ] && ! shopt -oq posix; then    . /etc/bash_completionfi

Первопричина: $(PATH) на самом деле должен быть $PATH