And*_*iuc 10 bash command-line-interface strace
我对 strace / netstat / 等很陌生。我正在使用此命令来跟踪处理我的请求 (telnet) 的 apache 进程,有没有办法稍微简化一下?
sudo strace -o /tmp/strace -f -s4096 -r -p $(netstat -antlp | \
grep $(lsof -p `pidof telnet` | grep TCP | \
perl -n -e'/localhost:(\d+)/ && print $1') | grep apache2 | \
perl -n -e'/ESTABLISHED (\d+)/ && print $1')
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 1
我可以对 Mark Henderson 的改进一点,用 $() 而不是 `` 并用更好的 sed 删除 grep:
sudo strace -o /tmp/strace -f -s4096 -r -p $(netstat -antlp | \
sed -e "/telnet/s/^.*ESTABLISHED\ \|\/.*$//g")
Run Code Online (Sandbox Code Playgroud)
就我个人而言,我认为反引号使其难以阅读;此外,与 $() 语法不同,它们不嵌套