Apache Geode CHANGELOG

Basic Shell Features and Command-Line Usage

The gfsh utility provides useful features for a shell environment, including command auto-complete, preserved command history, and delimiting of multi-line commands. Context-sensitive help is available by command and by topic.

To view a list of available gfsh commands, press Tab at an empty prompt.

The list of commands you see depends on whether you are connected to a Geode cluster. If you are not connected, you see a list of local commands that are available.

Use the hint command to get information on a particular topic.

The hint command displays a one-line description and associated commands for a specified topic. For example, hint data returns a description of the data topic and all the possible actions available for data:

gfsh>hint Data
User data as stored in regions of the Geode distributed system.

clear defined indexes: Clears all the defined indexes.
create defined indexes: Creates all the defined indexes.
create index: Create an index that can be used when executing queries.
create lucene index: Create a lucene index that can be used to execute queries.
define index: Define an index that can be used when executing queries.
describe lucene index: Display the description of lucene indexes created for all members.
destroy index: Destroy/Remove the specified index.
destroy lucene index: Destroy the lucene index.
export data: Export user data from a region to a file.
get: Display an entry in a region. If using a region whose key and value classes have been set, then specifying --key-class and --value-class is unnecessary.
import data: Import user data from a file to a region.
list indexes: Display the list of indexes created for all members.
list lucene indexes: Display the list of lucene indexes created for all members.
locate entry: Identifies the location, including host, member and region, of entries that have the specified key.
put: Add/Update an entry in a region. If using a region whose key and value classes have been set, then specifying --key-class and --value-class is unnecessary.
rebalance: Rebalance partitioned regions. The default is for all partitioned regions to be rebalanced.
remove: Remove an entry from a region. If using a region whose key class has been set, then specifying --key-class is unnecessary.
search lucene: Search lucene index

To view a list of hint topics, type hint.

Use the help command to get information on a particular command.

Depending on the command, typing help <command-name> displays usage information for that particular command or a list of commands related to the command.

For example, type help start to display a list of start commands with short descriptions. The descriptions indicate whether the command is available, and depend on the connection status of gfsh. The following example assumes gfsh is not currently connected (via connection to a JMX Manager node), so some start commands are unavailable.

gfsh>help start
start gateway-receiver (Not Available)
    Start the Gateway Receiver on a member or members.
start gateway-sender (Not Available)
    Start the Gateway Sender on a member or members.
start jconsole (Available)
    Start the JDK's JConsole tool in a separate process. JConsole will be
    launched, but connecting to GemFire must be done manually.
start jvisualvm (Available)
    Start the JDK's Java VisualVM (jvisualvm) tool in a separate process. Java
    VisualVM will be launched, but connecting to GemFire must be done manually.
start locator (Available)
    Start a Locator.
start pulse (Available)
    Open a new window in the default Web browser with the URL for the Pulse
    application.
start server (Available)
    Start a GemFire Cache Server.

Use the Tab key to auto-complete a command or trigger possible completions.

Use the Tab key after entering a partial command to trigger auto-completion of the command or a list of possible command completions. For example, hitting Tab after typing hint displays all available topics:

gfsh>hint

Configuration           Data                    Debug-Utility
Disk Store              Function Execution      GFSH
GemFire                 Help                    JMX
Lifecycle               Locator                 Management-Monitoring
Manager                 Region                  Server
Statistics

Hitting tab after typing hint d displays the topics available that begin with ’d’:

gfsh>hint d

data            debug-Utility   disk Store

Auto-completion also supplies available parameters and arguments to commands; for example, hitting tab after typing start will list all the processes that can be started.

gfsh>start

start data-browser   start jconsole       start jvisualvm
start locator        start pulse          start server

Hitting tab after start locator will populate the --name parameter after the command. (If you do not specify a member name, gfsh will automatically pick a random name. This is useful for automation.)

Access command history with the Up arrow.

Access a command in your shell history by scrolling through previous commands with the Up arrow.

Delimit multi-line commands with a backslash.

When entering long commands, you can break the command line up by using the backslash character (’\’) as a delimiter. For example:

gfsh>create region --name=region1 \
--type=REPLICATE_PERSISTENT \
--cache-writer=org.apache.geode.examples.MyCacheWriter \
--group=Group1 --disk-store=DiskStore1

Enclose strings that contain spaces or commas with single or double quotes

When you execute gfsh commands in the gfsh command shell, enclose any strings that contain spaces or commas in single quotes. For example:

gfsh>start locator --name='locator 1'
start locator --name=locator1 --port=9009 --mcast-port=0\
 --J='-Dgemfire.remote-locators=192.0.2.0[9009],192.0.2.1[9009]'

When you execute multiple gfsh commands in a single line from the operating system shell, enclose the gfsh commands in double quotes. Within the double quotes, enclose any strings that contain spaces or commas with single quotes. For example:

$ gfsh -e "start locator --name='locator 1'" -e "start server --name=server1"