Entre os vários grupos do Telegram, um que é muito bom é o de shell, o t.me/shellbr pros mais íntimos.
Um dia desses, entre discussões de como fazer um shell melhor e eu postando sticker pros falantes de língua inglesa de que o grupo é em língua portuguesa, apareceu algo que abriu minha visão em shell pra algo muito maravilhoso. Não é uma novidade de um comando mágico que faz algo completamente novo, mas a simplicidade da solução que esteve esse tempo todo na minha cara e eu nunca vi foi o que me fascinou.
Pra dar um pouco mais de contexto, o que se referia isso: quem nunca precisou mandar um "ps auxwww | grep firefox" e pegou o próprio comando grep na saída?
~> ps auxwww | grep firefox helio 5719 15.5 2.9 3994484 475156 ? Rl 20:57 4:38 /usr/lib/firefox/firefox --ProfileManger --no-remote helio 5815 6.0 1.6 3021712 259472 ? Sl 20:58 1:47 /usr/lib/firefox/firefox -contentproc -childID 1 helio 5876 1.0 1.2 2687192 201516 ? Sl 20:58 0:18 /usr/lib/firefox/firefox -contentproc -childID 2 helio 5916 0.5 1.0 2646492 161856 ? Sl 20:58 0:10 /usr/lib/firefox/firefox -contentproc -childID 3 helio 5939 5.8 2.0 3008700 325944 ? Rl 20:58 1:44 /usr/lib/firefox/firefox -contentproc -childID 4 helio 9210 1.0 1.5 2875692 241532 ? Sl 21:08 0:12 /usr/lib/firefox/firefox -contentproc -childID 9 helio 10161 1.5 1.1 2676620 179336 ? Rl 21:11 0:15 /usr/lib/firefox/firefox -contentproc -childID 10 helio 10394 0.2 0.7 2583360 120484 ? Sl 21:12 0:02 /usr/lib/firefox/firefox -contentproc -childID 11 helio 11818 0.0 0.4 2549948 77524 ? Sl 21:18 0:00 /usr/lib/firefox/firefox -contentproc -childID 13 helio 14368 0.0 0.0 18056 1052 pts/2 S+ 21:27 0:00 grep --color=auto firefox
Comecei com Linux em 1997, quando aprendi a usar as Sparc stations da universidade. Mais de 20 anos nessa indústria vital e eu sempre, sempre, usei desse jeito:
~ > ps auxwww | grep firefox | grep -v grep helio 5719 14.6 3.0 3991196 481364 ? Sl 20:57 4:56 /usr/lib/firefox/firefox --ProfileManger --no-remote helio 5815 6.2 1.7 3019784 279384 ? Sl 20:58 2:05 /usr/lib/firefox/firefox -contentproc -childID 1 helio 5876 0.9 1.2 2687192 202532 ? Sl 20:58 0:19 /usr/lib/firefox/firefox -contentproc -childID 2 helio 5916 0.5 1.0 2646492 164072 ? Sl 20:58 0:10 /usr/lib/firefox/firefox -contentproc -childID 3 helio 5939 5.4 2.0 3008700 330532 ? Sl 20:58 1:49 /usr/lib/firefox/firefox -contentproc -childID 4 helio 9210 0.9 1.5 2875692 241876 ? Sl 21:08 0:13 /usr/lib/firefox/firefox -contentproc -childID 9 helio 10161 1.3 1.1 2676620 179336 ? Sl 21:11 0:16 /usr/lib/firefox/firefox -contentproc -childID 10 helio 10394 0.2 0.7 2583360 120588 ? Sl 21:12 0:02 /usr/lib/firefox/firefox -contentproc -childID 11 helio 11818 0.0 0.4 2549948 77524 ? Sl 21:18 0:00 /usr/lib/firefox/firefox -contentproc -childID 13
Com essa maravilhosa dica do Hélio Campos, basta fazer assim:
~ > ps auxwww | grep [f]irefox helio 5719 14.5 3.1 4005676 500088 ? Sl 20:57 5:01 /usr/lib/firefox/firefox --ProfileManger --no-remote helio 5815 6.7 1.8 3034264 293864 ? Rl 20:58 2:18 /usr/lib/firefox/firefox -contentproc -childID 1 helio 5876 0.9 1.2 2687192 203656 ? Sl 20:58 0:19 /usr/lib/firefox/firefox -contentproc -childID 2 helio 5916 0.5 1.0 2646492 164072 ? Sl 20:58 0:10 /usr/lib/firefox/firefox -contentproc -childID 3 helio 5939 5.3 2.0 3008700 331836 ? Sl 20:58 1:51 /usr/lib/firefox/firefox -contentproc -childID 4 helio 9210 0.9 1.5 2875692 241876 ? Sl 21:08 0:14 /usr/lib/firefox/firefox -contentproc -childID 9 helio 10161 1.3 1.1 2676620 179336 ? Sl 21:11 0:17 /usr/lib/firefox/firefox -contentproc -childID 10 helio 10394 0.2 0.7 2583360 120588 ? Sl 21:12 0:02 /usr/lib/firefox/firefox -contentproc -childID 11 helio 11818 0.0 0.4 2549948 77524 ? Sl 21:18 0:00 /usr/lib/firefox/firefox -contentproc -childID 13
Eu achei espetácular. Pode ser que eu esteja exagerando, mas achei mesmo. Uma dica muito simples e acabou com décadas usando um extra "grep" pra resolver as coisas.
Muito obrigado Hélio Campos e grupo shellbr!