Рейтинг:3

Риски замены файла .bashrc с одного компьютера на другой

флаг id

У меня есть 2 ноутбука Asus Zenbook под управлением Ubuntu 20.04.3LTS (мой текущий ноутбук, и я сохранил свой старый ноутбук в качестве системы аварийного резервного копирования, поскольку я не могу быть без ноутбука). Я очень редко пользуюсь старым, но бегаю sudo ap-получить обновление и sudo apt-получить обновление каждые 3-4 недели.

Когда я в последний раз открывал его пару дней назад, я получил ошибку при открытии терминала:

bash: /home/will/.bashrc: строка 100: неожиданный EOF при поиске 
соответствие `)'
bash: /home/will/.bashrc: строка 121: синтаксическая ошибка: неожиданный конец файла  

... хотя, похоже, все, что я пытался сделать в терминале, работает нормально.

Как это часто бывает, в строках, упомянутых в ошибке, нет ничего очевидного, что является причиной - я быстро просмотрел и не нашел ничего, что я изменил где-либо еще в файле, что могло бы вызвать ее. Хотя я, вероятно, мог бы найти его в конце концов, вероятно, проще заменить файл.

Мой вопрос: поскольку у меня есть второй подобный ноутбук с идентичной версией Ubuntu, есть ли какая-то причина не просто скопировать функционирующий .bashrc с нового ноутбука, чтобы заменить поврежденный на моем старом ноутбуке? Вместо этого я мог бы вместо этого заменить на оригинальную версию с работающего USB (на этом сайте есть несколько сообщений, косвенно указывающих на то, что это возможно), но мне пришло в голову, что некоторые из псевдонимов, которые я создал (и, следовательно, в .bashrc на моем новый ноутбук) было бы полезно иметь на старом ноутбуке.

Если это возможно, сообщите также, известны ли вам какие-либо обстоятельства, при которых нет быть хорошей идеей. Предположительно не разумно между разными выпусками Ubuntu? Это не имеет отношения к моей ситуации, но (из интереса) я предполагаю, что не имеет значения, если аппаратное обеспечение сильно отличается (например, ноутбук от настольного компьютера)?

Редактировать: в ответ на комментарии: это автономный файл. Единственные изменения, которые я сделал (сознательно), — это добавление некоторых псевдонимов (для синхронизации данных в моем зашифрованном разделе с зашифрованным диском с внешней клавиатурой). Я, очевидно, просмотрел псевдонимы, чтобы проверить, что я не сделал простой ошибки, но не могу найти ничего очевидного.

mchid avatar
флаг bo
Похоже, что в строке 100 есть непревзойденный ( и, возможно, невидимый пробел или специальный символ в строке 121. В любом случае замена файла должна быть простым решением (см. Мой ответ ниже).
флаг cn
Странно, что эта ошибка только начала появляться, не так ли?
Will avatar
флаг id
Это странно ... хотя это могло быть там какое-то время - это не так очевидно, если вы чего-то не ожидаете - я почти уверен, что это будет человеческая ошибка, и я сделал что-то смешное с файлом во время редактирования Это.
bac0n avatar
флаг cn
`diff -y -W130 ~/.bashrc /etc/skel/.bashrc | cat -n` это хорошее начало
muru avatar
флаг us
Является ли ваш `.bashrc` автономным? Какие модификации вы в него вносите? Без этой информации невозможно дать разумный ответ.
Will avatar
флаг id
@муру - спасибо. Да, он автономный.Единственные изменения, которые я сознательно сделал, — это добавление псевдонимов для запуска синхронизации между ноутбуком и внешним диском с помощью rsync. Я отредактировал вопрос с этой информацией.
muru avatar
флаг us
@ Вы пробовали запускать на нем shellcheck? Это также устанавливаемая программа, которую вы можете использовать, если не хотите отправлять свой bashrc на веб-сайт.
vanadium avatar
флаг cn
Несмотря на многословие, ваш вопрос просто «Риски замены файла .bashrc с одного компьютера на другой». Поэтому, пожалуйста, придерживайтесь его. Любые попытки отладить ваш файл выходят за рамки вопроса, который вы задали.
Will avatar
флаг id
@muru - спасибо за это; как говорит ванадий, мой главный интерес состоял в том, чтобы посмотреть, можно ли скопировать файл из одной системы в другую, но это выглядит полезным, если я столкнусь с другими проблемами, так что спасибо!
Will avatar
флаг id
@vanadium - да, у меня есть опция -v в моем вопросе !! Вы правы, меня интересовала замена файла.
Рейтинг:7
флаг bo

Я не думаю, что есть какие-то причины не копировать и не заменять старые .bashrc файл с новым, если у вас нет большого количества пользовательских конфигураций в файле.

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

На всякий случай всегда лучше сделать резервную копию старого файла.

Рейтинг:2
флаг cn

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

cp /etc/skel/.bashrc ~
Will avatar
флаг id
Полезный ответ ... дал мне уверенность в том, что я могу сделать копию с одного компьютера на другой, зная, что я могу восстановить настройки по умолчанию, если что-то пойдет не так.
Will avatar
флаг id
спасибо, уже проголосовали за оба ответа и приняли один.
Рейтинг:0
флаг id

Благодаря обоим ответам выше - просто чтобы подтвердить, что я попробовал его с одного ноутбука на другой, и все было в порядке, и ошибки были устранены.

Я не стал делать резервную копию старого файла, так как он все равно был поврежден, и я знал (благодаря ответу @vanadium), как восстановить систему по умолчанию, если что-то пойдет не так. Для меня было очень полезно иметь возможность сделать это, поскольку это сохраняло мои псевдонимы.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.