启动了 AWS Ubuntu 20.04.2 服务器。该服务器位于跳板服务器后面。
服务器启动后,我运行:
sudo update
sudo upgrade
并重启服务器。之后,创建一个~/.bash_aliases
文件并添加以下别名:
alias lsd='ls -a -g --group-directories-first'
保存.bash_aliases后,重新加载.bashrc:source ~/.bashrc
当使用别名时,出现以下错误:
xxx@ip-1-2-3-4:~$ lsd
's: unrecognized option '--group-directories-first
Try 'ls --help' for more information.
验证了以下内容:
- 完整命令将在没有别名的情况下运行
- 别名在直接添加到 ~/.bashrc 文件时有效
还验证.bashrc
了读取别名:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
问题:如何通过 ssh 使用 .bash_aliases 文件?
我读过类似的问题,但那里的解决方案似乎不起作用:为何我的别名无法通过 ssh 起作用?
我以前使用过 Windows,现在才开始在 Linux 领域工作;请温柔一点。
编辑上下文
该.bash_aliases
文件是在通过 ssh 进入服务器时使用 MobaTextEditor 在 Windows 上本地编辑的。尽管在服务器上创建了空文件,但由于文件为空,因此编辑器中并未隐含 Unix 样式编码。使用 MobaTextEditor 编辑并保存回服务器后,将 Windows 编码添加到文件中。
答案1
错误消息中引号的奇怪位置表明 .bash_aliases 文件具有 DOS 样式的 CRLF(即\r\n
)行结尾,例如。
$ printf '%s\r\n' "alias lsd='ls -a -g --group-directories-first'" >> ~/.bash_aliases
$ file ~/.bash_aliases
/home/steeldriver/.bash_aliases: ASCII text, with CRLF line terminators
$ . ~/.bash_aliases
$
$ lsd
's: unrecognized option '--group-directories-first
Try 'ls --help' for more information.
您可以通过在文本编辑器中设置适当的 UNIX 行终止或通过传递文件来修复此问题dos2unix
:
$ dos2unix ~/.bash_aliases
dos2unix: converting file /home/steeldriver/.bash_aliases to Unix format...
然后您将需要再次获取该文件。