तो मुझे कैसे पता चलेगा कि स्थापना के समय कौन से कमांड उपलब्ध हैं?
Mavericks (OS X 10.9) की नई स्थापना के बाद उपलब्ध कमांड इन चार पैकेजों में से एक हैं:
com.apple.pkg.BSD
com.apple.pkg.BaseSystemBinaries
com.apple.pkg.BaseSystemResources
com.apple.pkg.Essentials
(ध्यान दें कि, उच्च सिएरा (macOS 10.13) के रूप में, कमांड इस पैकेज में चले गए हैं com.apple.pkg.Core
।)
आप इस कमांड के साथ हर पैकेज में शामिल कमांड को सूचीबद्ध कर सकते हैं:
pkgutil --files <package name> | egrep '^usr/s*bin|^s*bin/'
मैक ओएस एक्स पर डिफ़ॉल्ट रूप से उपलब्ध हैं netcat
, nc
या यह कमांड लाइन टूल के साथ स्थापित है?
मैंने पाया nc
:
pkgutil --files com.apple.pkg.BaseSystemBinaries | egrep '^usr/bin/nc'
(हाई सिएरा पर, pkgutil --files com.apple.pkg.Core | egrep '^usr/bin/nc'
इसके बजाय भागो ।)
हां, nc
बेस OS इंस्टॉलेशन के अंतर्गत आता है।
मुझे नहीं मिला netcat
, इसलिए यदि आपके पास यह आपके सिस्टम पर है तो इसे बाद में स्थापित किया गया था।
सभी पैकेजों द्वारा प्रदान की गई सभी कमांड को सूचीबद्ध करने के लिए, टर्मिनल में चलाएं:
for p in $(pkgutil --packages); do
list_of_cmds=$(pkgutil --files $p | egrep '^usr/s*bin|^s*bin/')
if [ ! -z "$list_of_cmds" ]; then
echo ">>>> $p <<<<"
echo "$list_of_cmds"
fi
done
आप बाद के संदर्भ के लिए अपने डेस्कटॉप पर एक फ़ाइल के लिए कमांड को पाइप कर सकते हैं:
for p in $(pkgutil --packages); do
list_of_cmds=$(pkgutil --files $p | egrep '^usr/s*bin|^s*bin/')
if [ ! -z "$list_of_cmds" ]; then
echo ">>>> $p <<<<"
echo "$list_of_cmds"
fi
done > ~/Desktop/cmds_from_pkgs.txt
nc
आईएस हैnetcat
।