我在这家公司工作了大约 8 年,一直让我困惑的是,我们有一家软件供应商经常连接到我们的网络,向我们的用户等提供其软件的用户支持。
我的问题是,当他们需要连接到我们的服务器时,我注意到他们在桌面上运行这些命令来访问我们的服务器:
$ modem1
$ internet
$ take EUUK_9010
我认为 EUUK_9010 是我们给他们的客户编号或其他什么,但其他命令有什么作用?这似乎相当于他们打开一个终端并写入,为什么他们不这样做呢?ssh [email protected]
答案1
这些命令都不是标准的 Unix 命令,因此它们可以是任何命令。
首先看一下 shell 运行时实际调用的内容:
$ type modem1
类型可能会告诉查询的命令是别名、函数还是可执行文件。
在后一种情况下,您可以使用 file 命令来确定它是 shell 脚本还是二进制文件,例如:
$ file /usr/bin/modem1
注意:要弄清楚当您在 POSIX 或 Bourne shell(例如 sh、ksh、zsh、bash、ash、dash 等)下输入命令时最终会执行什么,请确保您使用的是命令type
而不是命令which
。 POSIX 未指定后者,因此 Unix 系统中可能会缺少后者。此外,which
当 PATH 中存在的命令被别名或函数覆盖时,Unix/Linux 系统中经常存在的可执行文件将提供无用的信息。仅which
当您使用csh
像tcsh
.