diff --git a/doc.go b/doc.go
index bea4b64..8db83cc 100644
--- a/doc.go
+++ b/doc.go
@@ -20,6 +20,8 @@
                concurrently
    install     Install your app on all devices
    name        Manage device nicknames
+   shell       Run the provided adb shell command on all devices and emulators
+               concurrently
    start       Launch your app on all devices
    stop        Stop your app on all devices
    uninstall   Uninstall your app from all devices
@@ -327,6 +329,30 @@
    '@' sign followed by the index of the device in the output of 'adb devices'
    command, starting from 1. Command will be run only on specified devices.
 
+Madb shell - Run the provided adb shell command on all devices and emulators concurrently
+
+Runs the provided adb shell command on all devices and emulators concurrently.
+
+This command is a shorthand syntax for 'madb exec shell <command...>'. See 'madb
+help exec' for more details.
+
+Usage:
+   madb shell [flags] <command>
+
+<command> is a normal adb shell command, which will be executed on all devices
+and emulators.
+
+The madb shell flags are:
+ -d=false
+   Restrict the command to only run on real devices.
+ -e=false
+   Restrict the command to only run on emulators.
+ -n=
+   Comma-separated device serials, qualifiers, device indices (e.g., '@1',
+   '@2'), or nicknames (set by 'madb name'). A device index is specified by an
+   '@' sign followed by the index of the device in the output of 'adb devices'
+   command, starting from 1. Command will be run only on specified devices.
+
 Madb start - Launch your app on all devices
 
 Launches your app on all devices.
diff --git a/exec.go b/exec.go
index 9cf8c4d..32eecc1 100644
--- a/exec.go
+++ b/exec.go
@@ -44,7 +44,31 @@
 `,
 }
 
+var cmdMadbShell = &cmdline.Command{
+	Runner: subCommandRunner{subCmd: runMadbShellForDevice},
+	Name:   "shell",
+	Short:  "Run the provided adb shell command on all devices and emulators concurrently",
+	Long: `
+Runs the provided adb shell command on all devices and emulators concurrently.
+
+This command is a shorthand syntax for 'madb exec shell <command...>'.
+See 'madb help exec' for more details.
+`,
+	ArgsName: "<command>",
+	ArgsLong: `
+<command> is a normal adb shell command, which will be executed on all devices and emulators.
+`,
+}
+
 func runMadbExecForDevice(env *cmdline.Env, args []string, d device, properties variantProperties) error {
+	return runAdbCommandForDevice(env, args, d, properties, false)
+}
+
+func runMadbShellForDevice(env *cmdline.Env, args []string, d device, properties variantProperties) error {
+	return runAdbCommandForDevice(env, args, d, properties, true)
+}
+
+func runAdbCommandForDevice(env *cmdline.Env, args []string, d device, properties variantProperties, isShellCmd bool) error {
 	sh := gosh.NewShell(nil)
 	defer sh.Cleanup()
 
@@ -56,7 +80,11 @@
 		expandedArgs[i] = expandKeywords(arg, d)
 	}
 
-	cmdArgs := append([]string{"-s", d.Serial}, expandedArgs...)
+	cmdArgs := []string{"-s", d.Serial}
+	if isShellCmd {
+		cmdArgs = append(cmdArgs, "shell")
+	}
+	cmdArgs = append(cmdArgs, expandedArgs...)
 	cmd := sh.Cmd("adb", cmdArgs...)
 	return runGoshCommandForDevice(cmd, d, false)
 }
diff --git a/madb.go b/madb.go
index 05572cc..e3b26a9 100644
--- a/madb.go
+++ b/madb.go
@@ -77,6 +77,7 @@
 		cmdMadbExec,
 		cmdMadbInstall,
 		cmdMadbName,
+		cmdMadbShell,
 		cmdMadbStart,
 		cmdMadbStop,
 		cmdMadbUninstall,
