Рейтинг:0

Псевдоним терпит неудачу при определении в .bash_aliases в Ubuntu 20.04.2 через ssh с сервером перехода

флаг cn

Запустил сервер AWS Ubuntu 20.04.2. Этот сервер находится за прыжковым сервером.

Как только сервер заработал, я запустил:

обновление судо
обновление судо

Так же как и перезагрузил сервер. После этого создал ~/.bash_aliases файл и добавил следующий псевдоним:

псевдоним lsd='ls -a -g --group-directories-first'

После сохранения .bash_aliases перезагрузил .bashrc: источник ~/.bashrc

При использовании псевдонима отображается следующая ошибка:

xxx@ip-1-2-3-4:~$ лсд
's: нераспознанный параметр '--group-directories-first
Попробуйте 'ls --help' для получения дополнительной информации.

Проверено следующее:

  • полная команда будет работать без псевдонима
  • псевдоним работает при добавлении непосредственно в файл ~/.bashrc

Также проверено .bashrc читает в псевдонимах:

если [-f ~/.bash_aliases]; тогда
    . ~/.bash_aliases
фи

Вопрос: Как я могу использовать файл .bash_aliases по ssh?

Я прочитал аналогичный вопрос, но решение там, похоже, не работает: Почему мой псевдоним не работает через ssh?

Я пришел из Windows и только сейчас начинаю работать в мире Linux; быть нежным.

Изменить для контекста

.bash_aliases файл был отредактирован локально в Windows с помощью MobaTextEditor при подключении к серверу по ssh. Несмотря на то, что пустой файл был создан на сервере, кодировка в стиле Unix не использовалась в редакторе, поскольку файл был пустым. Кодировка Windows была добавлена ​​в файл после редактирования и сохранения обратно на сервер с помощью MobaTextEditor.

флаг hr
Странное размещение кавычек в сообщении об ошибке предполагает, что файл `.bash_aliases` имеет окончания строк в стиле DOS – проверьте с помощью `file ~/.bash_aliases`
флаг cn
@steeldriver — возвращается как «.bash_aliases: текст ASCII с разделителями строк CRLF» — я должен обновить свой вопрос, касающийся локального запуска Windows с WSL и редактирования файла с помощью MobaTextEditor. Что странно, я отредактировал `.bashrc` с помощью MobaTextEditor, и команда файла вернула `.bashrc: текст ASCII`
флаг hr
Был ли .bash_aliases новым файлом? Возможно, MobaTextEditor сохраняет окончания строк существующих файлов (например, вашего .bashrc), но по умолчанию использует CRLF для новых файлов.
флаг cn
@steeldriver - спасибо! Я обновил MobaTextEditor до правильной кодировки и формата; все перезагрузил и псевдонимы теперь работают из файла `bash_aliases`. Если вы хотите сделать ответ, я приму его.
флаг hr
Спасибо - смотрите ниже
Рейтинг:2
флаг hr

Странное расположение кавычек в сообщении об ошибке предполагает, что файл .bash_aliases имеет CRLF в стиле DOS (т.е. \r\n) окончания строк напр.

$ printf '%s\r\n' "alias lsd='ls -a -g --group-directories-first'" >> ~/.bash_aliases

$ файл ~/.bash_aliases
/home/steeldriver/.bash_aliases: текст ASCII с разделителями строк CRLF.

$ . ~/.bash_aliases
$
$ лсд
's: нераспознанный параметр '--group-directories-first
Попробуйте 'ls --help' для получения дополнительной информации.

Вы можете исправить это, установив соответствующее завершение строки UNIX в текстовом редакторе или передав файл через dos2unix:

$ dos2unix ~/.bash_aliases
dos2unix: преобразование файла /home/steeldriver/.bash_aliases в формат Unix...

Затем вам нужно будет снова получить файл.

флаг cn
Очень полезно. Спасибо и за подсказку с dos2unix.

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

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