/dev/tty /dev/ttyS0 /dev/tty0,/dev/null区别
2014-10-25 09:52
190 查看
1./dev/tty表示控制终端
如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。
root@iZ23onhpqvwZ:/dev# echo "test" > /dev/tty
test (输出了test)
控制终端可以是Xwindows模式下的伪终端(/dev/pts/*),也可以是控制台虚拟终端(/dev/tty*)
if (device == MKDEV(5, 0)) {
tty = get_current_tty();
if (!tty) {
mutex_unlock(&tty_mutex);
return -ENXIO;
}
driver = tty_driver_kref_get(tty->driver);
index = tty->index;
filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */
/* noctty = 1; */
/* FIXME: Should we take a driver reference ? */
tty_kref_put(tty);
goto got_driver;
}
"driver"对应到驱动,“index"对应到具体的设备,我们从中也可以看出/dev/tty有些类似于到实际所使用终端设备的一个链接。
2./dev/tty0则是当前所使用虚拟终端的一个别名
# tty(查看当前TTY)
/dev/tty1
#echo "test tty0" > /dev/tty0
test tty0
内核实现如下:
if (device == MKDEV(4, 0)) {
extern struct tty_driver *console_driver;
driver = tty_driver_kref_get(console_driver);
index = fg_console;
noctty = 1;
goto got_driver;
}
shell中可能经常能看到:>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出
/dev/null 代表空设备文件
那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
参考:/article/2376617.html
http://blog.chinaunix.net/uid-26696487-id-3207777.html
如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。
root@iZ23onhpqvwZ:/dev# echo "test" > /dev/tty
test (输出了test)
控制终端可以是Xwindows模式下的伪终端(/dev/pts/*),也可以是控制台虚拟终端(/dev/tty*)
if (device == MKDEV(5, 0)) {
tty = get_current_tty();
if (!tty) {
mutex_unlock(&tty_mutex);
return -ENXIO;
}
driver = tty_driver_kref_get(tty->driver);
index = tty->index;
filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */
/* noctty = 1; */
/* FIXME: Should we take a driver reference ? */
tty_kref_put(tty);
goto got_driver;
}
"driver"对应到驱动,“index"对应到具体的设备,我们从中也可以看出/dev/tty有些类似于到实际所使用终端设备的一个链接。
2./dev/tty0则是当前所使用虚拟终端的一个别名
# tty(查看当前TTY)
/dev/tty1
#echo "test tty0" > /dev/tty0
test tty0
内核实现如下:
if (device == MKDEV(4, 0)) {
extern struct tty_driver *console_driver;
driver = tty_driver_kref_get(console_driver);
index = fg_console;
noctty = 1;
goto got_driver;
}
shell中可能经常能看到:>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出
/dev/null 代表空设备文件
那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
参考:/article/2376617.html
http://blog.chinaunix.net/uid-26696487-id-3207777.html
相关文章推荐
- /dev/tty /dev/ttyS0 /dev/tty0区别 (转载)
- /dev/tty /dev/ttyS0 /dev/tty0区别 (2012-12-18 14:45:26)
- /dev/tty /dev/ttyS0
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/tty /dev/ttyS0 /dev/tty0区别
- /dev/ttyUSB0 permission denied 解决办法:永久有可操作权限
- linux下非root用户获得/dev/ttyUSB0的读写权限
- 虚拟机Linux(Fedora10)下USB转串口的使用, minicom: cannot open /dev/ttyUSB0的解决