3 ms·
One nice thing about macOS is that many of the system GUI tools are graphical wrappers around a command-line tool that does the real work. Most of them live in
by jfarmer 3y ago
One nice thing about macOS is that many of the system GUI tools are graphical wrappers around a command-line tool that does the real work.
Most of them live in /usr/sbin
I keep a list for my students. Here are some:
diskutil
mdfind
mdutil
plutil
networksetup
softwareupdate
screencapture
pmset
hdiutil
pkgutil
caffeinate
osascript
defaults
launchctl
For example, mdfind lets you use Spotlight search on the command line. diskutil powers "Disk Utility.app". pkgutil lets you install .pkg files and also get information about programs installed that way. screencapture lets you take screenshots from the command line (you can specify which windows, etc.)
Anyhow, there's a bunch.
There are also random useful executables not in $PATH. This program powers your WiFi menu:
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
Try "airport -I"
A silly one-liners to print out your overall WiFi strength:
airport -I | grep -E 'agrCtlRSSI|agrCtlNoise' | awk '{print $2}' | sed -e 'N;s/\n/ - /' | bc
Put that in a script called "wifi-strength" and walk around your house with a laptop while running the following:
watch -n1 "wifi-strength | say"
- Alifatisk 3y agoWhat a goldmine, thanks!
- jijojv 3y agoVery Nice! One caveat is that say won't speak the "minus" if your SNR became negative. echo '-30' | say echo '\-30' | say
- jfarmer 3y agoThanks!
- comex 3y agoNitpick: In general, the graphical tools don’t literally invoke the command-line tools. Rather, both the graphical tool and the command-line tool use the same C or Objective-C API (usually private and undocumented) provided by some system framework. But the command-line tools do tend to be more direct reflections of the underlying API, and more flexible.
- jfarmer 3y agoOops. Yeah, I knew some of them did and then at some point I just started tossing more programs in the list as I ran across them.