Not a typewriter

or, what it should be: Not a terminal

One of the more obscure error messages that Unix generates :) They were expecting to have a terminal (TTY), but instead got passed something else (a file, a pipe, a socket or something). This often occurs in shell scripts that want to use stty(1) to configure the terminal, but are being run from crond(8)? or perhaps your .profile when you're logging in using something that doesn't create a terminal (eg: issuing a remote command using ssh(1)).

For example, my .bashrc file used to contain "stty erase '^H'" instead of the '^?' used by default on some terminal emulations. Whenever I did an scp(1) to/from a remote machine, I would get the message "stty: invalid argument" as there is no inter-active terminal associated with the bash invokation (despite being a "login" shell).