This is not so much about one's ability to read the Fine Manual, but
about efficiency. A little example. Suppose I am troubleshooting some
kind of a emergency on a box I am not familiar with and I do
ps auxw
and I see this:
dbus-daemon --fork --print-pid 5 --print-address 7 --session
I need to know ASAP what those options do. Granted I know enough to
guess that --fork likely means fork as a daemon, but what about the
rest? I paste the command into explainshell.com and I get this:
Message bus daemon
--print-pid[=DESCRIPTOR]
Print the process ID of the message bus to standard output, or
to the given file descriptor. This
is used by programs that launch the message bus.
--fork Force the message bus to fork and become a daemon, even if the
configuration file does not specify
that it should. In most contexts the configuration
file already gets this right, though.
--nofork Force the message bus not to fork and become a daemon,
even if the configuration file
specifies that it should.
--print-address[=DESCRIPTOR]
Print the address of the message bus to standard output, or to
the given file descriptor. This is
used by programs that launch the message bus.
--session
Use the standard configuration file for the per-login-session
message bus.
Even though I may know little about the message bus daemon In a matter
of 5 seconds I see that the pid is written to file descriptor 5, and
the address is written to file descriptor 7. I can now use lsof to
figure out where that information went to. I also know that it will be
using the standard configuration file for the per-login-session
message bus (whatever that means exactly, but maybe I do not care at
this point), and I see that my guess about --fork was correct, but
there is one detail I might have missed that may be important - even
if the config file tells dbus-daemon not to fork in the background, it
will do it anyway because of --fork on the command-line.
If I want to go deeper I can look at the man page, source code, run
strace, or gdb, but that is beside the point. In a matter of 20 or so
seconds I got a good idea of what a random process I caught with ps is
at least supposed to be doing on the system according to the
documentation which without explainshell.com would have taken me
probably 5 times as long. If the troubleshooting process involves a
large number of such investigations, this could make a difference
between figuring it out in 1 hour vs 5 hours.
Do not scoff at simple things. Remember that by small and simple means
are great things brought to pass.
--
Sasha Pachev
Fast Running Blog.
http://fastrunningblog.com
Run. Blog. Improve. Repeat.
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/