bash: /home/rathin/.profile:: Нет такого файла или каталога при попытке перезагрузить его через "source ~/.profile" после редактирования через "vi ~/.profile"
После того, как я отредактировал мой ~/.profile
с помощью vi
команда, не может выйти из него успешно.
Поэтому я закрыл терминал, и когда я попробовал его снова после повторного открытия терминала, он показал дубликат файла с именем ~/.profile.swp
, Поэтому я удалил это.
Теперь это показывает
bash: /home/rathin/.profile:: No such file or directory
когда я пытаюсь
source ~/.profile
Это также показывает ошибку
Error loading /home/user/.profile no such file or directory found.
когда я перезагружаю свой ноутбук.
Это вывод vi ~/.profile
~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
"~/.profile" 25 lines, 677 characters
Любая помощь будет высоко ценится.
2 ответа
Избавьтесь от первой строки в этом файле. Это читает
~/.profile: ...
и bash пытается выполнить этот файл, имя которого заканчивается на :
, Этот файл не существует, поэтому Bash жалуется, обратите внимание на двойной:
в сообщении об ошибке.
TL;DR Первая строка должна быть комментарием
# ~/.profile: executed by the command interpreter for login shells.
Поэтому беги
perl -i.bak -0777 -pe 's/^/# /' ~/.profile
Команда добавляет #
в начале первой строки и создает файл резервной копии: ~/.profile.bak
объяснение
-0777
изменяет разделитель строк на undef, что позволяет нам загружать файл, передавая все строки в Perl за один раз.-p
обрабатывает файл построчно и печатает вывод.-e
это то, что позволяет нам указать код Perl, который мы хотим запустить прямо в командной строке.