我最近在 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