From the [documentation](http://www.kernel.org/doc/Documentation/devices.txt): /dev/tty Current TTY device /dev/console System console /dev/tty0 Current virtual console In the good old days /dev/console was System Administrator console. And ttys were users serial devices attached to Server. Now `/dev/console` and `/dev/tty0` represent current display and usualy are the same. You can ovverride it by adding, for example `console=ttyS0` to `grub.conf`. After that your `/dev/tty0` is a monitor and `/dev/console` is `/dev/ttyS0`. Difference between /dev/tty an /dev/tty0 shows an exercise: Switch to 2-nd console by pressing Ctrl+Alt+F2. Login as a root. Type the folowing: `sleep 5; echo tty0 > /dev/tty0`. press `Enter` and quick switch to 3d console by pressing `Alt+F3`. Now switch back to 2-nd by pressing `Alt+F2`. Type `sleep 5; echo tty > /dev/tty`, press `Enter` and quick switch to 3d console. You can see that tty is the console where process starts, and tty0 is a always current console.