Вам необходимо преобразовать окончания строк /mnt/c/Users/Philipp/.aliases_win
из формата Windows (CRLF) в формат Unix (LF). Вы можете сделать это с помощью sed (это перезапишет файл):
sed -i 's/\r$//' /mnt/c/Users/Philipp/.aliases_win
Объяснение:
Причина, по которой bash говорит, : command not found
заключается в том, что она интерпретирует возврат каретки на «пустых» строках в файле в формате Windows как имя команды. Вы можете проверить это сами в оболочке bash, набрав CTRL-V, CTRL-M и нажав Enter (CTRL-M или ^ M соответствует возврату каретки, см. man console_codes
).
После того, как вы удалили все пустые строки, у вас остались всего несколько команд псевдонимов, которые вы получили : File or directory not found
после выполнения псевдонимов, потому что возврат каретки в конце строк псевдонимов был фактически добавлен в псевдоним. Например, линия alias ..='cd ..'<CR><LF>
сделал ..
псевдоним cd ..<CR>
, который не идет в родительскую папку, ..
но вместо этого пытается перейти в каталог с именем ..<CR>
. Сообщение об ошибке при запуске этого псевдонима не начинается с типичного, bash: cd: foldername
потому что повторение возврата каретки в имени папки приводит к тому, что курсор возвращается в начало строки; попробуйте что-то вроде, echo aaaa<CR>bb
чтобы увидеть это более четко.