首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过 ssh 会话执行 bash 别名

我在远程主机上上设置过一个叫做 file_repl 的 bash 别名 。当我使用 ssh 命令登录远程主机后,可以很正常的使用这个别名。然而这个 bash 别名却无法通过 ssh 来运行

-- Vivek Gite

本文导航

◈ 如何用 ssh 客户端执行命令

14%

◈ 理解 bash shell 以及命令的类型

27%

◈ 在 Unix 系统上无法直接通过 ssh 客户端执行 bash 别名

46%

◈ 相关资料

86%

编译自 | https://www.cyberciti.biz/faq/use-bash-aliases-ssh-based-session/

作者 | Vivek Gite

译者 | lujun9972

我在远程主机上上设置过一个叫做 file_repl 的 bash 别名

[1]

。当我使用 ssh 命令登录远程主机后,可以很正常的使用这个别名。然而这个 bash 别名却无法通过 ssh 来运行,像这样:

我要怎样做才能通过 ssh 命令运行 bash 别名呢?

SSH 客户端 (ssh) 是一个登录远程服务器并在远程系统上执行 shell 命令的 Linux/Unix 命令。它被设计用来在两个非信任的机器上通过不安全的网络(比如互联网)提供安全的加密通讯。

如何用 ssh 客户端执行命令

通过 ssh 运行 命令或date 命令

[2]

可以这样做:

结果为:

或者:

结果为:

理解 bash shell 以及命令的类型

bash shell

[3]

共有下面几类命令:

☉ 别名,比如

☉ 关键字,比如

☉ 函数 (用户自定义函数,比如 )

☉ 内置命令,比如

☉ 外部文件,比如

type 命令

[4]

和command 命令

[5]

可以用来查看命令类型:

和 都是外部命令,而 是 的别名。你不能直接执行像 这样的别名:

在 Unix 系统上无法直接通过 ssh 客户端执行 bash 别名

要解决这个问题可以用下面方法运行 ssh 命令:

命令选项:

◈ :强制分配伪终端。可以用来在远程机器上执行任意的

[6]

基于屏幕的程序,有时这非常有用。当使用 时你可能会收到一个类似 “bash: cannot set terminal process group (-1): Inappropriate ioctl for device. bash: no job control in this shell .” 的错误。

bash shell 的选项:

◈ :运行交互 shell,这样 shell 才能运行 bash 别名。

◈ :要执行的命令取之于第一个非选项参数的命令字符串。若在命令字符串后面还有其他参数,这些参数会作为位置参数传递给命令,参数从 开始。

总之,要运行一个名叫 的 bash 别名,可以运行下面命令:

结果为:

Running bash aliases over ssh based session when using Unix or Linux ssh cli

下面是我的一个 shell 脚本的例子:

相关资料

更多信息请输入下面命令查看OpenSSH 客户端

[7]

和bash 的 man 帮助

[8]

via:https://www.cyberciti.biz/faq/use-bash-aliases-ssh-based-session/

作者:Vivek Gite

[10]

译者:lujun9972校对:wxy

本文由LCTT原创编译,Linux中国荣誉推出

LCTT 译者

lujun9972

共计翻译:75篇

贡献时间:55 天

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180122B05TY000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券