diff --git a/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java b/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
index aeea443..9a2bda8 100644
--- a/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
@@ -10,15 +10,25 @@
 public abstract class AbstractShellCommand extends OsgiCommandSupport {
 
     /**
-     * Returns the reference to the implementaiton of the specified service.
+     * Returns the reference to the implementation of the specified service.
      *
      * @param serviceClass service class
      * @param <T>          type of service
      * @return service implementation
      */
-    static <T> T get(Class<T> serviceClass) {
+    public static <T> T get(Class<T> serviceClass) {
         BundleContext bc = FrameworkUtil.getBundle(AbstractShellCommand.class).getBundleContext();
         return bc.getService(bc.getServiceReference(serviceClass));
     }
 
+    /**
+     * Prints the arguments using the specified format.
+     *
+     * @param format format string; see {@link String#format}
+     * @param args   arguments
+     */
+    public static void print(String format, Object... args) {
+        System.out.println(String.format(format, args));
+    }
+
 }
diff --git a/cli/src/main/java/org/onlab/onos/cli/GreetCommand.java b/cli/src/main/java/org/onlab/onos/cli/GreetCommand.java
index 46d4b2c..71e56f1 100644
--- a/cli/src/main/java/org/onlab/onos/cli/GreetCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/GreetCommand.java
@@ -2,7 +2,6 @@
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
 import org.onlab.onos.GreetService;
 
 /**
@@ -10,7 +9,7 @@
  * use of an optional parameter as well.
  */
 @Command(scope = "onos", name = "greet", description = "Issues a greeting")
-public class GreetCommand extends OsgiCommandSupport {
+public class GreetCommand extends AbstractShellCommand {
 
     @Argument(index = 0, name = "name", description = "Name to greet",
               required = false, multiValued = false)
@@ -18,7 +17,7 @@
 
     @Override
     protected Object doExecute() throws Exception {
-        System.out.println(getService(GreetService.class).yo(name));
+        print(getService(GreetService.class).yo(name));
         return null;
     }
 }
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/DeviceIdCompleter.java b/cli/src/main/java/org/onlab/onos/cli/net/DeviceIdCompleter.java
new file mode 100644
index 0000000..2614d51
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DeviceIdCompleter.java
@@ -0,0 +1,34 @@
+package org.onlab.onos.cli.net;
+
+import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
+import org.onlab.onos.cli.AbstractShellCommand;
+import org.onlab.onos.net.Device;
+import org.onlab.onos.net.device.DeviceService;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.SortedSet;
+
+/**
+ * Device ID completer.
+ */
+public class DeviceIdCompleter implements Completer {
+    @Override
+    public int complete(String buffer, int cursor, List<String> candidates) {
+        // Delegate string completer
+        StringsCompleter delegate = new StringsCompleter();
+
+        // Fetch our service and feed it's offerings to the string completer
+        DeviceService service = AbstractShellCommand.get(DeviceService.class);
+        Iterator<Device> it = service.getDevices().iterator();
+        SortedSet<String> strings = delegate.getStrings();
+        while (it.hasNext()) {
+            strings.add(it.next().id().uri().toString());
+        }
+
+        // Now let the completer do the work for figuring out what to offer.
+        return delegate.complete(buffer, cursor, candidates);
+    }
+
+}
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/DevicePortsListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/DevicePortsListCommand.java
new file mode 100644
index 0000000..f09e39a
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DevicePortsListCommand.java
@@ -0,0 +1,33 @@
+package org.onlab.onos.cli.net;
+
+import org.apache.karaf.shell.commands.Argument;
+import org.apache.karaf.shell.commands.Command;
+import org.onlab.onos.cli.AbstractShellCommand;
+import org.onlab.onos.net.Port;
+import org.onlab.onos.net.device.DeviceService;
+
+import static org.onlab.onos.net.DeviceId.deviceId;
+
+/**
+ * Lists all infrastructure links.
+ */
+@Command(scope = "onos", name = "ports",
+         description = "Lists all ports of a device")
+public class DevicePortsListCommand extends AbstractShellCommand {
+
+    private static final String FMT = "port=%s, state=%s";
+
+    @Argument(index = 0, name = "deviceId", description = "Device ID",
+              required = true, multiValued = false)
+    String deviceId = null;
+
+    @Override
+    protected Object doExecute() throws Exception {
+        DeviceService service = getService(DeviceService.class);
+        Iterable<Port> ports = service.getPorts(deviceId(deviceId));
+        for (Port port : ports) {
+            print(FMT, port.number(), port.isEnabled() ? "enabled" : "disabled");
+        }
+        return null;
+    }
+}
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/DevicesListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/DevicesListCommand.java
new file mode 100644
index 0000000..b3dd18d
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DevicesListCommand.java
@@ -0,0 +1,26 @@
+package org.onlab.onos.cli.net;
+
+import org.apache.karaf.shell.commands.Command;
+import org.onlab.onos.cli.AbstractShellCommand;
+import org.onlab.onos.net.Device;
+import org.onlab.onos.net.device.DeviceService;
+
+/**
+ * Lists all infrastructure devices.
+ */
+@Command(scope = "onos", name = "devices",
+         description = "Lists all infrastructure devices")
+public class DevicesListCommand extends AbstractShellCommand {
+
+    private static final String FMT =
+            "id=%s, type=%s, mfr=%s, hw=%s, sw=%s, serial=%s";
+
+    @Override
+    protected Object doExecute() throws Exception {
+        for (Device device : getService(DeviceService.class).getDevices()) {
+            print(FMT, device.id(), device.type(), device.manufacturer(),
+                  device.hwVersion(), device.swVersion(), device.serialNumber());
+        }
+        return null;
+    }
+}
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/LinksListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/LinksListCommand.java
new file mode 100644
index 0000000..87be1f2
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/net/LinksListCommand.java
@@ -0,0 +1,36 @@
+package org.onlab.onos.cli.net;
+
+import org.apache.karaf.shell.commands.Argument;
+import org.apache.karaf.shell.commands.Command;
+import org.onlab.onos.cli.AbstractShellCommand;
+import org.onlab.onos.net.Link;
+import org.onlab.onos.net.link.LinkService;
+
+import static org.onlab.onos.net.DeviceId.deviceId;
+
+/**
+ * Lists all infrastructure links.
+ */
+@Command(scope = "onos", name = "links",
+         description = "Lists all infrastructure links")
+public class LinksListCommand extends AbstractShellCommand {
+
+    private static final String FMT = "src=%s/%s, dst=%s/%s, type=%s";
+
+    @Argument(index = 0, name = "deviceId", description = "Device ID",
+              required = false, multiValued = false)
+    String deviceId = null;
+
+
+    @Override
+    protected Object doExecute() throws Exception {
+        LinkService service = getService(LinkService.class);
+        Iterable<Link> links = deviceId != null ?
+                service.getDeviceLinks(deviceId(deviceId)) : service.getLinks();
+        for (Link link : links) {
+            print(FMT, link.src().deviceId(), link.src().port(),
+                  link.dst().deviceId(), link.dst().port(), link.type());
+        }
+        return null;
+    }
+}
diff --git a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index 5cc83ef..f7fc371 100644
--- a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -2,13 +2,31 @@
 
     <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
         <command>
-            <action class="org.onlab.onos.cli.GreetCommand"/>
+            <action class="org.onlab.onos.cli.net.DevicesListCommand"/>
+        </command>
+        <command>
+            <action class="org.onlab.onos.cli.net.DevicePortsListCommand"/>
             <completers>
-                <ref component-id="nameCompleter"/>
+                <ref component-id="deviceIdCompleter"/>
             </completers>
         </command>
+        <command>
+            <action class="org.onlab.onos.cli.net.LinksListCommand"/>
+            <completers>
+                <ref component-id="deviceIdCompleter"/>
+            </completers>
+        </command>
+
+        <!--<command>-->
+            <!--<action class="org.onlab.onos.cli.GreetCommand"/>-->
+            <!--<completers>-->
+                <!--<ref component-id="nameCompleter"/>-->
+            <!--</completers>-->
+        <!--</command>-->
     </command-bundle>
 
+    <bean id="deviceIdCompleter" class="org.onlab.onos.cli.net.DeviceIdCompleter"/>
+
     <bean id="nameCompleter" class="org.onlab.onos.cli.NameCompleter"/>
 
 </blueprint>
diff --git a/features/features.xml b/features/features.xml
index 9bb4519..1d4da58 100644
--- a/features/features.xml
+++ b/features/features.xml
@@ -5,7 +5,8 @@
 
     <feature name="onos-thirdparty-base" version="1.0.0"
              description="ONOS 3rd party dependencies">
-        <bundle>mvn:com.google.guava/guava/17.0</bundle>
+        <bundle>mvn:commons-lang/commons-lang/2.6</bundle>
+        <bundle>mvn:com.google.guava/guava/18.0</bundle>
     </feature>
 
     <feature name="onos-thirdparty-web" version="1.0.0"
diff --git a/pom.xml b/pom.xml
index 28b3fff..25557a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,6 +68,11 @@
                 <scope>test</scope>
             </dependency>
 
+            <dependency>
+                <groupId>commons-lang</groupId>
+                <artifactId>commons-lang</artifactId>
+                <version>2.6</version>
+            </dependency>
 
             <!-- Web related -->
             <dependency>
diff --git a/utils/misc/pom.xml b/utils/misc/pom.xml
index 79a0780..c39fd32 100644
--- a/utils/misc/pom.xml
+++ b/utils/misc/pom.xml
@@ -20,9 +20,13 @@
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava-testlib</artifactId>
-            <version>17.0</version>
             <scope>test</scope>
         </dependency>
+
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/utils/pom.xml b/utils/pom.xml
index a34aa02..c956abe 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -27,11 +27,6 @@
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-            <version>2.3</version>
-        </dependency>
     </dependencies>
 
     <build>
