在 CYGWIN 环境变量中检测到“tty”选项

在 CYGWIN 环境变量中检测到“tty”选项

我最近在 Windows 7 机器上重新安装了 cygwin,并将 cygwin 目录添加到我的路径中,以便它可以与 Windows 命令行无缝协作。每次执行命令时,我都会在实际输出上方得到以下内容:

"tty" option detected in CYGWIN environment variable.
CYGWIN=tty is no longer supported.  Please remove it from your
CYGWIN environment variable and use a terminal emulator like mintty,
xterm, or rxvt.

我怎样才能摆脱这个问题,以便可以在命令行中使用 cygwin 而没有烦人的标题?

答案1

CYGWIN我遇到了同样的问题,但是在任何脚本或计算机属性(控制面板)中都没有设置环境变量。

然后我发现该服务在 Windows 注册表中的以下项下sshd有一个环境变量设置:CYGWIN

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\sshd\Parameters\Environment

通过删除字符串tty中的选项@CYGWIN,执行命令时不再出现弃用警告。

答案2

您必须在某个地方设置 CYGWIN 环境变量,例如在您用于启动命令提示符的脚本中或在全局 Windows 环境中。您可以在控制面板中的系统->高级->环境变量下找到后者。(至少在 XP 中它们位于此处;它们可能已移至 7。)

答案3

VirtualStaticVoid +1

您可以在此处查看设置:

$ cat /proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/sshd/Parameters/Environment/CYGWIN
tty ntsec

但它是只读的。以下是如何通过仅 ssh 访问来修复它:

创建 sshd-env.reg

$ cat <<EOF >sshd-env.reg
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sshd\Parameters\Environment]
"CYGWIN"="ntsec"
EOF

将其导入注册表:

$ regedit.exe -s sshd-env.reg

验证是否已花费:

$ cat /proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/sshd/Parameters/Environment/CYGWIN
ntsec

以某种方式重新启动 sshd。

cygrunsrv 似乎没有 --restart 选项。真可惜。如果没有安装 crontab(默认情况下没有安装),最简单的方法可能是重新启动机器。毕竟这是 Windows。

$ shutdown -r -t 0

相关内容