dcecp(1m)
NAME
dcecp - Administrative interface for DCE management tasks
SYNOPSIS
dcecp [-s] [-local] [script_name | -c command ]
OPTIONS
-c commandA list containing one or more valid dcecp commands. For a description of the dcecp command format, see Administration Objects.
-sTurns off inheritance of the login context. The default is to inherit the current login context of the principal that invokes dcecp.
-localThe -local option specifies that the command should operate on the local dced object while the dced object is in a partial-service state.
ARGUMENTS
script_nameFilename of a user-defined script containing dcecp commands.
DESCRIPTION
The DCE control program, dcecp, is the primary DCE administration interface, providing local and remote access to routine DCE administrative functions from any DCE Version 1.1 and later platform. The DCE control program is built on a portable command language called the tool command language (Tcl). Tcl allows the use of variables, if statements, list processing functions, loop functions and many other features commonly found in command languages. The control program extends these features, providing a set of commands for manipulating specific DCE objects. The control program also includes task scripts to help administrators perform some routine DCE management functions. Refer to the OSF DCE Administration Guide Core Volume for information about the basic concepts and features of dcecp. All of Tcl is included in the dcecp language.
Invoking and Terminating dcecp
The DCE control program allows you to invoke dcecp commands in the following modes:
•Interactive mode
•Command-line mode
Interactive Mode
Activate interactive mode by entering the dcecp command without any arguments. At the dcecp prompt enter a dcecp or Tcl command; dcecp executes the command, displays the result, and is ready to accept another command.
% dcecp
dcecp> directory list /.: -directories
/.:/hosts /.:/subsys
dcecp>
Command-Line Mode
Activate command-line mode from the system prompt by using one of the following methods:
•Enter the dcecp command with a filename of a script containing dcecp commands (and/or other valid Tcl commands), as follows:
% dcecp myown.Tcl
•Enter the dcecp command with the -c option followed by a list containing one or more dcecp commands, as follows:
% dcecp -c directory create /.:/admin/printers
Enter multiple dcecp commands by separating them with a ; (semicolon) and enclosing the commands in "" (double quotes). Remember to escape shell metacharacters (for example by enclosing them in double quotes). Multiple commands must be on a single line, as follows:
% dcecp -c "directory create /.:/admin/printers;directory show /.:/admin/printers"
When you use the -c option, operation results return to the interpreter, not to the shell. If you enter multiple operations, the output of the last operation is returned to the shell. This can be overcome by using the following ugly, but serviceable workaround:
% dcecp -c "puts [dir help]; puts [principal help]"
Terminate an interactive dcecp session by using the exit and quit commands. Use the following command syntax:
exit n
quit n
Use the n argument to specify the exit value returned to the shell. The following example terminates a session and returns an exit value of 56 to the shell:
exit 56
By default, dcecp returns 0 (zero) on success and 1 if a command fails.
Startup Scripts
When you invoke dcecp, the following script files are executed in the order shown:
[info library]/init.tcl
Contains the standard Tcl initialization scripts with definitions for the unknown command and the auto_load facility.
$dcecp_library/init.dcecp
Contains the initialization scripts implementing the dcecp commands and tasks. The implementation sets the Tcl variable dcecp_library to dceshared/dcecp by default.
$HOME/.dcecprc
Contains user customizations.
Administration Objects
A dcecp command has the following syntax: object operation [argument] [-option [opt_arg]] ... where:
objectSpecifies the name of a dcecp administration object. Examples of administration objects are Cell Directory Service (CDS) directories, access control lists (ACLs), Distributed Time Service (DTS) servers, server control objects, and so on. Each administration object is briefly described below.
operationSpecifies the name of an action such as create, show, or remove, that is to be performed on an administration object. For complete descriptions of operations supported by each dcecp object, refer to individual object reference pages. Common operations are briefly described below.
argumentSpecifies the name of one or more specific objects to operate on. Most, but not all, dcecp objects take an argument. Refer to the individual reference pages for descriptions of the arguments supported by various objects.
-optionSpecifies a qualifier that controls the precise behavior of a dcecp command. Most, but not all, dcecp commands take options. Specify options by preceding the option name with a dash as in -replica. Some options take an argument, opt_arg, that can be a name or a value. The following command shows a -clearinghouse option and its argument, which is the name of a CDS clearinghouse:
directory create /.:/admin -clearinghouse /.:/boston_ch
The DCE control program supports the following dcecp administration objects. For complete descriptions of the administration objects, refer to the individual object reference pages.
accountManages an account in the DCE Security Service registry.
aclManages any DCE ACLs.
attrlistManipulates attribute lists in scripts.
audManages the audit daemon (auditd) on any DCE host.
audeventsDisplays the audit event classes on any DCE host.
audfilterManages audit event filters on any DCE host.
audtrailDisplays audit trail files on the local host.
cdsManages the CDS server daemon on any DCE host.
cdsaliasManages cell names known to CDS.
cdscacheManages the CDS clerk cache on any DCE host.
cdsclientManages the CDS client daemon on any DCE host.
cellPerforms cell-wide tasks.
cellaliasPerforms cell aliasing and connection tasks.
clearinghouseManages CDS clearinghouses on the local host.
clockManages the clock on any DCE host.
directoryManages directory entries in the CDS namespace.
dtsManages DTS on any host.
endpointDisplays remote endpoints, manages local endpoints.
groupManages DCE groups in the security service.
hostPerforms tasks involving a host in a DCE cell.
hostdataManages host specific information on any DCE host.
hostvarManages host-specific variables on the local DCE host.
keytabManages server key tables on any DCE host.
linkManages softlinks in CDS.
logManages routing for DCE serviceability messages.
nameManages CDS name translation.
objectManages object entries in CDS.
organizationManages DCE organizations in the security service.
principalManages DCE principals in the security service.
registryManages any DCE security replica and registry wide info.
rpcentryManages a server entry in CDS.
rpcgroupManages a group entry in CDS.
rpcprofileManages a profile entry in CDS.
secvalManages the security validation service on any DCE host.
serverManages DCE servers on any DCE host.
userPerforms tasks involving individual user information.
utcManipulates Universal Time Coordinated (UTC) timestamps.
uuidManipulates (generates or compares) Universal Unique Identifiers (UUIDs).
xattrschemaManages schemas for extended registry attributes (ERAs).
Common Operations
This section gives a description of operations that are common to more than one object. Some operations presented here are implemented in all objects, some in only a few, and some only for specific types of objects such as containers (for instance, CDS directories). The descriptions in the sections on individual objects may override some of the information presented here. Usually this is only in the form of an operation accepting more options, but other changes are possible.
addAdds an object to a container. It is implemented for all objects that represent containers. This operation returns an empty string on success. The argument is a list of names of containers. The required -member option is used to specify the name of the member to be added to the containers. It’s value is a list of members to be added. If lists are specified for both the -member option and as the argument, then each member name is added to each container. For example it is used to add a member to a remote procedure call (RPC) group, and is used to add an element to an RPC profile. This operation returns an empty string on success.
catalogReturns the names of all instances of an object. It usually takes no argument. In some cases, though, an argument specifying a scope, such as a cell name, is optional. For example, the principal catalog command returns a list of all principals in the registry. Only implemented by those objects for which this is possible. By default, full names are returned. Some objects will support a -simplename option which will return names in a shorter form (either relative or not fully qualified). The order of the returned list depends on the object.
createCreates a new instance of an object. Takes one argument which a list of names of instances to be created. This operation returns an empty string on success. Returns an error if the object already exists. For some objects this command takes a -attribute option or a set of attribute options to create attributes on the new object.
deleteDestroys an instance of the object. Takes one argument which a list of names of instances to be deleted. This operation returns an empty string on success. If the object does not exist, an error is returned.
helpReturns help information on the object as described in the Help section. Takes an argument which may be an operation supported by the object or the -verbose option to return more information.
listReturns a list of the names of all the members of a container. This operation returns names of members, never any other (such as, attribute) information about the members. It is implemented on all objects that represent containers. The argument is a list of names of containers to return the children of. The order of the returned list is dependent on the object. If more than one container name is given as an argument, all the member names are returned in one list.
modifyThis operation is used to modify attributes, policies, counters, or any other information in an object. This fact means that all attributes, policies, counters, etc. in any one object must have unique names. It will not be available to all objects. The argument is a list of names of objects to modify. All objects are modified in the same way. The specific modification is described by the use of one or more of the -add, -remove, or -change options. If more than one is used, then the whole modify operation is treated atomically in that either it all will work, or none of it will. The order of the options does not matter. Each option can be used only once per command invocation. If more than one attribute is to be added, the value of that option should be an attribute list. This operation returns an empty string on success.
-addUsed to add an attribute to an object or merely to add values to an existing attribute. The value of this option is an attribute list.
-removeUsed to remove an entire attribute or merely some values from an attribute. The value of this option is an attribute list.
-changeUsed to change one attribute value to another. The value of this option is an attribute list.
operationsReturns a list of the operations supported by the object. It takes no arguments, and always returns a Tcl list suitable for use in a foreach statement. The order of the elements is alphabetical order with the exception that help and operations are listed last. To return the elements fully sorted, use the following command:
lsort [object operations]
removeRemoves an object from a container. It is implemented for all objects that represent containers. The argument is a list of names of containers. The remove operation requires one option, -member, which is used to specify the name of the member to be removed from the container. The value is a list of names of members of the containers. If the value of this option and the argument to the command are both lists, then each listed member is removed from each specified container. If the members do not exist an error is returned. This operation returns an empty string on success.
renameThis operation changes the name of a specified object. The argument is a single name of an object to be renamed, that is, it cannot be a list. Takes a required -to option with a value of the new name. The value may not be a list. This operation returns an empty string on success.
showReturns information about an object instance. Objects can have various types of information such as attributes, counters, policies, etc. The show operation is used to return any of this information. Options are passed to the command to specify what information is to be returned. Most of the options used for this purpose are in the plural form such as -all, -attributes, -counters, and -members. Unlike the list operation which returns information about the members of a container, the show operation only looks at the named object instance. If it is a container, it does not return information about the members, only the container itself. This operation takes one argument which is a list of names of instances to be shown.
synchronizeTells the instance to synchronize with any replicas of itself. In CDS terminology this will perform a skulk on a directory, in DTS it will cause a server to synchronize. It is implemented for all objects that support replication. The argument is a list of instance names to synchronize. If more than one instance name is given then each instance synchronizes, there is no relationship such as synchronize with each other, as this doesn’t make sense for many objects. This operation returns an empty string on success.
Miscellaneous Commands
The DCE control program includes a set of commands you can use for performing miscellaneous operations.
dcecp_initInterp
Initializes a base Tcl interpreter with all the dcecp commands.
echoDisplays the supplied string as output.
errtextTakes a DCE status code as an argument and returns the text of the associated message as found in the message catalogs. The argument can be in decimal, octal (leading 0), or hexadecimal (leading 0x) notation.
loginCreates a new login context, which persists until the end of the dcecp session or until it is destroyed by logout. login also sets the _c convenience variable to the name of the cell logged into and the _u convenience variable to the name of the principal that issued the login command. Convenience variables are discussed in a separate section of this reference page. Login contexts are stacked. Takes an account name as an argument. The password is prompted for and not echoed to the screen. Also takes the -password option to enter a password.
logoutLogs you out of the current login context as established with a previous login command. Only contexts created with dcecp’s login can be logged out of. Trying to log out of an inherited context results in an error. Leaving dcecp will do a logout for all contexts created in the session.
quitExits from dcecp. A synonym of the Tcl built-in command exit.
resolveTakes a partial string binding and returns a fully bound string binding. Takes a required -interface option and an optional -object option with an interface identifier as an argument to provide enough information for the mapping to occur.
shellSpawns a command shell for the user. The value of the SHELL environment variable is used to obtain the name of the shell to spawn. When the command shell terminates, control is returned to dcecp. If called with arguments, they are passed to the shell and executed. Control is returned upon completion. Always returns an empty string, though an error exception is generated if the shell exits abnormally.
Command Processing
The DCE control program supports the Tcl built-in commands as well as its own commands. If a command name is unknown to dcecp, it is passed to the unknown procedure and dcecp evaluates it using the following algorithm:
•If the command is found in a dcecp script file, dcecp executes the command.
•If the command exists as an executable UNIX program, dcecp executes the command. Therefore, you can invoke any UNIX command from the dcecp prompt (for example, ls -l). Because you don’t leave dcecp, you don’t lose any context you have established.
•If you have invoked the command at the top level of the dcecp shell and the command requests C-shell-like history substitution (such as !!, !number or ^old^new), dcecp emulates the C shell’s history substitution.
•If you have invoked the command at the top level of the dcecp shell and the command is a unique abbreviation for another command, dcecp invokes the command.
Abbreviations
The dcecp command makes use of two mechanisms to allow all object names, operation names, and options to be abbreviated to the shortest unique string in interactive commands. The first mechanism relies on the unknown command whose behavior is described previously in the Command Processing section of this reference page. The second mechanism used for abbreviations is built into the individual dcecp commands themselves. This allows the operation name to be abbreviated to the shortest unique operation supported for an object, and the options to be abbreviated to the shortest unique string representing an option supported by an object and operation. For example, consider the following directory create command:
directory create /.:/admin/printers/ascii -replica -clearinghouse /.:/SFO_CH
In the abbreviated form, the same command can be entered as follows:
dir cre /.:/admin/printers/ascii -r -c /.:/SFO_CH
Although abbreviating commands is a good way to save keystrokes in typing interactive commands, abbreviations are not recommended for use in scripts. New procedures in scripts can cause abbreviations to become ambiguous. Furthermore, abbreviations aren’t always portable. When scripts move to other machines, some definitions may be left behind so scripts won’t work correctly. Always spell out complete names in scripts.
Syntax
The dcecp commands have a default word order which is object operation. This order facilitates adding new objects because new objects can simply be added along with their operations. You can configure dcecp to accept commands ordered as operation object by loading a script called verb-object.dcecp. Users who have access to the operation object order continue to have access to the object operation order. You can load the script for all users on a host by including the following line in the system’s init.dcecp file:
source verb-object.dcecp
You can configure operation object for individual users by including the line in that user’s .dcecprc file.
Attribute Lists
Many of the commands need to specify attributes to operate upon. For example, the modify operation allows attributes to be changed and the create operation often allows attributes to be created along with the object. In all cases, you can use an attribute list to specify the attributes and their values. This makes passing information from one command to another very easy. For example, an ACL copy operation could be written as follows:
# copy acl name1 to acl name2
# no error checking
proc acl_copy {name1 name2} {
acl replace $name2 -acl [acl show $name1]
}
Attribute Options
While attribute lists are useful for writing scripts, they are often not user friendly. For those objects that have a fixed list of attributes (for instance, principal and dts, but not object), wherever an attribute list is allowed, options for each attribute that are named the same as the attribute are allowed followed by their values. For example, the following are equivalent:
principal create melman -attribute {{quota 5} {uid 123}}
principal create melman -quota 5 -uid 123
Lists of Lists
The DCE control program interpreter relies on list structures as a way to parse command input and return command output. For instance, the -remove option in the following example uses a list to group the attribute and value parts of the option argument together. The example is a command that removes some ACLs from an object called /.:/foo, as follows:
acl modify /.:/foo -remove {user melman}
The argument to the -remove option is an ACL entry. The ACL entry happens to be a list where the first element describes the ACL type, in this case user, and the second is the key for which user, in this case melman. However, the -remove option may take a list of ACL entries, so the following is valid as well:
acl modify /.:/foo -remove {{user melman} {user salamone}}
Lists of one value that do not contain spaces, do not need braces. The string syntax of an ACL entry allows the type and key to be separated by a : (colon), so the following are valid:
acl modify /.:/foo -remove user:melman
acl modify /.:/foo -remove {user:melman user:salamone}
If there is only one ACL entry given, that is, the -remove option’s value has only one element (and that element does not contain spaces), then braces are not needed to delimit the list. The following are all valid, but all are examples with unnecessary braces:
acl modify /.:/foo -remove {{user melman}}
acl modify /.:/foo -remove {{{user melman}}}
acl modify /.:/foo -remove {user:melman}
acl modify /.:/foo -remove {{user:melman} {user:salamone}}
Convenience Variables
All dcecp commands will set several variables on execution. The variables will contain the name of the object operated on, the return value of the last command, the cell name of the last object operated on, and so on. You can substitute the value of these variables into the next command to save typing. Convenience variables behave just like other variables in dcecp. Thus you can trigger variable substitution by prepending a dollar sign ($) before the name of the variable. Alternatively, you can trigger substitution by using set. The DCE control program ensures that the convenience variables are set only by the program; it prevents users from changing these variables. The following variables are defined by dcecp:
_bHolds the name of the server bound to by the last command. This is actually a Tcl array where the indexes are used to identify the service. Currently there is only one defined index: sec. Refer to the variable as _b(sec). The value specifies the name of a server in whatever manner the service finds useful. This could be the name of an RPC server entry in the namespace, or a string binding, or the name of a cell. This variable cannot be set by the user.
_cHolds the cell name of the current principal. The login command sets the cell name (_c) and principal name (_u) convenience variables at login (see the login command). This variable cannot be set by the user.
_confThis variable alters the behavior of most commands that operate on a CDS object. It indicates the confidence you have in the local CDS daemon to fulfill requests. The legal values are low, medium, and high.
_eHolds the last DCE error code encountered. This variable has meaning only if dcecp is able to determine what the error code is. The value -l (negative one) is used when an actual error code is unavailable. This variable cannot be set by the user.
_hHolds the hostname the current user is operating on. This variable cannot be set by the user.
_localHolds a flag that indicates the mode in which the dcecp session is operating. This variable is set to true if the dcecp session was started with the -local option.
_nHolds a list of the names entered in the last command. These names are the names that the command operated on, typically entered as the third argument. Examples follow:
dcecp> dir list /.: -simplename
hosts subsys absolut_ch cell-profile fs lan-profile sec sec-v1
dcecp>
dcecp> echo $_n
/.:
dcecp>
dcecp> dir create {/.:/x /.:/y}
dcecp>
dcecp> echo $_n
/.:/x /.:/y
dcecp>
_oHolds the object used in the last operation. For example, if the last command was dir show /.:, then _o is directory. This variable cannot be set by the user.
_pHolds the parent of _n. If _n is a list, then this is a list of the same length, where each element is the parent of the corresponding element in _n. If _n has no parent, then the value of _p is the empty string. This variable cannot be set by the user. Examples follow:
dcecp> dir create {/.:/gumby /.:/pokey}
dcecp>
dcecp> echo $_p
/.: /.:
dcecp>
_rHolds the return value of the last executed command. This variable cannot be set by the user.
_sHolds the name of the server bound to for the last command. This is actually a Tcl array where the indexes are used to identify the service. The currently defined indexes are sec, cds, dts, and aud. The value specifies the name of a server in whatever manner the service finds useful. This could be the name of an RPC server entry in the namespace, or a string binding, or the name of a cell. Users can set this variable by issuing the set command. This lets users select which server is used. The values of this variable (array) are treated differently by each service. For example, the security service uses this variable to select the registry to bind to for the next command, and it is used as a default for the next registry operation. If bound to a read-only replica and an update is requested, dcecp will try to bind to the master registry to perform the change. CDS attempts to communicate only with the CDS server named by the variable. If the named CDS server cannot satisfy a request for any reason, the request fails. The auditing service and DTS uses its variable in a similar manner to the CDS server. To contact an audit daemon or DTS server on another host, set this variable to identify that server. For information about an object’s use of this variable, see the object’s reference page or use the object’s help -verbose operation.
_uHolds the current principal name. The login command sets the cell name (_c) and principal name (_u) convenience variables at login (see the login command). This variable cannot be set by the user.
Error Handling
All dcecp operations return either a list of some information or an empty string on success. If an error occurs, dcecp returns an error message. The DCE control program also provides a catch command to help scripts catch errors and invoke error handlers. The DCE control program provides two global variables that store error information returned from commands. The errorInfo variable contains the stack-trace of the error messages. When errors occur dcecp commands return one line error messages by default. If the variable dcecp_verbose_errors is set to 1, then a stack trace as it would appear in errorInfo is output as well. When a dcecp command argument is a list of objects, the command operates on multiple objects. These operations are usually performed iteratively. If an error occurs, the command aborts at the time of error, producing an exception. Some operations will have finished and others will not have. This operations are always performed in the order listed, and the error message should make it clear on which object the command failed.
Help
The DCE control program provides several kinds of help. All returned help strings are obtained from appropriate message catalogs. To see which operations an object supports, enter an object operations command. An example follows:
dcecp> principal operations
catalog create delete modify rename show help operations
dcecp>
This provides simple help similar to usage messages found on many systems. Users unsure of an operation name or if an operation is supported by an object can use this command to find the answer. The output is a dcecp list that could be used by other dcecp commands. To see other information about an object, use an object’s help operation. All dcecp objects have a help operation that offers three kinds of information.
•View brief information about an object’s operations by using help without arguments or options. Operations are listed in alphabetical order, with the operations and help operations listed last because all objects support these operation. An example is as follows:
dcecp> principal help
catalog Returns all the names of principals in the registry.
create Creates a DCE principal.
delete Deletes a principal from the registry.
modify Changes the information about a principal.
rename Renames the specified principal.
show Returns the attributes of a principal.
help Prints a summary of command-line options.
operations Returns a list of the valid operations for this command.
dcecp>
•View brief information about options supported by an operation by using help with one argument—the name of the operation. This operation returns attribute options in alphabetic order. If no options are supported, an empty string is returned. An example follows:
dcecp> principal help create
-alias Add principal named as an alias of specified uid.
-attribute Attribute list to be assigned to the new principal.
-fullname Fullname of the new principal.
-quota Quota of the new principal.
-uid User Identifier of the new principal.
-uuid Orphaned UUID to be adopted by the specified principal.
dcecp>
•View a short description of a dcecp object by using the help operation with the -verbose option. This operation returns text explaining what the object represents and how to use it. An example follows:
dcecp> principal help -verbose
This object allows manipulation of principal information stored
in the DCE registry. The argument is a list of either relative or
fully-qualified principal names. Specify fixed attributes using
attribute options or an attribute list. Specify any extended attributes
using an attribute list. Principal operations connect to a registry that
can service the request. Specify a particular registry by setting the
_s(sec) convenience variable to be a cell-relative or global replica
name, or the binding of the host where the replica exists. The
completed operation sets the _b(sec) convenience variable to the name
of the registry contacted.
dcecp>
Utility Library
The file opt/dcelocal/dcecp/utility.dcp contains Tcl functions useful for DCE administration. The functions, which can vary from release to release, are fully commented to document their use.
Reference Pages
To display a reference page for a dcecp administration object, use the man command and preface the object name with dcecp_. For example to display the registry reference page, enter:
man dcecp_registry
Users with [POSIX.2] systems can view dcecp administration object reference pages without exiting dcecp.
Command-Line Editing
You can edit a line before it is sent to dcecp by typing certain control characters and escape sequences. To enter a control character, hold down <Control> while pressing the appropriate character key. (Control characters are indicated in DCE documentation by the notation <Ctrl-x>, where x is the second key.) To enter an escape sequence, press <Escape> followed by one or more character keys. (Escape sequences are indicated in DCE documentation by the notation <ESC x>, where x is the second key.) Escape sequences are case-sensitive; control characters are not. You can enter an editing command anywhere on a line. In addition, you can enter <Return> anywhere on the line. You can specify a number [n] as a repeat count. To enter a repeat count, press <Escape>, a number, and the command you want to execute. For example, <ESC 4><Ctrl-d> deletes the next four characters on a line. Use the following control characters and escape sequences for line editing:
Control SequenceAction Performed
<Ctrl-A>Move to the beginning of the line
<Ctrl-B>Move left (backward) [n]
<Ctrl-D>Delete the next character [n]
<Ctrl-E>Move to the end of the line
<Ctrl-F>Move right (forward) [n]
<Ctrl-G>Ring the bell
<Ctrl-H>Delete the character before the cursor [n]
<Ctrl-I>Complete the filename (<Tab>)
<Ctrl-J>Done with the line (<Return>)
<Ctrl-K>Kill to the end of the line (or column [n]
<Ctrl-L>Redisplay the line
<Ctrl-M>Done with the line (alternate <Return>)
<Ctrl-N>Get the next line from history [n]
<Ctrl-P>Get the previous line from history [n]
<Ctrl-R>Search backward (or forward if [n]) through history for the text; start the line if the text begins with an up arrow
<Ctrl-T>Transpose the characters
<Ctrl-V>Insert the next character even if it is an edit command
<Ctrl-W>Wipe to the mark
<Ctrl-X><Ctrl-X>Exchange the current location and mark
<Ctrl-Y>Yank back the last killed test
<Ctrl-[>Start an escape sequence (<Escape>)
<Ctrl-]>Move forward to the next character c
<Ctrl-?>Delete the character before the cursor [n]
Escape SequenceAction Performed
<Escape><Ctrl-H>
Delete the previous word (<Backspace>) [n]
<Escape><Delete>Delete the previous word (<Delete>) [n]
<Escape><Space>Set the mark (<Space>); refer to the <Ctrl-X><Ctrl-X> and <Ctrl-Y> control characters in the previous table
<ESC .>Get the last (or [n]th) word from the previous line
<ESC ?>Show the possible completions
<ESC <>Move to the start of history
<ESC >>Move to the end of history
<ESC b>Move backward one word [n]
<ESC d>Delete the word under the cursor [n]
<ESC f>Move forward one word [n]
<ESC l>Make the word lowercase [n]
<ESC u>Make the word uppercase [n]
<ESC y>Yank back the last killed text
<ESC w>Make area up to mark yankable
<ESC nn>Set repeat count to the number nn
The DCE control program also supports filename completion. For example, suppose the root directory has the following files in it: vmunix, core, vmunix.old. If you type rm /v and then press <Tab>. dcecp will finish off as much of the name as possible by adding munix. If the name is not unique, the terminal alarm (beep) will sound. If you enter <ESC ?>, dcecp will display the two possible complete filenames: vmunix and vmunix.old. If you respond by entering a . (period) and by entering <Tab>, dcecp completes the filename for you.
Command History and Command-Line Recall
The DCE control program includes a history facility that stores previously entered commands. View the stored commands using the history command. By default, the history facility stores the 20 most recent commands but you can use a history keep command to change this as in the following:
dcecp> history keep 50
dcecp>
Each stored command is numbered so you can recall it by using a ! (exclamation point) followed by the event number, as follows:
dcecp> !7
[execution of event 7]
dcecp>
Recall a specific command using an ! followed by the first unique characters of a previously entered command, as follows:
dcecp> !dir
[execution of last event beginning with dir]
dcecp>
You can also recall and revise the most recent command using the ^old^new syntax familiar to UNIX users, as follows:
dcecp> directory vreate /.:/admin/printers
[error message]
dcecp>
dcecp> ^vreate^create
[command output]
dcecp>
EXAMPLES
Invocations
The following examples show some ways to issue dcecp commands:
1.Invoke dcecp for interactive use:
% dcecp
dcecp>
2.Invoke dcecp for a single command:
% dcecp -c clock show
1994-04-21-19:12:42.203+00:00I-----
%
3.Invoke dcecp and run a script:
% dcecp get_users.Tcl
%
Simple Object Commands
dcecp> acl show -ic /.:
{unauthenticated r--t---}
{group subsys/dce/cds-admin rwdtcia}
{group subsys/dce/cds-server rwdtcia}
{any_other r--t---}
dcecp>
% dcecp -c directory show /.:/subsys
{RPC_ClassVersion {01 00}}
{CDS_CTS 1995-10-11-14:06:47.884826100/08-00-09-85-b5-a6}
{CDS_UTS 1995-10-23-03:06:43.209673100/08-00-09-85-b5-a6}
{CDS_ObjectUUID 0c27c0ac-03d6-11cf-ad88-08000985b5a6}
{CDS_Replicas
{{CH_UUID 03ccab5c-03d6-11cf-ad88-08000985b5a6}
{CH_Name /.../gumby1/blech_ch}
{Replica_Type Master}
{Tower {ncadg_ip_udp 15.22.50.213}}
{Tower {ncacn_ip_tcp 15.22.50.213}}}}
{CDS_AllUpTo 1995-10-23-13:06:43.560848100/08-00-09-85-b5-a6}
{CDS_Convergence medium}
{CDS_ParentPointer
{{Parent_UUID 044a2a14-03d6-11cf-ad88-08000985b5a6}
{Timeout
{expiration 1994-04-19-16:39:58.049}
{extension +1-00:00:00.000I0.000}}
{myname /.../brain_cell.osf.org/subsys}}
{CDS_DirectoryVersion 3.0}
{CDS_ReplicaState on}
{CDS_ReplicaType Master}
{CDS_LastSkulk 1995-10-23-13:06:43.560848100/08-00-09-85-b5-a6}
{CDS_LastUpdate 1995-10-23-03:06:43.209673100/08-00-09-85-b5-a6}
{CDS_Epoch 0c3512fc-03d6-11cf-ad88-08000985b5a6}
{CDS_ReplicaVersion 3.0}
%
The foreach Loop
dcecp> foreach i [group list temps] {
account modify $i temps research -expdate 6/30/95}
Hewlett-Packard Company — OSF DCE 1.1/HP DCE 1.5