linux - 在 SSH 登录后加载一些别名

标签 linux bash authentication ssh alias

<分区>

在我的日常工作中,我经常需要在设备上使用ssh连接(你可以认为是只读的),而且我写的命令很长。

这就是为什么我想在 ssh 登录后立即加载一些别名。 但是当我尝试如下操作时,它不起作用:

ssh name@ipAdress "bash -l ; alias short='veryLongCommandThatIWriteOften'"

我想那是因为 bash 停止了紧随其后的其他命令的处理。

那么是否可以直接将别名设置为 bash 的参数,或者是否有其他解决方案来做我想做的事情?

最佳答案

您可以使用 shell 函数代替别名,bash 允许您导出该函数。这样,您首先定义函数,然后导出其名称,最后启动一个 继承您函数的交互式 shell。例如:

ssh -t name@ipAddress "short () { veryLongCommandThatIWriteOften; }; export -f short; bash"

-t 是为交互式 bash shell 设置伪终端所必需的,因为 ssh 不会自动为显然是非交互式命令。

请注意,根据 short 的主体是什么,您需要注意引用。

关于linux - 在 SSH 登录后加载一些别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21885619/

相关文章:

linux - 使用 shell 计算学生的平均分

linux - 如何列出目录及其所有子目录中的所有文件?

database - 理解成语 "kerberos login"和 "kerberos password"

rest - 是否可以使用 HTTP BASIC 身份验证保护 ColdFusion 11 REST 服务?

Java 单点登录 : Kerberos authentication against Active Directory

linux - 使用 bash 为文本文件中的所有列添加双引号

linux - 我如何使用 bash 脚本在后台执行 grep 链命令

c++ - 编译着色器 GLSL 3.30 时出错

bash - 如何将大文件拆分为小文件和按列命名的文件

linux - struct proc_dir_entry 的 owner 字段哪里去了? [ Linux 内核 ]