該文僅針對自身對Linux基礎知識不足的地方進行補充擴展,便于鞏固。
終端的輸入和輸出由字符設備管理。
1、查看當前字符設備
# 查看當前bash進程
[root@openEuler-1 ~]# psPID TTY TIME CMD9662 pts/1 00:00:00 bash9938 pts/1 00:00:00 ps# 該目錄存放了當前進程打開的所有文件描述符的符號鏈接
[root@openEuler-1 ~]# cd /proc/9662/fd/# 0表示輸入、1表示標準輸出、2表示錯誤輸出
[root@openEuler-1 fd]# ls
0 1 2 255# 可以看到其都鏈接指向/dev/pts/1
[root@openEuler-1 fd]# ll
total 0
lrwx------ 1 root root 64 Jul 8 17:23 0 -> /dev/pts/1
lrwx------ 1 root root 64 Jul 8 17:23 1 -> /dev/pts/1
lrwx------ 1 root root 64 Jul 8 17:23 2 -> /dev/pts/1
lrwx------ 1 root root 64 Jul 8 17:23 255 -> /dev/pts/1# 當前使用的字符設備
[root@openEuler-1 fd]# ll /dev/pts/1
crw--w---- 1 root tty 136, 1 Jul 8 17:25 /dev/pts/1# 回到最開始ps命令也有顯示:
[root@openEuler-1 ~]# psPID TTY TIME CMD9662 pts/1 00:00:00 bash9938 pts/1 00:00:00 ps
測試將 date 命令的輸出,輸入到第二個終端使用的字符設備當中:
2、輸入與輸出工作流程
3、常用命令
命令 | 含義 |
> | 將標準輸出1重寫入目標(>>為續寫) |
2> | 將錯誤輸出2重寫入目標 |
& | 將標準輸出1和錯誤輸出2都重寫入目標 |
| | 將標準輸出1拿出來給標準輸入 |
tee | 將標準輸入1復制一份給入目標 |
2>&1 | 強制將錯誤輸出2轉入給標準輸出1 |