--- layout: page title: "Shell interpreter for Apache Zeppelin" description: "Shell interpreter uses Apache Commons Exec to execute external processes." group: interpreter --- {% include JB/setup %} # Shell interpreter for Apache Zeppelin
## Overview Shell interpreter uses [Apache Commons Exec](https://commons.apache.org/proper/commons-exec) to execute external processes. In Zeppelin notebook, you can use ` %sh ` in the beginning of a paragraph to invoke system shell and run commands. > **Note :** Currently each command runs as the user Zeppelin server is running as. ## Configuration At the "Interpreters" menu in Zeppelin dropdown menu, you can set the property value for Shell interpreter.| Name | Value | Description |
|---|---|---|
| shell.command.timeout.millisecs | 60000 | Shell command time out in millisecs |
| shell.working.directory.user.home | false | If this set to true, the shell's working directory will be set to user home |
| zeppelin.shell.auth.type | Types of authentications' methods supported are SIMPLE, and KERBEROS | |
| zeppelin.shell.principal | The principal name to load from the keytab | |
| zeppelin.shell.keytab.location | The path to the keytab file |
If you need further information about **Zeppelin Interpreter Setting** for using Shell interpreter,
please read [What is interpreter setting?](../usage/interpreter/overview.html#what-is-interpreter-setting) section first.
## Kerberos refresh interval
For changing the default behavior of when to renew Kerberos ticket following changes can be made in `conf/zeppelin-env.sh`.
```bash
# Change Kerberos refresh interval (default value is 1d). Allowed postfix are ms, s, m, min, h, and d.
export LAUNCH_KERBEROS_REFRESH_INTERVAL=4h
# Change kinit number retries (default value is 5), which means if the kinit command fails for 5 retries consecutively it will close the interpreter.
export KINIT_FAIL_THRESHOLD=10
```