任何人都可以解释什么目的或如何使用/ dev / tty
你可以从POSIX规范开始。 从那里,阅读一个过程的“控制终端”。
但只是例如… / dev / tty是一个像“ssh”这样的命令如何读取你的密码,即使它的标准输入来自其他地方:
tar cf - . | ssh dest 'tar xf -'
如果ssh决定提示你输入密码,它将从/ dev / tty而不是stdin中读取。
从概念上讲,/ dev / tty是“键盘和文本终端”。 或多或少。
它允许一个程序连接到它的“控制终端”(如果有的话),即使stdin,stdout和stderr已经被重定向了。 一个常见的用法是从用户请求密码。
如果stdin已被设置为管道,则可以使用/ dev / tty来模拟来自控制输入终端设备的读取。
例如:
echo ~/.profile ~/.bashrc | xargs sh -c 'vim "$@" </dev/tty' dummy_script_name # :qa # quit all files
看到: 做了grep并把它传递给vim然后退出,为什么我遇到这个奇怪的控制台故障?