我在我的文件中定义了一个别名 .bashrc
alias l.='ls -d .* --color=auto'
Run Code Online (Sandbox Code Playgroud)
这是非常有用的 :) 但它不能通过以下方式工作ssh:
$ ssh localhost l.
bash: l.: command not found
Run Code Online (Sandbox Code Playgroud)
这是为什么?
Mat*_*vid 14
尝试:
ssh localhost -t bash -ci l.
Run Code Online (Sandbox Code Playgroud)
笔记:
别名应该在~/.bashrc远程服务器上,而不是在你的本地机器上。
该-i选项告诉bash运行交互式 shell。默认情况下,仅在交互式 shell 中启用别名。
该-t选项告诉ssh分配伪终端。如果没有这个,bash在交互模式下启动时会发出警告消息。这也可以启用ls颜色。没有它,您将不得不使用--color=always,请参阅man ls。
还有另一种启用别名的方法,无需设置交互标志,即shopt -s expand_aliases. 所以你可以试试:
ssh localhost 'bash -c "shopt -s expand_aliases; l."'
Run Code Online (Sandbox Code Playgroud)
然而:
.bashrc如果 shell 是交互式的,您可能只定义别名。在这个例子中,shell 在那个时候不会是交互式的。
如果您尝试在同一行上定义别名,请参阅此。
| 归档时间: |
|
| 查看次数: |
12849 次 |
| 最近记录: |