假设我有一个别名ll='ls -l',但我也希望能够在使用 SSH 访问的任何服务器上使用它,无论什么操作系统或用户(当然前提是ls -l实际有效)。

这可能吗?如果需要的话,我也愿意使用其他终端应用程序。

5

  • 您可以创建一个小脚本,该脚本始终尝试将本地别名文件复制到远程计算机并确保调用远程别名文件。完成后,它将连接到该计算机。


    – 

  • @paladin 问题是,如果我登录到其他人也使用的用户,则可能会导致问题


    – 

  • -t选项可用于指定在服务器端执行的命令。请参阅此处的答案:


    – 

  • @Robert 我可以使用它为该特定会话创建别名吗?


    – 

  • 我还没有尝试过,但对我来说这似乎是可能的。


    – 


最佳答案
1

任意操作系统的主机(可能不受管理)都不能保证按照您期望的方式进行设置。当然,包括 shell 配置。

以可移植且自包含的方式编写脚本。如果您需要别名和函数,请自行获取单独的文件,不要假设登录 shell。使用设计为脚本化的程序,例如find 列出文件。可能使用除 shell 之外的脚本语言,例如 Ansible 自动化框架使用 Python。

对于交互式使用,请自动安装配置,使其在所有相关服务器上都可用。一些发行版具有 shell 配置文件,源文件可利用/etc/profile.d/ 此配置文件为所有用户安装自定义文件。或者,如果这是个人便利且不需要共享,则还有用户特定的 shell 文件。无论如何,每个拥有登录 shell 的人都应该有一个个人用户,以便通过审计跟踪来追踪某个人的活动。