发消息给同一设备上的其他终端:
1.理解重定向的底层实现
重定向 = open + dup
以 1>/dev/null为例,是先N=open(/dev/null),得到一个文件描述符N,接着dup2(N,1)将N的文件指针复制到1对应的文件指针,然后两个文件指针都指向描述符N对应的文件信息项,即标准输出重定向到/dev/null。
2.1>/dev/null 2>&1 和 1>/dev/null 2>/dev/null的区别
根据上面的理解来理解这个。第一个open了一次,第二个open了2次,且第二个由于同一个文件打开两次,这两次会相互覆盖(文件偏移量不一样)。
here document
command << delimiter
document
delimiter
MSG_SERVER 的 client id就是一个网络socket的文件描述符。
lsof可以看进程打开的文件,那么就可以看到进程建立的socket连接,就可以看见进程打开的端口。
XSHELL “复制SSH渠道” 意思是共用同一个SSHD进程,即同一条SSH连接
“复制” 意思是新建一条SSH连接。
strace跟踪sshd后台进程可以发现有意思的现象:进程卡在select函数不动了,等待有连接接进来就继续往下走: