Files
teleport/docs/pages/reference/cli.mdx
T
Paul Gottschling 191e645011 Split up the CLI reference (#30129)
Fixes #29957

Improves the page load performance of our CLI reference documentation by
splitting up the long CLI reference page. This also has other benefits,
including:

- **SEO**: Users don't need to search for the Teleport CLI reference
  (and don't need to know that this page exists), but can search for a
  specific tool they want reference docs for.
- **In-page search:** Users searching within a specific page will get
  results for the tool they are researching, not all of Teleport's CLI
  tools.
2023-08-10 13:56:47 +00:00

79 lines
2.5 KiB
Plaintext

---
title: Teleport CLI Reference
description: Detailed guide and reference documentation for Teleport's command line interface (CLI) tools.
---
Teleport is made up of four CLI tools.
- [teleport](./cli/teleport.mdx): Supports the Teleport Access Platform by starting and configuring various Teleport services.
- [tsh](./cli/tsh.mdx): Allows end users to authenticate to Teleport and access resources in a cluster.
- [tctl](./cli/tctl.mdx): Used to configure the Teleport Auth Service.
- [tbot](./cli/tbot.mdx): Supports Machine ID, which provides short lived credentials to service accounts (e.g, a CI/CD server).
(!docs/pages/includes/permission-warning.mdx!)
<Details title="Improve the CLI experience: enable shell completion">
Teleport's CLI tools can provide completion hints for bash and zsh.
For example, typing `tsh` and pressing `Tab` will show all available
subcommands, typing `tsh --` and pressing `Tab` will show all available flags.
To enable completion, add an additional statement to your shell configuration file.
Example (`.bashrc`):
```sh
eval "$(tsh --completion-script-bash)"
```
Example (`.zshrc`):
```sh
# enable completion feature
autoload -Uz compinit
compinit
eval "$(tsh --completion-script-zsh)"
```
Reload your shell to see the changes.
You can repeat the same process for `tctl`, `teleport`, and `tbot`.
</Details>
(!docs/pages/includes/backup-warning.mdx!)
## Resource filtering
Both `tsh` and `tctl` allow you to filter servers, applications, databases,
desktops, and Kubernetes clusters using the `--search` and `--query` flags.
The `--search` flag performs a simple fuzzy search on resource fields. For example, `--search=mac` searches for resources containing `mac`.
The `--query` flag allows you to perform more sophisticated searches using a [predicate language](predicate-language.mdx#resource-filtering).
In both cases, you can further refine the results by appending a list of comma-separated labels to the command. For example:
```code
$ tsh ls --search=foo,bar labelKey1=labelValue1,labelKey2=labelValue2
```
### Filter Examples
```code
# List all nodes
$ tsh ls
# List nodes using label argument
$ tsh ls env=staging,os=mac
# List nodes using search keywords
$ tsh ls --search=staging,mac
# List nodes using predicate language. This query searches for nodes with labels
# with key `env` equal to `staging` and key `os` equal to `mac`.
$ tsh ls --query='labels["env"] == "staging" && equals(labels["os"], "mac")'
```