type=page
status=published
title=list-configs
next=list-connector-connection-pools.html
prev=list-components.html
~~~~~~

= list-configs

[[list-configs-1]][[GSRFM00156]][[list-configs]]

== list-configs

Lists named configurations

[[sthref1399]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-configs [--help]
[target]
----

[[sthref1400]]

=== Description

The `list—configs` subcommand lists named configurations in the
configuration of the domain administration server (DAS). The list can be
filtered by cluster, instance, or named configuration.

This subcommand is supported in remote mode only.

[[sthref1401]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.

[[sthref1402]]

=== Operands

target::
  Filters the list of configurations. Valid values are as follows:

  `domain`;;
    Lists all named configurations in the current domain.
  cluster-name;;
    Lists the named configuration that defines the configuration of
    instances in the specified cluster.
  instance-name;;
    Lists the named configuration that defines the configuration of the
    specified instance.
  configuration-name;;
    Lists the specified named configuration. Use this option to
    determine whether a named configuration exits.

[[sthref1403]]

=== Examples

[[GSRFM648]][[sthref1404]]

==== Example 1   Listing All Named Configurations in a Domain

This example lists all named configurations in the current domain.

[source]
----
asadmin> list-configs
server-config
default-config
pmdclust-config
pmdsharedconfig
pmdcpinst-config
ymlclust-config
il1-config
il2-config

Command list-configs executed successfully.
----

[[sthref1405]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref1406]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:copy-config.html#copy-config-1[`copy-config`(1)],
link:delete-config.html#delete-config-1[`delete-config`(1)]

link:configuration.html#configuration-5asc[`configuration`(5ASC)]


