Возможно, вам понадобится восстановить ваш загрузчик grub, используя несколько простых шагов из официальной ukuntu wiki
https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows
У Bash есть куча файлов конфигурации (aka startup), он использует эти файлы для настройки конкретной среды для каждого пользователя.
Некоторые из этих файлов расположены в /etc, один из них, о котором я знаю, /etc/profile, является глобальным конфигурационным файлом, и его настройки будут применены ко всем сеансам, другой - /etc/bash.bashrc; Мы не должны обходиться этими файлами из-за того, что они уже защищены, и только root имеет права редактировать их.
Очень важный каталог, который может нам очень помочь: /etc/skel ; Всякий раз, когда вы создаете нового пользователя с домашним каталогом, файлы в этом каталоге будут использоваться в качестве скелета для домашнего каталога вашего нового пользователя.
ls -a /etc/skel
.bash_logout .bashrc .profile
Мы также можем использовать dpkg, чтобы найти об этих файлах:
$ dpkg -L bash | grep etc
/etc/skel/.bashrc
/etc/skel/.bash_logout
/etc/skel/.profile
/etc/bash.bashrc
, мы видим, что все они установлены bash.
В любом из этих файлов может быть установлен псевдоним или функция, поэтому давайте посмотрим, как эти файлы будут использоваться bash.
From bash man page:
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с опцией -login, она сначала считывает и выполняет команды из файла / etc / profile , если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения., поэтому порядок: ~/.bash_profile > ~/.bash_login > ~/.profile
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром --login, сначала считывает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения.
Когда оболочка входа завершается, bash читает и выполняет команды из файла ~ / .bash_logout, если он существует.
Когда интерактивная оболочка, которая не является логином shell запускается, bash читает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc, если эти файлы существуют.этот будет запускаться каждый раз, когда мы выходим из оболочки входа, я не вижу, как это может повлиять на нашу ситуацию.
, поэтому наиболее важным является ~/.bashrc, потому что почти 90% оболочек bash, которые мы запускаем, находятся в интерактивном режиме и режим без входа. и если мы посмотрим на этот файл, мы увидим, что он будет искать другой файл с именем ~/.bash_aliases, если он сможет его найти, тогда он source тоже будет.
mv ~/.profile ~/.bash_profile
Прежде всего, мы должны переместить ~/.profile на ~/.bash_profile, в противном случае не имеет значения, защитим ли файл ~/.profile, кто-то может создать ~/.bash_profile, и он переопределит наши конфиги, так что:
touch ~/.bash_aliases
После этого, если вы не используете файл ~/.bash_aliases, затем создайте его, как и выше, кто-то может просто создать этот файл, и есть шанс, что он может изменить или псевдонимы внутри него. [!d22 ]
Наконец, используйте chattr для защиты этих файлов от редактирования и удаления.
Когда запущена интерактивная оболочка, которая не является оболочкой входа, bash читает и выполняет команды из / etc / bash.bashrc и ~ / .bashrc, если эти файлы существуют.
sudo chattr +i ~/.bash_profile ~/.bashrc ~/.bash_aliases
На странице chattr man:
Файл с атрибутом 'i' не может быть изменен: его нельзя удалить или переименовать, никакая ссылка не может быть создана для этого файла, и никакие данные не могут быть записаны в файл. Только суперпользователь или процесс, обладающий возможностями CAP_LINUX_IMMUTABLE, могут установить или очистить этот атрибут.
Мы закончили. Не забывайте, что всякий раз, когда вы хотите редактировать эти файлы, вы должны сначала удалить атрибут -i.
sudo touch /usr/local/bin/reload_aliases
Сбросить все без закрытия / повторного открытия терминала
unalias -a
alias x='...'
alias b='...'
Другим обходным решением является создание файла:
sudo chmod a=r,x /usr/local/bin/reload_aliases
Поместите свои псевдонимы туда:
/usr/local/bin/reload_aliases
Убедитесь, что никто не может записать в этот файл:
sudo chattr -i ~/.bash_profile ~/.bashrc ~/.bash_aliases
mv ~/.bash_profile ~/.profile
rm ~/.bash_aliases # if you don't use it
У Bash есть куча файлов конфигурации (aka startup), он использует эти файлы для настройки конкретной среды для каждого пользователя.
Некоторые из этих файлов расположены в /etc, один из них, о котором я знаю, /etc/profile, является глобальным конфигурационным файлом, и его настройки будут применены ко всем сеансам, другой - /etc/bash.bashrc; Мы не должны обходиться этими файлами из-за того, что они уже защищены, и только root имеет права редактировать их.
Очень важный каталог, который может нам очень помочь: /etc/skel ; Всякий раз, когда вы создаете нового пользователя с домашним каталогом, файлы в этом каталоге будут использоваться в качестве скелета для домашнего каталога вашего нового пользователя.
ls -a /etc/skel
.bash_logout .bashrc .profile
Мы также можем использовать dpkg, чтобы найти об этих файлах:
$ dpkg -L bash | grep etc
/etc/skel/.bashrc
/etc/skel/.bash_logout
/etc/skel/.profile
/etc/bash.bashrc
, мы видим, что все они установлены bash.
В любом из этих файлов может быть установлен псевдоним или функция, поэтому давайте посмотрим, как эти файлы будут использоваться bash.
From bash man page:
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с опцией -login, она сначала считывает и выполняет команды из файла / etc / profile , если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения., поэтому порядок: ~/.bash_profile > ~/.bash_login > ~/.profile
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром --login, сначала считывает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения.
Когда оболочка входа завершается, bash читает и выполняет команды из файла ~ / .bash_logout, если он существует.
Когда интерактивная оболочка, которая не является логином shell запускается, bash читает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc, если эти файлы существуют.этот будет запускаться каждый раз, когда мы выходим из оболочки входа, я не вижу, как это может повлиять на нашу ситуацию.
, поэтому наиболее важным является ~/.bashrc, потому что почти 90% оболочек bash, которые мы запускаем, находятся в интерактивном режиме и режим без входа. и если мы посмотрим на этот файл, мы увидим, что он будет искать другой файл с именем ~/.bash_aliases, если он сможет его найти, тогда он source тоже будет.
mv ~/.profile ~/.bash_profile
Прежде всего, мы должны переместить ~/.profile на ~/.bash_profile, в противном случае не имеет значения, защитим ли файл ~/.profile, кто-то может создать ~/.bash_profile, и он переопределит наши конфиги, так что:
touch ~/.bash_aliases
После этого, если вы не используете файл ~/.bash_aliases, затем создайте его, как и выше, кто-то может просто создать этот файл, и есть шанс, что он может изменить или псевдонимы внутри него.
Наконец, используйте chattr для защиты этих файлов от редактирования и удаления.
Когда запущена интерактивная оболочка, которая не является оболочкой входа, bash читает и выполняет команды из / etc / bash.bashrc и ~ / .bashrc, если эти файлы существуют.
sudo chattr +i ~/.bash_profile ~/.bashrc ~/.bash_aliases
На странице chattr man:
Файл с атрибутом 'i' не может быть изменен: его нельзя удалить или переименовать, никакая ссылка не может быть создана для этого файла, и никакие данные не могут быть записаны в файл. Только суперпользователь или процесс, обладающий возможностями CAP_LINUX_IMMUTABLE, могут установить или очистить этот атрибут.
Мы закончили. Не забывайте, что всякий раз, когда вы хотите редактировать эти файлы, вы должны сначала удалить атрибут -i.
sudo touch /usr/local/bin/reload_aliases
Сбросить все без закрытия / повторного открытия терминала
unalias -a
alias x='...'
alias b='...'
Другим обходным решением является создание файла:
sudo chmod a=r,x /usr/local/bin/reload_aliases
Поместите свои псевдонимы там:
/usr/local/bin/reload_aliases
Убедитесь, что никто не может записать в этот файл:
sudo chattr -i ~/.bash_profile ~/.bashrc ~/.bash_aliases
mv ~/.bash_profile ~/.profile
rm ~/.bash_aliases # if you don't use it
У Bash есть куча файлов конфигурации (aka startup), он использует эти файлы для настройки конкретной среды для каждого пользователя.
Некоторые из этих файлов расположены в /etc, один из них, о котором я знаю, /etc/profile, является глобальным конфигурационным файлом, и его настройки будут применены ко всем сеансам, другой - /etc/bash.bashrc; Мы не должны обходиться этими файлами из-за того, что они уже защищены, и только root имеет права редактировать их.
Очень важный каталог, который может нам очень помочь: /etc/skel ; Всякий раз, когда вы создаете нового пользователя с домашним каталогом, файлы в этом каталоге будут использоваться в качестве скелета для домашнего каталога вашего нового пользователя.
ls -a /etc/skel
.bash_logout .bashrc .profile
Мы также можем использовать dpkg, чтобы найти об этих файлах:
$ dpkg -L bash | grep etc
/etc/skel/.bashrc
/etc/skel/.bash_logout
/etc/skel/.profile
/etc/bash.bashrc
, мы видим, что все они установлены bash.
В любом из этих файлов может быть установлен псевдоним или функция, поэтому давайте посмотрим, как эти файлы будут использоваться bash.
From bash man page:
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с опцией -login, она сначала считывает и выполняет команды из файла / etc / profile , если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения., поэтому порядок: ~/.bash_profile > ~/.bash_login > ~/.profile
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром --login, сначала считывает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке и считывает и выполняет команды из первого, который существует и доступен для чтения.
Когда оболочка входа завершается, bash читает и выполняет команды из файла ~ / .bash_logout, если он существует.
Когда интерактивная оболочка, которая не является логином shell запускается, bash читает и выполняет команды из /etc/bash.bashrc и ~ / .bashrc, если эти файлы существуют.этот будет запускаться каждый раз, когда мы выходим из оболочки входа, я не вижу, как это может повлиять на нашу ситуацию.
, поэтому наиболее важным является ~/.bashrc, потому что почти 90% оболочек bash, которые мы запускаем, находятся в интерактивном режиме и режим без входа. и если мы посмотрим на этот файл, мы увидим, что он будет искать другой файл с именем ~/.bash_aliases, если он сможет его найти, тогда он source тоже будет.
mv ~/.profile ~/.bash_profile
Прежде всего, мы должны переместить ~/.profile на ~/.bash_profile, в противном случае не имеет значения, защитим ли файл ~/.profile, кто-то может создать ~/.bash_profile, и он переопределит наши конфиги, так что:
touch ~/.bash_aliases
После этого, если вы не используете файл ~/.bash_aliases, затем создайте его, как и выше, кто-то может просто создать этот файл, и есть шанс, что он может изменить или псевдонимы внутри него.
Наконец, используйте chattr для защиты этих файлов от редактирования и удаления.
Когда запущена интерактивная оболочка, которая не является оболочкой входа, bash читает и выполняет команды из / etc / bash.bashrc и ~ / .bashrc, если эти файлы существуют.
sudo chattr +i ~/.bash_profile ~/.bashrc ~/.bash_aliases
На странице chattr man:
Файл с атрибутом 'i' не может быть изменен: его нельзя удалить или переименовать, никакая ссылка не может быть создана для этого файла, и никакие данные не могут быть записаны в файл. Только суперпользователь или процесс, обладающий возможностями CAP_LINUX_IMMUTABLE, могут установить или очистить этот атрибут.
Мы закончили. Не забывайте, что всякий раз, когда вы хотите редактировать эти файлы, вы должны сначала удалить атрибут -i.
sudo touch /usr/local/bin/reload_aliases
Сбросить все без закрытия / повторного открытия терминала
unalias -a
alias x='...'
alias b='...'
Другим обходным решением является создание файла:
sudo chmod a=r,x /usr/local/bin/reload_aliases
Поместите свои псевдонимы там:
/usr/local/bin/reload_aliases
Убедитесь, что никто не может записать в этот файл:
sudo chattr -i ~/.bash_profile ~/.bashrc ~/.bash_aliases
mv ~/.bash_profile ~/.profile
rm ~/.bash_aliases # if you don't use it
Если вы делаете глупые вещи (уходите без блокировки экрана, слепо запускайте неопытные скрипты из ненадежных источников и т. д.), вы получите плохие результаты.
Попытка быть достаточно умной, чтобы оправиться от плохих практик никогда раньше не работала.
Если вы делаете глупые вещи (уходите без блокировки экрана, слепо запускайте неопытные скрипты из ненадежных источников и т. д.), вы получите плохие результаты.
Попытка быть достаточно умной, чтобы оправиться от плохих практик никогда раньше не работала.
Если вы делаете глупые вещи (уходите без блокировки экрана, слепо запускайте неопытные скрипты из ненадежных источников и т. д.), вы получите плохие результаты.
Попытка быть достаточно умной, чтобы оправиться от плохих практик никогда раньше не работала.