我正在寻找一个解释,命令的输出ip link
和ip addr
在 linux 机器上的含义到底是什么。
# ip link
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:a1:ba:51:4c:11 brd ff:ff:ff:ff:ff:ff
4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
link/ether 00:a1:ba:51:4c:12 brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)
LOWER_UP
,NO-CARRIER
和其他标志究竟是什么?我在http://download.vikis.lt/doc/iproute-doc-2.6.32/ip-cref.ps找到了一个参考,但它不包含完整的信息,手册页不够详细。
我找到了/proc/sys/kernel//random/entropy_avail
指示/dev/random
. 我想检查下一次读取是否/dev/random
会阻塞,而我的幼稚方法只是比较entropy_avail
所需随机位的数量,但效果不佳。当我做了一个简单愚蠢的实验时,我意识到熵是被缓冲的。64 位熵缓冲区提供 6 字节的随机数据。
我通过这个简单的命令监控了 entropy_avail:
while true
do
cat /proc/sys/kernel//random/entropy_avail
sleep 1
done
Run Code Online (Sandbox Code Playgroud)
我试图通过命令获得一个随机字节
dd if=/dev/random bs=1 count=1 > /dev/null
Run Code Online (Sandbox Code Playgroud)
dd
如果熵为 63 或更低,该命令将被阻止。当熵达到 64 并且我读取一个字节时,熵减少到 0,但我可以在不阻塞的情况下读取另外 5 个字节。然后dd
再次阻塞,直到熵达到 64。
entropy_avail 的确切含义是什么,如何检测可用随机位的实数?
我循环运行我的命令。我将循环直接写入 bash 命令行:
$ while true; do mycommand; done
Run Code Online (Sandbox Code Playgroud)
mycommand
是一个执行大量 io 并等待事件的命令,因此它不会消耗太多处理器时间。
我怎样才能中断循环?当我按下ctrl-c
或ctrl-\
然后 mycommand 终止但它立即再次启动。当我登录到另一个终端并终止命令时,情况是一样的。
是否可以在不终止终端会话的情况下中断循环?
我知道重定向到纯文件时>
和之间的区别>>
。但是重定向到命名管道 (fifo) 时有区别吗?
假设namedpipe
是一个命名管道。以下 bash 命令是否等效?
echo something > namedpipe
echo something >> namedpipe
Run Code Online (Sandbox Code Playgroud)