Как мне восстановить .bashrc по умолчанию? [дубликат]

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

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

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

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

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

Можно ли восстановить .bashrc по умолчанию?

82
задан 22 June 2016 в 00:26

4 ответа

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

Внимание: если вы замените файл .bashrc на свежий, он удалит все остальные изменения, которые вы в нём сделали. Например, в .bashrc можно добавить псевдонимы , пользовательскую функцию или PATH. При замене файла все эти изменения будут потеряны. Лучше сохранить копию модифицированного файла .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

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

130
ответ дан 22 June 2016 в 00:26

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

С помощью браузера файлов

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

В меню запуска

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

Откройте терминал

  • и игнорируйте, что у вас нет оболочки. Перейдите к Редактируйте Настройки Профили :

    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

Boot into recovery mode (Как загрузиться в режим восстановления?), то получится корневая оболочка. Ищите в /home домашний каталог пользователя.

8
ответ дан 22 June 2016 в 00:26

Через 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, то Вам нужно перезагрузиться, чтобы он вступил в силу.

3
ответ дан 22 June 2016 в 00:26

Я попробовал ответы на эти вопросы, но по какой-то причине в моем каталоге / etc / skel / не было нужных файлов.

Я нашел копию файл по умолчанию ~ / .bashrc в этом GitHub Gist, автор Марио Боналес . Полный сценарий скопирован сюда для полноты.

# ~/.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 ignorespace
HISTCONTROL=ignoredups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=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=yes

if [ -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=
    fi
fi

if [ "$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\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -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 aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias 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_aliases
fi

# 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_completion
fi
1
ответ дан 22 June 2016 в 00:26

Другие вопросы по тегам:

Похожие вопросы: