Vậy làm thế nào tôi có thể biết những lệnh nào có sẵn tại thời điểm cài đặt?
Các lệnh khả dụng sau khi cài đặt Mavericks mới (OS X 10.9) thuộc về một trong bốn gói sau:
com.apple.pkg.BSD
com.apple.pkg.BaseSystemBinaries
com.apple.pkg.BaseSystemResources
com.apple.pkg.Essentials
(Lưu ý rằng, kể từ High Sierra (macOS 10.13), các lệnh đã được chuyển sang gói này com.apple.pkg.Core
.)
Bạn có thể liệt kê các lệnh có trong mọi gói với lệnh này:
pkgutil --files <package name> | egrep '^usr/s*bin|^s*bin/'
Được netcat
, nc
theo mặc định trên Mac OS X hoặc được cài đặt cùng với các công cụ dòng lệnh?
Tôi tìm thấy nc
với:
pkgutil --files com.apple.pkg.BaseSystemBinaries | egrep '^usr/bin/nc'
(Trên High Sierra, hãy chạy pkgutil --files com.apple.pkg.Core | egrep '^usr/bin/nc'
thay thế.)
vì vậy, có, nc
thuộc về cài đặt hệ điều hành cơ bản.
Tôi không thể tìm thấy netcat
, vì vậy nếu bạn có nó trên hệ thống của mình thì nó đã được cài đặt sau.
Để liệt kê tất cả các lệnh được cung cấp bởi tất cả các gói, hãy chạy trong Terminal:
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
Bạn cũng có thể chuyển lệnh đến một tệp trên Màn hình để tham khảo sau:
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
ISnetcat
.