Как стать автором
Обновить

6 устаревших команд Linux и инструменты, которые пришли им на замену

Время на прочтение7 мин
Количество просмотров41K
Всего голосов 70: ↑59 и ↓11+48
Комментарии44

Комментарии 44

пока писалась статья dig уже устарел и вместо него всё чаще предлагают использовать drill

Она, вероятно, просто очень долго писалась.
Уже в Демосе админы (tasha@, кто помнит) смотрели в DNS dig'ом, а не nslookup'ом. А год был 94-й.

BTW, кто как смотрит счётчики пакетов и байт на интерфейсах без помощи ifconfig?

ip -s link show

добавлю от себя что еще есть утилита bridge в составе iproute2, если работаете с бриджами - мастхев (особенно чтобы смотреть bridge fdb).

Спасибо!
ip -s a ls оказалось ещё ближе к привычному.

Будет интересно послушать о реальном опыте использования drill, в сравнении с dig.

TLDR: никакой разницы достойной внимания.

А что с dig не так? Это же вроде часть BIND, он не заброшен, последний релиз меньше месяца назад, да и если drill -h и dig -h сравнить, как-то drill выглядит совсем печально.

А я не говорил что не так, просто часто вижу как в разных местах рекомендуют именно drill как более шустрый гладкий и шелковистый..

В общем я нашёл это и пару обсуждений о сборке dnsutils без BIND. Видимо, основной причиной является отсутствие необходимости собирать целый BIND для получения dig и итоговый вес (у меня на Fedora 37 bind-utils с bind-libs занимают 9 МБ, ldns-utils с ldns — чуть больше 1 МБ). И ещё видел утверждение, что ldns больше подходит для дебага BIND'а, т.к. не зависит от него.

Попробуйте cat `which egrep` узнаете что-то новое.
Про iproute2 даже на хабре была статья https://habr.com/ru/post/320278/
И net-tools устарели не потому, что их перестали поддерживать, а их перестали поддерживать, потому что они используют устаревшие системные вызовы и не поддерживают новые возможности ядра linux.

$ which egrep
egrep: aliased to egrep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox}

Впрочем, никогда егрепом не пользовался, а на домашних машинах давно на ag перешёл. Btw, I use Arch.

$ cat /bin/egrep
#!/bin/sh
exec /bin/grep -E "$@"

Имелось в виду вот что, и так уже лет 10 точно, а то и все 20.

А, точно, cat не посмотрел. Да, у меня то же, плюс предупрежние что egrep устарел.

У вас шелл слишком умный, провалитесь в sh или bash

Попробуйте cat `which egrep` узнаете что-то новое.

Попробовал в SUSE – увидел содержимое бинарника. Попробовал в Astra Linux – увидел содержимое бинарника. Даже попробовал в macOS – увидел содержимое бинарника.

Догадываюсь, на что вы намекаете, но это наблюдение не носит универсального характера. У вас, небось, и /bin/true через пустой скрипт сделано.

Чего там намекать, в gnu grep, который используется в т.ч. в астре и сюзи написано в мейкфайле как получаются egrep и fgrep, вы-ж разработчик, посмотрите.
Астра Орел есть под рукой, распаковал .deb, там бинарник grep и два скрипта для egrep/fgrep по 28 байт. Возможно, вам стоит разобраться, что за бинарники у вас вместо них.

Скорее всего, это хардлинки к grep.

для masOS:

> ls -li /usr/bin/grep
1152921500312779382 -rwxr-xr-x  9 root  wheel  202816 Feb 26  2022 /usr/bin/grep

> ls -li /usr/bin/egrep
1152921500312779382 -rwxr-xr-x  9 root  wheel  202816 Feb 26  2022 /usr/bin/egrep

> ls -li /usr/bin/fgrep
1152921500312779382 -rwxr-xr-x  9 root  wheel  202816 Feb 26  2022 /usr/bin/fgrep

для Debian:

$ cat /usr/bin/egrep
#!/bin/sh
exec grep -E "$@"

$ cat /usr/bin/fgrep
#!/bin/sh
exec grep -F "$@"

Реализации разные, а суть одна.... А вот печатать egrep удобнее, чем `grep -E`

Вентура:

$ ls -li /usr/bin/grep

1152921500312422599 -rwxr-xr-x  4 root  wheel  186512 28 окт 11:43 /usr/bin/grep

$ ls -li /usr/bin/egrep

1152921500312422597 -rwxr-xr-x  5 root  wheel  186512 28 окт 11:43 /usr/bin/egrep

$ diff /usr/bin/grep /usr/bin/egrep

Binary files /usr/bin/grep and /usr/bin/egrep differ

R(1);

$ uname -a

Darwin . 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct  9 20:14:54 PDT 2022; root:xnu-8792.41.9~2/RELEASE_X86_64 x86_64

Слес:

$ ls -li /usr/bin/grep

60032 -rwxr-xr-x 1 root root 150920 сен 16  2015 /usr/bin/grep

$ ls -li /usr/bin/egrep

60030 -rwxr-xr-x 1 root root 146760 сен 16  2015 /usr/bin/egrep

$ diff /usr/bin/grep /usr/bin/egrep

Binary files /usr/bin/grep and /usr/bin/egrep differ

$ uname -a

Linux . 4.12.14-122.26-default #1 SMP Wed Jun 17 11:17:05 UTC 2020 (5c515dc) x86_64 x86_64 x86_64 GNU/Linux

И о чем эти простыни, сказать-то вы что хотели?

На https://ftp.gnu.org/gnu/grep/ в grep 2.0, которая 96-го года (27 лет назад) egrep/fgrep получались из grep c помощью ln grep e/fgrep. Т.е. в 96 году egrep/fgrep уже были deprecated и отдельных исходников не было. Отдельный вопрос - были ли они когда нибудь вообще и с чего вдруг автор статьи начал об этом вспоминать. Ну, т.е. на самом деле понятно, корп.блог/нужна палка/сосать палец.

В grep 2.20 (2014 год) уже были скрипты типа egrep -> exec grep -E $@
Где-то в между эту разницу хардкодили в e/f/grep.c ~10-20 строк кода, main был общим. И это универсальное наблюдение и носит общий характер.

А в /bin/true у меня небось то что туда мантейнеры пакета положили: #!/usr/bin/coreutils --coreutils-prog-shebang=true. Или на что вы намекаете?

Намекаю на то, что везде по-разному. И далеко не везде системные утилиты взяты из GNU.

Ну вот я написал выше в чем разница.
Если уж прям далеко - назовите 3 линукс дистрибутива где grep не GNU.

назовите 3 линукс дистрибутива где grep не GNU.

Как минимум OpenWRT, Tiny Core, LTSP, thinSTATION и куча других, использующих busybox

Неплохая попытка, если игнорировать контекст. Но нет, в busybox нет исходников для egrep/fgrep и, предполагаю, никогда не было. Так что он в этому не отличается от gnu grep последние лет 25.

Alpine Linux, например

А вот печатать egrep удобнее, чем grep -E

С fgrep то же самое. 8 нажатий на клавиши вместо 4 - офигительно удобное усовершенствование.

Попробовал. Узнал, что не умею в уме интерпретировать бинарники
????@Y@
       ??X@????H? H__PAGEZERO(__TEXT??__text__TEXT
                                                  FA/
                                                     F?__stubs__TEXTNu?N?__stub_helper__TEXT?v??v?__const__TEXT?y??y__cstring__TEXTz0z__unwind_info__TEXTL?L?__DATA_CONST?@?@__got__DATA_CONST?H?B__const__DATA_CONSTP?0P??__DATA???@__la_symbol_ptr__DATA??K__data__DATA?h?__bss__DATA??	?__common__DATA?C?H__LINKEDIT??@Y"?0??X? hMp
                                 8
                                  PK8
? 
  /usr/lib/dyld%h???4??"?`?(c2 

                               ?*0?(??L
                                       /usr/lib/libbz2.1.0.dylib
                                                                8/usr/lib/liblzma.5.dylib
                                                                                         0
                                                                                          /usr/lib/libz.1.dylib
                                                                                                               8x/usr/lib/libSystem.B.dylib&8)P??IUH??AWAVAUATSH??H?u?H?}?H?T|H????L?%L|H????0L??H????/H????I??I??L??L)?L?{H?=|L9=?|s L???*H??H?|L?=?|L?%?{L??H???/H)?{L?-?{H?E?H??H??{??xH?}??~???!H?E?Hǀ1??QE1?I??H??PH?=?{H9;|s H???#*H??H?o{H? |L?%Y{L?L??L)?L???
/H?M??8??H?}?????u?H?{H????L?%{H?[??0L??H???.L?M??H???`???I??I??L??L)?N?4;I??H?=?zL95?{s L???w)H??H??zL?5t{L?%?zN?4;L?L??H???].H)?zL?-?zM???/H?yzH???%???H?E?HǀH?bz?L)=QzH?E?L??H?OzB?8H??[A\A]A^A_]?UH??AWAVATSH??H?)??1?????I??H?5.z1?H??Eʃ?E?H?	zH??yH??y?Q???r-???????NH?=?yH?ƺ??7-H??CH??yL?5dzA??H??yH?=?yu0L?5?yA????L???Z-H???u?zH??y?z?4@H????,??????H??yH??t??t	H?y?$??H)?H?yH? yH?IyL?%Jy1?H???????W????H?]??H??H?¹??+H??
                                                                                                                                  ??tW??tS???upH?5?xH?}??q+H??xA??1?1?? ,H???t1A??H?5?x???
                                       A????H???S,H??x
                                                      H?Sx1???????H??[A\A^A_]?H????????UH??AVSH??H???&I??H?H??tH??1?1???+A????u?H?Z??A?1?H????;u|H?Hc?H???A?>H?5?.?*H?)w?A?>H?5?.??)H?wH??uS?H?=wH???????s*?H?=?vH???????R*??ulH??vH??v??QwH?=?vt9H????8tLH????8t@H?=pvH?av1??*H??t&A?F?L???????t?A?>?>)L???x)E1?L??H?Đ[A^]?	???!???A???[???UH??SP???)H???8H?=vuH?5v?)H??u1?H?=?u1?H??uH?=?u?)H??uH?uvH?[]Ð?UH??AWAVAUATSH???I??A??H?5-1??)??(??w??bt-????S?xzuM???8??xt#??zu7???"?xzu%????xzu???*?H????rt??ft+??eu0??t?$???t???
??t? ?
B2E1???'A??A?D$=???D?0E???D??H?E??E?E1??A?H?}?M??L??H?I.H?
??
?1?D?=u1??H?<?H????????H?
                       H9??H??A?L$?H?AH??H???d?=?su
?s?(????H?G1H?H???????H?*1H?8??"?????H?
1L?8H?=?,L???l'??t9H?=?,L???Y'??t5H?=?,L???F'????	? ?????w???hH??H??0L?8M????H?=L,L????&????H?=:,L????&????H?=',L???&????H?=',L???&????H?=,L???&????H?=,L???q&????H?=?+L???Z&????H?=?+L???C&????H?=?+L???,&???s?*
????j?)?H??/H?8???????*??<????0?a??H?R/H?H?5?*H???%???H?5?*H???%???????l????]??H??.H?8???$?H??.H?8H?u??
?X%I????#?8"????#?8??H?E??8??M????A??B??A??AtL?=??L?=???3??p?$??p??????????????????????????=p??????k???????R???????"?H??-H?8H?u??
?8$H?a?H?j???"?8"uH????????H9?????"?8uH?='???H?E??8??N?????????fo???Wo?????H?-H?81??
?H??,L?8H?=e(L???L#????H?=:(L???5#????H?=((L???#???????^H??,H?8?2H?????H?H?5(?#H??t1H??H????"H??H???	H?5?'H???????"H??H??u?H???????!??H? ,H?H?54(H???"???H?5?%H???{!I??H??????????n??????H?H??+H?81??	?mL?=??aH?=s'?J!H?ÿ?a!H??t;??t7H?5V'H????!??t$H?=?)?!H??t?8uH?2'H????%nm??????????l????=Umu
?Im?~??`??H??*L?8L???U H????????k ??????????%?=@to1?H?u?H?H?}?H?L???a H???t%H?}????t1Ҁ?
HD?H???>H?}?H?u???H?}???L???????>H?5n&H???? ??L????E?H?6*?1?D9???E??A??M????????x???L?}?L?e?H??? E1??H??t/1?A?? @??H??t??1??< @???????H9?w???H???H??H?5?$H?}??2 H??t5E1?L?%?$L?}??8tH???.D??A??H??L??L????H??u?L?u?C?<.??GI??L?E?IHD??E??t1?H?4?I?tH??H9?u?E?A??L?m??????D??I?<??1I?<?H??H9?u??????*??$??H?5%$????"?1?1??H??j?H?D$H??H??1???1???H??(Hc?=?ju
N!???m?A?i?=??? ?H????=w????=:?tH?i'H?8??A??w?=??u???'???E????????H?=M#1?? L?%?#L?????H???H??H???L??L???vH??H??u?H??????fM??A??I?Hc?iH????H?
??H?1??hH?????ucA? E1?I?ċ??I9??                                            4????H?5-#?H??1??]H?5?hH?p"?H?5?hH??"?H?5?hH?b"?1??)H?
                               ???H?=~?H?H?d?J?4p??h?I?H?? ??t????uKL??A???E1?I??L%4?L?55????L??L???yH?57"?L???????E??uE1??FE??1?A?E1???
I?<?????tI?<?1???
E???EE?H??A9?u?A???Z?D:%/?u
                           <????1???u??1??=??@?????H?5zgH??!????f?????N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???N???u???u???u???u???u???u???u???u???u???u???N???N???N???N???N???N???N???????????x?????????e??????????????Z???N???t???i???N???@???N???N???????O???N???????????N???????N???%???N???N???N???N???N???N???????????????{???????E???N???????????N???N???"???????5???4???????A???????????N?????????????M???????O???N???N???N???N???N???[???????N???;7?u"H?=???4?Ɖ5#?H???H???C?|>?UH??AWAVSPH????I??I???
?;{?u"H?=???4?Ɖ5g?H???DH???H?????H???
?????H??H?H???D????[A^]?UH??AVSA??H?????;?u"H?=u??4?Ɖ5??H????H?Z?H???h
K??M?H??H?H?6?D??3?[A^]?UH??AWAVSPL?=e!I?L?5{c?@H??L??H??1???I?7H?=dc??I?7H?=]c??I?7H?=Vc????UH??SPH???H?;?0?H?6?H?7?H?8?H?
                                                                                                                           H?
                                                                                                                             IH??H?H???H?'?H?[]?UH???HD?H???H???H?5?H?6H9?}H?
                        H??H????,H9?u'H???H?r0H9?HD?H?5??H?{??A??E1?I?H???'H?CI?OH?KA?O(?K(AI?WI?wH???7H?CI?OI?G H?C D??H?[A^A_]?UH??SPH?.?H?{tBH?߾-??H?{?gH?CH9
??u?H?o?H?p?H?u?H?[]Ð?UH??AWAVAUATSH??H??H???D?0?yH????A??H?E?H???(H?E?H????8t]E1?L?-n?E1?I?EJ?<8H??1??/??tI?EJ?<8H?u?1????uI?EB?|A??I??H?.??I??I9?r?H?}??A??D??H??[A\A]A^A_]??fUH??AWAVAUATSH??(H?H?H?E?(i$)E?H?b`???t??t????A??A??A?H??H?E?HE?H??D??1??H????I?????L???iH???$I??H?l?E?D?}?L?m?A?FX??f??
  ????Hc?H???H??D? H???????A??H????8??M?~h1?E1?H???H?H?<L??1????uH???H??A??I??H????H??I9?r?D?}?L?m??H????H????8?L???'?	H?	_???????u
                                                                                                                                         fA?~V??H?F@?H?
??D?)A????tSM?f0E1?1?M??t0H???H?J?<8L??1????uH???H?B?|A??H??H????I??H9?r?A??D?}?L?m?uL??L????~H?????L???^I??H???
                                                                                                                ?????v0H?=01??4???E???8u1L???H?N?H;E?u?E?$H??([A\A]A^A_]??x?????????????????I???????????I???????????????????y???p???UH??AWAVAUATSH???H??I??H??L??????I??MD?H?5??K??tmH????H??LE?A?F%?H???9u]1?????????=???=???1H??L? M??u
4??9?E???H?D?H?;???L?e????8??H????8??H?N??8u?:uzH???HH???H?H??H??t?E?H??uH??uH?"??8uE?H?E?(??p???A?G?E??E?W?)E?????H?
                                                                                    H?&??8t<?E??6H????H?+??8??H?=51?L??1????E?H???H?L?5??I?E1?L?m?H??p???E??tH????$H?
H?;??8t6H?b??8u*E??t%H?>?1ɀ8?^?H?8~?]???L??????H?O??8L?u?L?-??t;H????8u/H?]??8uH?u?H?=a1?????H???8tI?>H?}?H??1??????3????'H???H?
A?}t6H?%??8u*E??u%H??1ɀ8?
E????tSH?v??8uGH????8u;A?}u4H?4??8u(A?t!H????8uH??XH?x8L??1???
                                                              H?}??4
                                                                    L???,
                                                                         ????????H?}??
                                                                                      L???
                                                                                          1ۉ?H???[A\A]A^A_]?= t?=`t??#???UH????
                                                                                                                               H??t]???
UH??AWAVAUATSPH??I??L?-??A?}L?%??t4I?<$-H??H?߾-?I?A??D??H?[A\A]A^A_]?A?F
                                                                        ??????tB?=!?uA?~tA?~
                                                                                            H?=???
t\H???H??8 r6L?=p?Hǃ8H????A???8?uH???uH??8wѰ???A?FA?A?A?}?+???I?$H?H?I?                           H??H?8~????H??H?I?A?~
                                                                       $H??????I?>???A???????I?>~2H??H?߾-??I?H?G?H?8??????B????????H?,?H?8t?????H?????9??I??$0I;?$v1?H?E?H?E?I??$8H?E?$?1?H?E?L?-??H?E?H?E?1?H??tI??$?D?1?H?9?:??A??A?}?/H?u?H?}?E1?1?H?E??E?H?E?H?E?D?u?A??$Dt1?H?5C?	H?E?H?E?I??$H?E?L??H??H??H8I??$?H?M?E???a	??A??$Dt1?H?5?
????}ą?uH??_tCH?M?H??H?E????D?H;M?H?E?vPH?A?H??H?M?I;H?u?I??$H)?t+I?$H??HcH9?HB?H?}???????}?H??wH???D?<?!??     ? ?EĉE?H?E?H??tSH?
                                                     }tH?U?D?u?L?-F??{?UЉЋM???9?B?I9?$0DщU?D?u?L?-??A???H?AH??E?A
                                                                                                                 H?M?1?H9M???H?H?U?H?E?D?u?L?-???1u???9?????=H????8?-H?D??8?H?}? ??H?E??~????E?H?u?u<H?}??M??
?Q?H??I??$H9?vdI??$0H??H?U?H?U?H??H??I;?$?????????H?U?I??$0H??H?}??M???????H?5???>?Ä????? ??????H?
???? ?H??H??X[A\A]A^A_]???UH???H??t]???UH???PH??t]???UH???7H??t]???UH??SPH???1H?sH?{H??H??qH?V??8H?[]??UH??AVSA??H??H?B??8u%H?c??8H?s tuH?=?
1??yH????8t+D???k??=]
n??9??????H??H?:?ʀ??vL??8M???f??u??@uH???:????H??H?E?H?]?L?1?I?^?I?I??I)???H?
??8H?M?tH?}?H??:?l????%H??H)?H?E?H?H??
                                      H??H?h?H?H??L?-?
                                                      tI?}H?5?
                                                              1??IH?E?H?I?M?H??L???ZH?!?H?8tI?M??H?=r
                                                                                                     ?3H?T??8t
?
?H?}?I??I??????H?-??8H?]?uDH??H)?t?H? 
                                      H????
?I?H???:??????@H??[A\A]A^A_]?UH??H?5*
j_1??.UH??H?5R
j_1??UH??H?5s
j_1??UH??SPH?_0?8?H?=#
???H??1????UH??H?5?H?=?	j_1??UH??H?=7
2?5?	H?
???RUH??H?5?	j_1??gUH??H?5?	j_1??RUH??H?5?	j_1??=??%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%?J?%K?%K?%K?%K?K?%
K?%
   K?%K?%K?%K?%K?%K?%K?%K?%K?%K?% K?%"K?%$K?%&K?%(K?%*K?%,K?%.KL?-KAS?%U	?h?????h?????h)?????hV?????hq????h?????h????h*????h<????hP????h_????hq?x???h??n???h??d???h??Z???h??P???h??F???h??<???h??2???h??(???h?????h????h?
???h????h/?????h=?????hJ?????h`?????hz?????h??????h?????h?????h?????h?????h?????h????h9?~???hH?t???h??j???h??`???h??V???h??L???h??B???h??8???h??.???h?$???h????h#????h3????h@?????hM?????h]?????hm?????h~?????h??????h??????h?????h?????h?????h?????h?????h
????h?z???h(?p???h8?f???hE?\???@(#)PROGRAM:grep  PROJECT:text_cmds-138.100.3
33333Ca@$FreeBSD$$FreeBSD$$FreeBSD$????????$FreeBSD$r(standard input)unknown %s optionusage: %s [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz] [-A num] [-B num] [-C[num]]
	[-e pattern] [-f file] [--binary-files=value] [--color=when]
	[--context[=num]] [--directories=action] [--label] [--line-buffered]
	[--null] [pattern] [file ...]
Binary file %s matches
%s (BSD grep, GNU compatible) %s
GREP_OPTIONS context argument must be non-negativeskipread--devicesrecurse--directories
2.6.0-FreeBSDbinarywithout-matchtext--binary-filesautottyif-ttyTERMdumb01;31alwaysyesforcenevernoneno--color%s-0123456789A:B:C:D:EFGHIJLMOSRUVXZabcd:e:f:hilm:nopqrsuvwxyzbinary-fileshelpmmapline-bufferedlabelnullcolorcolourexcludeincludeexclude-dirinclude-dirafter-contextbefore-contextbyte-offsetcontextcountdevicesdirectoriesextended-regexpregexpfixed-stringsfilebasic-regexpno-filenamewith-filenameignore-casebz2decompressfiles-with-matchesfiles-without-matchmax-countlzmaline-numberonly-matchingquietsilentrecursiveno-messagesunix-byte-offsetsinvert-matchversionword-regexpline-regexpxznull-datadecompressGREP_COLORstrdup.grep_treeutil.c0 && "Unreachable segment reached"fts_open%s: %swarning: %s: recursive directory loopfts_read%s:%u
%s%cmalloccallocreallocmCproclinenst > st%d%lld--00?X!a
                                                       FHHNuH
                                                             `I@d?????L#?#+C+?+P,;.z.?.
                                                                                       ?|??|??|??|??|??|??|??|??|??|??|??|??|A?{a?|B}b}C"}c(}D0}d<}EL}eS}Fa}ff}Gs}h}H?}i?}J?}l?}L?}m?}M?}n?}o?}q?}q~r~s?{U~u,~v9~VA~wM~xY~X\~zf~Z?~?v?vw<wFwPwZwdwnwxw?w?w?w?w?w?w?w?w?w?w?w?w?wxxx"x,x6x@xJx(w2wTx^x
wwwhxrx|x?x?x?x?x?x?x?x?x?x?x?x?x?yyy&y0y:yDyNyXybylyvyzz.z@z?z?z{2{J{
                                                                      "P?/p8Q#`BBY@__DefaultRuneLocaleQr?@___mb_cur_max?@___stack_chk_guard?@___stderrp?@___stdinp?@___stdoutp?@_optarg?@_optind?@dyld_stub_binder?s@_BZ2_bzRead?@_BZ2_bzReadClose?s@_BZ2_bzdopen?s@___assert_rtn?s @___error?s(@___maskrune?s0@___stack_chk_fail?s8@_basename?s@@_calloc?sH@_close?sP@_err?sX@_errx?s`@_exit?sh@_fclose?sp@_ferror?sx@_fileno?s?@_fnmatch?s?@_fopen?s?@_fprintf?s?@_fputs?s?@_free?s?@_fstat$INODE64?s?@_fts_close$INODE64?s?@_fts_open$INODE64?s?@_fts_read$INODE64?s?@_fts_set$INODE64?s?@_fwrite?s?@_getenv?s?@_getline?s?@_getopt_long?s?@_getprogname?s?@_gzdopen?s?@_gzread?s?@_isatty?s?@_lseek?s?@_lzma_alone_decoder?s?@_lzma_code?s?@_lzma_stream_decoder?s?@_madvise?s?@_malloc?s?@_mbtowc?s?@_memchr?s?@_memcpy?s?@_mmap?s?@_munmap?s?@_open?s?@_printf?s?@_putchar?s?@_puts?s?@_read?s?@_realloc?s?@_regcomp?s?@_regerror?s?@_regexec?s?@_setlinebuf?s?@_setlocale?s?@_stat$INODE64?s?@_strcasecmp?s?@_strcmp?s?@_strdup?s?@_strerror?s?@_strlen?s?@_strsep?s?@_strtoll?s?@_warn?s?@_warnx?__mh_execute_header?????l? ?qqgO?}b???	??
???-##`L?Z0?d4#<BEa$5BVdmy?????????????'.4CVhz????????????3;AIOW_gpv|?????????????

!"#$%&'()*+,-./01234589:;<=>?@ABCDEFGHIJK	

67L
!"#$%&'()*+,-./01234589:;<=>?@ABCDEFGHIJK__mh_execute_header_BZ2_bzRead_BZ2_bzReadClose_BZ2_bzdopen__DefaultRuneLocale___assert_rtn___error___maskrune___mb_cur_max___stack_chk_fail___stack_chk_guard___stderrp___stdinp___stdoutp_basename_calloc_close_err_errx_exit_fclose_ferror_fileno_fnmatch_fopen_fprintf_fputs_free_fstat$INODE64_fts_close$INODE64_fts_open$INODE64_fts_read$INODE64_fts_set$INODE64_fwrite_getenv_getline_getopt_long_getprogname_gzdopen_gzread_isatty_lseek_lzma_alone_decoder_lzma_code_lzma_stream_decoder_madvise_malloc_mbtowc_memchr_memcpy_mmap_munmap_open_optarg_optind_printf_putchar_puts_read_realloc_regcomp_regerror_regexec_setlinebuf_setlocale_stat$INODE64_strcasecmp_strcmp_strdup_strerror_strlen_strsep_strtoll_warn_warnxdyld_stub_binderradr://5614542??
                                             ??$?2??
                                                    ??X? 
?com.apple.bzfgrep??ŀ?b???r???JI?????$)???'\nVG-Ӿ^??'?|8?M13'Tk????Ry???Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,??+??6M??b4?oFA?',??yo[??$??gk?9Ya?/D????RK?N'9E?R?<???????摝y/?:D!f?p?&? ??3??[?w?r?k?u??Z<?{
                                                                                                ???????{%YK??}?jR?mLY??be???=Jmc?&??<4e?‘r???Xo??f?O{`?\O鏭??Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,???r??s?Zׂ}?(?t??I????nƇ??-????
                                                                                                                     D??
                                                                                                                        0com.apple.bzfgrep??
                                                                                                                                            b0?	*?H0b10???!*?H???	*?H??
   0	UUS10U

Apple Inc.1&0$U
261024173941Z01Apple Certification Authority10U
               0	UUS10U


Apple Inc.1&0$U

               Apple Certification Authority1301U
?0?     *?H??                                    *Apple Code Signing Certification Authority0?"0
???q??
??]kY?Z?????9?#59H?!?'?? ?dk
                            ???P??[?]?Te?s/b?8?drm|iGa?&???,$?j????̬)L?Iy?uv????	?LSx??v????2ʑ?????9????j??f? K?;-???Ɉ-i¤*a/ۇ?!?L????-?r?n????̣@??Q????-???YN]e3'?g??$?LJy?]????>?H?$?m?0????ȧ???#?8?_a?????0??0U??0U%
                                                                0
?ps??Rj?ީ*ѝv??i?????+??]p??<ZHG?9l??s?b:ʣZ??%J???s?s]???~??????Xn????O??????r2??'ިә?j??a?O??g?0??pleca/root.crl0
??D?????yA???kg|?lI?L??jn??\8?0??0?g(??yڟ?;Qb;"?~S|
01      *?H??                                      ??M?ID??:[??鲷[R???X?r??̳?P???j?8?{y1?c?????m????/?oR????D?p??&w?0??0??d????9?0
  0	UUS10U


Apple Inc.1&0$U

               Apple Certification Authority1301U
261024173941Z0V1                                 *Apple Code Signing Certification Authority0
                0	UUS10U


Apple Inc.10U

             Apple Software10U
?0?     *?H??                 Software Signing0?"0
??0?t?O?
        ??n1Tm	?<??9???`"]?䄢@A?d?`=?a?R?E'?,d???$
R:???Ax????x%???A??5?Q\??ѝq{?ɪK??ڏ?)?/?o??e??j?=hm?x¥/?2?~?]\?> ^????MA?J?k?EP?L??j'????<??R9????TR??/#Ve??*?Q?#?????՚??_??Glu?????z??bAt??4??Ztd9??9_0???[0?W0_
            U?00U#0??i??wBN?VB?Q??? ?	0??U ??0??0??	*?H??cd0{0+0m
                                                                     kThis certificate is to be used exclusively for functions internal to Apple Products and/or Apple processes.0U%?
                                  0
?????6??f?s?#s????Z^?0O?%`?I1le.R6??nJfW?U?????u?[?e??(??iJɩœ??  ??~?bA?????H?q????>??>??g??؝:????I???:?M},?}Č?[d??o\5?^O??Nף??}????_7?$E??????L4??0b1X3`o?*?H??H??kM??T15?9Hk??U?xN???Xo?Q??UA?iUܣ???4?Lڂ??B?2?7??????5?rV?0??0???0
   0	UUS10U

Apple Inc.1&0$U
350209214036Z0b1pple Certification Authority10U
                0	UUS10U

Apple Inc.1&0$U
?0?le Ro*?H??0?"0ple Certification Authority10U
?䑩	??GP??^y?-?6?WLU????Kl??"0?>?P	?A?????f?$kУ????z
?d5#KY???????P??XPg? ?ˬ, op??0??C??=?+I(??ε??^??=?:???   ?G?[?73??M?i??r?]?_??%?U?M]
?b??q?GSU??/A????p??LE~LkP?A??tb                      ?!.t?<
                                ?A?3???0X?Z2?h???es?g^e?I?v?3e?w??-??z0?v0U?0U?0?0U+?iG?v	??k?.@??G^0U#0?+?iG?v	??k?.@??G^0?U 0?0?	*?H??cd0??0+https://www.apple.com/appleca/0?+0????Reliance on this certificate by any party assumes acceptance of the then applicable standard terms a?\6?L-x?팛??w??v?w0O????=G7?@?,Ա?ؾ?s???d?yO4آ>?x?k??}9??S ?8ı??Oice statements.0
????/?Sj[d?c3w?:,V??!ںsO??6??U٧??2B???q?~?R??B$*??M?^c?K?P??????????DH?`7?uu!1??0??0??01
                                                                                        0	UUS10U


Apple Inc.1&0$U

               Apple Certification Authority1301U
        1?He???0        *?H??                    *Apple Code Signing Certification Authoritd????9?0
L???I?Ô?,0?)???[*?H??cdi1??<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>cdhashes</key>
	<array>
		<data>
		zaqvkAXAAKEeW98RJGNK4jXkaTM=
		</data>
	</array>
</dict>
</plist>
0       *?H??
??)??p.D?Hy???7??&0?곐?E?ܲ߷?˱?O
     ??r+??X?s1a???)q????;0?!\??;"???E ???N??FO??|??K??F?w+W?????????I <S??&
                                                                            T??C!K
                                                                                  ????Ր	?V]B??H????y}r+??c4?ڑ’??8?46?elj?I?:a?AŒ?0??q?????e??	?l^b.?&~?Ȕ???B8?z??N?k<ԧh?y??#-]?D???????
                                      ??? H__PAGEZERO?__TEXT??__text__TEXTPB3PB?__auth_stubs__TEXT`u `?__const__TEXT?y??y__cstring__TEXT
z0
z__unwind_info__TEXT<?<8__DATA_CONST?@?@__auth_got__DATA_CONST??B__got__DATA_CONST?@??__const__DATA_CONSTP?0P?8__DATA???@__data__DATA?X?__bss__DATAX?	?__common__DATAD
H__LINKEDIT??@X4?`3?` ?L?
                         ?
                          PJ?	? 
                                  /usr/lib/dyldz]??K8o??)?q??2 

                                                               ?*0?(??I
                                                                       /usr/lib/libbz2.1.0.dylib
                                                                                                8/usr/lib/liblzma.5.dylib
                                                                                                                         0
                                                                                                                          /usr/lib/libz.1.dylib
                                                                                                                                               8x/P?`??t˖?Y?(?@?W??6@???T??z?@)???I#?????o??g??_??W??O??{???????? ???X??X?3@??
?I?(-@?(-?3?T            ??6?6??3@?????E
             ??6@?h48X????]?4???@?	?P????[?Y ????B?h?@? 7@???T??U
????? ????t˚?V?h?@? 7@???T??3?                                        ? 7?v??3@??????
                             ? 7?v??3@??@???????
                                                ?I?(-@?(-?3??? ?6?X?@?v???_
                                                                           ? ???X	I?(-@?(-??@??
q?T@?h78qaF??OE??WD??_C??gB??oA?????_?#?????o??g??_??W??O??{???? ? ?H?qa?Rq??T??F@???	Cz?? ?b?XI?"1?V??.?	Q?	q?T
T ??X???R?
          ?|@? 
??UX?H?U?? ??R[?|?R?? ?Y?? O@???H?I?`@????R?
                                            ????`?(?Rhc9O?hcD9q????{
                                                                    ?q?T([@??Az?T??.? ???X?j??.@?R	?q???T%???3??R?
                                                                                                                       ?|@??@?q?T?41?T?F@??3??
                                                                                                                                              ??F?`@????RN
       ???T`@? ???X`@????R?
                           ????R?.?????????{F??OE??WD??_C??gB??oA?????_?#????W	??O
??{
   ???????Rj
????????RQ
          ?`?1?T? ?)?R	9??? Ո@?U?q?T?o??????????????=`@????
                                                            ?1 T?
!@q?T?3@?H?9?d@???"?RC??R??"                                     @y
                            ??>?? T?3@?H?-? ?1?B?R
                                                  ????>@??T?R+
??>??@?	Qq?T?????	 ?0z??0??`@??P ??
                                         ?H?A???4`@??P ?S
                                                         ?H?E???,@? ????R?
                                                                          ??5`? ????
?H?a9T??.@?h? ? ?????P ?)@9     q$@z@T ???X?.@??R?                                  ?? ??	?R	
                                                  ???(?Rh9	?????????4`@?>
                                                                              ???h
                                                                                  ??????{K??OJ??WI????_?
                                                                                                        ,Lh#??O???{??C?@?+
                                                                                                                          ? ? ը?S?`>@?q?T ?A?X?
                                                                                                                                               ???>?H?1? ?-?S?`6@?D
??g??_??W??O??{?????????{A??O¨?_?#?????o
                        ??? ??R?
                                ?U
                                  @9?qLT?q?T?qA@9?q?T??R?q`T?q!TH?R)?R
                                                                     @9?qaTh?@9?q?T??RI?R??H?	?9\??q T?q?T?q?TH?RI?(Q?
?(?R ?(?9H?Q?H?R??(9@? ?                                                                                                H?R?W???(
???????@9v5??A???
                 ?`?R߂q???@TI?R*?R?jj8_???	*@)?)H???}?L	?????0 ??c?x
                                                                            ??R???0 @9?4H??Z7???c???l
                                                                                                     ?????
                                                                                                          ??R>	?h@??4?*	 ?ʆ@?*????T?
qKT?*h"?)??
           ?@?
              X*?J)???T???R9?R?? ?:?R;?R?? ????????????
?(?R??(?9?(?R??(U9H??0??I@?)2?(?R? ?@???(-??(?R??(9 ??X@?!?R??9? ??X@??rp ????
??4?rP ????
?`4`r ????
?`E5H?R????(?R??(????_? ?H?X@?x'??p ????
??&4p0 ????
? &4?o0 ????
??%4?o ????
??&4 op ????
??%4?np ????
?@%4@n0 ????
??%4?mp ????
? %4`m ????
(9$4L(?R ?șX@?d0 ???u ?(?X@?!?R????9(?R??(Q9S(?R??(?9O(?R??(
?? 4?cP ???p
?@85??	?;h?Rr??Rp ?H?@?H??	?? Ո?X@??C?B?Rt
????	@??q@'T?	@?Yq?&T?
                                @@9?$58%???
????q`T??H?R(?RI?(Q????9(?Ri?(?9	(?Ri?(9(?Ri?(Q9(?Ri?((9?(?Ri?(?9?(?Q??h??9(?Ri?(?9???R'(?Ri?(?9?(?Ri?(?9C	?? ?X@??C?B?R(
?x?7?h?=?7	@??q?7B?	?	??T/	@?Yqa7B?(??
                                                   @@9H4?H?Ri?(??(?Ri?(	9(?RU?W??(?Ri?(9 ը?X@??Re?? ??X@??Q0 ????	??4?P0 ????	??4PP ???????? ?(?X@????aOp ?????	????????	??????Np ?????	?????????#	?? ?X@??o??????????=?OP ????	?@	4?=P ???	?????(?Ri?((9lH?R?W(9?q$?Jh9J4???????RR, ըu????!8p ?r?H??@?R??? ճ]X?H90 ??#?????R? ըl???W@???Ri?(  ?:H?RZ???W@?
qbT?" ?(yh?5?J@?*?J?w???D??R??t??N??D?h5h?Q9?4 ՈcX@???q?Th?P9?5(?Ri?(Q9?? Ոp5"? q?T?1P ???R??|???a0p ?@?R?? ՁNX?*p ?
 ??MXh,0 ? ?AM*0 ???@?R??xGB?@??J@????5?RR9??D??B??T?NBGB?iz??J@??ZC?{?????4?NB??? ???@?R???*p ????	q?T??-????5h?P9H4hQ9???4hQR9q??yS???Ru?w??Q?Q9?Q9  *?4`@????4`@?????*s"?v??5h?P9q???k??ThQ9q(?R??? ?!B#p է???	?	?	?	?	?	?	?	?	?	?	?









                                                                                                                                                  ?

                                                                                                                                                  ??????d??	??	??	?	p??	X?	?	??	?	?	?	?	?	P?\??	t??	?	?0??(?p?	?4?????	?	?	?	?t?	???D??DT#??W???O??{??????????u?D?i?*)A?v?
kT?FB?*?R
y3*)?A?|Ә??F???ijh8?)q???????FB???D?)?|?i)??FB?ii?????Y??FB???D?		?4	???D?)?|ii?i48??D???(?Ri?(?9?{B??OA??Wè?_?#??W???O??{????????u?RD?i?*-A?v?
kT?&B?*?R
y3*-?A?|?a??&???V??&B??RD?*?|?i*??&B?   ?	??RD?R??{B??OA??Wè?_?#??W???O??{????????u?BD?i?*1A?v?
kT?B?*?R
y3*1?A?|?<?????1??B??BD?*?|?i*??B??	??BD?B??{B??OA??Wè?_?#????W??O??{???? ??/X?@? ??@????????????@??@????@??
@????@??@???@?Rh?#??O???{??C?3< ?`@??R?R??h??? ??? ???h@??i?(???{A??O¨?_?#??W???O??{??????j?U?@? ?H"X ?I!X????+??K?? ?K?@? ? ?,7X
aTj?K?@?l??                                                                                                                      ?T?Rh?H??
           ?(??H???@?L?4?R?Rh
@??????hA??
?h*@??*?`?=??=b
@????@?i
@?i)8h@??????{B??OA??Wè?_?#??W???O??{????t?@?v?u?h@?????R??`@?#??ɪ@???@?j????????@?	?!??T??@?i?(?????h????{B??OA??Wè?_?#??W???O??{????s?t?@?u?v??@??????@?Ȟ@????????i?@??	????Ti?(??h??h????{B??OA??Wè?_?#??g???_??W??O??{?????H*p ?@9?????????q???) ??@??4??????z( ?H@?ix????R???4H@?ix????RqT??R??R??@??C?? ????Ҟ????O???????????R? ?? ?Z ?y0 ?5?R?J0 ???Ȳ@yQ2qH??O????? ը@??? ? ՀC???= ? ?(q?T	q?T
                                                                     T2????1 ?0z??0???@9h0 @9*?r?
                                                                                                 Tq??	@?I
                                                                                                           4???ע?H@?i{????RN??5H@?      @?q???@?{C??#??T? ??@?6I0 ?)@9?q???4????@???H@?i{????R0??5H@?      @?q???@?{C????T ??@??6*59?@9H5????' ? Ո?	q@Tq?TȮ?yq? @9?p ?)@9   *?4?@?%???@4{7?2@????@???*
q?T??????R5?R?;0 ?????????@???@????0 լ?????R?@?h5?????@? ???X)@??T`?{H??OG??WF??_E??gD??oC??C??_?G?L???`?
                                                                                                         ?PP
                                                                                                            PPPP?(#??o???g??_??W??O??{??C??
                                                                                                                                           ??????o???????????????????????
   ???
      ???
???	?????????????
 ? ?I??qaT@q?!T ? ?I??q?T?R@q?!T@q` T   @q  T ? ?3?X?? ? ?3?X???????`??4?????????????????k?)??c? ???ீ=?@9??
                                                                                                          9??
                                                                                                             9?
?)?R?9?? ??@??q	@z??p ?V? ?y?0 ?)?0 ժ? ?<? ?!@9?5?@9?5(@9h5(@9(5 ? Չ?XH@??j?*?R?9	????@9?5?? @9H4(?R??
                                                                                                            ?0 ?)?R	9h"0 @9(5????p ??????9R ? Ո?X?? ?????5?P ??4(@9?@9)*?5?[?_?_??cA??_A?      ??_??????????g???cA???	hh8?@9?
??????P @Rk??{?????????? ? ?X?KT????????????p ?H@9?@9q @z??0 ??? @9?5?kA???? ?;????? ?7?(@9?4?@9qd
                                                                                                  @z`?0 @9qH????#??? ?'@9?4?@9q`
                                                                                                                                @za?0 @9qH????#??? ??q??[4H@5(@9?@9?5?@?H5?@4?@9?5 ? ?`?X????kA????????8????kA????????R???
                                                                       ??{E??OD??WC??_B??gA??oƨ?_????T1@q???T??#??{?????`??{???_??#??_???W??O??{?????????? ??@9? թ@?q @??Th2@94w??4?E9q!Th:@9?4h
@?q?T ?p ??? ? ը?X?KT"??? ? ը?Xh?h6@4??9??A????TP ՟???B@Rk?T??+??A?}???T(?R?9h:9
 ? ?X????T??????4h?R??h@?h????4h@???T???R??h@?h? ? ???X?????
@h
? ?R?{C??OB??WA??_Ĩ?_?#?????o??g??_??W????{	??C??????/? ? ??+?ԫA?(?P @9?4?? @9?4i
A?	*???p ?)@9?q??
                       ? ?h?h5J??p ?)@9)(4	?R ? ?*??'4|A?h
A??T??z??@?9??
              ?Ҹ? ?Vt ?y? ՛? ???\?hA??_8??P ?)@9	k??@?????????'??@?hI9?4?RA?p ?6?h
A??#?(@??aA????"?R??%???hI9?4?R??'??4?@?????T?h@9?4?????@?i
A?	???T????H?p @9?	?R?#)???? ??X)??	?;????
?iA???8?R????????1?T??????TG?@?h
A?      ?TjA?A	? Չ?X)??	?"1??????1T?/@??q(T ?ȦX =@?	??R
?4-??R????/@5|q?T?+@??q(T Ո?X   =@?	??R
?4?R????+@??5|q?T_????@?_	??TI?i	?+@???_
                                               ??T?@?????Y? ?{? ?+?'@??
                                                                       *iA??3@?K
                                                                                k$!H????'?????Y? ?{? ?????=`z?<Z??'C?_	?)?????????? ջ? ?_
                                                                                                                                          ???T,@??@?
 ?????? ?;? ??T??= ?=_
                      ?i?????@?		*?? ? ը?XI?P ?)@9?q	@?H? @9@z?	?0 @9   5_??T(?R??G???@??@?(6??p @9?5	?R?@??'@??
                                                                                                                          ?hA?A)?bT?	**??p @9???5(?R?? ? ??X????J?P ?J@9_q??)

??7	? ?)@9
?0 ?J@9??0 ?k@9?q@	@z`	@z!???7? @9H6l
A???Tl??
        ??
          ?h
A?????????T????@?h???'@????(?Rq??(
?{I??OH??WG??_F??gE??oD?????_??#??{??????`??{???_? ?#??{????N?`??{???_??#??{??????`??{???_??#??O???{??C????aA? ??X@?"?R~?șP ??9?{A??O¨?#???P? ?8??#?????O??{????????(? @9??0 @9?@?H4??Vp հ??R???? @9?4?*@???@lp ե???P @9?4??????P @9h4?"@????@jP Ք????{B??OA?????#???P? ?8ԏ ??X@?Ȓ @9???4????????{B??OA?????_?#?????o??g??_??W??O??{????X?P @9?P ?)@9q$@z?
T??A?:? ?I@???	@z$??T?A?R????E?5hBB??5?A?R??????|"? ?X?????T	@9?4????A?R????iA???c@?"?R??H@???`@????]p ???hA??c@???"?R??H@???c@??\ ???R"?R?@9h4@?R-????C?9???T	@9i5i
A???TiA??c@?"?R??@?R?hBBhB??{F??OE??WD??_C??gB??oA?????_?@?R??P? ?8?y#??{????R ?????#??{????!S0 ?????#??{????Tp ?????#?????O??{????@?8@?'??? QP ?7??{B??OA?????_?#??{????N0 ?Np ?NP ?B?R0?#??{????aL ?????#??{???? Q0 ??Kp ??PP ?b]?R?#??{?????N0 ո???#??{????N ղ???#??{????aMp լ????1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
??1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
??1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
??1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
??1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
??1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
??1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
??1?0@?
??1"?0@?
??1B?0@?
??1b?0@?
??1??0@?
??1??0@?
??1??0@?
??1??0@?
???0@?
??1?0@?
?@(#)PROGRAM:grep  PROJECT:text_cmds-138.100.3
33333Ca@$FreeBSD$$FreeBSD$$FreeBSD$????????$FreeBSD$r(standard input)unknown %s optionusage: %s [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz] [-A num] [-B num] [-C[num]]
	[-e pattern] [-f file] [--binary-files=value] [--color=when]
	[--context[=num]] [--directories=action] [--label] [--line-buffered]
	[--null] [pattern] [file ...]
Binary file %s matches
%s (BSD grep, GNU compatible) %s
GREP_OPTIONS context argument must be non-negativeskipread--devicesrecurse--directories
2.6.0-FreeBSDbinarywithout-matchtext--binary-filesautottyif-ttyTERMdumb01;31alwaysyesforcenevernoneno--color%s-0123456789A:B:C:D:EFGHIJLMOSRUVXZabcd:e:f:hilm:nopqrsuvwxyzbinary-fileshelpmmapline-bufferedlabelnullcolorcolourexcludeincludeexclude-dirinclude-dirafter-contextbefore-contextbyte-offsetcontextcountdevicesdirectoriesextended-regexpregexpfixed-stringsfilebasic-regexpno-filenamewith-filenameignore-casebz2decompressfiles-with-matchesfiles-without-matchmax-countlzmaline-numberonly-matchingquietsilentrecursiveno-messagesunix-byte-offsetsinvert-matchversionword-regexpline-regexpxznull-datadecompressGREP_COLORstrdup.grep_treeutil.c0 && "Unreachable segment reached"fts_open%s: %swarning: %s: recursive directory loopfts_read%s:%u
%s%cmalloccallocreallocmCproclinenst > st%d%lld--00PBHHauH
                                                          hd??\??4??t? !L&l&H(,.?.0?1?12X2	?	?	?	?	?	?	?	?
	?
         	?
        ?       ?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	? ?!	?"	?#	?$	?%	?&	?'	?(	?)	?*	?+	?,	?-	?.	?/	?0	?1	?2	?3?4	?5	?6	?7	?8	?9	?:	?;	?<	?=	?>	??	?@	?A	?@@@@@@@@|| ??| ??| ??| ??| ??| ??| ??| ??| ??| ??| ??| ??| A?{ a?| B?| b
} C} c} D } d,} E<} eC} FQ} fV} Gc} ho} H}} i?} J?} l?} L?} m?} M?} n?} o?} q?} q?} r?} s?{ U
~ u~ v)~ V1~ w=~ xI~ XL~ zV~@Zs~
0|?":{                          z
       h?J0@
            ?@
              ?<Vr??????$4DVdv???????? :Tfv?????.>NZjv????????(4L\l???????6L`v?_BZ2_bzRead_BZ2_bzReadClose_BZ2_bzdopen___assert_rtn___error___maskrune___stack_chk_fail_basename_calloc_close_err_errx_exit_fclose_ferror_fileno_fnmatch_fopen_fprintf_fputs_free_fstat_fts_close_fts_open_fts_read_fts_set_fwrite_getenv_getline_getopt_long_getprogname_gzdopen_gzread_isatty_lseek_lzma_alone_decoder_lzma_code_lzma_stream_decoder_madvise_malloc_mbtowc_memchr_memcpy_mmap_munmap_open_printf_putchar_puts_read_realloc_regcomp_regerror_regexec_setlinebuf_setlocale_stat_strcasecmp_strcmp_strdup_strerror_strlen_strsep_strtoll_warn_warnx__DefaultRuneLocale___mb_cur_max___stack_chk_guard___stderrp___stdinp___stdoutp_optarg_optind__mh_execute_headerЄ???|?????p`??t??4?
 ??
      X??@,,?<BEa$5BVdmy?????????????'.4;FPZcks|???????????
                                                           !'/7?HNT]fpy???????????
!"#$%&'()*+,-./01234589:;<=>?@ABCDEFGHIJK
!"#$%&'()*+,-./01234589:;<=>?@ABCDEFGHIJK	

67__mh_execute_header_BZ2_bzRead_BZ2_bzReadClose_BZ2_bzdopen__DefaultRuneLocale___assert_rtn___error___maskrune___mb_cur_max___stack_chk_fail___stack_chk_guard___stderrp___stdinp___stdoutp_basename_calloc_close_err_errx_exit_fclose_ferror_fileno_fnmatch_fopen_fprintf_fputs_free_fstat_fts_close_fts_open_fts_read_fts_set_fwrite_getenv_getline_getopt_long_getprogname_gzdopen_gzread_isatty_lseek_lzma_alone_decoder_lzma_code_lzma_stream_decoder_madvise_malloc_mbtowc_memchr_memcpy_mmap_munmap_open_optarg_optind_printf_putchar_puts_read_realloc_regcomp_regerror_regexec_setlinebuf_setlocale_stat_strcasecmp_strcmp_strdup_strerror_strlen_strsep_strtoll_warn_warnxradr://5614542??
                                                                                         ??$?2??
                                                                                                ??X? 
?com.apple.bzfgrep??ŀ?b???r???JI?????$)???'?H?G??r??~??L??ٍ??J?z????j????Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,?C???1?PSi?e? ?rCTN?}?w?1Vធ@??xe??ؑ
P?;Bh?`?r?;??Nĩ|DO????0')6??j?pϺ?#???KbO&?\???"??Vf#??֫D?#|?aX$Vٗ<(?
??\
   ??@?d=?ǐ????%?B????`E㴭??Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,??ἱ??????1"w??B_Om??2?|??o???Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,????Xo??f????kOX?|?|z?ڽ?H?,??)rRE?	}?~????{>|3??b????6$??
                                                                                              D??
                                                                                                 0com.apple.bzfgrep??
0b10???!*?H???  *?H??                                                                                                b0?	*?H??
   0	UUS10U

Apple Inc.1&0$U
261024173941Z01Apple Certification Authority10U
               0	UUS10U


Apple Inc.1&0$U

               Apple Certification Authority1301U
?0?     *?H??                                    *Apple Code Signing Certification Authority0?"0
???q??
??]kY?Z?????9?#59H?!?'?? ?dk
                            ???P??[?]?Te?s/b?8?drm|iGa?&???,$?j????̬)L?Iy?uv????	?LSx??v????2ʑ?????9????j??f? K?;-???Ɉ-i¤*a/ۇ?!?L????-?r?n????̣@??Q????-???YN]e3'?g??$?LJy?]????>?H?$?m?0????ȧ???#?8?_a?????0??0U??0U%
                                                                0
?ps??Rj?ީ*ѝv??i?????+??]p??<ZHG?9l??s?b:ʣZ??%J???s?s]???~??????Xn????O??????r2??'ިә?j??a?O??g?0??pleca/root.crl0
??D?????yA???kg|?lI?L??jn??\8?0??0?g(??yڟ?;Qb;"?~S|
01      *?H??                                      ??M?ID??:[??鲷[R???X?r??̳?P???j?8?{y1?c?????m????/?oR????D?p??&w?0??0??d????9?0
  0	UUS10U


Apple Inc.1&0$U

               Apple Certification Authority1301U
261024173941Z0V1                                 *Apple Code Signing Certification Authority0
                0	UUS10U


Apple Inc.10U

             Apple Software10U
?0?     *?H??                 Software Signing0?"0
??0?t?O?
        ??n1Tm	?<??9???`"]?䄢@A?d?`=?a?R?E'?,d???$
R:???Ax????x%???A??5?Q\??ѝq{?ɪK??ڏ?)?/?o??e??j?=hm?x¥/?2?~?]\?> ^????MA?J?k?EP?L??j'????<??R9????TR??/#Ve??*?Q?#?????՚??_??Glu?????z??bAt??4??Ztd9??9_0???[0?W0_
            U?00U#0??i??wBN?VB?Q??? ?	0??U ??0??0??	*?H??cd0{0+0m
                                                                     kThis certificate is to be used exclusively for functions internal to Apple Products and/or Apple processes.0U%?
                                  0
?????6??f?s?#s????Z^?0O?%`?I1le.R6??nJfW?U?????u?[?e??(??iJɩœ??  ??~?bA?????H?q????>??>??g??؝:????I???:?M},?}Č?[d??o\5?^O??Nף??}????_7?$E??????L4??0b1X3`o?*?H??H??kM??T15?9Hk??U?xN???Xo?Q??UA?iUܣ???4?Lڂ??B?2?7??????5?rV?0??0???0
   0	UUS10U

Apple Inc.1&0$U
350209214036Z0b1pple Certification Authority10U
                0	UUS10U

Apple Inc.1&0$U
?0?le Ro*?H??0?"0ple Certification Authority10U
?䑩	??GP??^y?-?6?WLU????Kl??"0?>?P	?A?????f?$kУ????z
?d5#KY???????P??XPg? ?ˬ, op??0??C??=?+I(??ε??^??=?:???   ?G?[?73??M?i??r?]?_??%?U?M]
?b??q?GSU??/A????p??LE~LkP?A??tb                      ?!.t?<
                                ?A?3???0X?Z2?h???es?g^e?I?v?3e?w??-??z0?v0U?0U?0?0U+?iG?v	??k?.@??G^0U#0?+?iG?v	??k?.@??G^0?U 0?0?	*?H??cd0??0+https://www.apple.com/appleca/0?+0????Reliance on this certificate by any party assumes acceptance of the then applicable standard terms a?\6?L-x?팛??w??v?w0O????=G7?@?,Ա?ؾ?s???d?yO4آ>?x?k??}9??S ?8ı??Oice statements.0
????/?Sj[d?c3w?:,V??!ںsO??6??U٧??2B???q?~?R??B$*??M?^c?K?P??????????DH?`7?uu!1??0??0??01
                                                                                        0	UUS10U


Apple Inc.1&0$U

               Apple Certification Authority1301U
        1?He???0        *?H??                    *Apple Code Signing Certification Authoritd????9?0
220618011" ???̚?T??Q?ʟW?>??L&H??80<	*?H??cd	1/0-	`?He ???̚?T??Q?ʟW?>??L&H??80?)	*?H??cd	1??<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>cdhashes</key>
	<array>
		<data>
		+5ipzJoXjFS91hJR88qfV+Q+8bs=
		</data>
	</array>
</dict>
</plist>
0       *?H??
?4???a???bJ?Jy??	t.mQ[![?8'????KT
?O?+?[??}V??????=??j5?                  ?
                      ??<??b??-???C]?Oe?L???3??%?^ɣF?[?w}w??nMx'J???IY????=i*J?g?K%???EP%α?B??5(&X?ZAғ?e?Cm???r??:?Kr?%wF?@?)?$?~?pQ?Y?#k?=:$n?r?F_?Ѩ9?)?j?4????C???V띛g?{?YWK% 

Скромно, но для начала неплохо. Дальше, чисто теоретически, можно узнать, что у вас ОС не Linux, и, соответственно, grep не GNU.

PS: выше, в посте от 11:32, написал текстом для простоты интерпретации в уме.

Заходя в статью ожидал увидеть рекомендацию по использованию ripgrep вместо grep

тру инженеры парсят /proc глазами :-)

а потом /dev/hands монтируют (:

Вот привыкаешь к новому быстро, а потом тебе приходится какой-нибудь древний кластер разгребать, который работал себе полтора десятка лет. Таким тупым себя начинаешь ощущать, а техника такая теплая и ламповая

обратная ситуация. Меняю дистрибутив очень редко. На полевом ноутбуке вообще стоит 12.04. И каждый раз приходится, чертыхаясь, выяснять, что ещё в заботе обо мне у меня отобрали, и как теперь без этого обходиться. Как будто пришёл какой-то умник, переставил все привычные инструменты на полках, часть старых добрых гаечных ключей выкинул, "потому что древние", а вместо них напихал трансклюкаторов с километровыми инструкциями мелким текстом.

Мне ss не нравится тем, что он включает выравнивание по ширине. Тем самым читать неудобно, много пустого места. Как-нибудь можно это выключить?

Как это nslookup не позволяет трансфер зоны? Что за чушь?

sysop@eris:~$ nslookup -query=NS example.com.
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
example.com     nameserver = a.iana-servers.net.
example.com     nameserver = b.iana-servers.net.

Authoritative answers can be found from:

sysop@eris:~$ nslookup -query=AXFR a.iana-servers.ne. a.iana-servers.net
Server:         a.iana-servers.net
Address:        199.43.135.53#53

** server can't find a.iana-servers.ne: NOTAUTH
; Transfer failed

Другие типы запросов через -query тоже можно задавать, тот же NS, например. nslookup в первом приближении не хуже, чем dig.

Nslookup позволяет трансферы зон. Отличается формат вывода:

dig axfr myoffice-app.ru @ns.myoffice.ru.

...
mail-ex.myoffice-app.ru. 300    IN      A       10.20.30.40

nslookup -query=AXFR myoffice-app.ru ns.myoffice.ru

...
Name:   mail-ex.myoffice-app.ru
Address: 10.160.101.217


У dig вывод сопоставим с форматом файла зоны BIND.

ifconfig был заменен на ip

Что значит был заменён? Он никуда не девался. И можно поставить и пользоваться ifconfig. Проблема ip -- что он сделан для роботов или иноплонетян и нормальные люди им пользоваться, в отличии от ifconfig, не могут. Вывод не читаемый, команды не запомнить и т.п.

С route аналогичная история. Он никуда не делся и есть на любом юниксе (а не линуксе).

И netstat -- та же самая история. Зачем нужны ни с чем несовместимые аналоги, которые непонятно как использовать -- не знаю. Всегда устанавливают старые утилиты. Потому, что 1) половина скриптов их всё равно требует, 2) сам руками без них работать не сможешь.

Новое вообще не всегда -- хорошее...

Кирилл, ты чего?! ifconfig на линуксе устарел - он использует устаревшие системные вызовы и ты тупо можешь не увидеть часть информации которые покажет тебе ip и ss.

На практике замечено, что ss как минимум работает в разы (если не на порядки) быстрее, чем netstat при большом количестве открытых соединений

Есть действительно устаревшие программы, вроде which. Или type. Вот это действительно проблемные программы или команды (встроенные в шелл). Ибо у всех работают не пойми как и лучше использовать command -v.

НЛО прилетело и опубликовало эту надпись здесь
Пишите программы, которые бы поддерживали текстовые потоки, поскольку это универсальный интерфейс.

Ничего универсального в текстовых потоках нет — наоборот, у каждой программы может быть свой произвольный вывод (таблица, текст, JSON, CSV, или что угодно еще), который нужно прилаживать к входу другой программы с помощью костылей из регулярок. Если программа обновится и будет выводить результаты в ином формате — все развалится.


У некоторых программ есть специальные аргументы, настраивающие формат вывода. Это еще один большой костыль, нарушающий идеологию "одна программа делает одну задачу".


Более перспективным решением, имхо, является взаимодействие между приложениями с помощью объектов или структур, как это делают nushell и powershell: это действительно универсальный интерфейс, форматирование реализовано один раз на уровне системы, можно делать осмысленный автокомплит вместо регулярок. Жаль, что пока они не особо популярны по историческим причинам

Вам, батенька бы вникнуть в попытки решения подобной проблемы в NEXTStep задолго до появления этих ваших PowerShell, что не отменяет верности замечания. Идея использовать текстовый поток родом из 60-х годов прошлого века, не так уж удивительно, что решение неидеально и несколько устарело.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий