diff --git a/tools/nfdc/available-commands.cpp b/tools/nfdc/available-commands.cpp
index 99a53e0..b0a118a 100644
--- a/tools/nfdc/available-commands.cpp
+++ b/tools/nfdc/available-commands.cpp
@@ -47,6 +47,12 @@
 }
 
 static int
+statusList(ExecuteContext& ctx, const std::string& option)
+{
+  return statusMain(std::vector<std::string>{option}, ctx.face, ctx.keyChain);
+}
+
+static int
 legacyNfdStatus(ExecuteContext& ctx)
 {
   auto args = ctx.args.get<std::vector<std::string>>("args");
@@ -61,6 +67,26 @@
     .addArg("format", ArgValueType::REPORT_FORMAT, Required::NO, Positional::YES);
   parser.addCommand(defStatusReport, &statusReport);
 
+  struct StatusCommandDefinition
+  {
+    std::string noun;
+    std::string verb;
+    std::string legacyOption;
+  };
+  const std::vector<StatusCommandDefinition> statusCommands{
+    {"status", "show", "-v"},
+    {"face", "list", "-f"},
+    {"channel", "list", "-c"},
+    {"strategy", "list", "-s"},
+    {"fib", "list", "-b"},
+    {"route", "list", "-r"}
+  };
+  for (const StatusCommandDefinition& scd : statusCommands) {
+    CommandDefinition def(scd.noun, scd.verb);
+    parser.addCommand(def, bind(&statusList, _1, scd.legacyOption));
+  }
+  parser.addAlias("status", "show", "list");
+
   CommandDefinition defLegacyNfdStatus("legacy-nfd-status", "");
   defLegacyNfdStatus
     .addArg("args", ArgValueType::ANY, Required::NO, Positional::YES);
