BladeLogic Network Shell Command Reference

Version 7.4.3

Property of BladeLogic, Inc. Strictly confidential and proprietary

© 2008 BladeLogic, Inc. All rights reserved. This product or document is protected by copyright and distributed under licenses restricting its use, reproduction, distribution and decompilation. No part of this product or document may be reproduced in any form by any means without prior written authorization of BladeLogic, Inc. BladeLogic, Enabling Continuous Configuration, and Network Shell are registered trademarks or trademarks of BladeLogic, Inc., in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. BladeLogic reserves the right to alter product offerings and specifications at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. Restricted Rights Legend: Use, duplication, or disclosure by the government is subject to restrictions asset forth in subdivision (c)(1)(ii) of the Rights in Technical Data and Computer Software Clause at FAR 52.227-7013. BladeLogic, Inc. 10 Maguire Road, Building 3 Lexington, MA 02140 www.bladelogic.com

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

Introduction

The Network Shell (NSH) commands are file manipulation utilities designed to look and feel like their UNIX counterparts. The difference is that the NSH commands are able to access and manipulate both local and remote files without using NFS/RFS or the .rhost remote authentication mechanisms. Using the NSH commands, you can manage your network of UNIX and Windows machines as one large host. You can perform system administrative functions on multiple remote hosts from a single machine. Instead of having to rlogin or telnet to a host to see what is going is on, or to make a quick change, you can just use the NSH commands to access files on local and remote hosts directly from the command line. You can use the NSH commands to write new scripts, or modify existing scripts and make them distributed. The Network Shell Command Reference provides both summarized and complete descriptions of all commands and utilities available in Network Shell. Use this document as follows:

• •

To view summarized descriptions of commands and utilities, see the alphabetized table in Summarized Descriptions of Commands. To view complete descriptions of commands and utilities, see Complete Descriptions of Commands.

Authenticating with Network Shell
When you use Network Shell in conjunction with a Network Shell Proxy Server, you must first authenticate. Once you successfully authenticate, you are issued a session credential, which grants you access to the proxy server. If you are using Network Shell interactively, you can either obtain a session credential using Configuration Manager or Provisioning Manager or you can use the blcred command line utility. If you are running Network Shell in batch mode, you must use blcred to obtain a session credential. For more information about blcred, refer to the blcred man page or see the BladeLogic Administration Guide, which describes typical scenarios for using the utility.

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

Introduction

4

ZSH Support
Network Shell supports both 4_0_4 and 4_3_4 versions of ZSH. By default, Network Shell calls the 4_0_4 version of ZSH. If you want to access the newer version of ZSH, do the following:
Procedure

1 2

Cd to <BladeLogic install directory>\bin. By default, this is C:\Program Files\BladeLogic\OM\bin on Windows and /usr/nsh/bin on UNIX. Do one of the following:

On UNIX, enter the following commands:
mv nsh nsh-4_0_4 ln –s zsh-4_3_4 nsh

On Windows, do the following:
a b

Rename the existing "nsh.exe" executable to "nsh-4_0_4.exe". Copy the "zsh-4_3_4.exe" executable to "nsh.exe".

Summarized Descriptions of Commands
The following table provides a brief description of all Network Shell commands and utilities.
Network Shell Command Description

agentctl agentinfo autolic awk bl_gen_ssl bl_srp_agent blcred blexpr blkeylogman bllogman blquery

Controls the functions of an RSCD agent. Provides information about an RSCD agent. Licenses RSCD agents using a web service. Scans files for specified patterns. Creates an X.509 certificate. Activates a user information cache on UNIX.

Manages authentication profiles, session credentials, and trusted certificates.
Creates and evaluates an expression based on input in the form of arguments. Remotely manages keystroke logfiles on a machine running an RSCD agent. Remotely manages live RSCD agent logfiles. Extends the functionality of blexpr by providing functions that are able to query the asset types supported by the BladeLogic environment.

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

Introduction

5

Network Shell Command

Description

bzip2

Utility for compressing files using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding. Compression is generally considerably better than that achieved by more conventional compressors. Concatenates and prints files. Sets or changes the agent password on one or more Windows servers that have the BladeLogicRSCD agent running. Changes group (and user) ownership of files. Changes the mode (protection attributes) of a file. Changes user (and group) ownerships of files. Changes the current role. Display file checksums and block counts. Compares the content of two files checking to see if they are identical. Removes columns from a file. Selects or rejects lines common to two files. Compresses data. Copies files. Converts data in a comma-separated value format to XML format. Selects portions of each line of a file. Converts and copies a file. Compares the differences between files and directories. Executes a remote df command. Synchronizes two directories. Displays disk usage information for files. Echoes arguments. Expands tabs to spaces. Extracts specified fields from a data row. Determines file type. Walks a file hierarchy. Filters the contents of files to limit line length. Prints fully qualified domain name of the current or specified host. Extracts files from a ZIP archive in a pipe.

cat chapw chgrp chmod chown chrole cksum cmp colrm comm compress cp csv2xml cut dd diff df dsync du echo expand fields file find fold fdqn funzip

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

Introduction

6

Network Shell Command

Description

getlic grep head hexdump hgrep hostname join lam less lesskey link ln ls man md5sum mkdir mkfifo mknod mv ncp ncpu ndf ndircmp ndsync nexec nlogin nmem nnet nohup

Gets remote license data from RSCD agents. Searches files and selects lines matching specified patterns. Displays the first few lines of a file. Performs an ASCII, decimal, hexadecimal, or octal dump. Highlights the results of a grep. Prints the name of the current host. Provides a relational database operator. Outputs files side by side. Displays files on a CRT. Specifies key bindings that are used by the less command. Creates a link to a file. Creates a link to a file. Lists the contents of a directory. Get man pages from a remote host. Calculate the MD5 checksum of files. Create directories. Creates a named pipe. Creates a special file. Moves or renames files. Copies/synchronizes multiple sources to multiple destinations. Displays CPU information. View usage statistics from one or more hosts. Compares contents of multiple directories. Copies/synchronizes multiple sources to multiple destinations. Provides an interface for running remote commands. Log in to a remote host. View memory and swap statistics from one or more hosts. Displays network adaptor configuration data for one or more servers. Invokes a command immune to hangups.

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

Introduction

7

Network Shell Command

Description

nover nprocsum nps nsh NSH-Perl nshopt nshpath nstats ntop nukecert nunzip order paste pax pkgadd pr prune putcert putlic redi renice rm rmdir rscd rsu runcmd runscript

Displays a system overview in a standardized format independent of the server’s operating system. Displays process summary from one or more hosts. Displays process information from one or more hosts. Outlines the differences between Network Shell and other shells. Describes the use of the Network Shell Perl module. Tests different network write buffer sizes. Shows the path where an nsh executable resides. Displays a system overview in a standardized format independent of the server’s operating system. Provides a collection of commands used to view information and statistics for one or more servers. Removes certificates from servers. Decompresses or compresses files. Sorts a list of strings (or lines) in a specified order. Merges corresponding or subsequent lines of files. Reads and writes file archives and copies directory hierarchies. Provides a Network Shell wrapper to the pkgadd command. Print files. Prunes log files to a specified size. Pushes a certificate generated by bl_gen_ssl to one or more servers. Uses raw licensing data to license remote RSCD agents. Used in conjunction with getlic. Redirects input to a file. Alters the priority of running processes. Removes a file. Removes an empty directory. Describes the Remote System Call Daemon (the RSCD agent). Runs an NSH command with alternate privileges. Runs a Network Shell command on one or more hosts. Runs a Network Shell script on one or more hosts.

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

Introduction

8

Network Shell Command

Description

scriptutil sdiff secadmin sed sort split strings su tail tar tee test touch tr uname uncompress uncp unexpand uniq unlink unzip unzipsfx uuencode uudecode version vi vsh vshview vtree

Copies and executes scripts on remote servers. Compares the differences between files and directories side-by-side. Defines encryption security when modifying the secure file. Provides a stream editor. Sorts or merges text files. Splits a file into pieces. Finds printable strings in a file. Substitutes a user identity. Outputs the last part of files. Reads and writes file archives and copies directory hierarchies. Copies standard input to standard output, making copies of the input. Tests the value of an expression. Changes the last update and modification times of a file. Translates or deletes characters. Prints the operating system name. Expands compressed data. Uncopies files that were backed up during a cp or dsync. Replaces spaces with tabs (see also expand). Reports or filters out repeated lines in a file. Unlinks a file and/or directory. Lists, tests, and extracts compressed files in a ZIP archive. Provides a self-extracting stub for prepending to ZIP archives. Encodes a binary file. Decodes a binary file. Tells what version of BladeLogic software is installed on a server. Provides a text editor. Starts a shell and captures input and output. Views the log files created by vsh. Shows the directory structure of a file system.

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

Introduction

9

Network Shell Command

Description

wc zcat zip zipcloak zipgrep zipinfo zipnote zipsplit zshall

Counts the number of lines, words, and/or characters in a file. Expands compressed data. (zcat is an alias for uncompress.) Packages and compresses (archives) files. Packages and compresses (archives) files. Searches files in an archive for lines matching a pattern. Lists detailed information about an archive. Packages and compresses (archives) files. Packages and compresses (archives) files. Provides man pages for Network Shell’s preferred command interpreter, the Z shell.

Complete Descriptions of Commands
The following pages provide complete documentation for all commands and utilities available in Network Shell other than the BladeLogic configuration files. To view documentation for a particular command, use Adobe Acrobat® to click on the bookmark for that command. When viewed in Acrobat, bookmarks are listed alphabetically on the left.

Property of BladeLogic, Inc. Strictly confidential and proprietary

Network Shell Command Reference

agentctl(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

agentctl(1)

NAME
agentctl − Control the functions of an RSCD agent

SYNOPSIS
agentctl [-b] [-f] [-q] [-r] [-v] \ list | start | stop | kill | restart | exec cmd [args]

DESCRIPTION
The agentctl command lets you control the running of the RSCD agent. This command is part of the agent distribution and controls only the agent on the local machine. You cannot control remote agents with this command. (Note that you can use the nexec command to remotely control the server agent.) The following actions are supported: list start List the current agent processes that are running. This list uses a style similar to the UNIX ps command. Start the agent on the local server. If the agent is already running, then a warning message is output and the operation is aborted unless you specified the -f or -r options. On UNIX systems, you must have root privileges to use this command. Otherwise the agent will not start. On Windows systems the BladeLogic RSCD Agent service is started. stop Stop all RSCD agent processes on the local machine. If no agent processes are running, a corresponding warning message is output. On UNIX systems, when a sub-agent starts, it creates a new process group. When you issue the stop command, a SIGHUP (hangup) is first sent to all processes in the respective process groups, followed by a SIGINT (interrupt) one second later, followed by a SIGKILL (-9) one second later again. This hopes to allow processes to gently exit before they are forcefully terminated. On Windows systems, the BladeLogic RSCD Agent service is stopped. kill The option is similar to the stop command, except that on UNIX systems it does not try to gently terminate the processes, but rather just sends the SIGKILL (-9) to each respective process group. This option is recommended only when you need to halt immediately. This option is a combination of doing a stop followed by a start. This is not just a convenience command -- the restart command also lets you restart an agent remotely, using the nexec command, as described below. Once you issue a stop command, a remote start is no longer possible, because the agent is no longer running to service the nexec command. However, the restart command has been specifically designed to survive the agent going down while restart is still running. restart accomplishes this by changing its own process group ID, which allows it to run independently of the agent. To use this functionality, invoke restart with the -b option. For example, to remotely restart an agent, use the following syntax: nexec hostname agentctl -b restart The agentctl command attempts to automatically determine if its parent process is an agent. If it determines that its parent process is an agent, it automatically turns on the -b option.

restart

NSH

1

agentctl(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

agentctl(1)

exec

This option is similar to the restart command, but with the added ability to execute a given command between the stop and the start. When performing a restart create a new sub-process with a separate process group ID to do the actual work and just exit. This operation is necessary to be able to remotely restart an agent, because stopping an agent will also stop all sub-processes of the same process group ID. agentctl will attempt to automatically determine if its parent process is an agent. If it determines that its parent process is an agent, it automatically turns on the -b option.

OPTIONS
-b

-f

When starting an agent, either through the start, restart, or exec command, the default is not to start the agent if agentctl detects than an agent is already running. With this option, agentctl will always try to start the agent. Quiet mode. With this option, agentctl does not output warning messages. stdin, stdout, and stderr are all redirected from/to /dev/null (UNIX) or nul (Windows), so that no messages are displayed when the agent is started. Pass the -r option to the agent (UNIX only). The agent -r option tells the agent to retry (approximately every 10 seconds) listening on the effective TCP port, if the port is already being listened on. Verbose option. With this option, agentctl generates more output to let you know what the program is doing.

-q

-r

-v

EXAMPLES
sol8dev# agentctl list HOSTNAME USER PID CPU MEM VSIZE RSS PRI START TIME COMMAND sol8dev root 6086 0.0 0.8 4520 1840 0 14:45:15 0:00 rscd sol8dev root 6085 0.0 1.2 4656 2968 0 14:45:15 0:00 rscd sol8dev# agentctl -v stop Stopping pid 6086 ... Stopping pid 6085 ... Stopping pid 8488 ... sol8dev# agentctl restart agentctl: Warning - RSCD agent currently not running rscd - Copyright (C) 1996-2003, BladeLogic Inc. sol8dev# nexec winhost agentctl -b restart

EXIT VALUES
agentctl exits with a value of 0 if the requested operation was fulfilled without any problems or issues. Otherwise it exits with a non zero value.

ORIGIN
agentctl was written by Thomas Kraus

SEE ALSO
rscd(1).

NSH

2

If you need CPU counts which account for hyperthreading.. Put a space between each host name. List one host per line. -f filename A flat file containing the names or I. EXAMPLE Display information about the current remote host.0.160 NSH 1 . SYNOPSIS agentinfo [-?] [-c] [-H] [-f file] [hostname . nsh% cd //linuxhost/ linuxhost% agentinfo Agent Release : 6.agentinfo(1) Property of BladeLogic.. agentinfo outputs the information in the following manner: Agent Release : Hostname : Operating System: User Permissions: Host ID : # of Processors : License Status : 6. agentinfo displays a message to that effect.P. addresses of the hosts for which you want information. addresses of the hosts for which you want information. You can also specify the names or I. You can turn off the header line with the -H option. Do not output a header.2-2 User Permissions: 4507/51 (tmk/man) Host ID : 44434057 # of Processors : 1 License Status : Licensed for NSH. by design. the number of processors reported by agentinfo does not consider hyperthreading. Put a space between each host name.3. agentinfo outputs data about the current remote host.P. nsh% agentinfo solarishost windowshost solarishost: Agent Release : 6.3.3.P.4. hostname The names or I. Tells agentinfo to output the data in a CSV (comma separated value) format. Configuration Manager Display information about multiple hosts.8 4507/51 (tmk/sw) 80F8EC76 1 Expires Mon May 12 14:58:38 2005 Note that. OPTIONS -? -c -H Displays a general usage message.0.] DESCRIPTION The agentinfo command gives an overview of generally important information about a remote agent. Inc. addresses of the hosts for which you want information.0. If the current directory is on the local host. With no arguments. Strictly confidential and proprietary agentinfo(1) NAME agentinfo − Output information about remote RSCD agents. the CSV file includes a header line. By default. use either the ncpu or nover commands.160 Hostname : linuxhost Operating System: Linux 2.160 solarishost SunOS 5.

SEE ALSO ncpu (1).160 windowshost WindowsNT 5. Configuration Manager ORIGIN The agentinfo utility was written by Thomas Kraus.agentinfo(1) Property of BladeLogic.8 4507/51 (tmk/sw) 80F8EC76 1 Expires Mon May 12 14:58:38 2005 6. Inc.3.0.0 SYSTEM F454127F 1 Licensed for NSH. Strictly confidential and proprietary agentinfo(1) Hostname : Operating System: User Permissions: Host ID : # of Processors : License Status : windowshost: Agent Release : Hostname : Operating System: User Permissions: Host ID : # of Processors : License Status : solarishost SunOS 5. version(1) NSH 2 . nover (1).

License hosts that currently have an expired evaluation license.. In most cases. -c <count> The number of CPUs in the license request. Display license information for hosts that currently have a valid permanent license. regardless of their license status. autolic processes all the hosts you specify. and then download the generated license. Inc. hostn List of hosts for which you want to retrieve license information. The autolic command combines these three steps into a single non-interactive step.. License hosts that are currently un-licensed. List one host per line. You can specify more than one option. Strictly confidential and proprietary autolic(1) NAME autolic − License RSCD agents via web service SYNOPSIS autolic [-luexvV] [-f file] [-c count] user password [host1 . upload the license file created by the getlic command. do not use this option. OPTIONS The following four options allow you to select a subset of hosts based on their current license status. If you do not include any of these four options. hostn] autolic [-proxyHost <host>] [-proxyPort <port>] [-proxyUser <user>] [-proxyPass <pass>] DESCRIPTION The autolic command lets you license RSCD agents in a single step via the BladeLogic licensing web service. License hosts that currently have a valid evaluation (timed) license.. host1 . Other options include: -f filename Instead of listing your hosts one at a time on the command line as arguments. you can use this option to point to a file containing a list of hosts for which you want license information. -v -V Verbose output detailing individual steps.. Apply the licenses with the putlic command.dat file. -l -u -e -x user password Your registered password for the above user on the BladeLogic support website. Previously the licensing of an agent consisted of three steps: 1 2 3 Run the getlic command to gather data required for licensing.autolic(1) Property of BladeLogic. -proxyHost host Hostname of the proxy server -proxyPort port Port to connect to on the proxy server -proxyUser user User to connect to the proxy server as -proxyPass pass Password to use to connect to the proxy server NSH 1 . Your registered username on the BladeLogic support website. Debug output. Login to the BladeLogic support website.

Running the following command will Add/Modify the entries in autolic. putlic(NSH). If you are going through a non-authenticating proxy. the host from which you launch autolic must have Internet access through port 80.conf: host $ autolic -proxyHost proxy.com -proxyPort \ 8080 -proxyUser username -proxyPass password # # Proxy information # proxyhost=proxy. Instead. If Internet access is not available or if port 80 is blocked (for example.autolic(1) Property of BladeLogic. NSH 2 . ORIGIN autolic was written by Thomas Kraus SEE ALSO getlic(NSH).conf (from the NSH install directory). by a firewall).mycompany. based on the your current customer/prospect status. Inc.mycompany. For autolic to function properly. CAVEATS You cannot select the license type (evaluation or permanent). Strictly confidential and proprietary autolic(1) USAGE host $ autolic -u username bombay : Licensed for madras : Licensed for bagalore : Licensed for password bombay madras bagalore NSH/CM NSH/CM NSH/CM PROXY If you need to go through a proxy. the BladeLogic licensing server automatically determines the license type.com proxyport=8080 proxyuser=username proxypassword=password Adjust values as required. then use the getlic and putlic commands described above to license your agents. you must update the autolic configuration file called share/autolic. do not set the proxyuser and proxypassword entries. agentinfo(NSH).

Print the version number of awk to standard output and exit. Set debug level to n. With each pattern there can be an associated action that will be performed when a line of a file matches the pattern. -safe Disable file output (print >. a logical AND (‘&&’). In order to set the field separator to a single blank. If a field separator of ‘t’ is specified. awk treats it as if ‘’ had been specified and uses <TAB> as the field separator.. or after the closing parenthesis of an ‘if ’.. and is executed at the time it would have been opened if it were a filename. Each line is matched against the pattern portion of every patternaction statement. the associated action is performed for each matched pattern.. This is convenient when working with multi-line records. or 1 if n is not specified. use the -F option with a value of ‘[t]’. Pattern-action statements are separated by newlines or semicolons. or by the regular expression FS. use the -F option with a value of ‘[ ]’.. system) and access to the environment (ENVIRON. print >>). If RS is null. In order to use a literal ‘t’ as the field separator. This is a first (and not very reliable) approximation to a ‘‘safe’’ version of .. a backslash (‘´) can be used to escape a newline between tokens. process creation (cmd | getline. Inc. -f filename Read program code from the specified file filename instead of from the command line. A value greater than 1 causes awk to dump core on fatal errors. or ‘while’ statement. the input line is split into one field per character. any number of blanks separate fields. A pattern-action statement has the form pattern { action } A missing { action } means print the line. A statement can be one of the following: if (expression) statement [else statement] while (expression) statement for (expression. print |. -V -v var=value Assign value to variable var before prog is executed. Normally. ‘for’.. after the ‘do’ or ‘else’ keywords.. Define the input field separator to be the regular expression fs. an open brace (‘()’). and newlines are used as field separators (in addition to the value of FS). not a filename. Any file of the form var=value is treated as an assignment. see the section on variables below). Newlines are permitted after a terminating statement or following a comma (‘. any number of -v options may be present. a logical OR (‘||’). then any number of blank lines are used as the record separator. An action is a sequence of statements. The options are as follows: -d[n] -F fs Debug mode. . expression) statement for (var in array) statement NSH 1 . An input line is normally made up of fields separated by whitespace. expression. The fields are denoted $1. Additionally. a missing pattern always matches.pattern-directed scanning and processing language SYNOPSIS awk [-safe] [-V] [-d[n]] [-F fs] [-v var=value] [prog | -f progfile] file . $2. If FS is null. nawk . while $0 refers to the entire line.’). The file name ‘-’ means the standard input.cat(1) Property of BladeLogic. or by the value of RS. Strictly confidential and proprietary cat(1) NAME awk . DESCRIPTION Awk scans each input file for lines that match any of a set of patterns specified literally in prog or in one or more files specified as -f progfile. The input is normally made up of input lines (records) separated by newlines.

The operators ! ++ -. Regular expressions may also occur in relational expressions. non-null members are taken as filenames.. and are built using the operators + * / % ˆ (exponentiation). A relational expression is one of the following: expression matchop regular-expression expression relop expression expression in array-name (expr. BEGIN and END do not combine with other patterns. and a matchop is either ˜ (matches) or !˜ (does not match). assignable. except in the position of an isolated regular expression in a pattern. String constants are quoted "".+= -= *= /= %= ˆ= > >= < <= == != ?: are also available in expressions.k] are permitted. or a Boolean combination of these.. A conditional is an arithmetic expression.]} expression # commonly var = expression print [expression-list][>expression] printf format [. Variables are initialized to the null string. using the operators ˜ and !˜. Argument array. the action is performed for all lines from an occurrence of the first pattern through an occurrence of the second. this allows for a form of associative memory. file and cmd may be literal names or parenthesized expressions. any string (constant or variable) may be used as a regular expression. and concatenation (indicated by whitespace).j. expression-list][>expression] return [expression] next # skip remaining patterns on this input line nextfile # skip rest of this file. start delete array[expression]# delete an array element delete array # delete all elements of array exit [expression]# exit immediately. An empty expression-list stands for $0. Patterns are arbitrary Boolean combinations (with ! || &&) of regular expressions and relational expressions. separated by the value of SUBSEP (see the section on variables below)). /re/ is a constant regular expression. expr. and terminated by the output record separator. Isolated regular expressions in a pattern apply to the entire line. Expressions take on string or numeric values as appropriate.. A pattern may consist of two patterns separated by a comma. not necessarily numeric. Inc. Array subscripts may be any string. Regular expressions are as in egrep(1). The special patterns BEGIN and END may be used to capture control before the first input line is read and after the last.) inarray-name where a relop is any of the six relational operators in C. separated by the current output field separator.. newlines or right braces. The print statement prints its arguments on the standard output (or on a file if >file or >>file is present or on a pipe if | cmd is present). assignable. identical string values in different statements denote the same open file. array elements (denoted x[i]) or fields. Strictly confidential and proprietary do statement while (expression) break continue { [statement . a relational expression.cat(1) Property of BladeLogic. the constituents are concatenated. . with the usual C escapes recognized within (see printf(1) for a complete list of these). in this case. The printf statement formats its expression list according to the format (see printf(3)).. Variables may be scalars.. Multiple subscripts such as [i. NSH 2 . status is expression cat(1) Statements are terminated by semicolons. open next. Variable names with special meanings: ARGC ARGV Argument count..

Return the square root of x. Return the sine of x. Input record separator (default newline). String Functions gsub(r. $NF can be used to obtain the value of the last field in the current record. input/output and general. cat(1) Number of fields in the current record. If expr is omitted. Return the natural logarithm of x. gsub() returns the number of replacements. also settable by option -F fs. RLENGTH The length of the string matched by the match() function. s) The same as sub() except that all occurrences of the regular expression are replaced. where x is in radians. x) Return the arctangent of y/x in radians. FUNCTIONS The awk language has a variety of built-in functions: arithmetic. n. where x is in radians. index(s. Return a random number. Ordinal number of the current record. or 0 if it does not. Inc. Output field separator (default blank). cos(x) exp(x) int(x) log(x) rand() sin(x) sqrt(x) Return the cosine of x. FILENAME The name of the current input file. Output record separator (default newline). ENVIRON Array of environment variables. SUBSEP Separates multiple subscripts (default 034). RS RSTART The starting position of the string matched by the match() function. the time of day is used instead. string.cat(1) Property of BladeLogic. NSH 3 . subscripts are names.6g"). Return the exponential of x. Regular expression used to separate fields. srand(expr) Sets seed for rand() to expr and returns the previous seed. t. FNR FS NF NR OFMT OFS ORS Ordinal number of the current record in the current file. Output format for numbers (default "%. Arithmetic Functions atan2(y. Return x truncated to an integer value. such that 0<=n<1.6g"). t) The position in s where the string t occurs. Strictly confidential and proprietary CONVFMT Conversion format when converting numbers (default "%.

and FNR. sub() returns the number of replacements. split(s. The variable RLENGTH is set to the length of the matched string. expr should match the string that was used to open the file or pipe. r) The position in s where the regular expression r occurs. . substr(s. As long as the stream remains open. . according to the printf(3) format fmt. or of $0 if no argument is given. getline [var] < file Sets $0 to the next record from file. expr should match the string that was used to open the file or pipe. An ampersand (‘&’) in t is replaced in string s with regular expression r. expr. If var is omitted. . If var is omitted. The separation is done with the regular expression fs or with the field separator FS if fs is not given. This form of getline sets the variables NF. getline returns 1 for a successful input.. a[2].cat(1) Property of BladeLogic. If file is not open..) The string resulting from formatting expr. NR. it is opened. or -1 if no match is found. Strictly confidential and proprietary length(s) The length of s taken as a string. the length of the substring is limited by the length of s. Otherwise var is set. sprintf(fmt. fflush(expr) Flushes any buffered output for the file or pipe expr. or 0 if it does not. subsequent calls will read subsequent records from file. and -1 for an error. If n is omitted. getline Sets $0 to the next input record from the current input file. NSH 4 . the variables $0 and NF are set. tolower(str) Returns a copy of str with all upper-case characters translated to their corresponding lower-case equivalents. or if n specifies more characters than are left in the string. t. n) Return at most the n-character substring of s that begins at position m counted from 1. the variables $0 and NF are set. and -1 for an error. file remains open until explicitly closed with a call to close(). If the stream is not open. A literal backslash can be specified by preceding it with another backslash (‘\’). s) Substitutes t for the first occurrence of the regular expression r in the string s. $0 is used. cat(1) match(s. As long as the stream remains open. Input/Output and General Functions close(expr) Closes the file or pipe expr. This form of getline sets the variables NR and FNR. getline returns 1 for a successful input. toupper(str) Returns a copy of str with all lower-case characters translated to their corresponding upper-case equivalents.. m.. cmd | getline [var] Read a record of input from a stream piped from the output of cmd. The variable RSTART is set to the starting position of the matched string (which is the same as the returned value) or zero if no match is found. it is opened.. a. Inc. fs) Splits the string s into array elements a[1]. a[n] and returns n. The stream remains open until explicitly closed with a call to close(). If s is not given. A literal ampersand can be specified by preceding it with two backslashes (‘\’). subsequent calls will read subsequent records from the stream. 0 for end of file.. sub(r.. getline var Sets $0 to variable var. An empty string as field separator splits the string into one array element per character. 0 for end of file. Otherwise var is set.

Aho. s. " average is". sed(1). functions may be called recursively. /stop/ Simulate echo(1): BEGIN { # Simulate echo(1) for (i = 1. B. ISBN 0-201-07981-X. print sum and average: { s += $1 } END { print "sum is". the syntax is worse. HISTORY An awk utility appeared in Version 7 AT&T UNIX. EXAMPLES Print lines longer than 72 characters: length($0) > 72 Print first two fields in opposite order: { print $2. c) { . s/NR } Print all lines between start/stop pairs: /start/.[ ]*|[ ]+" } { print $2. 1988. and by reference if array name. To force an expression to be treated as a number add 0 to it. i < ARGC. Inc. copy. Functions may be defined (at the position of a pattern-action statement) thusly: function foo(a. lex(1). Kernighan. Parameters are local to the function. $1 } Add up first column. printf(1). The AWK Programming Language..cat(1) Property of BladeLogic. b. J. modify. BUGS There are no explicit conversions between numbers and strings. to force it to be treated as a string concatenate "" to it. all other variables are global. i++) printf "%s ". return x } cat(1) Parameters are passed by value if scalar. Addison-Wesley.. Weinberger.. The scope rules for variables in functions are a botch. with input fields separated by comma and/or blanks and tabs: BEGIN { FS = ". COPYRIGHT /**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved Permission to use. and P. Strictly confidential and proprietary system(cmd) Executes cmd and returns its exit status. ARGV[i] printf "0 exit } Print an error message to standard error: { print "error!" > "/dev/stderr" } SEE ALSO egrep(1). V. printf(3) A. and distribute this software and its documentation for any purpose and without fee is hereby NSH 5 . Thus local variables may be created by providing excess parameters in the function definition. $1 } Same. W.

NEGLIGENCE OR OTHER TORTIOUS ACTION. DATA OR PROFITS. provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation. and that the name Lucent Technologies or any of its entities not be used in advertising or publicity pertaining to distribution of the software without specific. INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY SPECIAL. Inc. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ****************************************************************/ cat(1) NSH 6 . INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE. LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.cat(1) Property of BladeLogic. Strictly confidential and proprietary granted. WHETHER IN AN ACTION OF CONTRACT. written prior permission.

where <user_profile_dir> specifies a path such as /Documents and Settings/johnk.509 certificate SYNOPSIS bl_gen_ssl DESCRIPTION The bl_gen_ssl command creates an X.Property of BladeLogic.509 certificate in a file named id. Inc. NSH 1 . On UNIX.bladelogic. Inc. the user is prompted for a private key password. id.pem is stored in /<user_profile_dir>/Application Data/BladeLogic. In Windows.pem. Strictly confidential and proprietary bl_gen_ssl(1) bl_gen_ssl(1) NAME bl_gen_ssl − create an X. every time a Network Shell session is invoked. such as /home/johnk. Creating this certificate generates a user’s public and private keys. id. Invoking bl_gen_ssl prompts the user to enter a password and confirm it.pem is stored in /<home_dir>/. where <home_dir> is the user’s home directory. OPTIONS None EXAMPLE bl_gen_ssl ORIGIN bl_gen_ssl was developed by BladeLogic. This password is used to gain access to user’s private key. Once a certificate is created on a client.

and role. Strictly confidential and proprietary bl_srp_agent(1) NAME bl_srp_agent − activate a user information cache on UNIX SYNOPSIS bl_srp_agent --background DESCRIPTION The bl_srp_agent command activates a user information cache on UNIX. This shared memory segment is only usable for the user who ran bl_srp_agent.bl_srp_agent(1) Property of BladeLogic. Inc. Inc. Other programs can use the information cached by bl_srp_agent whether bl_srp_agent is running in the foreground or background. password. NSH 1 . EXAMPLE bl_srp_agent --background ORIGIN bl_srp_agent was developed by BladeLogic. bl_srp_agent runs in the foreground. the system prompts for a user ID. where <xy> is the hexadecimal value of the location of the shared memory segment. set the BL_SRP_INFO environment variable by issuing the following command: BL_SRP_INFO=<xy> Export the BL_SRP_INFO environment variable by issuing the following command: export BL_SRP_INFO The bl_srp_agent program remains in the background holding the user information cached in a shared memory segment until you kill it. To reuse this shared memory segment with Network Shell. If you do not use this option. the system generates a message like the following: set BL_SRP_INFO to <xy> to reuse this private key. When you run bl_srp_agent. bl_srp_agent runs in the background with the user information cached in a shared memory segment. After you provide this information. OPTIONS --background Instructs bl_srp_agent to run in the background. After entering your user information.

a user must first acquire a session credential from a BladeLogic Authentication Service. The authentication profile identifies the Authentication Service you are contacting and your authentication mechanism. Application Server. The blcred utility lets you acquire a session credential when using a command line environment.conf file>] | -test [-profile <profile_name>] [-username <username>] [-time <min remaining lifetime (minutes)]] | [authprofile -list | -delete [-profile <profile name>] | -add [-profile <profile name>] [-host <auth_service host>:<auth_service port>] [-type [srp | adk -spn <auth_service SPN>]]] | [cert -list | -delete [-all | -alias <cert alias>]] DESCRIPTION The blcred utility manages authentication profiles.blcred(1) Property of BladeLogic. The utility lets you show. The utility lets you test whether a valid session credential already exists and determine the lifetime remaining for that credential. and delete authentication profiles.. If neither this option nor the BL_AUTH_PROFILES_FILE environment variable is specified. a Kerberos TGT). This default file resides at <OM install directory>/br/authenticationProfiles. COMMAND OPTIONS -p <authentication profiles filename> Name and location of the authentication profile configuration file. Using that session credential.dat file>] | [-loginconf <kerberos login. Network Shell. session credentials. If you are using Active Directory/Kerberos authentication. Strictly confidential and proprietary blcred(1) NAME blcred − A command line utility for managing BladeLogic authentication profiles. SYNOPSIS blcred [-p <authentication profiles filename>] [-c <credential cache filename>] [-x <trusted certificates keystore filename>] [cred -list [-verbose] | -destroy | -acquire [-profile <profile_name>] [[-username <username>] | [-password <password>]] | [-i <srp user_info. Configuration Manager. session credentials. and trusted certificates. To use blcred on a client machine. and trusted certificates. To obtain a session credential from an Authentication Service. Inc. a BladeLogic client application (i. you must also provide a user name and password. blcred lets you review and delete trusted X. This option overrides whatever is specified by the BL_AUTH_PROFILES_FILE environment variable. This session credential can be stored in a credential cache file. which are used when establishing a TLS connection to an Authentication Service. the default authentication profile configuration file is used.509 certificates. the Authentication Service validates you as a user and issues a session credential. If you are using SRP authentication. which is an XML file that holds all authentication profile definitions. Provisioning Manager. Using the information you provide. or Network Shell Proxy Server. add. you must provide an authentication profile and other information. And. you must have Operations Manager installed.e.xml NSH 1 . or BLCLI) can connect to a BladeLogic Application Server or Network Shell Proxy Server. you must possess an AD/Kerberos user credential (that is. To log into a BladeLogic system.

Both can be passed on the command line using the optional -username and -password parameters. blcred prompts the user to provide a profile name. If neither this option nor the BL_SSO_TRUSTED_CERT_KEYSTORE_FILE environment variable is specified.509 certificates. which holds trusted X. Alternatively. cred –acquire [-profile <profile_name>][[-username <username>] [-password <password>]] | [-i <srp user_info.conf file. destination service URLs.blcred(1) Property of BladeLogic. To acquire a session credential. blcred establishes a TLS connection to the Authentication Service. When selecting an SRP profile. When an AD/Kerberos profile is employed.bladelogic/client_keystore. cred –list [-verbose] Displays the user name. If neither this option nor the BL_SSO_CRED_CACHE_FILE environment variable is specified.conf file>] Acquires a session credential using the specified profile and stores it in the session credential cache. the user is prompted for a user name and password.pkcs12 for Windows. This option overrides whatever is specified by the BL_SSO_TRUSTED_CERT_KEYSTORE_FILE environment variable. Strictly confidential and proprietary blcred(1) -c <credential cache filename> Name and location of the credential cache file. Using the optional -verbose argument causes the utility to display all information about credentials. If neither the -profile option nor the BL_AUTH_PROFILE_NAME environment variable is specified. the default keystore file is used. -x <trusted certificates keystore filename> Name and location of the keystore file. The optional -profile argument overrides whatever is specified by the BL_AUTH_PROFILE_NAME environment variable. The default keystore file resides at <user_home_dir>/. and expiration time of session credentials. issuing service URL. blcred tests for the presence of a valid credential with a remaining lifetime equal to or greater than the specified minutes remaining. blcred –test can return the exit codes described below in EXIT CODES. authprofile –delete [-profile <profile_name>] Deletes a profile with the given profile name. cred –test [-profile <profile_name>] [-username <username>] [-time <min remaining lifetime (minutes)] Tests whether a cache contains a valid credential corresponding to the specified authentication profile. the user is prompted for a name. blcred tests for the presence of a valid credential issued to the named user. This file resides at <user_home_dir>/. which presents its X509 certificate to the client. blcred prompts the user to specify an authentication profile name. including the client IP address.bladelogic/bl_sesscc for UNIX and C:\Documents and Settings\<Windows_user_name>\Application Data\BladeLogic\bl_sesscc for Windows. authentication type. cred –destroy Destroys the contents of the credential cache. Default credential caches are unique per user.dat) using the -i parameter. If the time option is present. If the username option is present. authprofile –list Displays information about each of the profiles defined in the authentication profile configuration file. Default trust keystores are unique per user. If a name is not specified. and service ticket. The user is prompted to trust the unrecognized certificate. the user’s Kerberos credential is loaded from the local Kerberos cache. This option overrides whatever is specified by the BL_SSO_CRED_CACHE_FILE environment variable. Inc.pkcs12 for UNIX and C:\Documents and Settings\<Windows_user_name>\Application Data\BladeLogic\client_keystore. the default credential cache file is used. NSH 2 .dat file>] | [-loginconf <kerberos login. the -loginconf parameter can be used to override the default location of the blclient_login. If an authentication profile name is not specified. When employing an AD/Kerberos profile. the SRP credential can be extracted from a persistent credential file (the user_info.

the AD/Kerberos service principal name can be specified using the –spn parameter. and authentication type can be specified on the command line through the -profile. -host. BL_SSO_TRUSTED_CERT_KEYSTORE_FILE Location of the TLS certificate store (override with -x). Users are prompted for omitted information. and -type parameters. cert –list Lists all X. There are two types of authentication profiles: SRP and AD/Kerberos. The profile name. The -all parameter deletes all certificates.blcred(1) Property of BladeLogic. (Use the -list option to obtain aliases for all certificates in the store. Cached credential issued to user is different than named user. Cached credential did not match named authentication profile. BL_SSO_CRED_CACHE_FILE Location of the session credential cache file (override with -c). Named authentication profile did not exist. EXAMPLES See the BladeLogic Administration Guide for some typical scenarios that use blcred.509 certificates in the trusted certificate store. In either case the profile must have a unique name and must be associated with an Authentication Service. such as -acquire -profile profile_name. Authentication Service. Additionally. NSH 3 . cache contained credential with desired properties. Strictly confidential and proprietary blcred(1) authprofile –add [-profile <profile name>] [-host <auth_service host>:<auth_service port>] [-type [srp | adk -spn <auth_service SPN>]]] Adds a new profile to the authentication profile configuration file. ENVIRONMENT VARIABLES BL_AUTH_PROFILES_FILE Location of the authentication profile configuration file (override with -p). AD/Kerberos profiles must also specify a service principal name. BL_AUTH_PROFILE_NAME Name of the selected BladeLogic authentication profile (override using the -profile option in conjunction with another option. cert –delete [-all | -alias <cert alias>]] Deletes X.509 certificates in the trusted certificate store.) EXIT CODES 0 1 2 3 4 Successful test result. Inc.) ORIGIN blcred was written by Denis Knjazihhin. Lifetime remaining for the cached credential is less than minimum lifetime specified. The -alias lets you provide an alias for the certificate you want to delete.

d "abc" ´abc´ $name function() Name Decimal Number Octal Number Percentage Floating point number Hex Number I. address (converted to integer) String supporting \ for special characters String (no special character support) Variable name (see set_variable() function) Supported function. You can nest these (multiple levels) using parentheses ´(´ and ´)´.P. You can use whitespaces (SPACE. TAB. Strictly confidential and proprietary blexpr(1) NAME blexpr − BladeLogic Expression SYNOPSIS blexpr expr . LF) as optional operand/operator separators. Lower priorities have higher precedence: Operator % / * + > >= != = <= < ! && || & | ˆ ˜ Name REMAINDER DIVIDE MULTIPLY SUBTRACT ADD GREAT GREAT THAN OR EQUAL NOT EQUAL EQUAL LESS THAN OR EQUAL LESS NOT AND OR BINARY AND BINARY_OR BINARY_XOR BINARY NOT Priority 1 1 1 2 2 3 3 3 3 3 3 4 5 6 6 6 6 6 OPERANDS blexpr supports the following operands: Operand nnn 0nnn nnn% nn.. An expression consists of operands and operators.. Inc. It takes all of its arguments as input. DESCRIPTION blexpr is generic expression evaluator.blexpr(1) Property of BladeLogic. blexpr reads the expression from stdin.c. If you do not specify any arguments. OPERATORS blexpr supports the following operators. CR. then creates and evaluates an expression.mm 0xABC a. It prints the result to stdout.b. OPERATOR TYPES blexpr supports the following operator types: Integers NSH 1 .

with the resulting value also being a floating point value. Example: $ blexpr ’equals_any (atoi ("3. If atoi cannot convert val to an integer.. with the result also being a 64 bit integer value. then divides by the number of arguments. 2.14"). blexpr handles operations between a string and a non-string value such that the operation does not just automatically fail. arg1. then blexpr returns an appropriate error value. Example: $ blexpr ’average (1. 12)’ 1 NSH 2 . If one operator is a floating point value and the other is an integer or a 64 bit integer then blexpr converts the integer values to floating point. 2. 4)’ 2 $ blexpr ’average (1. Strictly confidential and proprietary Floating point numbers 64 bit integers Strings blexpr(1) Here are some examples of how blexpr handles operations between two different operator types. 7)’ 0 equals_range (val. 7. When blexpr encounters an operation between a string and a non-string value. arg2. hex numbers (strings starting with 0x). If the argument is a string. blexpr adds the arguments.14)’ 12 equals_any (val. blexpr converts the string to the respective numeric type. 3. If one value is a 64 bit integer and the other is regular integer value then blexpr converts the (regular) integer value to a 64 bit integer. If it is. If the string is not a recognizable numeric value. decimal numbers. 5. It detects octal numbers (strings starting with a zero). and floating point numbers..5000 atoi (val) Convert val into an integer value. Example: $ blexpr ’atoi ("4") * atoi (3. then proceeds with the operation. 5)’ 1 $ blexpr ’equals_any (atoi ("3. then this function uses the same function as the internals of the API to detect a numeric value. min_val.blexpr(1) Property of BladeLogic. . 1. blexpr will make the appropriate conversions as necessary. .0. it returns 0 (false).) This function returns true (value of 1) if val equals any of the remaining function arguments. 3. The supported functions are: average (arg1. Example: $ blexpr ’equal_range (strlen ("Hello world").) Return the average of all arguments given. Inc. it first checks to see if the string is a recognizable numeric value. In the case of the three numeric types. FUNCTIONS blexpr also supports functions to determine operand values. max_val) This functions returns true (value of 1) if the value of val is greater than or equal to the value of min_val and less than or equal to the value of max_value.5") * 2. 4)’ 2. 3.. The function also checks for a trailing % which will cause the value to be treated as a percentage (meaning divide by 100)..

The functions support the following argument types: string (%s) floating point (%f) integer The functions support the following output format types: decimal (%d) unsigned int (%u) octal (%o) hex (%x or %X) I. Example: $ blexpr ’get_date ()’ 1060378146 $ blexpr ’show_date (get_date ())’ Tue Jan 14 11:56:02 2003 if (val. The functions work in a similar way to the C-library printf function call but without all the bells and whistles.m].. The printf function just prints the output to stdout and returns the number of bytes it wrote.. If val is true. "Pan") sprintf ("Name = -.P. Strictly confidential and proprietary blexpr(1) get_date () This function returns the date and time on the local system. 14..) Both these functions generate a formatted output.40) printf ("ADDRESS:\n DEC = %11u\n HEX = %11X\n IP = %p\n".after the % as well as output precision in the form of n[. "Hello " + "world")’ Hello wor $ blexpr ’ set_variable ("FIRSTNAME". args . Example: $ blexpr ’sprintf ("%12. Inc. true_val. it returns true_val. while the sprintf function returns the formatted output as a string.20.30. false_val) The if function evaluates the value of val. $LASTNAME)’ Name = -.) sprintf (format. args .%s %s --\n". "Peter") set_variable ("LASTNAME". The date and time is expressed as the value in seconds since the epoch (00:00:00 Jan 1 1970). $FIRSTNAME.. Use the show_date () function to turn this value into a more meaningful string format.Peter Pan -$ blexpr ’set_variable ("IP". otherwise it returns false_val Example: $ blexpr ’if (atoi ("3"). 10. NSH 3 . 27)’ 14 printf (format.blexpr(1) Property of BladeLogic.9s". address notation (%p or %P) The functions also support left justification with the optional .

and you define the value of the variable with expr. Example: $ blexpr ’strlen ("Hello") + strlen ("World")’ 10$ NSH 4 .30. val) strstr can be used in one of two ways.40 blexpr(1) set_variable (string. If val is a string then the function returns the first occurrence of val in the string. expr) You can use the set_variable function to create an addressable variable.blexpr(1) Property of BladeLogic. In val is of type integer then the function returns the string with an offset of val bytes. You define the name of the variable with string. Example: $ blexpr ’strstr ("Hello world". strlen returns a length of 0. "bar") $FOO’ bar $ blexpr ’ set_variable ("FOO".20. Strictly confidential and proprietary $IP. then the generated date is in the form of Fri Nov 08:31:22 2001. Example: $ blexpr ’ set_variable ("FOO". you should use the respective macros supported by the call. Inc. "ll")’ llo world $ blexpr ’strstr ("Hello world". $IP. you can use the variable in a subsequent expression by prefixing the variable name with a ’$’ symbol. The function uses the C-library strftime function to convert the value and therefore.’ ADDRESS: DEC = 169090600 HEX = A141E28 IP = 10. Once you have created a variable this way. 6)’ world strlen (string) Return the length of value string. The optional format arguments specifies output format. "Hello " + "world") toupper ($FOO)’ HELLO WORLD show_date (date. If you supply a value that is not a string. format) This function takes the numeric date argument and converts it into a string representation. $IP). Example: $ blquery -h linux -e ’show_date (get_date())’ Tue Jan 14 11:56:02 2003 $ blquery -h win2k -e ’show_date (get_date (). "%b %d %Y %H:%M:%S")’ Jan 14 2003 11:56:02 strstr (string. If you do not specify a format.

OPTIONS None EXAMPLE bl_gen_ssl ORIGIN bl_gen_ssl was developed by BladeLogic. where <home_dir> is the user’s home directory.bladelogic. Inc. On UNIX.Property of BladeLogic. the user is prompted for a private key password.509 certificate SYNOPSIS bl_gen_ssl DESCRIPTION The bl_gen_ssl command creates an X.pem is stored in /<home_dir>/. every time a Network Shell session is invoked. such as /home/johnk.pem is stored in /<user_profile_dir>/Application Data/BladeLogic. id. Inc. id. Creating this certificate generates a user’s public and private keys. Invoking bl_gen_ssl prompts the user to enter a password and confirm it.509 certificate in a file named id.pem. This password is used to gain access to user’s private key. Strictly confidential and proprietary bl_gen_ssl(1) bl_gen_ssl(1) NAME bl_gen_ssl − create an X. In Windows. where <user_profile_dir> specifies a path such as /Documents and Settings/johnk. NSH 1 . Once a certificate is created on a client.

This option takes a combination of the following characters as input: 0 1 2 3 List live keystroke logfiles for a specific host Copy remote keystroke logfiles Concatenate remote keystroke logfiles View a list of nexec sessions logged in remote keystroke logfiles COMMANDS. If the signature file needed for verification is missing on the target host.." hostname Name of host for which to list keystroke logfiles keystroke_logfile Full NSH Path to remote keystroke logfile.Property of BladeLogic..g. You can request the status of all the keystroke files on a host. or specify a full NSH path to an individual keystroke file to request just that file’s status. or "Unknown. [TARGET].. e.. and the resulting keystroke files have been digitally signed. [TARGET].. the status displays as "Unknown... [COMMAND] [COMMAND_OPTION]. blkeylogman provides a limited set of functionality that can be used in conjunction with existing. as follows: list copy cat listsessions list <hostname> list --verify <hostname>|<keystrokelogfile> List (and optionally verify) keystroke logfiles for host --verify This option is useful only when you have enabled keystroke logging on a remote host. COMMAND_OPTIONS..g. There are four primary functions provided by blkeylogman. traditional logfile management systems to provide a complete solution.. DESCRIPTION blkeylogman allows a system administrator to manage live keystroke logfiles on the RSCD agent to accomplish basic tasks.. This option displays the status of each keystroke file as either "Consistent".. bllogkeyman [GLOBAL_OPTION]. //<hostname>/<Path to keystroke logfile> localfile Path to local file cat [-t 0123] [-s <session id>] [-h <clienthost>] [-u <clientuser>] [-a <time>] [-b <time>] [-p] <hostname>|<keystroke_logfile> Output remote logfile -t List specified type of entries. e. //<hostname>/<Path to keystroke logfile> copy keystroke_logfile localfile Copy remote keystroke logfile to local host keystroke_logfile Full NSH path to remote keystroke logfile. Strictly confidential and proprietary blkeylogman(1) blkeylogman(1) NAME blkeylogman − remotely manage keystroke logfiles on a machine running an RSCD agent SYNOPSIS blkeylogman [GLOBAL_OPTION].. [COMMAND] [COMMAND_OPTION]." An "Inconsistent" status indicates that the log file may have been tampered with. and TARGETS NSH 1 . "Inconsistent". Inc.

the display gets garbled or sometimes even cleared. The format of the timestamp is "MM/DD/YY HH:MM:SS. executing a blkeylogman cat command causes the terminal to process and interpret special terminal handling control characters (contained in the log data). if output of interactive commands is logged inside a keystroke log file. The format of the timestamp is "MM/DD/YY HH:MM:SS.mmm" or "MM/DD/YY HH:MM:SS" EXAMPLES The following will cat the logfile "keystroke.mmm" or "MM/DD/YY HH:MM:SS" keystroke_logfile Full NSH Path to remote keystroke log file listsessions [-s <session id>] [-h <clienthost>] [-u <clientuser>] [-a <time>] [-b <time>] <hostname>|<keystroke_logfile> List all nexec sessions on a particular host or keystroke logfile -s -h -u -a -b hostname Name of the host whose sessions you want to list keystroke_logfile Full NSH path to remote keystroke logfile whose sessions you want to list.g.mmm" or "MM/DD/YY HH:MM:SS" Process non-printable output characters before printing Sometimes. Exercising the p option. The format of the timestamp is "MM/DD/YY HH:MM:SS. As a result. //<hostname>/<path to keystroke log file> Show the session specified by <session id> Show sessions for the specified client host Show sessions for the specified client user Show sessions that were in progress after specified timestamp. Strictly confidential and proprietary blkeylogman(1) blkeylogman(1) 0 Show STDIN entries 1 Show STDOUT entries 2 Show STDERR entries 3 Show STARTSESSION and ENDSESSION entries. e.log To list all keystroke logfiles on host "linux1": $ blkeylogman list linux1 To list all keystroke logfiles with verification status on host "solaris10": NSH 2 .log" on the remote host "host1": $ blkeylogman cat //host1/usr/nsh/log/keystroke. -b Show entries where "entry timestamp" < "specified timestamp". The format of the timestamp is "MM/DD/YY HH:MM:SS. Inc.mmm" or "MM/DD/YY HH:MM:SS" Show sessions that were in progress before the specified timestamp.Property of BladeLogic. makes blkeylogman process the special terminal control characters to printable ones. -s -h -u -a -p Show entries for the session specified by <session id> Show entries for the specified client host Show entries for the specified client user Show entries where "entry timestamp" > "specified timestamp".

Strictly confidential and proprietary blkeylogman(1) blkeylogman(1) $ blkeylogman list --verify solaris10 To list only one log file with verification status on host "solaris10": $ blkeylogman list --verify //solaris10/usr/nsh/log/keystroke.Property of BladeLogic. SEE ALSO bllogman (1) exports (5) NSH 3 .log1" on host "solaris10": $ blkeylogman listsessions //solaris10/usr/nsh/log/keystroke. Inc. Inc.log2 To list nexec sessions on host "solaris10": $ blkeylogman listsessions solaris10 To list nexec sessions from file "keystroke.log1 ORIGIN blkeylogman was written by Rajesh Jangam of BladeLogic.

.Property of BladeLogic. traditional logfile management systems to provide a complete solution. bllogman is not intended to be a feature-complete logfile management solution. There are six primary functions provided by bllogman. Inc. [TARGET]. as follows: -? -v Generate run-time usage Be verbose when performing functions COMMANDS. as follows: tail copy list cat rotate verify Tail remote logfiles Copy remote logfiles or signature files List live logfiles for a specific host Concatenate remote logfiles Rotate remote logfiles or signature files Verify a digitally signed log file locally GLOBAL OPTIONS There are global options which affect all functions. COMMAND_OPTIONS. DESCRIPTION bllogman allows a system administrator to manage live RSCD agent logfiles to accomplish basic tasks.. and TARGETS tail [-f -v] target Output the last part of a logfile -f -n n target Tail forever Tail n lines Name of remote logfile you want to tail copy [-S] logfile|signature_file localfile Copy remote logfile/signature_file to local host -S Indicates that the file you are copying is a signature file.. [COMMAND] [COMMAND_OPTION]. Strictly confidential and proprietary bllogman(1) bllogman(1) NAME bllogman − remotely manage live RSCD agent logfiles SYNOPSIS bllogman [GLOBAL_OPTION]. Use only when copying a signature file. but rather provides a limited set of functionality that can be used in conjunction with existing.. [COMMAND] [COMMAND_OPTION]... logman [GLOBAL_OPTION]...... logfile/signature_file Full NSH path to remote logfile/signature_file localfile Path to local file cat [-1|-2] [-d] [-l file] <-h host> | logfile Output remote logfile logfile -1 -2 Path to remote logfile Show INFO/INFO1 logfile entries only (default is all) Show INFO2 logfile entries only (default is all) NSH 1 . and there are command-specific options affecting only particular commands.. [TARGET].

This command is intended to be used for client side verification. To execute this command." assuming "rscd. Note: All files needed for this command should be local. logfile/signature_file Full NSH path to remote logfile/signature_file verify logfile signature_file certificate_file privatekey_file Verify log file consistency at local host. the rotate option will rename the file "rscd. you must have the corresponding signature file. This option displays the status of each log file as either "Consistent". Strictly confidential and proprietary bllogman(1) bllogman(1) -d -h host -l file -s file Output selected fields in tab separated values format Show all logfiles for host Create a tab delimited ’last entry timestamp’ file Use the ’last entry timestamp’ file to determine start of searching list [--verify] hostname list --verify //hostname/Full_NSH_Path_To_logfile List logfiles on a host --verify This option is useful only when you have enabled secure agent logging on a remote host.1. certificate file.log" to "rscd. this option returns a status as "Unknown. signature_file Full path to corresponding local signature file.1" does not already exist. -S Indicates that the file you are rotating is a signature file. certificate_file Full path to the local certificate file that was used to sign the log file. Use only when rotating a signature file. For example. iterative rotation function which simply increments the filename extension by one until an available filename is found. and the resulting log files have been digitally signed.log" on the remote host "host1": $ bllogman cat //host1/usr/nsh/log/rscd." An "Inconsistent" status indicates that the log file may have been tampered with. Inc. and private key file on the local host. EXAMPLES The following will cat the logfile "rscd. If you have not enabled secure agent logging on the remote host. You can request the status of all the log files on a host.log." hostname Name of host for which to list logfiles rotate [-S] logfile/signature_file Rotate provides a simple. or "Unknown.log. privateKey_file Full path to the local privateKey file that was used to sign the log file.log NSH 2 . logfile Full path to local log file. or specify a full NSH path to an individual log file to request just that file’s status. "Inconsistent".Property of BladeLogic.

NOTE Logman was renamed bllogman as part of the 6.3.log.pem": $ bllogman verify /usr/tmp/rscd.sig3 /usr/tmp/certificate.pem All files need to be on the local host.sig2 To verify the consistency of logfile "rscd. SEE ALSO exports (5) NSH 3 . logman is just a copy or symlink of bllogman.sig2 To tail forever (or watch) logfile "rscd. bllogman should be the preferred utility moving forward as logman may be fully removed in the future. Inc.log. Strictly confidential and proprietary bllogman(1) bllogman(1) To retrieve a list of tail-specific options and usage: bllogman tail -h For general usage: bllogman -h To list all logfiles on host "linux1": bllogman list linux1 To list all logfiles with verification status on host "solaris10": $ bllogman list --verify solaris10 To list only one log file with verification status on host "solaris10": $ bllogman list --verify //solaris10/usr/nsh/log/rscd.log" on host "sun1": bllogman tail -f //sun1/usr/nsh/log/rscd.pem /usr/tmp/privateKey. For backwards compatibility purposes a logman command is still included.log2 To copy a signature file from host solaris10 to local host: $ bllogman copy -S //solaris10/usr/nsh/log/rscd.log3" against its corresponding signature file "rscd.log.0 release.sig3" using the certificate stored in file "certificate. You cannot use this command for remote logfiles.log To rotate a signature file on host solaris10: $ bllogman rotate -S //solaris10/usr/nsh/log/rscd. ORIGIN bllogman was written by Damon Miller of BladeLogic. Inc.log.pem" and the private key stored in "privateKey.log3 /usr/tmp/rscd.Property of BladeLogic.

Strictly confidential and proprietary blquery(1) blquery(1) NAME blquery − Evaluate expression to query BladeLogic assets SYNOPSIS blquery [ -h -l ] [ host1 . and the subsequent escaping thereof. start them with a hash (#) and blquery will ignore them. Do not include the hostname as part of the output. In addition to specifying host names on the command line.then blquery reads input from stdin. A file containing the expression you want to run. To create comment lines. blquery will query the local server. you can also use the -f option to specify a hosts file. -E file FILE AND DIRECTORY FUNCTIONS file_is_directory (path) This function returns 1 if the given path exists on the host and is a directory. hostN The hosts you want to query.. otherwise it returns 0. output only the resulting value. Example: $ blquery -h solaris8 -e ’file_is_directory ("/etc")’ 1 $ blquery solaris8 -e ’file_is_directory ("/etc/passwd")’ 0 file_is_regular (path) This function returns 1 if the given path exists on the host and is a regular file. Expression to run against the given hosts. If file is a . See the CAVEATS section for limitations on local servers. NSH 1 . To help avoid some of the shell special character handling issues. otherwise it returns 0.. host1 . you can also use the -E option to define a file containing your expression. If you do not specify a host name. then blquery will query against each of the given servers. blquery works by applying the given expression to each host and then outputting the results to stdout. Inc.. To query the local host. You can query against the local host (see CAVEATS).. This is the default behavior if you specify only a single host. The default output format for each server is: hostname: value OPTIONS -l -h Generate output only for hosts that resolve to true. hostn | -f file ] { -e expr | -E file } DESCRIPTION The blquery utility is an extension to the blexpr utility. blquery provides additional functions that can query various asset types in the BladeLogic environment. Instead. Example: $ blquery -h solaris8 -e ’file_is_regular ("/etc")’ 0 $ blquery solaris8 -e ’file_is_regular ("/etc/passwd")’ 1 file_is_symlink (path) This function returns 1 if the given path exists on the host and is a symbolic link. or against any number of remote servers. -f file -e expr A flat file containing the list of hosts you want to query. just omit any server names. If you specify server names. otherwise it returns 0.Property of BladeLogic.

If the path does not exist or is not accessible it returns the value of -1. If the path does not exist or is not accessible it returns the value of -1. Example: $ blquery -h solaris8 -e ’file_md5sum ("/etc/passwd")’ f59c3bfa14ac178b4098e03f9afe64fe SOFTWARE INSTALLATIONS Although the various supported platforms all have their own concept of what a software package is. file_mode ("/etc/passwd") & 07777)’ solaris8: 0444 linux: 0644 file_md5sum (file) This function returns the 32 byte string representation of the file’s MD5 checksum.Property of BladeLogic. If the file does not exist then it returns a zero length string with the appropriate error set. If the path does not exist or is not accessible it returns the value of -1. Example: $ blquery -h solaris8 linux -e \ ’sprintf ("0%o". Example: $ blquery -h solaris8 -e ’file_size ("/etc/passwd")’ 635 file_uid (path) This function returns the path’s ownership as a numeric UID. Example: $ blquery -h solaris8 -e ’file_uid ("/etc/passwd")’ 0 file_gid (path) This function returns the path’s group ownership as a numeric GID. otherwise it returns 0. Inc. NSH 2 . If the path does not exist or is not accessible it returns the value of -1. they mostly support the general concept of software installations. patches. Example: $ blquery -h solaris8 linux -e ’file_gid ("/etc/passwd")’ solaris8: 3 linux: 0 file_mode (path) This function returns the path’s file permissions. Example: $ blquery -h solaris8 -e ’file_exists ("/etc/passwd")’ 1 $ blquery solaris8 -e ’file_exists ("/etc/PASSWD")’ 0 file_size (path) This function returns the size of the file path. and bundles. Strictly confidential and proprietary blquery(1) blquery(1) Example: $ blquery -h solaris8 -e ’file_is_symlink ("/etc/passwd")’ 0 $ blquery solaris8 -e ’file_is_symlink ("/etc/hosts")’ 1 file_exists (path) This function returns 1 if the given path exists on the host.

Bundles exist only on HPUX machines. Note that the concept of patches is not supported on RedHat Linux systems. All platforms support the concept of installed patches and software components (the names however differ from OS to OS). These functions take an expression as their argument. patch_record_count (expr) package_record_count (expr) bundle_record_count (expr) rpm_record_count (expr) Return the number of installed patch/software/bundle/rpm components that match the expression expr. Inc. Example: blquery -h authpux11agt3 -e ’bundle_installed ("Base*")’ 1 You can use the next three functions to scan/search through the list of patches and software. Example: $ blquery -h linux -e ’package_installed ("cracklib-2. because the function automatically determines the platform type at runtime.Property of BladeLogic. Example: $ blquery -h solaris8 -e ’patch_installed ("109608-*")’ 1 $ blquery -h win2k -e ’patch_installed ("Q811493")’ 1 package_installed (software) This function will check if the software package software is installed on the given server.7-8")’ 1 $ blquery -h win2k -e ’package_installed ("Norton AntiVirus*")’ 1 bundle_installed (software) This function will check if the software bundle software is installed on the given server. and that bundles are HP-UX specific. The NSH 3 . patch_installed (patch) This function will check if the software patch patch is installed on the given server. Note that not all platforms furnish all the above data. NAME VERSION VENDOR DATE Installable name Installable version Installable vendor Installable date of installation (0 if you do not know the date) CATEGORY Installable software category (On AIX the install status) DESCRIPTION Installable short description SIZE Size of installable in KB (0 if you do not know the size) All the above variables are of type string with the exception of SIZE which is an integer. where the following dynamic variables are initialized for each software/patch entry. You do not need to specify the type of machine you dealing with. so the values are not guaranteed to be set. with the exception of Linux. which does not support patches. Strictly confidential and proprietary blquery(1) blquery(1) The following three functions abstract this concept for the various platforms and will automatically adapt to the type of server you are dealing with.

7-8 . NAME)’). Example: $ cat patch.The standard CrackLib dictionaries. patch_latest (software) package_latest (software) bundle_latest (software) rpm_latest (software) Although specifically designed for Solaris patches. these functions return a zero length string. show_date (DATE. Install date: Nov 16 2001 cracklib-dicts-2.blq patch_record_count (’NAME = "109793-*" && printf ("%s\n". making it seem like two different patches are installed. patch_version (software) package_version (software) bundle_version (software) rpm_version (software) Return the software’s version number. Because these functions scan through all entries.A password-checking library. NAME.7-8 .blq package_record_count (’NAME = "cracklib*" && printf ("%s . Example: # # Number of hotfixes installed on Windows server # $ blquery win2k -e ’patch_record_count ()’ 25 # # Show install date of the "cracklib" RPMS # $ cat expr. you can find the name of the patch that has the highest version number. if (DATE <= 0. Install date: Nov 16 2001 The following functions let you extract individual fields from a given piece of software. these functions may still have a universal appeal. "%b %d %Y"))) $ blquery linuxdev -E expr. $ blquery solaris8 -E patch. Inc. DESCRIPTION. include the printf call inside of the given expression. you can also use them for reporting.blq cracklib-2. Strictly confidential and proprietary blquery(1) blquery(1) concept of bundles however is supported only by HP-UX machines. The idea is that because the patch name also incorporates a version number (which is also stored in the VERSION field). Not all software has a version number.%s\n Install date: %s\n\n". By using these functions. To do this.blq NSH 4 .Property of BladeLogic. "Unknown install date". In this case. you may have the same patch installed twice but with different versions.

The grammar to be used to scan a given config file is automatically determined by consulting the index file. The supported functions are: config_record_count (configfile. skip) This function returns the record number of the first record in configfile that matches the expression expr. The first record/field is 0. The variable $FIELDS indicates the number of fields in the record. The expr argument is optional.. this function automatically recognizes and interprets specific variable names. For UNIX and Linux systems. For Windows systems. Strictly confidential and proprietary blquery(1) blquery(1) 109793-12 109793-03 $ blquery solaris8 -e ’patch_latest ("109793-*")’ 109793-12 $ blquery solaris8 -e ’patch_version (patch_latest ("109793-*"))’ 12 CONFIG FILE FUNCTIONS The following functions let you access the BladeLogic config files. expr. this function accepts an expression that it matches against each record. "$5 = $HOME && printf (\"%s\n\".. the file is found in <install dir>/om/scripts. As its second parameter. If you omit the expression. This function is often used with the config_field_value() function to identify the particular record you need a field value for. Inc. $1 .’ root daemon sys nobody noaccess nobody4 config_record_number (configfile.Property of BladeLogic. the file is found in /usr/nsh/scripts. expr) This function returns the total number of records in the configfile that match the expression expr. Config files are generally treated as a series of sequential records that contain a number of fields. $N for each respective field in the current record. Example: # # Number of records in password file # $ blquery -h solaris8 -e ’config_record_count ("/etc/passwd")’ 15 # # # # # $ Field 5 is the HOME directory field and as such we are finding all entries in the password file that have "/" as the HOME directory and outputting their user names blquery -h solaris8 -e ’ set_variable ("HOME". "/"). Because you often want to match against specific fields within a record. The variable names matching the (string) fields are $0. config_record_count ("/etc/passwd". If you use it. the function returns the total number of records. $0)"). NSH 5 . The variable $RECORD indicates the current record number you are dealing with. it will skip over the first skip matched records allowing one to find alternate records to the first matching one. The skip parameter is optional.

4)’ Super-User # # # # # $ Output the username of the first account in the password file that has "/usr/bin" as it’s HOME directory blquery -h solaris8 -e ’ set_variable ("PASSWD". 0)’ bin NSH 6 . config_record_number ($PASSWD. config_record_number ($INI. then you can use the config_record_number () function to search for a particular record. If you do not know the specific record number you need a field value from. record. In many cases. "connect CustomerDatabase") config_field_value ($INI. "/etc/passwd") set_variable ("USRBIN". 1) ’ ReadWrite config_field_value (configfile. records occur in a config file in no particular order. "$5 = \"/usr/bin\"")’ 2 # # Scan the Windows INI file and get the value of the entry # "Access" in the "connect CustomerDatabase" section # $ blquery -h win2k -e ’ set_variable ("INI".Property of BladeLogic. "/c/WINNT/MSDFMAP. field) This function returns the value of field field from record record of the config file configfile. 0. "$5 = $USRBIN"). Inc. "Access") set_variable ("CUSTDB". $RECORD. Example: # # Return the GCOS field of the first record in the # passwd file # $ blquery -h solaris8 -e \ ’config_field_value ("/etc/passwd". "/usr/bin") config_field_value ($PASSWD. "($0 = $ACCESS) && (config_parent_field_value ($INI. 0) = $CUSTDB)"). Strictly confidential and proprietary blquery(1) blquery(1) Example: # # Record number for first entry in the passwd file with a HOME # directory of "/usr/bin" # $ blquery -h solaris8 -e \ ’config_record_number ("/etc/passwd".BNI") set_variable ("ACCESS".

"($0 = $ACCESS) && (config_parent_field_value ($INI. 3)’ 2 LOCAL USER AND GROUP ACCOUNTS These functions let you access local user and group accounts. $RECORD. "Access") set_variable ("CUSTDB". HOME SHELL TYPE The user’s HOME directory. If the function returns a negative number (-1). "/c/WINNT/MSDFMAP. and returns the value of field field. These functions work cross platform (UNIX type systems and Windows systems) however some of the available data may be OS specific. Example: # # Scan the Windows INI file and get the value of the entry # "Access" in the "connect CustomerDatabase" section # $ blquery -h win2k -e ’ set_variable ("INI". The user’s initial shell (UNIX) or script (Windows) program.BNI". there is an implicit hierarchy by which particular records may point to a parent record. but ones that do include Windows . The numeric GID of the primary group the user is a member of. config_record_number ($INI.BNI") set_variable ("ACCESS". record) This function returns the parent record number of record record in the config file configfile. field) This function looks at the parent record of record record in the config file configfile. however you can use it in conjunction with the config_record_number() function to find particular records in a file. Although config files are generally treated as flat files. For the user based functions that take a expression as an argument. Details are included below. The name of the primary group the user is a member of. This is the type of account which can be one of: NSH 7 . FULLNAME The configured name of the user. Not all config files have a hierarchy.BNI files and Linux Xinetd config files. The numeric UID of the user. the following dynamic variable are supported. Example: $ blquery -h win2k -e ’ config_parent_record_number ("/c/WINNT/MSDFMAP.Property of BladeLogic. 0) = $CUSTDB)"). 1) ’ ReadWrite config_parent_record_number (configfile. Strictly confidential and proprietary blquery(1) blquery(1) config_parent_field_value (configfile. On its own this function has limited value. then the record does not have a parent record. "connect CustomerDatabase") config_field_value ($INI. Inc. COMMENT The comment associated with the user account. NAME GROUP UID GID The username. record.

Property of BladeLogic. if (TYPE = BUA_ADMIN_ACCOUNT. Inc. This value is a space separated list of the groups to which the user belongs. user_exists (user) This function returns 1 if the given user exists as a local user account. If the date and time is not known this value is 0. If the local account does not exist it returns 0. On Windows systems. NAME. This value is expressed as a time in seconds since the epoch. accounts that are Administrator accounts are of this type. This value is expressed as a time in seconds since the epoch.’ root : Super User Account (uid = 0) daemon : Normal Account (uid = 1) bin : Normal Account (uid = 2) sys : Normal Account (uid = 3) adm : Normal Account (uid = 4) lp : Normal Account (uid = 71) . expr. EXPIRES GROUPS The date and time of the user’s password expiration. accounts that are root (UID = 0) accounts are considered to be of this type. BUA_GUEST_ACCOUNT (3) UNIX systems do not have the concept of guest user accounts and therefore will never be of this type. On Windows systems. UID)"). LASTLOGIN The date and time of the user’s last login. accounts that are Normal accounts are of this type. The supported functions are: user_record_count (expr) This function enumerates through all local user accounts and returns the number of users that match the expression. If the date and time is not known this value is 0. account have this type if they are not root accounts (UID != 0). accounts that are Guest accounts are of this type. . Example: $ blquery linux1 linux2 linux3 -e ’user_exits ("toor")’ linux1: 1 linux2: 0 linux3: 1 NSH 8 . This value is expressed as a time in seconds since the epoch. BUA_NORMAL_ACCOUNT (2) One UNIX systems. Strictly confidential and proprietary blquery(1) blquery(1) BUA_ADMIN_ACCOUNT (1) On UNIX systems. If the date and time is not known this value is 0. \"Normal Account\"). On Windows systems. Example: blquery -e ’user_record_count ()’ 15 $ blquery -e ’user_record_count ( "printf (\"%-8s: %s (uid = %d)\n\". LASTCHANGE The date and time of the user’s last password change. \"Super User Account\".

the function returns an error message. On Windows. Example: $ blquery win2k solaris -e ’user_fullname ("Administrator")’ win2k: Local Administrator Account solaris: Bad argument type: Unknown local user "Administrator" user_comment (user) This function returns the comment associated with the user. For UNIX systems the GECOS field is returned.Property of BladeLogic. the function refers to a start script. On Windows. that field is returned. Example: $ blquery linux solaris -e ’user_homedir ("bin")’ linux: /bin solaris: /usr/bin user_shell (user) This function returns the start program (shell) for when the user logs in. Example: $ blquery linux solaris -e ’user_shell ("lp")’ solaris: /bin/sh linuxdev: /sbin/nologin NSH 9 . If the user does not exist then it returns an error message. that field is returned. If the user does not exist. local user accounts have such a field associated with the account and therefore. Example: $ blquery win2k -e ’user_comment ("Administrator")’ win2k: Built-in account for administering the computer/domain user_homedir (user) This function returns the HOME directory of the user. Inc. If the user does not exist then this function returns an error message. Strictly confidential and proprietary blquery(1) blquery(1) user_uid (user) This function returns the UID of the user. On Windows this value is most often not set and therefore has limited value. the function returns an error message. For UNIX systems the GECOS field is returned. Note that the user_fullname () and user_comment () functions also return the GECOS field for UNIX systems. When it is set. If the user does not exist then it returns an error message. Example: $ blquery linux1 linux2 linux3 -e ’user_uid ("toor")’ linux1: 0 linux2: Bad argument type: Unknown local user "toor" linux3: 2 user_gid (user) This function returns the GID of the user. Example: $ blquery solaris linux -e ’user_gid ("root")’ solaris: 1 linux: 0 user_fullname (user) This function returns the fullname associated with the user. local user accounts have such a field associated with the account and therefore. If the user does not exist then this function returns an error message. On Windows this value is most often not set and therefore has limited value. If the user does not exist.

Example: $ blquery linux solaris -e ’user_type ("root")’ solaris: 1 linuxdev: 1 $ blquery win2k -e ’user_type ("Guest")’ 3 user_last_login (user) This function returns the date and time of last login (as expressed in seconds since the epoch) of user user. the function returns an error message. with respective return values of 1. Otherwise it is a normal account.6. Example: $ blquery solaris8 -e ’user_group_names ("root")’ other root bin sys adm uucp mail tty lp nuucp daemon user_group_gids (user. The optional argument sep must be a string whose first character will be used as the separator for the list of values. Inc. or 3.8. Example: $ blquery solaris8 -e ’user_group_count ("root")’ 11 NSH 10 . these are inherent attributes of a user account. There are three types of possible accounts: . otherwise it returns 0.0.7.Property of BladeLogic. administrator. ". normal. sep) This function returns a string representing a list of user groups to which the user belongs. the function returns 0.5. To display the date of last login in human readable form. sep) This function returns a string representing a list of GIDs to which the user belongs. The default separator is a SPACE character. Example: $ blquery win2k -e ’user_last_login ("Guest")’ 1067983862 $ blquery solaris -e ’show_date (user_last_login ("root"))’ Fri Feb 13 13:30:48 2004 user_locked (user) This function returns value of 1 if the user’s account is locked. For UNIX systems. Strictly confidential and proprietary blquery(1) blquery(1) user_type (user) This function returns the type of user account user is. The default separator is a SPACE character. an account is considered to be locked if you can unlock it without having to provide a new password.4. For Windows. There are no guest accounts for UNIX systems. Example: $ blquery solaris8 -e ’user_group_gids ("root".3. The optional argument sep must be a string whose first character will be used as the separator for the list of values.9. Example: $ blquery win2k -e ’user_locked ("Administrator")’ 0 $ blquery solaris -e ’user_locked ("Oracle")’ 1 user_group_names (user.2. account type is one of the inherent account properties while for Unix systsems an account is an administrator account if the UID is 0. use the show_date () function. 2. If the user does not exist.")’ 1. and guest. If the function cannot determine a date of last login for the user. For Windows systems.12 user_group_count (user) This function returns the number of groups to which the user belongs.

The optional argument sep must be a string whose first character will be used as the separator for the list of values. sep) This function returns a string representing a list of users who are members of the given local user group. Example: blquery -e ’group_record_count ()’ 18 $ cat showgroups. Example: $ blquery win2k -e ’group_comment ("Administrators")’ Administrators have complete and unrestricted access to the computer/dom group_members (group. Strictly confidential and proprietary blquery(1) blquery(1) For the group based functions that take an expression as an argument.Property of BladeLogic. group Example: $ blquery solaris -e ’group_gid ("other")’ 1 group_comment (group) This function returns the comment field of the given local user group. $ cat showgroups. group_gid (group) This function returns the GID of the given local user. If the local account does not exist it returns 0. Example: NSH 11 . Inc.blq | blquery solaris -E Group GID ----------------root 0 other 1 bin 2 . The group related functions are: group_exists (group) This function returns 1 if the given group exists as a local group account. The default separator is a SPACE character. NAME. . The users who are members of the group (space separated) COMMENT The comment string associated with the group. the following dynamic variables are supported.blq printf ("Group GID\n"). printf ("-----------------\n"). group_record_count (’printf ("%-10s %d\n". The numeric GID of the user. NAME GID MEMBERS The groupname. Example: $ blquery linux solaris win2k -e ’group_exits ("uucp")’ linux: 1 solaris: 1 win2k: 0 group_record_count (expr) This function returns the number of groups that match the expression expr. GID)’).

255. address of the first interface that matches the expression expr as a string in the standard 4 octet notation. and returns the name of the first interface that matches the expression expr. and returns the MAC address of the first interface that matches the expression expr. This argument identifies the particular adapter you want to query. IN OUT The number of bytes received by the adapter (supported only on Solaris and Linux) The number of bytes sent by the adapter (supported only on Solaris and Linux) The name of the adapter (for example "hme0") The adapter’s MAC address.P.40 net_subnet_mask (expr) This function enumerates the available adapters. NAME MAC IP SUBNET BROADCAST The adapter’s broadcast address in the standard 4 octet notation. The supported network functions are: net_interface_name (expr) This function enumerates the available adapters.uucp group_member_count (group) This function returns the number of users who are members of the local user group.0 NSH 12 .20. The adapter’s I. Inc. Strictly confidential and proprietary blquery(1) blquery(1) $ blquery solaris8 -e ’group_members ("uucp".P.30. Example: $ blquery win2k -e ’group_member_count ("Administrator")’ 6 NETWORK ADAPTERS The following functions let you query against the configured network adapters and their respective settings. and returns the I. All of these functions take an expression as an argument.*\"")’ solaris: hme0 linux: eth0 net_mac_address (expr) This function enumerates the available adapters. address in the standard 4 octet notation. Example: $ blquery solaris8 -e ’net_mac_address ("NAME = \"hme0\"")’ 08:00:20:c1:d6:8c net_ip_address (expr) This function enumerates the available adapters.20.")’ root.255.30.30. Each hex value is treated as a two character value using lower case alpha characters. The adapter’s subnet mask in the standard 4 octet notation. Example: $ blquery solaris linux -e ’net_interface_name ("IP = \"10. ".Property of BladeLogic. and returns the subnet mask of the first interface that matches the expression expr as a string in the standard 4 octet notation.20. you can use the following dynamic variables. Within these expressions. Example: $ blquery solaris8 -e ’net_ip_address ("NAME = \"hme0\"")’ 10. Example: $ blquery solaris8 -e ’net_subnet_mask ("IP = \"10.40\"")’ 255.

Example: $ blquery solaris8 -e ’net_broadcast_address ("IP = \"10. If you do not specify expr. 1. $ blquery solaris8 -E speed. and returns the status flag for the first interface that matches the expression expr. "Half Duplex". "100 Mb". 4. This function returns useful information for Solaris and Linux servers only. "1Gb". The interface is running in half duplex mode. This function returns useful information for Solaris and Linux servers only. "Full Duplex". The return value is a 64 bit integer.255 net_bytes_in (expr) This function enumerates the available adapters.30. The status flag of an interface is a series of bits that may have the following values (available only on Solaris) 1 2 4 32 64 The interface is running at a speed of 10Mb/sec. the function matches all adapters.20. 2. "Auto"))).30. NSH 13 . and returns the broadcast address of the first interface that matches the expression expr as a string in the standard 4 octet notation. and returns the number of bytes sent by the first interface that matches the expression expr. if ($FLAGS & 64. Strictly confidential and proprietary blquery(1) blquery(1) net_broadcast_address (expr) This function enumerates the available adapters. Example: $ cat speed. net_flags (’NAME = "hme0"’)) printf if if if ("SPEED ($FLAGS ($FLAGS ($FLAGS = & & & %s/sec (%s)0. and returns the number of bytes received by the first interface that matches the expression expr. if ($FLAGS & 32. "NA"))). "10 Mb".20.blq set_variable ("FLAGS". Inc. The interface is running at a speed of 1000Mb/sec (1 Gb/sec). Example: $ blquery solaris8 -e ’net_bytes_in ("NAME = \"hme0\"")’ 330533685 net_flags (expr) This function enumerates the available adapters.40\"")’ 10. Example: $ blquery solaris8 -e ’net_bytes_in ("NAME = \"hme0\"")’ 651703216 net_bytes_out (expr) This function enumerates the available adapters.blq SPEED = 100 Mb/sec (Auto) net_record_count (expr) This function enumerates all available adapters and returns the number of adapters that match the expression expr. The return value is a 64 bit integer. The interface is running at a speed of 100Mb/sec. The interface is running in full duplex mode.Property of BladeLogic.

SUBNET)’). the function returns the maintenance release.21. Other platforms.255.1 win2k: 5.0. Different operating systems deal with this in different ways. Inc.0 SYSTEM STATISTICS FUNCTIONS (NTOP VALUES) blquery has a generic mechanism to access ntop data. such as Solaris and HPUX return a zero length string (meaning no value). os_name () This function return the name of the operating system of each host.blq printf ("INTERFACE IP ADDRESS SUBNET MASK\n").0 hme0 10.00 os_patch () This function returns the maintenance release of the each host.1 255. It also has a series of pre-defined wrapper functions where you do not need to know any ntop details to get the information.20. Example: $ blquery -h solaris8 linux win2k -e ’os_patch ()’ solaris8: linux: 2.8 linux: 7.0 hpux11: B.11.255.0. net_record_count (’printf ("%-10s %12s %15s\n".0. On Linux.2-2 win2k: SP3 sys_cpu_count () This function returns the number of CPUs on the system. followed by the generic functions.101 255.Property of BladeLogic.blq INTERFACE IP ADDRESS SUBNET MASK lo0 127. Example: $ blquery -h solaris8 linux win2k -e ’sys_cpu_count ()’ solaris8: 4 linux: 2 win2k: 1 NSH 14 . On Windows. the function returns the kernel release number. IP. the function returns the Service Pack. $ blquery solaris8 -E adapters. Example: $ blquery solaris8 linux win2k hpux11 -e ’os_name ()’ solaris8: SunOS linux: RedHat win2k: WindowsNT hpux11: HP-UX os_release () This function return the OS release for each host.0. On AIX. Strictly confidential and proprietary blquery(1) blquery(1) Example: $ blquery solaris8 -e ’net_record_count ()’ 2 $ cat adapters. The wrapper functions are described first. Example: $ blquery solaris8 linux win2k hpux11 -e ’os_release ()’ solaris8: 5. NAME.4.

1000 stat_proc_count () This function returns the number of processes running on the system.9100 win2k: 0.5100 linux: 0. Not all systems return a value. Example: $ blquery -h solaris8 linux win2k -e ’stat_swap_capacity ()’ solaris8: 0. Example: $ blquery -h solaris8 linux win2k -e ’stat_mem_capacity ()’ solaris8: 0. Inc.0100 linux: 0.Property of BladeLogic. Strictly confidential and proprietary blquery(1) blquery(1) sys_cpu_speed () This function returns the CPU speed in MHz.0300 win2k: 0. Example: $ blquery -h solaris8 linux win2k -e ’sys_swap ()’ solaris8: 513 linux: 258 win2k: 2047 stat_load_average () This function returns the systems load average as a floating point value. Example: $ blquery -h solaris8 linux win2k -e ’stat_proc_count ()’ solaris8: 43 linux: 57 win2k: 38 NSH 15 .0800 win2k: 0. Example: $ blquery -h solaris8 linux win2k -e ’stat_load_average ()’ solaris8: 0. Example: $ blquery -h solaris8 linux win2k -e ’sys_memory ()’ solaris8: 256 linux: 128 win2k: 511 sys_swap () This function returns the total amount of swap space in MB as reported by the OS.4100 stat_swap_capacity () This function returns the percentage of swap space used on the system.1400 stat_mem_capacity () This function returns the percentage of memory used on the system. Example: $ blquery -h solaris8 linux win2k -e ’sys_cpu_speed ()’ solaris8: 440 linux: 2386 win2k: 797 sys_memory () This function returns the total amount of main memory in MB as reported by the OS.0100 linux: 0.

Check the individual ntop commands for more details. "NET".8000 win2k: 0. "STATS". In this case. Some columns have a two word name. "/C". Example: $ blquery -h solaris8 linux win2k -e \ ’df_capacity (if (os_name () = "WindowsNT". use the first word of the name to identify the column. Example: $ blquery -h solaris8 linux win2k -e \ ’df_free (if (os_name () = "WindowsNT". column. "/usr"))’ solaris8: 2056211 linux: 1035660 win2k: 39045982 df_used (partition) This function returns the number of used blocks (in KB) of the named partition. "/C". Example: $ blquery -h solaris8 linux win2k -e \ ’df_total (if (os_name () = "WindowsNT". "/usr"))’ solaris8: 1281020 linux: 206128 win2k: 29466303 df_capacity (partition) This function returns the percentage of used disk space of the named partition.2500 The following functions are generic functions to access ntop data.Property of BladeLogic. Strictly confidential and proprietary blquery(1) blquery(1) stat_uptime () This function returns the number seconds that the machine has been running (meaning the number of seconds since it was booted). "/C". expr) This function calls up the ntop data of type type (one of "PS". "/usr"))’ solaris8: 775191 linux: 829532 win2k: 9579678 df_free (partition) This function returns the number of free blocks (in KB) of the named partition. Inc. "/C". "/usr"))’ solaris8: 0.3800 linux: 0. Column names are specific to the particular ntop data type. or "MEM") and returns the value the field named by column of the first record that matches the expression expr. Example: $ blquery -h solaris8 linux win2k -e ’stat_uptime ()’ solaris8: 2524551 linux: 598933 win2k: 107898 df_total (partition) This function returns size in KB of the named partition. A quick guideline is that if you run the corresponding ntop command. "DF". ntop_value (type. "OVER". NSH 16 . Example: $ blquery -h solaris8 linux win2k -e \ ’df_used (if (os_name () = "WindowsNT". the first line of output consists of the column names.

the function returns the appropriate field value (based on column name). the function will loop through all records and apply the expression to each record. ntop_sum ("DF".Property of BladeLogic. "MEM". $HOSTNAME. Records that do not match the expression are not included in the summary. Example: # # Same as stat_swap_capacity () # $ blquery solaris8 linux -e ’ntop_value ("STATS". If you specify an expression as a string. the function returns the field value of the first record. the function considers the numeric to be the specific record number you want to access. a value of -1 means the last record).0100 # # Same as calling df_capacity ("/usr") # $ blquery linux -e ’ntop_value ("DF". You may use column names to construct the expression. Column names and ntop data types are equivalent to the workings of the ntop_value function (see above).0) ’ Total free space on linux : 7911. If you do not specify an expression. the total amount of free disk space # $ blquery -h linux solaris8 win2k -e ’ sprintf ("Total free space on %-9s: %8. "SWAP")’ solaris8: 0.0890 # # For each server.1f MB".1480 linux2: 0. When a record matches the expression (expression evaluates to true). "(USER = $APACHE_USER) && (COMMAND = $APACHE_PROCNAME)") ’ linux1: 0. "MOUNTED = \"/usr\"")’ linux: 0. Strictly confidential and proprietary blquery(1) blquery(1) The expression argument (third argument) is useful for ntop data that consists of more than a single output record (such as. expr) This function returns the sum of a series of ntop fields (named by column) of type type that match the expression expr. Example: # # For each server. "DF" and "PS"). "CAPACITY". "*httpd*") ntop_sum ("PS". it returns a value of -1. column. If the function does not find any matching records. "apache") set_variable ("APACHE_PROCNAME". The first record is 0. Negative numbers tell the function to start looking from the back of the list (for example.1200 linux: 0.2 MB NSH 17 . If the expression is a numeric.3800 ntop_sum (type.0560 linux3: 0. Inc. "FREE") / 1024. the sum of memory usage (as %) # of all apache processes # $ blquery linux1 linux2 linux3 -e ’ set_variable ("APACHE_USER".

8 MB 36208. Therefore. All registry key paths in Windows are backslash (\) separated. "CAPACITY") * 100) ’ Average disk capacity on linux : 45. Strictly confidential and proprietary blquery(1) blquery(1) Total free space on solaris8 : Total free space on win2k : 12101.0 MB ntop_average (type.6% ntop_record_count (type. expr) This function works just like the ntop_sum function with the exception that it returns the average value of the matched entries instead of the sum of the values. If expr is not given. ntop_average ("DF". "COMMAND = \"*java*\"")’ linux: 8 solaris8: 13 win2k: 16 WINDOWS REGISTRY FUNCTIONS The following functions let you query a Windows registry. Inc. then it return the total number of entries. Whenever you want to use a backslash in an expression string in NSH. separate your registry key paths with two backslashes. $HOSTNAME. otherwise it returns 0. within an expression string.1% Average disk capacity on win2k : 7. Registry paths must always be absolute including the root hive name (for example. Example: # # Total number of processes running # $ blquery linux solaris8 win2k -e ’ntop_record_count ("PS")’ linux: 46 solaris8: 48 win2k: 44 # # Total number of java processes running # $ blquery linux solaris8 win2k -e ’ ntop_record_count ("PS".4% Average disk capacity on solaris8 : 13. for example: "HKEY_LOCAL_MACHINE\\SOFTWARE". "HKEY_LOCAL_MACHINE"). Example: # # Average free disk space of several servers # $ blquery -h linux solaris8 win2k -e ’ sprintf ("Average disk capacity on %-9s: %4. Example: $ blquery win2k -e \ ’reg_key_exists ("HKEY_LOCAL_MACHINE\\SOFTWARE")’ 1 NSH 18 . expr) This function returns the number of entries in the ntop data type that match the expression expr.Property of BladeLogic. reg_key_exists (keypath) This function returns 1 if the registry key keypath exists. column. you need to escape it.1f%%".

REG_BINARY. There are no NSH 19 . etc. REG_LINK. Each hex value consists of two (zero filled) hex characters. otherwise it returns 0. REG_NONE Returns a zero length string. and all others Returns a string consisting of the hex values of each item in the array of values. REG_MULTI_SZ Returns a string containing all strings in the multi string space separated. Inc. int. Since -1 is a possible valid value of a registry value. string. Strictly confidential and proprietary blquery(1) blquery(1) reg_value_exists (valpath) This function returns 1 if the registry value valpath exists. when storing the results of a reg_value command in a variable (as shown in the following examples).) depends on the registry value type. you need to escape the backslashes (\) in the path of the registry value as follows: • Use two backslashes when using the $() form • Use four backslashes when using the ‘‘ form (back-tick form) $ LANG=$(blquery -h win2k -e ’reg_value("HKEY_LOCAL_MACHINE \\SOFTWARE\\INTEL\\CurrentLanguage")’) $ echo $LANG $ ENU $ LANG=‘blquery -h win2k -e ’reg_value("HKEY_LOCAL_MACHINE \\\\SOFTWARE\\\\INTEL\\\\CurrentLanguage")’‘ $ echo $LANG $ ENU The return type (for example.Property of BladeLogic. REG_EXPAND_SZ Returns a string. If valpath is not a valid registry path then the function returns -1. Example: $ blquery -h win2k -e ’ reg_value_exists ("HKEY_LOCAL_MACHINE\\SOFTWARE\\INTEL\\CurrentLanguage")’ 1 reg_value (valpath) This function returns the value of registry value valpath. use this function in conjunction with the reg_value_exists function to determine if the registry value exists. REG_SZ. REG_DWORD_BIG_ENDIAN Returns a 32 bit integer value. Examples: $ blquery -h win2k -e ’ reg_value ("HKEY_LOCAL_MACHINE\\SOFTWARE\\INTEL\\CurrentLanguage")’ ENU $ blquery -h win2k -e ’reg_value ( "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Lsa\\bounds" )’ 0030000000200000 Note. The supported types are: REG_DWORD.

Display name of service (long name). "MANUAL". the function returns 0. if you specified an out of range record number. In the case of a string. If service is an integer. If you do not specify expr. or if you are not accessing a Windows server then the function returns 0. service_exists (name) This function returns 1 if the Windows service name (as defined by the service’s display name) exists. Example: $ blquery -h win2k -e ’service_exists ("MySql")’ win2k: 1 service_running (service) This function returns 1 if the named service exists and is currently running. service is taken to be a service name (as defined by the service’s display name). it is taken to be a record number as returned by service_record_number ().Property of BladeLogic. These (sub) expressions support the following dynamic variable names: NAME DISPLAY STATUS STARTUP LOGON Name of service (short name). DESCRIPTION Description of service. If accessing a non Windows server or if the service does not exist. If the service does not exist. One of "BOOT_START". the function returns the total number of configured services. or "PENDING". "*\\mysqld-nt. "STOPPED". Account name service is run as. if it is not running. There are several functions that let you pass an expression to find a matching service.exe" is running # $ blquery -h win2k -e ’ set_variable ("EXE". See the top of this section for dynamic variable names and their possible values. or "DISABLED". Example: $ blquery -h win2k -e ’service_running ("MySql")’ 1 # # Check if the service that runs "mysqld-nt. Strictly confidential and proprietary blquery(1) blquery(1) spaces between the array values. Example: # # Total number of services currently disabled # $ blquery win2k -e ’ set_variable ("DISABLED". service can be either a string or an integer. WINDOWS SERVICES FUNCTIONS The following functions let you query Windows services.exe") service_running (service_record_number ("PRORGAM = $EXE"))’ 1 service_record_count (expr) This function returns the number of services that match the expression expr. "SYSTEM_START". One of "RUNNING". "DISABLED") NSH 20 . "AUTO_START". Inc. PROGRAM Name of executable used by service.

See the top of this section for dynamic variable names that can be used in this expression. you can use it in other services functions. "AUTO_START". "SYSTEM_START". Example: # # Find out if the service using the executable # "mysqld-nt. $RUNNING). $STOPPED). to access particular service records. service_record_count (’STATUS = "PENDING"’)) printf printf printf printf ("Total services: %d\n". "STOPPED".blq set_variable ("RUNNING". Strictly confidential and proprietary blquery(1) blquery(1) service_record_count ("STARTUP = $DISABLED")’ 1 # # Services summary # $ cat expr. Returns one of the following strings:"RUNNING". Returns the display name of service (long name). (" RUNNING: %d\n". skip) This function returns the record number for the first service that matches the expression expr. service_record_count ()). NAME DISPLAY STATUS STARTUP LOGON Returns the name of service (short name). or "DISABLED". The optional skip parameter tells the function to skip the first skip number of matched records.exe" is running or not. "MANUAL". or "PENDING".exe") service_running (service_record_number ("PRORGAM = $EXE")) ’ 1 service_field_value (service. field should be one of the following string values. This function is useful when you do not yet know the name of the service that you will be dealing with.blq Total services: 63 RUNNING: 35 STOPPED: 28 PENDING: 0 service_record_number (expr. DESCRIPTION Returns the description of the service. (" PENDING: %d\n". field) This function returns the string value of a particular service field. Once you get this record number.Property of BladeLogic. "*\\mysqld-nt. service_record_count (’STATUS = "RUNNING"’)) set_variable ("STOPPED". # $ blquery -h win2k -e ’ set_variable ("EXE". $ blquery win2k -E expr. NSH 21 . Returns one of the following strings: "BOOT_START". service_record_count (’STATUS = "STOPPED"’)) set_variable ("PENDING". Returns the account name service is run as. $PENDING). Inc. (" STOPPED: %d\n".

Example: # # Get the name of the executable associated with # the MySql service # $ blquery win2k -e ’ service_field_value ("MySql". NOTES The blquery utility itself is a very short program.exe # # The same again # $ blquery win2k -e ’ set_variable ("MYSQL". Inc.exe CAVEATS Windows Services queries against the local server are not supported. nover (NSH). nps (NSH). nnet (NSH) NSH 22 . It just interfaces the underlying blquery API. "PROGRAM") ’ C:\nsh\mysql\bin\mysqld-nt. nstats (NSH). Returns zero length string. Strictly confidential and proprietary blquery(1) blquery(1) PROGRAM <other> Returns the name of the executable used by the service. ntop (NSH). In the case of a string. "PROGRAM")’ C:\nsh\mysql\bin\mysqld-nt. If service is an integer. it is taken to be a record number as returned by service_record_number (). "MySql") service_field_value ( service_record_number ("NAME = $MYSQL"). The argument service can be either a string or an integer. ORIGIN blquery was written by Thomas Kraus SEE ALSO blexpr (NSH). service is taken to be a service name (as defined by the service’s display name). ndf (NSH). nmem (NSH).Property of BladeLogic.

where <xy> is the hexadecimal value of the location of the shared memory segment. Inc. This shared memory segment is only usable for the user who ran bl_srp_agent. Other programs can use the information cached by bl_srp_agent whether bl_srp_agent is running in the foreground or background. If you do not use this option. Inc. EXAMPLE bl_srp_agent --background ORIGIN bl_srp_agent was developed by BladeLogic. bl_srp_agent runs in the background with the user information cached in a shared memory segment. password. the system prompts for a user ID.bl_srp_agent(1) Property of BladeLogic. After you provide this information. set the BL_SRP_INFO environment variable by issuing the following command: BL_SRP_INFO=<xy> Export the BL_SRP_INFO environment variable by issuing the following command: export BL_SRP_INFO The bl_srp_agent program remains in the background holding the user information cached in a shared memory segment until you kill it. bl_srp_agent runs in the foreground. OPTIONS --background Instructs bl_srp_agent to run in the background. After entering your user information. When you run bl_srp_agent. NSH 1 . and role. the system generates a message like the following: set BL_SRP_INFO to <xy> to reuse this private key. Strictly confidential and proprietary bl_srp_agent(1) NAME bl_srp_agent − activate a user information cache on UNIX SYNOPSIS bl_srp_agent --background DESCRIPTION The bl_srp_agent command activates a user information cache on UNIX. To reuse this shared memory segment with Network Shell.

password. After you provide this information. bl_srp_agent runs in the background with the user information cached in a shared memory segment. Inc. To reuse this shared memory segment with Network Shell. set the BL_SRP_INFO environment variable by issuing the following command: BL_SRP_INFO=<xy> Export the BL_SRP_INFO environment variable by issuing the following command: export BL_SRP_INFO The bl_srp_agent program remains in the background holding the user information cached in a shared memory segment until you kill it. Inc. NSH 1 . and role. After entering your user information. If you do not use this option. When you run bl_srp_agent. the system generates a message like the following: set BL_SRP_INFO to <xy> to reuse this private key. Strictly confidential and proprietary bl_srp_agent(1) NAME bl_srp_agent − activate a user information cache on UNIX SYNOPSIS bl_srp_agent --background DESCRIPTION The bl_srp_agent command activates a user information cache on UNIX. bl_srp_agent runs in the foreground.bl_srp_agent(1) Property of BladeLogic. OPTIONS --background Instructs bl_srp_agent to run in the background. Other programs can use the information cached by bl_srp_agent whether bl_srp_agent is running in the foreground or background. EXAMPLE bl_srp_agent --background ORIGIN bl_srp_agent was developed by BladeLogic. This shared memory segment is only usable for the user who ran bl_srp_agent. where <xy> is the hexadecimal value of the location of the shared memory segment. the system prompts for a user ID.

0 bzcat − decompresses files to stdout bzip2recover − recovers data from damaged bzip2 files SYNOPSIS bzip2 [ −cdfkqstvzVL123456789 ] [ filenames . The command-line options are deliberately very similar to those of GNU gzip. as this would be entirely incomprehensible and therefore pointless.bzip2(1) Property of BladeLogic. ] bzcat [ −s ] [ filenames .bz2".bz becomes filename filename. but they are not identical. supplying no filenames causes decompression from standard input to standard output.out appended. bzip2 expects a list of file names to accompany the command-line flags. and uses the original name with . ownership as the corresponding original. bunzip2 (or bzip2 −d) decompresses all specified files..tar anyothername becomes anyothername.. bunzip2 − a block-sorting file compressor.tbz. permissions. Each compressed file has the same modification date. v1. when possible..tbz becomes filename. You can also compress or decompress files to the standard output by giving the −c flag.bz. Integrity testing (−t) of concatenated compressed files is also supported. In this case. bzip2 will decline to write compressed output to a terminal.bz2. The result is the concatenation of the corresponding uncompressed files. and a warning issued. such as MS-DOS.. .out If the file does not end in one of the recognised endings. Strictly confidential and proprietary bzip2(1) NAME bzip2. bzip2 attempts to guess the filename for the decompressed file from that of the compressed file as follows: filename. 1 . . bunzip2 will correctly decompress a file which is the concatenation of two or more compressed files. and Huffman coding. File name handling is naive in the sense that there is no mechanism for preserving original file names. ] bzip2recover filename DESCRIPTION bzip2 compresses files using the Burrows-Wheeler block sorting text compression algorithm.tar filename. If no file names are specified. . permissions. Compression is generally considerably better than that achieved by more conventional LZ77/LZ78-based compressors. Files which were not created by bzip2 will be detected and ignored.tbz2 becomes filename. or have serious file name length restrictions. The resulting outputs are fed sequentially to stdout. Inc. specify the −f flag. ] bunzip2 [ −fkvsVL ] [ filenames . If you want this to happen. Multiple files may be compressed and decompressed like this. bzip2 and bunzip2 will by default not overwrite existing files.. bzip2 compresses from standard input to standard output. so that these properties can be correctly restored at decompression time. and approaches the performance of the PPM family of statistical compressors.tbz2 or . and.bz2 becomes filename filename. bzip2 complains that it cannot guess the name of the original file. As with compression. ownerships or dates in filesystems which lack these concepts. with the name "original_name. Each file is replaced by a compressed version of itself..

in that order. if your machine is low on memory (8 megabytes or less). that the check occurs upon decompression. bzip2. Random data (including the output of most file compressors) is coded at about 8. but don’t decompress them. Files of less than about one hundred bytes tend to get larger. See MEMORY MANAGEMENT below. Normally. and against undetected bugs in bzip2 (hopefully very unlikely).5%. −d --decompress Force decompression. and will process them before any arguments read from the command line. You can use bzip2recover to try to recover data from damaged files. use −s for everything. −k --keep Keep (don’t delete) input files during compression or decompression. which limits memory use to around the same figure. invalid flags. bug) which caused bzip2 to panic. Such a stream can be decompressed correctly only by bzip2 version 0. and the decision about what actions to take is done on the basis of which name is used. bzip2 will read arguments from the environment variables BZIP2 and BZIP. It can’t help you recover the original uncompressed data. −f --force Force overwrite of output files. for compression.bzip2(1) Property of BladeLogic. at the expense of your compression ratio. about one chance in four billion for each file processed. −s selects a block size of 200k. I/O errors. OPTIONS −c --stdout Compress or decompress to standard output. Files are decompressed and tested using a modified algorithm which only requires 2.05 bits per byte. Also forces bzip2 to break hard links to files. Be aware. Inc. The chances of data corruption going undetected is microscopic. This flag overrides that mechanism. −s --small Reduce memory usage. decompression and testing. and forces bzip2 to decompress. regardless of the invokation name. This guards against corruption of the compressed data. This really performs a trial decompression and throws away the result. though. −t --test Check integrity of the specified file(s). 1 for environmental problems (file not found. This gives a convenient way to supply default arguments. so it can only tell you that something is wrong. During compression.5 bytes per block byte. bzip2 will not overwrite existing output files. bzip2 uses 32-bit CRCs to make sure that the decompressed version of a file is identical to the original. 2 to indicate a corrupt compressed file. Earlier versions of bzip2 will stop after decompressing the first file in the stream. giving an expansion of around 0. Compression is always performed. since the compression mechanism has a constant overhead in the region of 50 bytes. 2 . &c). even if the compressed file is slightly larger than the original. In short. This means any file can be decompressed in 2300k of memory.9. As a self-check for your protection. bzcat (or bzip2 -dc) decompresses all specified files to the standard output. 3 for an internal consistency error (eg. Strictly confidential and proprietary bzip2(1) Compression of multiple files in this manner generates a stream containing multiple compressed file representations.0 or later. which it otherwise wouldn’t do. −z --compress The complement to −d: forces compression. albeit at about half the normal speed. Return values: 0 for a normal exit. bunzip2 and bzcat are really the same program.

See MEMORY MANAGEMENT below. −1 to −9 Set the block size to 100 k.5 x block size ) Larger block sizes give rapidly diminishing marginal returns. Inc. They provided some coarse control over the behaviour of the sorting algorithm in earlier versions. The relevant flag is -s. For example.9. in bytes. To support decompression of any file on a 4 megabyte machine. Decompression speed is also halved. It is also important to appreciate that the decompression memory requirement is set at compression time by the choice of block size. MEMORY MANAGEMENT bzip2 compresses large files in blocks. and the amount of memory needed for compression and decompression.9. a fact worth bearing in mind when using bzip2 on small machines. about 2300 kbytes.−myfilename.000 bytes through 900. Has no effect when decompressing.that means most files you’d encounter using a large block size. Compression and decompression speed are virtually unaffected by block size. The flags −1 through −9 specify the block size to be 100. Compression and decompression requirements. since that maximises the compression achieved. since the file is smaller than a block. −-repetitive-fast --repetitive-best These flags are redundant in versions 0. the block size used for compression is read from the header of the compressed file. At decompression time. it follows that the flags −1 to −9 are irrelevant to and so ignored during decompression. 200 k . −v --verbose Verbose mode -. but only touch 400k + 20000 * 8 = 560 kbytes of it. try and use the largest block size memory constraints allow. In general. or 100k + ( 2. −Treats all subsequent arguments as file names. This is so you can handle files with names beginning with a dash.000 bytes (the default) respectively. license terms and conditions. Strictly confidential and proprietary bzip2(1) −q --quiet Suppress non-essential warning messages. so you should use this option only where necessary. which was sometimes useful. Further −v’s increase the verbosity level. even if they start with a dash. 0. Messages pertaining to I/O errors and other critical events will not be suppressed. The amount of real memory touched is proportional to the size of the file.5 and above. and bunzip2 then allocates itself just enough memory to decompress the file. Another significant point applies to files which fit in a single block -. 3 . bunzip2 will require about 3700 kbytes to decompress. The block size affects both the compression ratio achieved.000 bytes long with the flag -9 will cause the compressor to allocate around 7600k of memory. For files compressed with the default 900k block size. for example: bzip2 −.show the compression ratio for each file processed.bzip2(1) Property of BladeLogic. Most of the compression comes from the first two or three hundred k of block size. Similarly. bunzip2 has an option to decompress using approximately half this amount of memory. the decompressor will allocate 3700k but only touch 100k + 20000 * 4 = 180 kbytes. 900 k when compressing.. can be estimated as: Compression: 400k + ( 8 x block size ) Decompression: 100k + ( 4 x block size ). −L --license -V --version Display the software version. compressing a file 20. spewing out lots of information which is primarily of interest for diagnostic purposes. Since block sizes are stored in compressed files.5 and above have an improved algorithm which renders these flags irrelevant.

Versions 0. bzip2 usually allocates several megabytes of memory to operate in. and write each block out into its own ... You can then use bzip2 −t to test the integrity of the resulting files.for example. Strictly confidential and proprietary bzip2(1) Here is a table which summarises the maximum memory usage for different block sizes. this figure was more like 100:1. files containing very long runs of repeated symbols. and decompress those which are undamaged. containing the extracted blocks. the name of the damaged file.bz2".lists the files in the correct order. The output filenames are designed so that the use of wildcards in subsequent processing -. etc.bz2 files. since a damaged block cannot be recovered. both for compressing and decompressing. as these will contain many blocks. usually 900kbytes long. "bzip2 -dc rec*file.bz2 files. It is clearly futile to use it on damaged single-block files. bzip2recover is a simple program whose purpose is to search for blocks in . This means that performance. Because of this. since the Corpus is dominated by smaller files.bz2 file.9. small changes to the 4 .bz2 > recovered_data" -.bzip2(1) Property of BladeLogic. is largely determined by the speed at which your machine can service cache misses.141. Decompression speed is unaffected by these phenomena.bz2 file to become damaged. PERFORMANCE NOTES The sorting phase of compression gathers together similar strings in the file. if you want. The ratio between worst-case and average-case compression time is in the region of 10:1.bz2". and writes a number of files "rec0001file. Each block also carries its own 32-bit CRC. Inc. so damaged blocks can be distinguished from undamaged ones.622 bytes. and then charges all over it in a fairly random fashion. Each block is handled independently. If you wish to minimise any potential data loss through media or transmission errors." (repeated several hundred times) may compress more slowly than normal. This column gives some feel for how compression varies with block size. which makes it possible to find the block boundaries with reasonable certainty. bzip2recover should be of most use dealing with large . Also recorded is the total compressed size for 14 files of the Calgary Text Compression Corpus totalling 3. If a media or transmission error causes a multi-block .5 and above fare much better than previous versions in this respect. "rec0002file. For previous versions. Because of this. The compressed representation of each block is delimited by a 48-bit pattern. bzip2recover takes a single argument. like "aabaabaabaab . it may be possible to recover data from the undamaged blocks in the file. You can use the −vvvv option to monitor progress in great detail. These figures tend to understate the advantage of larger block sizes for larger files. you might consider compressing with a smaller block size. Compress Decompress Decompress Corpus Flag usage usage -s usage Size -1 -2 -3 -4 -5 -6 -7 -8 -9 1200k 2000k 2800k 3600k 4400k 5200k 6100k 6800k 7600k 500k 900k 1300k 1700k 2100k 2500k 2900k 3300k 3700k 350k 600k 850k 1100k 1350k 1600k 1850k 2100k 2350k 914704 877703 860338 846899 845160 838626 834096 828642 828642 RECOVERING DATA FROM DAMAGED FILES bzip2 compresses files in blocks.

0 and above can correctly decompress multiple concatenated compressed files.1pl2 cannot do this. 0. but with the following exception: 0. AUTHOR Julian Seward.co. Christian von Roques encouraged me to look for faster sorting algorithms. I am much indebted for their help. it will stop after decompressing just the first file in the stream. Many people sent patches. but the details of what the problem is sometimes seem rather misleading. so it cannot handle compressed files more than 512 megabytes long. Peter Fenwick (for the structured coding model in the original bzip. gave advice and were generally helpful.0 and 0.1pl2. jseward@acm. lent machines.9. This manual page pertains to version 1. David Wheeler (again.org. helped with portability problems.5.com/bzip2 http://www. bzip2recover uses 32-bit integers to represent bit positions in compressed files. 5 . CAVEATS I/O error messages are not as helpful as they could be. Bela Lubkin encouraged me to improve the worst-case compression performance. and many refinements). for the Huffman coder). See the manual in the source distribution for pointers to sources of documentation.cygnus.0 of bzip2. and Alistair Moffat.demon. Compressed data created by this version is entirely forwards and backwards compatible with the previous public releases. Radford Neal and Ian Witten (for the arithmetic coder in the original bzip). This could easily be fixed.bzip2(1) Property of BladeLogic. bzip2 tries hard to detect I/O errors and exit cleanly. versions 0. http://sourceware. Inc. 0. so as to speed up compression.uk The ideas embodied in bzip2 are due to (at least) the following people: Michael Burrows and David Wheeler (for the block sorting transformation). I imagine bzip2 will perform best on machines with very large caches.muraroa. support and advice. Strictly confidential and proprietary bzip2(1) code to reduce the miss rate have been observed to give disproportionately large performance improvements.9.9.

more(1). Strictly confidential and proprietary CAT (1) NAME cat − concatenate and print files SYNOPSIS cat [ −benstuv] [file . . Note that if the standard input referred to a file. EXAMPLES Print the contents of file1 to the standard output: $ cat file1 Sequentially print the contents of file1 and file2 to the file file3. print the contents of file2. can be made visible via the −t option. $ cat file1 file2 > file3 Print the contents of file1.2-1992 (“POSIX. sh(1)) for more information on redirection. since the entire contents of the file would have already been read and printed by cat when it encountered the first ‘-’ operand. The output is guaranteed to be unbuffered (see setbuf(3)). STANDARDS The cat utility is compliant with the IEEE Std 1003. vis(1). Inc. setbuf(3) Rob Pike. starting at 1. sh(1). tail(1). "UNIX Style.CAT (1) Property of BladeLogic. . BSD May 2. or cat -v Considered Harmful". Implies the −v option and also prints tab characters as ‘ˆI’. writing them to the standard output. Number the output lines. Implies the −v option and also prints a dollar sign ( ‘$’ ) at the end of each line. Squeeze multiple adjacent empty lines. The options are as follows: −b −e −n −s −t −u −v Implies the −n option but doesn’t count blank lines. then finally output the contents of file3. print data it receives from the standard input until it receives an EOF ( ‘ˆD’ ) character.g. causing the output to be single spaced. The DEL character (octal 0177) prints as ‘ˆ?’. Non-ASCII characters (with the high bit set) are printed as ‘M-’ (for meta) followed by the character for the low 7 bits. 1983. USENIX Summer Conference Proceedings. which are displayed normally. read and output contents of the standard input again.. the second dash on the command-line would have no effect. 1995 1 . less(1).] DESCRIPTION The cat utility reads files sequentially. truncating file3 if it already exists. See the manual page for your shell (e.file3 SEE ALSO head(1). If file is a single dash ( ‘-’ ) or absent. The tab character. Displays non-printing characters so they are visible. with the exception of the tab and EOL characters. Control characters print as ‘ˆX’ for control-X. $ cat file1 . control-I. pr(1). cat reads from the standard input. The file operands are processed in command-line order.file2 .2”) specification. The cat utility exits 0 on success or >0 if an error occurred.

Inc.CAT (1) PropertyGeneral Commands Manual System of BladeLogic. 1995 2 . Strictly confidential and proprietary CAT (1) The flags [ −benstv] are extensions to the specification. BUGS Because of the shell language mechanism used to perform output redirection. HISTORY A cat utility appeared in Version 1 AT&T UNIX. the command cat file1 file2 > file1 will cause the original data in file1 to be destroyed! BSD May 2.

-p passwd By default one is prompted to enter (and confirm) the desired password. it needs to impersonate the BladeLogicRSCD user (created at install time) in order to have the privileges it requires to run properly. By default chapw displays information about the progress of the update.. one can also use the -f file option to specify additional hosts from the file content. If a password was not specified with the -p option.] DESCRIPTION This command is used to set / change the agent password on one or more Windows hosts that have BladeLogic agent running.chapw(1) Property of BladeLogic. If the registry location is not found/set. the RSCD Agent uses a default password shipped with the agent. When the RSCD Agent comes up on a Windows server.. This command does not prompt for the old password as the default password with which the agent was shipped is unknown to the user.. To determine which password to use. The name of the hosts to be updated. then this option will cause chapw to automatically randomly generate a 16 character password. then the user should remove the RSCD registry location from the registry and delete the BladeLogicRSCD user. OPTIONS The following options are supported: -f file Specify a flat file containing the list of hosts whose RSCD Agent password one wishes to update.. the RSCD Agent needs to supply a password to the OS. If for some reason the user decides to revert back to the default value with which the BladeLogic agent was shipped. With this option only error messages are output. -r -q host . one can also name additional hosts as arguments on the command line. SEE ALSO rscd (1) NSH 1 . REGISTRY The password is kept encrypted in the following registry key: SECURITY\SAM\BladeLogic\Operations Manager\RSCD\P CAVEATS The specified hosts for this command should all be Windows systems and should have the agent running with the "Local System" privileges. Inc. To this end. In addition. In addition. With this option one can specify the desired password as an argument. Strictly confidential and proprietary chapw(1) NAME chapw − Change RSCD Agent password on remote Windows servers SYNOPSIS chapw [-r] [-p passwd] [-q] [-f file] host1 [host2 . Servers that are not Windows servers are not updated and an appropriate error message is output. the RSCD Agent looks at a pre-determined registry location (see below) in which a password may be set.

Always resolve the groupname and optional username on the local system. then chgrp will recursively descend the directory and change the appropriate ownerships of all files and sub-directories below it. use the -l option. this option is turned on. The second example changes the group ownership of all files in the directory /u1/myapps to group adm on host paris. chgrp: Unknown user ID username The username username is unknown. if you precede the group name by a user name and a period (’. EXAMPLE The first example changes the group ownership of the file myprog to bin.chgrp(1) Property of BladeLogic.’). When changing the ownership of a file that is a symbolic link. New owner of the file (user name or UID). Indicates that the groupname and the (optional) username are not numeric. chgrp changes only the group ownership. By default. and therefore will not be resolved on the local system. chgrp: Unable to change group ownership of file filename An error has occurred when changing the ownership of the file filename. This can be useful for monitoring progress in recursive file ownership changes. To turn it off. chgrp [-fhRv?] user. change the ownership of the link itself rather than the file it is pointing to. this message will appear if chgrp is unable to access the directory dirname. $ chgrp bin myprog $ chgrp -R adm //paris/u1/myapps DIAGNOSTICS chgrp: Unable to access file filename chgrp was unable to access the file filename. NSH 1 . chgrp: Unknown group ID groupname The groupname groupname is unknown. Output a message for each file whose ownership is being changed. chgrp will resolve the username and groupname on the system on which the change of ownership is to take place. Instead. then chgrp changes the user ownership as well. OPTIONS -f -h -l -r Do not report any errors that occur. DESCRIPTION chgrp changes the group or the group and user ownership of the named files. -R -v -? group user If any of the named arguments is a directory. Output a brief summary of available options and then exit with a zero status without changing any ownerships. Inc. New group owner of the file (group name or GID). chgrp: Unable to access directory dirname When changing ownerships of a file (directory) recursively. By default.. and consequently a UID is not available for this user..group file . Strictly confidential and proprietary chgrp(1) NAME chgrp − Change group (and user) ownerships of files SYNOPSIS chgrp [-fhRv?] group file .. See the -r option. However. and consequently a GID is not available for this group..

Unknown option or missing file argument. NSH 2 . chgrp resolves the groupname/username to the GID/UID on the local machine. CAVEATS If you do not specify either the -l option or the -r option. and you use a groupname/username (as opposed to a GID/UID).chgrp(1) Property of BladeLogic. Unable to get a license to use the software. ORIGIN chgrp was written by Thomas Kraus SEE ALSO chown(1). chgrp was unable to access one of the directories in a recursive change of ownership. you may not achieve the ownership change you want. The -h option may have no effect on systems that do not support the appropriate system call to perform this action (lchown(2)). chgrp was unable to access the file it was trying to change ownership of. Inc. Strictly confidential and proprietary chgrp(1) EXIT CODES 0 1 2 3 4 255 No errors detected. If the GID/UID of the group/user differs on the host on which you are making the change. You specified an unknown GID or UID.

The permissions changes you want to make.. This option tells chmod to change the permissions of a file ONLY if the file is not a directory (i. DESCRIPTION chmod changes the mode or access permissions of the named file(s) to mode.. and files encountered while doing a recursive (-R) permissions change. This can be a useful option in a recursive change of permissions if you only want to change the permissions of directories. This includes both files specifically named in the command argument list. regular files. See the DESCRIPTION section above. Output a brief summary of available options and then exit with a zero status without changing any permissions. This option tells chmod to change the permissions of a file ONLY if the file is a directory. File whose mode you want to change. mode can be an absolute octal value. or a series of comma separated instructions. This can be useful to monitor the progress of a recursive permissions change. op perms OPTIONS -R -d -f -v -? mode file NSH 1 . chmod silently skips it. since directories usually have different permissions than files.e. If chmod encounters a directory. who can be one or a combination of two or more characters from the following set: who If you do not specify a value for who . etc). each having the following format: [who][op][perms] The who section determines whose permissions are to be changed. . Output a message for each file whose permissions are being changed. This can be a useful option in a recursive change of permissions if one does not want to change the permissions of any directories.. and files encountered while doing a recursive (-R) permissions change. then chmod will recursively descend the directory and change the appropriate permissions of all files and sub-directories below it. If chmod encounters a file that is not a directory. special files. it defaults to the value of a u Modify the user permissions g Modify the group permissions o Modify the other permissions a Modify all permissions (same as ugo) You must specify one of the following values for the op section: + Add the specified permissions to the existing permissions of the file Subtract the specified permissions from the existing permissions of the file = Set the specified value as the file permissions Set the new permissions using any combination of the following characters r Modify the read permissions for who w Modify the write permissions for who x Modify the execute permissions for who s Modify the set UID/GID permissions for who t Modify the set sticky bit permissions for who If any of the named arguments is a directory. This includes both files specifically named in the command argument list.chmod(1) Property of BladeLogic. Inc.. Strictly confidential and proprietary chmod(1) NAME chmod − Change the mode (protection attributes) of a file SYNOPSIS chmod [-Rdfv?] mode file . chmod silently skips it.

chmod was unable to access the file it was trying to change ownership of. Unknown option or missing file argument. write. The second example adds execute permission to other users and read. chmod: Unable to access the file filename chmod was unable to access the filename chmod: Unable to access directory dirname When changing permissions of a file (directory) recursively. chmod was unable to access one of the directories in a recursive change of permissions. chmod was unable to access the directory dirname chmod: Cannot change ownership of file filename An error occurred when changing the permissions of the file filename EXIT CODES 0 1 2 3 255 No errors detected. $ chmod 0755 myprog $ chmod o+x. NSH 2 . write. Inc. execute permissions for the owner of the file. Strictly confidential and proprietary chmod(1) EXAMPLE The first example changes the permissions of the file myprog to 755 (read.chmod(1) Property of BladeLogic. Unable to get a license to use the software.u+rwx //madrid/u1/myprog DIAGNOSTICS chmod: Invalid mode (mode) The mode you specified contained unknown characters. execute for user. and read. execute for both the group and other users). ORIGIN chmod was written by Thomas Kraus.

group file . chown: Unable to access directory dirname When changing ownerships of a file (directory) recursively.. Always resolve the username and optional groupname on the local system... The second example changes the group ownership of all files in the directory /u1/myapps to user adm on host bern. Output a brief summary of available options and then exit with a zero status. and consequently a UID is not available for this user. DESCRIPTION This command changes the user or the user and group ownership of the named files. Useful for monitoring progress in recursive file ownership changes. chown [-fhlrRv?] user. Strictly confidential and proprietary chown(1) NAME chown − Change user (and group) ownerships of files SYNOPSIS chown [-fhlrRv?] user file . You can turn it off with the -l option. and therefore will not be resolved on the local system. Inc. By default. Indicates that the username and the (optional) groupname are not numeric. By default. this message will appear if chown is unable to access the directory dirname. change the ownership of the link itself rather than the file it is pointing to. See the -r option. New owner of the file (user name or UID). $ chown bin myprog $ chown -R adm //bern/u1/myapps DIAGNOSTICS chown: Unable to access file filename chown was unable to access the file filename. this option is turned on. OPTIONS -f -h -l -r Do not report any errors if they occur. Instead. However. -R -v -? user group If any of the named arguments is a directory. chown: Unknown user ID username The username username is unknown. New group owner of the file (group name or GID).chown(1) Property of BladeLogic. this command changes only the user ownership.. without changing any ownerships. When changing the ownership of a file that is a symbolic link. Output a message for each file whose ownership is being changed.’) and a group name to the user name. then chown will recursively descend the directory and change the appropriate ownerships of all files and sub-directories below it. chown: Unknown group ID groupname The groupname groupname is unknown. chown: Unable to change user ownership of file filename An error has occurred when changing the ownership of the file filename. EXAMPLE The first example changes the user ownership of the file myprog to bin. NSH 1 . you can also change the group ownership of a file by appending a period (’. the username and groupname will be resolved on the system on which the change of ownership is to take place. and consequently a GID is not available for this group.

the UID and GID of the user/group as defined on the local host is used. Consequently. Unknown option or missing file argument. NSH 2 . chown was unable to access the file it was trying to change ownership of. ORIGIN chown was written by Thomas Kraus. the change of ownership may not reflect the desired effect if the UID/GID of the user/group differ on the host on which the change is being made. chown encountered an unknown GID or UID. The -h option may have no effect on systems that do not support the appropriate system call to perform this action (lchown(2)). SEE ALSO chgrp(1).chown(1) Property of BladeLogic. chown was unable to access one of the directories in a recursive change of ownership. When a user or group name is explicitly used (as opposed to numeric values). Strictly confidential and proprietary chown(1) EXIT CODES 0 1 2 3 4 255 No errors detected. Unable to get a license to use the software. Inc.

Entering a chrole command only changes the role for new connections with Network Shell Proxy Servers. $ chrole WindowsAdmins The following example shows the procedure that is necessary to change roles for existing connections to agents. Note that this command will not # disconnect from host1 if the current working directory is //host1. All subsequent NSH commands issued from within that session are executed within the context of the new role. SYNOPSIS chrole [role] DESCRIPTION The chrole command changes the role preference for the current NSH session. the role selection is ignored. DIAGNOSTICS If the user attempts to chrole to an unauthorized role. $ cd //host1 # Connect to host1. See the EXAMPLES section below for a demonstration of the required procedure. you are presented with a numbered list of authorized roles and prompted to make a selection from that list. Strictly confidential and proprietary chrole(1) NAME chrole − Change the active role for the current Network Shell session. CAVEATS The chrole command is a "built-in" Network Shell command and can only be issued from within an active NSH session. To set up a new role for agents with which you already have proxy connections. $ chrole role2 # Change to role2. when you have an existing connection. ORIGIN chrole was developed by BladeLogic. $ cd // # Make no connection the active context. $ cd //host1 # Reconnect to host1. Inc. NSH 1 . Because the chrole command does not change the role for the current session. COMMAND OPTIONS None EXAMPLES The following example changes the active role to WindowsAdmins. you must disconnect. $ disconnect # Disconnect from all servers. disconnect from the host where you are currently connected. provided the active user is authorized for that role. EXIT CODES 0 Always returns with a 0 exit code. If you do not provide a role preference when entering the chrole command. and then reconnect. you must specify a new role preference. The user is presented with a list of roles to choose from.chrole(1) Property of BladeLogic. Your current role is role1.

These n bits are the bits from the file. Both algorithm 1 and 2 write to the standard output the same fields as the default algorithm except that the size of the file in bytes is replaced with the size of the file in blocks. Algorithm 2 is the algorithm used by historic AT&T System V UNIX systems as the default sum algorithm. Output a brief summary of available options and then exit with calculating any checksums.] sum [-?] [-r] [-o [1 | 2]] [file . Use historic algorithms instead of the (superior) default one. the total number of octets in the file and the file name. padded with zero bits (if necessary) to achieve an integral number of octets. OPTIONS The following options may modify the behavior of cksum. If no file name is specified... See description below. This is a 16-bit checksum. overflow is discarded. The coefficients of R(x) are considered to be a 32-bit sequence.e. Using this interface. shifted left 32 bits) and divided by G(x) using mod 2 division.] DESCRIPTION The cksum utility writes to the standard output three whitespace separated fields for each input file.. and >0 if an error occurs. The cksum utility exits 0 on success. The smallest number of octets capable of representing this integer are used. sum − display file checksums and block counts SYNOPSIS cksum [-?] [-r] [-o [1 | 2]] [file . The bit sequence is complemented and the result is the CRC. with a right rotation before each addition.. one only has access to the historic algorithms ( -o 1 | 2 ). producing a remainder R(x) of degree <= 31. the standard input is used and no file name is written. the CRC value corresponding to a given file is defined by the following procedure: The n bits to be evaluated are considered to be the coefficients of a mod 2 polynomial M(x) of degree n-1. with the most significant bit being the most significant bit of the first octet of the file and the last bit being the least significant bit of the last octet. NSH 1 . cksum = (r % 2ˆ16) + r / 2ˆ16. This is a 32-bit checksum. Sum is a link to cksum and is provided for compatibility. ALGORITHMS Algorithm 1 is the algorithm used by historic BSD systems as the sum(1) algorithm and by historic AT&T System V UNIX systems as the sum algorithm when using the -r option. M(x) is multiplied by xˆ32 (i. These fields are a checksum CRC.. least significant octet first. followed by one or more octets representing the length of the file as a binary value. Please read the UNIVERSE BEHAVIOR section to determine the default behavior of this command. Strictly confidential and proprietary cksum(1) NAME cksum. -r -o 1 | 2 -? Same as -o 1. The default CRC used is based on the polynomial used for CRC error checking in the networking standard ISO 8802-3: 1989 The CRC checksum encoding is defined by the generating polynomial: G(x) = xˆ32 + xˆ26 + xˆ23 + xˆ22 + xˆ16 + xˆ12 + xˆ11 + xˆ10 + xˆ8 + xˆ7 + xˆ5 + xˆ4 + xˆ2 + x + 1 Mathematically. the block size is 1024 for algorithm 1 and 512 for algorithm 2. r = s % 2ˆ16 + (s % 2ˆ32) / 2ˆ16. and is defined as follows: s = sum of all bytes.cksum(1) Property of BladeLogic. For historic reasons. Inc. Partial blocks are rounded up.

Inc. A system error message follows the output of the error message. When the P_BSD variable is set (Berkeley behavior). cksum(1). SEE ALSO sum(1). The second example uses the historic AT&T algorithm for all files in the directory /home/data on host ottawa. ORIGIN Cksum includes software developed by the University of California. With the P_ATT variable set. $ cksum /etc/passwd //ottawa/etc/passwd $ cksum -o 2 //ottawa/home/data/* DIAGNOSTICS cksum: Cannot open file filename The file for which the checksum was to be calculated was not accessible. UNIVERSE BEHAVIOR The universe setting only takes affect when the sum version of the command is used and no checksum type has been selected. NSH 2 . EXIT CODES 0 1 2 255 No errors detected An unknown option was given One of the files to be checksummed was not accessible Unable to get a license to use the software. algorithm 2 is used.cksum(1) Property of BladeLogic. Berkeley and its contributors. algorithm 1 is used. Please see the intro section for complete acknowledgments. COPYRIGHT Please read the Copyright notice in intro(1) section of documentation. Strictly confidential and proprietary cksum(1) EXAMPLE The first example prints out the checksum for two password files using the new improved checksum algorithm.

Start comparing at skip1 bytes from first file by seeking to that position in the file. The first file in the comparison. -s -? file1 file2 skip1 skip2 EXAMPLE The following example checks to see the .root //oslo/. cmp always considers the files not to be identical. When this happens. This option tells cmp not to output any message when it finds a difference. Strictly confidential and proprietary cmp(1) NAME cmp − Compare two files SYNOPSIS cmp [-ls?] file1 file2 [skip1] [skip2] DESCRIPTION cmp compares the content of two files. even with the -l option. the proper one is copied back over it with the proper permissions and ownerships. find all differences in the files.master //oslo/. checking to see if they are identical. cmp outputs an appropriate message indicating which file is shorter.rhosts file on a remote host has changed from the expected contents.rhosts if test $? -eq 1 then echo . NSH 1 . If file1 is ’-’. cp rhosts. then the offset is read instead of being seeked over. If it has. $ $ > > > > > > $ cmp -s rhosts. If the standard input is being used ( file1 is ’-’). The second file in the comparison.master //oslo/. cmp: Illegal option xyz The given option xyz is not a valid option.rhosts file on host oslo has changed. cmp stops processing after it finds the first difference. cmp will just exit with the appropriate exit code. then cmp uses the standard input. cmp outputs a line consisting of the character number. Output a brief summary of available options and then exit with a zero status without doing any comparing. If one of the files is shorter in length than the other. EXIT CODES 0 Files are identical.rhosts fi DIAGNOSTICS cmp: Cannot access file filename cmp was unable to access the file filename. By default. For each difference it finds. OPTIONS -l Do not stop checking after finding the first difference.rhosts chmod 0700 //oslo/.cmp(1) Property of BladeLogic. cmp: EOF on filename If one of the two files is shorter than the other. and the two different character values found in the files. Instead.rhosts chown root. Inc. cmp exits with an exit code that indicates whether or not the files are identical. cmp outputs an appropriate message and stops the comparison. Start comparing at skip2 bytes from second file by seeking to that position in the file.

Strictly confidential and proprietary 1 2 255 Files are not identical. NSH 2 . One of the files was not accessible. Inc. cmp(1) ORIGIN cmp was written by Thomas Kraus.cmp(1) Property of BladeLogic. Unable to get a license to use the software. or cmp encountered a bad or missing argument.

Input is read from the standard input. cut(1). Strictly confidential and proprietary colrm ( 1 ) NAME colrm .remove columns from a file SYNOPSIS colrm [start [stop]] DESCRIPTION Colrm removes selected columns from the lines of a file. columns numbered less than the start column will be written. Output is written to the standard output. Backspace characters decrement the column count by one. ORIGIN Colrm includes software developed by the University of California. paste(1) SunOS 5. If only the start column is specified. Tab characters increment the column count to the next multiple of eight. not zero.8 Last change: NSH 1 . SEE ALSO column(1). Berkeley and its contributors. A column is defined as a single character in a line. columns numbered less than the start column or greater than the stop column will be written. Column numbering starts with one. If both start and stop columns are specified. Inc.User Commands Property of BladeLogic. Please see the intro section for complete acknowledgements.

8 Last change: NSH 1 . The following options are available: -1 -2 -3 Suppress printing of column 1. if column number two is being suppressed. Comm assumes that the files are lexically sorted. Berkeley and its contributors. Suppress printing of column 3. Please see the intro section for complete acknowledgements. ORIGIN Comm includes software developed by the University of California. and produces three text columns as output: lines only in file1. lines printed in column number one will not have any tabs preceding them. lines only in file2. >0 if an error occurred. which should be sorted lexically. The filename ‘‘-’’ means the standard input. uniq(1) SunOS 5. all characters participate in line comparisons. Suppress printing of column 2. SEE ALSO cmp(1).User Commands Property of BladeLogic. Strictly confidential and proprietary comm ( 1 ) NAME comm . sort(1). Each column will have a number of tab characters prepended to it equal to the number of lower numbered columns that are being printed.select or reject lines common to two files SYNOPSIS comm [-123] file1 file2 DESCRIPTION The comm utility reads file1 and file2. Inc. and lines printed in column number three will have one. For example. Comm exits 0 on success. and lines in both files.

“-Z”. If either the input or output files are not regular files. If compression would not reduce the size of a file. 2008 1 .Property of BladeLogic. zcat − compress and expand data (compress mode) SYNOPSIS compress [ −123456789cdfghLlNnOqrtVv] [ −b bits] [ −o filename] [ −S suffix] [file . the input file is not removed. file flags. file mode. the checks for reduction in size and file overwriting are not performed. Each file is renamed to the same name plus the extension “. but provides a poorer level of compression. the files are not overwritten. . “-taz”. If no files are specified. recognising the following extensions: “. Force compression of file. “. . renaming the files by removing the extension (or by using the stored name if the −N flag is specified). Compression factor −9 provides the best level of compression.Z”. Inc. As many of the modification time. with compression factor of −1 to −9. . Additionally. when compressing using the deflate scheme ( −g). “. described below. “. By default. Strictly confidential and proprietary COMPRESS (1) System General Commands Manual COMPRESS (1) NAME compress. in compress mode.] DESCRIPTION The compress utility reduces the size of the named files using adaptive Lempel-Ziv coding. the standard input is compressed or uncompressed to the standard output. Decompress the source files instead of compressing them (force uncompress mode). “_Z”. user ID.] uncompress [ −cfhlNnqrtv] [ −o filename] [file . If the input data is not in a format recognized by compress and if the option −c is also given. uncompress. the file is ignored (unless −f is used). If renaming the files would cause files to be overwritten and the standard input device is a terminal. Instead. Extensions ending in “tgz” and “taz” are not removed when decompressing. “-tgz”. “-gz”. The zcat command is equivalent in functionality to uncompress −c. even if it is not actually reduced in size. This option implies −g. the original file name and time stamp are stored in the compressed file. this information is not used. and group ID as allowed by permissions are retained in the new file.gz”. the uncompressed file inherits the time stamp of the compressed version and the uncompressed file name is generated from the name of the compressed file as described above. but is relatively slow. instead they are converted to “tar”. If prompting is not possible or confirmation is not received.taz”. If invoked as compress −g.Z”. “_gz”. the user is prompted (on the standard error output) for confirmation. and the attributes of the input file are not retained. files are overwritten without prompting for confirmation. When uncompressing. . These defaults may be overridden by the −N and −n flags. access time. the deflate mode of compression is chosen. −c −d −f Compressed or uncompressed output is written to the standard output.. “_tgz”. The options are as follows: −1. It has the ability to restore files compressed by both compress and gzip(1).9 Use the deflate scheme. Compression factor −1 is the fastest. −b bits Specify the bits code limit ( see below ) .. The default is −6.] zcat [ −fghqr] [file . and “_taz”. see gzip(1) for more information. .tgz”. No files are modified (force zcat mode). copy the input data without change to the standard BSD April 3. The uncompress utility restores compressed files to their original form. .

When compressing.Property of BladeLogic. compress discards the table of substrings and rebuilds it from scratch. Recursive mode: compress will descend into specified directories. Print a short help message. Strictly confidential and proprietary COMPRESS (1) System General Commands Manual COMPRESS (1) output: let zcat behave as cat(1). Print the license. −n −O −o filename Set the output file name. 2008 2 . if the compression ratio decreases. Ratio of the difference between the compressed and uncompressed sizes to the uncompressed size. the following additional information is printed: compression method crc time stamp Name of the method used to compress the file. for the uncompressed version. −S suffix Set the suffix for compressed files. When code 512 is reached. Size of the file when uncompressed. −t −V −v Test the integrity of each file leaving any files intact. if any. The following information is listed: compressed size uncompressed size compression ratio uncompressed name Size of the compressed file. −q −r Be quiet: suppress all messages. the algorithm switches to 10-bit codes and continues to use more bits until the limit specified by the −b flag is reached. −N When uncompressing or listing. This allows the algorithm to adapt to the next “block” of the file. If it is increasing. If the −v option is specified. However. List information for the specified compressed files. Name the file will be saved as when uncompressing. 32-bit CRC ( cyclic redundancy code ) of the uncompressed file. Common substrings in the file are first replaced by 9-bit codes 257 and up. Print the percentage reduction of each file and other information. compress uses a modified Lempel-Ziv algorithm ( LZW ) . Date and time corresponding to the last data modification time (mtime) of the compressed file (if the −n option is specified. do not store the original file name and time stamp in the header of the compressed file. This information is only available when the deflate scheme ( −g) is used. Display the program version ( RCS IDs of the source files ) and exit. the time stamp stored in the compressed file is printed instead). compress periodically checks the compression ratio. BSD April 3. which reportedly provides better compression rates (force gzip(1) mode). After the bits limit is reached. Use compress mode (the default). use the time stamp and file name stored in the compressed file. compress continues to use the existing code dictionary. bits must be between 9 and 16 ( the default is 16 ) . −g −h −L −l Use the deflate scheme. Inc.

Terry A. STANDARDS The compress. HISTORY The compress command appeared in 4. SEE ALSO Welch. June. Inc. the number of bits per code. Compression is generally much better than that achieved by Huffman coding (as used in the historical command pack). or adaptive Huffman coding (as used in the historical command compact). The compress. The amount of compression obtained depends on the size of the input. or 2 if a warning occurred. uncompress. uncompress flags [ −hlNnqrt].1. 2008 3 .3 BSD. Typically. text such as source code or English is reduced by 50 − 60% using compress. and zcat utilities are compliant with the specification. along with a magic number to ensure that neither decompression of random data nor recompression of compressed data is attempted. pp. and the distribution of common substrings. BSD April 3. and the zcat flags [ −fghqr] are extensions to that specification. Deflate compression support was added in OpenBSD 2. and zcat utilities exit with 0 on success. 1984. and takes less time to compute. "A Technique for High Performance Data Compression".. 1 if an error occurred. uncompress. IEEE Computer. Strictly confidential and proprietary COMPRESS (1) System General Commands Manual COMPRESS (1) The −b flag is omitted for uncompress since the bits parameter specified during compression is encoded within the output.Property of BladeLogic. The compress flags [ −123456789dghLlNnOqrtV]. 8−19. 17:6.

If a target file already exists. By default. If the destination directory does exist. cp always acts as if the destination directory does not exist. then cp recursively copies all files and sub-directories from the directory into the target directory. When copying to a directory. Even if the file itself does not get copied to the destination (conditional copy and no changes in file) the cp command will still update the destination file’s user/group ownerships to match the source file’s user/group ownerships. See UNIVERSE BEHAVIOR for details on how this option interacts with the -f option.. cp creates it and copies the content into it. cp creates a new directory inside of the existing directory. If the target directory does already exist. so that the target file inherits the same file permissions as the source file. Set the suffix for backup files to suf. Synchronize file permissions. the new file gets the same permissions as the source file. Synchronize file ownerships. Strictly confidential and proprietary cp(1) NAME cp − Copy files SYNOPSIS cp [-bifnpPtuvBCLST?] [-s suf] file1 file2 cp [-bifnpPrtuvBCLPRST?] [-s suf] [-IX wildcarded path] file . before copying over the new source file. Preserve parent. cp copies multiple files into a directory. if it exists. If the destination directory does not exist. By default. By default. cp appends the target file name with the suffix "˜". -f -m -n -o -p -P -r -s suf NSH 1 .cp(1) Property of BladeLogic. when cp copies a directory. cp does not create or remove any files or directories. dir DESCRIPTION cp makes copies of files. then cp will create the new target directory within the (existing) target directory. cp creates copied files with the same names as the source files. If the target file already exists. if one of the files to be copied is a directory. This also applies to new directories being created. When the destination directory does exist. then cp will create the directory as required. so that. This option automatically turns on the verbose option -v and just lists the copies that cp would make if you had not turned on the -n option. when cp creates a new file. In the second form. Inc. for example. With this option. and access and modification times as the source file. With the -P option.c˜) This option alone does not turn on the file backup feature. permissions. cp will attempt to give the target file the same ownerships (UID/GID). and is consequently overwritten. You can use the -s suf option to specify a different suffix. By default. it will retain its current file permissions after cp overwrites it. cp copies the contents of one file to a second file. If the user confirms with an entry beginning with the letter y. then it retains its current permissions and ownerships.. then cp will prompt the user to see if the user wants cp to overwrite the file. To turn on the file backup feature. Even if the file itself does not get copied to the destination (conditional copy and no changes in file) the cp command will still update the destination file’s permissions to match the source file’s permissions. it behaves differently depending on whether or not the destination (directory) already exists. and copies the content into it. two consecutive copies to the same destination directory will always produce the same result. and inherits the ownership of the calling user. cp overwrites it. if the target file already exists. use the -b command. OPTIONS -b -i Backup the target file. Don’t actually make any changes.c becomes foo. then cp overwrites the file. This option turns off the -i option. With his option. This option deletes the target file before the copy begins. In the first form. The default suffix for files being backed up is "˜" (foo. This option is useful when you are performing a conditional copy and you just want to see what files would be copied if you were doing a real copy. If the target directory does not already exist.

If the file sizes are the same. Output a message for each file being copied. The default action of the cp command would be to re-create the source directory in the destination directory. This option tells cp to overwrite target files only if the modification date of the source file is newer than the modification date of the target file. EXAMPLE The first example copies the file myprog to the directory /usr/local/bin on the host brussels. If you use this option with the -p option. The second example copies the contents of the directory datadir to the directory /usr/local/datadir which is first created. This option is useful when (recursively) copying the content of one directory to another existing directory. With the -P option. This option is the same as the -r option. These options cause the target file to be overwritten only if either the file sizes differ or if the source file has a newer modification date than the target file. $ cp -p myprog //brussels/usr/local/bin $ rm -fr //brussels/usr/local $ cp -rvf datadir //brussels/usr/local DIAGNOSTICS cp: Target directory (dirname) not found When copying multiple files to a directory. and execute. this message will appear if cp is unable to access the target directory (last argument). then the -R option is treated as a -r option. follow symbolic links. Conditional copy. -K -L -P This option is like the -L option. This is the no parent option. This option can be very resource intensive. Useful for monitoring progress in a recursive copy. Inc. This option is useful when copying text files to or from a Windows based system. Conditional copy. except that it applies only to the top level file. This option tells cp to overwrite target files only if source and target file sizes differ. They are -T. NSH 2 . should it be a symbolic link. cp will perform a byte for byte analysis of the source and target files to determine if a difference exists. -S and -C. Conditional copy. write. Strictly confidential and proprietary -t -u cp(1) Make a textual copy of the file. -? Output a brief summary of available options and then exit with a zero status without copying any files. See the -u option. When recursing through directories. Like -b except that if a backup version of the file already exists. -R -S -T -X (wildcarded path) This option excludes the specified files/directories from the sync operation. except that newly created directories automatically get the user permissions read. This option implies the -S option.cp(1) Property of BladeLogic. especially on a large file. -v -B -C -I (wildcarded path) This option includes the specified files/directories in the sync operation. This option will ensure proper handling of the <CR><LF> issues. then the backup will not be overwritten. The target file will be overwritten only if its content differs from the source file. There are three options you can use to perform conditional copies. the content of the source directory is re-created in the target directory essentially overlaying the source directory on to the destination instead of creating the subdirectory. The -u option is equivalent to using the -T and -S options. See the -u option.

cp will display this message. this message will appear if the target directory (last argument) is not a directory. Inc. this message will appear indicating that the copy may not be complete. cp may need to create new directories in the target directory tree. Strictly confidential and proprietary cp(1) cp: Target file (filename) must be a directory When copying multiple files to a directory. ncp(1). If cp has a problem accessing a directory. then with the P_BSD variable set (Berkeley behavior). Unknown option or missing file argument. indicating that cp cannot copy directories. this message will appear. it will display this message. the -f option will override the -i option. NSH 3 . the -i option will override the -f option. UNIVERSE BEHAVIOR If both the -i and -f options are used. cp traverses the source directory hierarchy. With the P_ATT variable set. cp: Unable to create file filename If the new target file cannot be created. cp: Unable to access directory dirname When copying a directory recursively. If cp is not able to create one of these directories. cp: file filename is a directory (not copied) If one of the files to be copied is a directory and you did not specify the recursive option (-r) . ORIGIN cp was written by Thomas Kraus. then this message appears. uncp(1). cp was unable to copy all files requested. along with a possible reason why it was not able to access the file. cp: Unable to access file filename cp: Unable to read file filename If cp is unable to access the source file filename. EXIT CODES 0 1 2 255 No errors detected. Unable to get a license to use the software. along with a possible reason why cp was not able to create the file filename. cp: Unable to create directory dirname When copying a directory recursively. this message will appear.cp(1) Property of BladeLogic. SEE ALSO dsync (1). cp: Error writing to file filename If an error occurs while copying a file into the new target file.

With this option. and in turn XML tags. Inc. Use this option only if you will be embedding the output into another XML document. athens% nover -c -h london rome | csv2xml -1 -n "Host Overview" <?xml version="1. -s sep By default csv2xml uses the comma (’. csv2xml uses the value of column (field) <number> of the respective line as the record name. The -n option lets you specify name as the master XML tag. -q quote By default csv2xml uses the double quote (’"’) character as a string delimiter. -h By default csv2xml assumes that the first line of the CSV input is a header line. hostname) that can be used as an identifier. Do not output the XML header entry.EL</MAINT> <CPUS>1</CPUS> <SPEED>797</SPEED> <ARCH>i686</ARCH> <MEMORY>121</MEMORY> <SWAP>251</SWAP> <DISK>18</DISK> </record> <record name="rome"> <HOSTNAME>rome</HOSTNAME> <OS>SunOS 5. OPTIONS -<number> By default.8</OS> <MAINT></MAINT> <CPUS>1</CPUS> <SPEED>440</SPEED> <ARCH>sparcv9</ARCH> <MEMORY>256</MEMORY> <SWAP>513</SWAP> <DISK>17</DISK> -r -x -? EXAMPLE NSH 1 . The -q option lets you specify the first character of quote as a string delimiter. It uses this header line to name the columns of input. Do not output the root node tag.’) character as the field separator. Strictly confidential and proprietary csv2xml(1) NAME csv2xml − Convert CSV input to an XML output SYNOPSIS csv2xml [-?] [-<number>] [-h] [-n name] [-s sep] [-q quote] [-r] [-x] DESCRIPTION The csv2xml utility is a filter that converts a CSV input stream to an XML output stream.4. This option is often used in conjunction with the -x option. With this option. The -s option lets you specify the first character of sep as the field separator. in the format of column-<record number>.csv2xml(1) Property of BladeLogic. This can be useful if the CSV input contains a unique field (for example. csv2xml generates column names. record names are numbered sequentially starting from 1. -n name By default the master XML tag is called csv2xml.21-4.0" encoding="ISO-8859-1" standalone="yes"?> <csv2xml name="Host Overview"> <record name="london"> <HOSTNAME>london</HOSTNAME> <OS>RedHat ES3</OS> <MAINT>2. Output a usage message and exit with a 0 exit code.

If subsequent records have fewer fields than the first record. If subsequent records have more fields than the first record. nover(1). ncpu(1). nnet(1). Strictly confidential and proprietary </record> </csv2xml> csv2xml(1) CAVEATS The first record (line of input) determines the number of fields that csv2xml will display. Inc. nstats(1). it converts it to an underscore (’_’) character.csv2xml(1) Property of BladeLogic. csv2xml will not display these additional fields. nmem(1). XML has certain restrictions as to which characters are allowed in an XML tag. csv2xml will add empty fields to the record. csv2xml may need to modify these fields to ensure that they do not contain unsupported characters. Because csv2xml generates XML tag names based on the fields in the first line of input. NSH 2 . ndf(1). ORIGIN csv2xml was written by Thomas Kraus SEE ALSO The following commands are able to output in CSV format (-c option): nps(1). If csv2xml finds an unsupported character.

delimited in the input by a single tab character. It is not an error to select fields or columns not present in the input line. Please see the intro section for complete acknowledgements. -d string Specifies that the first character of the string should function as the field delimiter character instead of the tab character. SEE ALSO paste(1) NSH 1 . Number ranges consist of a number. inclusively. 1 if an error occurred. The cut utility includes software developed by the University of California. Numbers or number ranges may be preceded by a dash. Numbers or number ranges may be followed by a dash. Consequently the command: cut -d : -f 2is equivalent to: cut -d: -f2- EXIT CODES The cut utility exits 0 on success. OPTIONS The cut utility accepts the following options: -c list Identifies the list specifying character positions. lines with no delimiters are passed through unmodified.cut(1) Property of BladeLogic. a dash (-). and in any order. overlapping. that character is used to separate output fields. and a second number and select the fields or columns from the first number to the second. -f list Indicates that the list specifies fields. cut -f list [-d string] [-s] file . -d. Column numbering starts from 1. Inc. List is a comma or whitespace separated set of increasing numbers and/or number ranges. Suppresses lines with no field delimiter characters. Berkeley and its contributors. which selects all fields or columns from 1 to the first number. -s The arguments following the options -c. Unless specified. Strictly confidential and proprietary cut(1) NAME cut − select portions of each line of a file SYNOPSIS cut -c list file . If you do. and -f must not be separate arguments and can also be defined directly after the option... which selects all fields or columns from the last number to the end of the line. DESCRIPTION The cut utility selects portions of each line (as specified by list) from each file (or the standard input by default). Output fields are separated by a single tab character unless you use -d to specify a different field delimiter.. The items specified by list can be in terms of column position or in terms of fields delimited by a special character. and writes them to the standard output.. Numbers and number ranges may be repeated.

existing blocks are read and the data discarded. Otherwise. If no conversion values other than noerror. Any regular output file is truncated unless the notrunc conversion value is specified. space from the current end of file to the specified offset is filled with blocks of NUL bytes. Each input record is converted to a fixed length output record where the length is specified by the cbs operand. On input which supports seeks.) There are two conversion maps for ASCII. Any trailing newline character is discarded. then each input block is copied to the output as a single block without any aggregation of short blocks.] DESCRIPTION The dd utility copies the standard input to the standard output.. a lseek(2) operation is used. NSH 1 . This operand is only applicable when the input device is a tape. files=n ibs=n if=file obs=n of=file seek=n skip=n conv= value[. If the seek operation is past the end of file. Write output to file instead of the standard output. it is positioned using the tape ioctl(2) function calls.. Copy n input files before terminating. block Treats the input as a sequence of newline or end-offile terminated variable length records independent of input and output block boundaries. Skip n blocks from the beginning of the input before copying. The number of truncated input records. Set the conversion record size to n bytes. If an initial portion of the output file is skipped (see the seek operand) the output file is truncated at that point. When finished. Inc. Input records longer than the conversion record size are truncated. input from multiple reads are aggregated to form the output block. The conversion record size is required by the record oriented conversion values. The value ascii specifies the recommended one which is compatible with System V. The value oldascii specifies the one used in historic AT&T and pre-4. Input data is read and written in 512-byte blocks. ascii. the correct number of blocks is read without distinguishing between a partial or complete block being read. input data is read and discarded.. the correct number of bytes is read. superseding the ibs and obs operands. notrunc or sync are specified.3BSD-reno systems. oldascii The same as the unblock value except that characters are translated from ECBDIC to ASCII before the records are converted. If the user does not have read permission for the tape. (These values imply unblock if the operand cbs is also specified. are reported to the standard error output at the completion of the copy.] Where value is one of the symbols from the following list. Input records shorter than the conversion record size are padded with spaces. a lseek(2) operation is used. On non-tape devices. Set the input block size to n bytes instead of the default 512.. cbs=n count=n Copy only n input blocks. value . For all other devices. If input reads are short. Otherwise. Strictly confidential and proprietary dd(1) NAME dd . Set the output block size to n bytes instead of the default 512.dd(1) Property of BladeLogic. Read input from file instead of the standard input. For pipes. dd displays the number of complete and partial input and output blocks and truncated input records to the standard error output. Seek n blocks from the beginning of the output before copying. if any. The following operands are available: bs=n Set both input and output block size.convert and copy a file SYNOPSIS dd [operands .

If the input file is not a multiple of the output block size after conversion. If dd receives a SIGINFO (see the ‘‘status’’ argument for stty(1)) signal. The value ibm is a slightly different mapping. The length of the input records is specified by the cbs operand. A truncated input block is one where a variable length record oriented conversion value was specified and the input line was too long to fit in the conversion record or was not newline terminated. On input files which are not tapes or pipes. ‘‘m’’ or ‘‘w’’. This option is incompatible with use of the bs=n block size specification. Normally. any missing input data will be replaced with NUL bytes (or with spaces if a block oriented conversion value was specified) and processed as a normal input buffer. the current input and output block counts will be written to the standard error output in the same format as the standard completion message and dd will exit. When an input error occurs. Inc. Partial output blocks to tape devices are considered fatal errors. which is compatible with the AT&T System V UNIX ibm value. Otherwise. If the sync conversion is also specified. NSH 2 . After the end of input is reached. swab sync ucase unblock Treats the input as a sequence of fixed length records independent of input and output block boundaries. osync Pad the final output block to the full output block size.) There are four conversion maps for EBCDIC. Pad every input block to the input buffer size. a decimal number of bytes is expected.3BSD-reno systems. Do not stop processing on an input error. The value ebcdic specifies the recommended one which is compatible with AT&T System V UNIX. Two or more numbers may be separated by an ‘‘x’’ to indicate a product. this conversion forces the final output block to be the same size as preceding blocks for use on devices that require regularly sized blocks to be written. the input block is omitted from the output. oldibm The same as the block value except that characters are translated from ASCII to EBCDIC after the records are converted. If the number ends with a ‘‘b’’.dd(1) Property of BladeLogic. a diagnostic message followed by the current input and output block counts will be written to the standard error output in the same format as the standard completion message. truncated input records and odd-length byte-swapping blocks to the standard error output. the current input and output block counts will be written to the standard error output in the same format as the standard completion message. lcase noerror Transform uppercase characters into lowercase characters. oldebcdic. A partial input block is one where less than the input block size was read. data resulting from input or conversion or both are aggregated into output blocks of the specified size. respectively. Strictly confidential and proprietary dd(1) ebcdic. any remaining output is written as a block. the file offset will be positioned past the block in which the error occurred using lseek(2). the number is multiplied by 512. If the sync conversion is not specified. A partial output block is one where less than the output block size was written. notrunc Do not truncate the output file. This will preserve any blocks in the output file not explicitly written by dd The notrunc value is not supported for tapes. If an input buffer has an odd number of bytes. otherwise NUL bytes are used. Any trailing space characters are discarded and a newline character is appended. ibm. Partial output blocks to character devices will produce a warning message. the rest of the block will be written. If dd receives a SIGINT signal. Spaces are used for pad bytes if a block oriented conversion value is specified. When finished. Transform lowercase characters into uppercase characters. The values oldebcdic and oldibm are maps used in historic AT&T and pre-4. dd displays the number of complete and partial input and output blocks. Swap every pair of input bytes. This means that the final output block may be shorter than the output block size. 1048576 (1M) or the number of bytes in an integer. ‘‘k’’. (These values imply block if the operand cbs is also specified. Where sizes are specified. 1024 (1K). the last byte will be ignored during swapping.

The files operand and the ascii. Please see the intro section for complete acknowledgements. NSH 3 .2 (‘‘POSIX’’) standard. oldascii. Strictly confidential and proprietary The dd utility exits 0 on success and >0 if an error occurred. oldebcdic and oldibm values are extensions to the POSIX standard. ibm. tr(1) STANDARDS The dd utility is expected to be a superset of the IEEE Std1003. Berkeley and its contributors. SEE ALSO cp(1). Inc. ebcdic.dd(1) Property of BladeLogic. dd(1) ORIGIN Dd includes software developed by the University of California.

If one of the targets is a directory name only. then df uses the current host (as directed by nsh) as the remote host.. paris $ df -k //athens paris $ df . Strictly confidential and proprietary df(1) NAME df − Execute remote df command SYNOPSIS df [df options] [target . //rome/tmp CAVEATS Remote df commands typically output a one line header as part of the disk usage report. OPTIONS df on its own does not support any options. df again uses the current host. df will execute a remote df command on the appropriate host and then print the returned output.] DESCRIPTION For each named target. this header line will be included for each named target.df(1) Property of BladeLogic. The second example displays the disk usage of the current directory of the current host and also the disk usage of a remote directory. Inc. If you do not specify any targets. Since a remote df command is executed for each named target. which may be a directory or host name. Any options it does find are passed to the remote df command.. ORIGIN df was written by Thomas Kraus NSH 1 . EXAMPLE The first example displays the disk usage of a remote host.

unlike with −c.’. This is the form used by rcsdiff(1). those added to file2 are marked ‘+ ’. The lines removed from file1 are marked with ‘. Normally diff will simply print “Binary files . while defining string will yield file2. 2003 1 . Produces a unified diff with 3 lines of context. Comparison options: −a Treat all files as ASCII text. A unified diff is similar to the context diff produced by the −c option. Strictly confidential and proprietary DIFF (1) NAME diff − differential file and directory comparator SYNOPSIS diff diff diff diff diff [ −abdilpqtTw] [ −I pattern] [ −c | −e | −f | −n | −u] [ −L label] file1 file2 [ −abdilpqtTw] [ −I pattern] [ −L label] −C number file1 file2 [ −abdilqtw] [ −I pattern] −D string file1 file2 [ −abdilpqtTw] [ −I pattern] [ −L label] −U number file1 file2 [ −abdilNPpqtTw] [ −I pattern] [ −c | −e | −f | −n | −u] [ −L label] [ −r] [ −s] [ −S name] [ −X file] [ −x pattern] dir1 dir2 DESCRIPTION The diff utility compares the contents of file1 and file2 and writes to the standard output the list of changes necessary to convert one file into the other. Use of this option forces diff to produce a diff. −D string Creates a merged version of file1 and file2 on the standard output. Just print a line when the files differ. No output is produced if the files are identical. ed(1). which can then be used to convert file1 into file2. Changes which lie within 3 lines of each other are grouped together on output. −f −n −q −u Identical output to that of the −e flag. with C preprocessor controls included so that a compilation of the result without defining string is equivalent to compiling file1. However. . With −c the output format is modified slightly: the output begins with identification of the files involved and their creation dates and then each change is separated by a line with fifteen ∗’s. It cannot be digested by ed(1). −U number Like −u but produces a diff with number lines of context. but in reverse order. BSD July 21. Does not output a list of changes. . Produces a script similar to that of −e. so that the result is a sh(1) script for converting text files which are common to the two directories from their state in dir1 to their state in dir2. −e −C number Like −c but produces a diff with number lines of context. all lines to be changed (added and/or removed) are present in a single section. Inc. but in the opposite order and with a count of changed lines on each insert or delete command. Lines which are changed from one file to the other are marked in both files with ‘! ’. Produces output in a form suitable as input for the editor utility. differ” if files contain binary characters. Output options (mutually exclusive): −c Produces a diff with 3 lines of context.DIFF (1) PropertyGeneral Commands Manual System of BladeLogic. Extra commands are added to the output when comparing directories with −e.

act as if it was found in the other directory too but was of zero size. If a non-regular file such as a device special file or BSD July 21. which are otherwise not mentioned. Try very hard to produce a diff as small as possible. Causes application of diff recursively to common subdirectories encountered. on text files which are different. In directory mode only regular files and directories are compared.g. “if ( a == b )” will compare equal to “if(a==b)”. −i −l Ignores the case of letters. Will expand tabs in output lines. insertions. Inc. producing a change list. −X file Exclude files and subdirectories from comparison whose basenames match lines in file. If both arguments are directories. If a file is found in only one directory. Long output format. Multiple −I patterns may be specified. and then runs the regular file diff algorithm. if this option is specified twice) file name and time in the context or unified diff header.. E. Patterns are matched using shell-style globbing via fnmatch(3).. Multiple −X options may be specified. diff sorts the contents of the directories by name. beginning with file name. For C source code following standard layout conventions. show with each change the first 40 characters of the last line before the context beginning with a letter. −p With unified and context diffs. This makes the alignment of tabs in the line consistent. E. All lines in the change must match some pattern for the change to be ignored. Binary files which differ. this will show the prototype of the function the change applies to. “A” will compare equal to “a”. 2003 2 . other differences are remembered and summarized after all text file differences are reported. common subdirectories. −x pattern Exclude files and subdirectories from comparison whose basenames match pattern. Normal or −c output adds character(s) to the front of each line which may screw up the indentation of the original source lines and make the output listing difficult to interpret. This option will preserve the original source’s indentation. See re_format(7) for more information on regular expression patterns. act as if it was found in dir1 too but was of zero size. Is similar to −b but causes whitespace (blanks and tabs) to be totally ignored. context or unified output formats. Multiple −x options may be specified. −L label Print label instead of the first (and second. −t −T −w Directory comparison options: −N −P −r −s −S name Re-starts a directory diff in the middle.DIFF (1) PropertyGeneral Commands Manual System of BladeLogic. Causes diff to report files which are the same. an underscore or a dollar sign.g. −I pattern Ignores changes. each text file diff´d is piped through pr(1) to paginate it. Strictly confidential and proprietary DIFF (1) −b −d Causes trailing blanks (spaces and tabs) to be ignored. Print a tab rather than a space before the rest of the line for the normal. If a file is found only in dir2. and files which appear in only one directory are described as such. This may consume a lot of processing power and memory when processing large files with many changes. and deletions whose lines match the extended regular expression pattern. and other strings of blanks to compare equal.

those after pertain to file2. −c. The value YY tells to which line the change would bring file1 in line with file1. comm(1). 2003 3 . re_format(7) STANDARDS The diff utility is expected to be a superset of the 1003. DIAGNOSTICS The diff utility exits with one of the following values: 0 1 >1 No differences were found. append the contents of line YY of file2 to make them equal. Strictly confidential and proprietary DIFF (1) FIFO is encountered. Thus. As in ed(1). XX. pr(1). one can also determine how to convert file2 into file1. ENVIRONMENT TMPDIR If the environment variable TMPDIR exists. XX. The line numbers before the action letters pertain to file1. YY.1-2001 specification. diff is applied to the non-directory file and the file contained in the directory file with a filename that is the same as the last component of the non-directory file. XX. This may cause a small amount of BSD July 21. and then decides to run the diff algorithm if they are not equal. Note that the temporary file is unlinked as soon as it is created so it will not show up in a directory listing. where XX. fnmatch(3). QQ are line numbers respective of file order.YY from file1 with the range ZZ. If either file1 or file2 is ‘ − ’. diff will use the directory specified by TMPDIR as the temporary directory. ZZ. diff first compares the files ala cmp(1). or −n options) output contains lines of these forms. HISTORY A diff command appeared in Version 6 AT&T UNIX.YYdZZ Delete the range of lines XX through YY in file1.YYcZZ. If only one of file1 and file2 is a directory.QQ Replace the range XX. YY through ZZ of file2 to line XX of file1. BUGS When comparing directories with the −b. XXaYY These lines resemble ed(1) subcommands to convert file1 into file2. SEE ALSO cmp(1). but append the range of lines.ZZ Same as above. identical pairs (where num1 = num2) are abbreviated as a single number. At (the end of) line XX of file1. the standard input is used in its place. XXcYY Change the line XX in file1 to the line YY in file2. Inc. a diagnostic message is printed.QQ from file2. XXdYY At line XX delete the line. diff3(1).YYcZZ Replace the range of specified lines with the line ZZ. ed(1). Differences were found. XXaYY. Output Style The default (without −e. by exchanging a for d and reading the line in reverse order. An error occurred. −w or −i options specified.DIFF (1) PropertyGeneral Commands Manual System of BladeLogic. FILES /tmp/diff.XXXXXXXX Temporary file used when comparing a device or the standard input.

BSD July 21.DIFF (1) PropertyGeneral Commands Manual System of BladeLogic. Inc. 2003 4 . Strictly confidential and proprietary DIFF (1) spurious output if the files then turn out to be identical because the only differences are insignificant whitespace or case differences.

it has same behavior as if -P had been turned on). if dsync finds a file that does not need to be updated. $ dsync dir1 dir2 is equivalent to: $ cp -fpru dir1 dir2 This does a copy of all files and directories in the directory dir1 to directory dir2 only if the file size or date of last modification are different. By default. it leaves it alone. because it deletes any files/directories in the target (dir2) directory that are not in the source (dir1) directory. if it exists. If a target file already exists. -m NSH 1 . it attempts to synchronize the contents of two directories. (The -P option is not turned on by default. All options are described here. -b -i Backup the target file. while preserving the file ownerships. changing the target file’s permissions if necessary.dsync(1) Property of BladeLogic. if dsync finds a file that does not need to be updated. This option however does a further check on the file’s permissions and makes sure that the target file has the same permissions as the source file. By default. -f. -p. This option however does a further check on the file’s ownership (UID and GID) and (if necessary) updates the destination file’s user/group ownerships to match the source file’s user/group ownerships. then cp will prompt the user to see if the user wants cp to overwrite the file. Note that you need root permissions to change file ownerships. and access times. be careful about using this option when you are copying between UNIX and Windows type systems. then cp overwrites the file. When you run cp as dsync. because the security models for file ownerships may differ. Be careful about using this option when you are copying between UNIX and Windows type systems. OPTIONS The dsync command has the same options as the cp command with the addition of the -d option. This lets you make sure that there are no extra files in the target directory and is conceptually equivalent to first removing the target directory and then recreating it from the source directory. Strictly confidential and proprietary dsync(1) NAME dsync − Synchronize two directories SYNOPSIS dsync [-bdifmnopPrtuvBCLPRST?] [-s suf] [-IX wildcarded path] dir1 dir2 DESCRIPTION The dsync command is a link to the cp command. -d Use this option with care. Synchronize file permissions for files that do not need to be updated. The ownership comparisons are based on the respective numeric UID and GID and not the respective user/group name that a particular UID/GID may be mapped to on a particular system. and -u. by default. it leaves it alone. permissions. then it will be created. The following options are the common options between cp and dsync with dsync having. If the target directory dir2 does not exist. Also. before copying over the new source file. -o Synchronize file ownerships for files that do not need to be updated. however when running dsync. If the user confirms with an entry beginning with the letter y. turned on the following options: -r. By default. See UNIVERSE BEHAVIOR for details on how this option interacts with the -f option. Inc. You can use the -s suf option to specify a different suffix. because the security models for file permissions may differ. cp appends the target file name with the suffix "˜". The default behavior of dsync is equivalent to making a conditional copy with the cp command.

then cp will create the directory as required. This is the no parent option. See the -u option. except that newly created directories automatically get the user permissions read. then the -R option is treated as a -r option. This option tells cp to overwrite target files only if the modification date of the source file is newer than the modification date of the target file. and execute. If you use this option with the -p option. especially on a large file.dsync(1) Property of BladeLogic. This option will ensure proper handling of the <CR><LF> issues. This option tells cp to overwrite target files only if source and target file sizes differ. cp will attempt to give the target file the same ownerships (UID/GID). Conditional copy. The default suffix for files being backed up is "˜" (foo. The -u option is equivalent to using the -T and -S options. so that the target file inherits the same file permissions as the source file.c becomes foo. If the file sizes are the same. Conditional copy.c˜) Make a textual copy of the file. Like -b except that if the backup version of the file already exists then the backup will not be overwritten. This option can be very resource intensive. This option deletes the target file before the copy begins. With this option. Don’t actually make any changes. it will retain its current file permissions after cp overwrites it. write. cp does not create or remove any files or directories. follow symbolic links. This option turns off the -i option. if one of the files to be copied is a directory. This option is the same as the -r option. If the target directory does already exist. and access and modification times as the source file. if the target file already exists. Output a message for each file being copied. There are three options you can use to perform conditional copies. Inc. This option is useful when (recursively) copying the content of one directory to another existing directory. -R -S -T -X (wildcarded path) This option excludes the specified files/directories from the sync operation. The default action would be to re-create the source directory in the destination directory. Conditional copy. permissions. If the target directory does not already exist. the content of the source directory is re-created in the target directory essentially overlaying the source directory on to the destination instead of creating the subdirectory. Set the suffix for backup files to suf. Useful for monitoring progress in a recursive copy. With this option. This option automatically turns on the verbose option -v and just lists the copies that cp would make if you had not turned on the -n option. This option is useful when copying text files to or from a Windows based system. then cp will create the new target directory within the (existing) target directory. then cp recursively copies all files and sub-directories from the directory into the target directory. Strictly confidential and proprietary -f dsync(1) By default. They are -T. See the -u option. These options cause the target file to be overwritten only if either the file sizes differ or if the source file has a newer modification date than the target file. -L -P When recursing through directories. This also applies to new directories being created. This option is useful when you are performing a conditional copy and you just want to see what files would be copied if you were doing a real copy. -S and -C. NSH 2 . cp will overwrite the target file only if its content differs from the source file. This option implies the -S option. -n -p -r -s suf -t -u -v -B -C -I (wildcarded path) This option includes the specified files/directories in the sync operation. cp will perform a byte for byte analysis of the source and target file to determine if a difference exists. With the -P option.

dsync outputs this message. this message will appear if dsync is unable to access the target directory (last argument). along with the possible reason as to why it could not create the file filename. this message will appear if the target directory (last argument) is not a directory. If dsync has a problem accessing a directory. Strictly confidential and proprietary -? dsync(1) Output a brief summary of available options and then exit with a zero status without copying any files. EXIT CODES 0 1 2 255 No errors detected. along with the possible reason as to why it was not able to access the file. it will output this message. dsync: Unable to create directory dirname When dsync is recursively copying a directory. it outputs this message. dsync was unable to copy all files requested. The second example does the same as the first.dsync(1) Property of BladeLogic. it may need to create new directories in the target directory tree. Inc. dsync: Error writing to file filename If an error occurs while copying a file into the new target file. UNIVERSE BEHAVIOR If you specify both the -i and -f options. NSH 3 . Unknown option or missing file argument. indicating that the copy may not be complete. but it gives verbose output and it deletes any files and directories on the webserver which do not exist in the local www directory. $ dsync www //webserver/www $ dsync -vd www //webserver/www DIAGNOSTICS dsync: Target directory (dirname) not found When copying multiple files to a directory. With the P_ATT variable set. it traverses the source directory hierarchy. the -f option will override the -i option. dsync: file filename is a directory (not copied) If one of the files to be copied is a directory and you did not specify the recursive option (-r). If dsync is not able to create one of these directories. dsync: Unable to access directory dirname When dsync is recursively copying a directory. ORIGIN dsync was written by Thomas Kraus. it will output this message. it outputs this message. then dsync outputs this message. then with the P_BSD variable set (Berkeley behavior). indicating that it cannot copy directories. dsync: Unable to create file filename If dsync cannot create the new target file. the -i option will override the -f option. EXAMPLE The first example synchronizes the content of the www directory with the www directory on the machine webserver. dsync: Unable to access file filename dsync: Unable to read file filename If dsync is unable to access the source file filename. Unable to get a license to use the software. dsync: Target file (filename) must be a directory When copying multiple files to a directory.

NSH 4 . Strictly confidential and proprietary dsync(1) SEE ALSO cp(1). Inc.dsync(1) Property of BladeLogic.

With this option. then do not include the contents of that directory in the disk usage summary. (By default. This effectively causes du to count only the disk usage of files in the directory. du searches directories recursively. du comes across a directory that is not in the same partition as the source directory. while traversing a directory. findings are already reported in KB.. du counts files with multiple links only once. If you do not specify any files or directories. Report disk usage totals in KB instead of blocks. du ignores this option if you also specify the -s option. Instead of outputting a disk usage statement for each directory encountered. Output a brief summary of available options and then exit with a zero status without doing disk usage summarizing.) If. This option has meaning only when the P_ATT variable is set. By default. This option tells du not to count the disk usage of sub-directories when calculating the disk usage of a directory. This gives you a grand total of disk usage for the named directories. du displays disk usage information for the current directory. When the P_BSD variable is set.. du: Unable to access file filename Unable to determine the status (size) of file filename. $ du src $ du -fsk //vilnius/ DIAGNOSTICS du: Unable to access directory dirname Unable to descend into the directory dirname to determine its size.du(1) Property of BladeLogic. and outputs a sub-total for all sub-directories. The second example will give the total amount of disk usage of the root partition on host vilnius in KB. output only a summary for all directories searched. Strictly confidential and proprietary du(1) NAME du − Display disk usage information for files SYNOPSIS du -[adfkosrux?] [filename . du outputs a disk usage statement for directories only. Same as -d. du ignores all files with more than one link. -S -s -r -u -x -? EXAMPLE The first example will output the amount of disk usage of the directory src giving sub-totals of all its subdirectories. Inc. OPTIONS -a -d -f -k -o Output a disk usage statement for each file encountered in the directory hierarchy. Report the directories that du cannot search.] DESCRIPTION du calculates the number of blocks that the file system has allocated for all named files and directories. du ignores this option if you also specify the -a option. Same as -d. NSH 1 . See the UNIVERSE BEHAVIOR section for information on how du handles this option. Display a grand total at the end of all computations. EXIT CODES 0 No errors detected. du counts linked files only once.

du does not report errors. With the P_ATT variable set. the universe flag determines the size of a block.du(1) Property of BladeLogic. With the P_BSD variable set (Berkeley behavior). du assumes that a block is 1K large. du automatically reports any errors encountered while trying to access a directory. NSH 2 . du was unable to access to access a directory or determine the size of a file. Unable to get a license to use the software. du(1) UNIVERSE BEHAVIOR With the P_BSD variable set (Berkeley behavior). Furthermore. du assumes that a block is 512 bytes large. Inc. ORIGIN du was written by Thomas Kraus. With the P_ATT variable set. Strictly confidential and proprietary 1 2 255 You specified an unknown option. unless you specify the -r option.

then it looks at the next character and interprets it as follows: b c f n r t v \ Backspace (OCT 010. tab (OCT 011. HEX 5C). $ echo //stockholm/etc/pa* //stockholm/etc/p* $ echo //stockholm/etc/pa* //stockholm/etc/password //stockholm/etc/password. Unable to get a license to use the software. $ echo "Hello world\c" $ echo //stockholm/etc/p* EXAMPLE EXIT CODES 0 1 255 No errors detected. HEX D).. Form feed (OCT 014. Do not output a new-line at the end. Notice the different outputs when accessing remote files. NSH 1 . HEX 9). You specified an unknown option.. DEC 13. new line (OCT 012. DEC 11. DEC 12. ORIGIN echo was written by Thomas Kraus. HEX B). File wildcards interpreted by sh(1) are for local files only. vertical tab (OCT 013. Inc.old OPTIONS -n -? arg Output a line without a new-line character.echo(1) Property of BladeLogic. HEX 8). Argument to be echoed. Output a brief summary of available options and then exit with a zero status without echoing any arguments.] DESCRIPTION echo outputs each of its arguments separated by a space and then outputs a new-line character. carriage return (OCT 015. DEC 9. Strictly confidential and proprietary echo(1) NAME echo − Echo arguments SYNOPSIS echo [-?] [-n] [arg . If echo finds a backslash ’\’ in an argument. HEX C). DEC 8. DEC 92. HEX A). backslash (OCT 0134. The main advantage of using echo over the built in echo command in the sh(1) is that it understands file wildcarding on remote hosts. DEC 10.

If a single tabstop argument is given. unexpand [-a] file .. Berkeley and its contributors.) that contain tabs. Option (with unexpand only): -a By default. Inc. then tabs are inserted whenever they would compress the resultant file by replacing two or more characters.tabn] file ... If multiple tabstops are given then the tabs are set at those specific columns. looking at specific columns...expand(1) Property of BladeLogic. DESCRIPTION Expand processes the named files or the standard input writing the standard output with tabs changed into blanks.. Please see the intro section for complete acknowledgements. and vice versa SYNOPSIS expand [-tabstop] [-tab1. Expand is useful for pre-processing character files (before sorting. Backspace characters are preserved into the output and decrement the column count for tab calculations.. unexpand .expand tabs to spaces. NSH 1 .tab2. If the -a option is given. only leading blanks and tabs are reconverted to maximal strings of tabs. then tabs are set tabstop spaces apart instead of the default 8. etc. Strictly confidential and proprietary expand(1) NAME expand.. ORIGIN Expand and unexpand includes software developed by the University of California. Unexpand puts tabs back into the data from the standard input or the named files and writes the result on the standard output.

Inc. EXAMPLES Consider the following input file.fields(1) Property of BladeLogic. the entire data row is extracted. % cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/bin/bash daemon:x:2:2:Daemon:/sbin:/bin/bash lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false games:x:12:100:Games account:/var/games:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false ftp:x:40:49:FTP account:/srv/ftp:/bin/bash nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash ldap:x:76:70:User for OpenLDAP:/var/lib/ldap:/bin/bash sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false postfix:x:51:51:Postfix Daemon:/var/spool/postfix:/bin/false at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash blade:x:1000:100::/home/blade:/bin/bash smbguest:x:4000:4000::/dev/null:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash news:x:9:13:News system:/etc/news:/bin/bash uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash +:::::: % fields -d : 1 5 6 -1 < /etc/passwd root root /root /bin/bash bin bin /bin /bin/bash daemon Daemon /sbin /bin/bash lp Printing daemon /var/spool/lpd /bin/bash mail Mailer daemon /var/spool/clientmqueue /bin/false games Games account /var/games /bin/bash wwwrun WWW daemon apache /var/lib/wwwrun /bin/false ftp FTP account /srv/ftp /bin/bash nobody nobody /var/lib/nobody /bin/bash ldap User for OpenLDAP /var/lib/ldap /bin/bash sshd SSH daemon /var/lib/sshd /bin/false ntp NTP daemon /var/lib/ntp /bin/false postfix Postfix Daemon /var/spool/postfix /bin/false NSH 1 . A field separator distinguishes the fields in each row. If you specify a positive field number. the second field from the end of the data row is extracted. such as 5. Strictly confidential and proprietary fields(1) NAME fields − extracts specified fields from a data row SYNOPSIS fields [-d c | -D c] <field#> DESCRIPTION The fields command extracts specified fields from a data row. OPTIONS -d or -D Specifies the separator character used to distinguish the individual fields. the fifth field from the start of the data row is extracted. If this option is not provided. If the field number is 0. It contains fields separated by the ’:’ character. such as -2. If you specify a negative field number. the space character (’ ’) is used as the default separator.

NSH 2 . Inc. Inc.fields(1) Property of BladeLogic. Strictly confidential and proprietary at Batch jobs daemon /var/spool/atjobs /bin/bash blade /home/blade /bin/bash /bin/bash smbguest /dev/null /bin/false /bin/false man Manual pages viewer /var/cache/man /bin/bash news News system /etc/news /bin/bash uucp Unix-to-Unix CoPy system /etc/uucp /bin/bash + + fields(1) ORIGIN fields was developed by BladeLogic.

br indicates that the file is most likely a troff(1) input file. the keyword . For example. file [ −m magicfiles] −C DESCRIPTION The file utility tests each argument in an attempt to classify it. The type printed will usually contain one of the words “text” (the file contains only ASCII characters and is probably safe to read on an ASCII terminal). tar archives) that are known to contain binary data.out(5). and which of several types thereof. The language test routines also test for some miscellany (such as tar(1) archives) and determine whether an unknown file should be labelled as “ASCII text” or “data”. whose format is defined in 〈a.h〉 in the standard include directory and is explained in a. The language tests look for particular strings (cf names.h) that can appear anywhere in the first few blocks of a file. “executable” (the file contains the result of compiling a program in a form understandable to some UNIX kernel or another). Strictly confidential and proprietary FILE (1) NAME file − determine file type SYNOPSIS file [ −bckLNnrsvz] [ −F separator] [ −f namefile] [ −m magicfiles] file . performed in this order: filesystem tests. The filesystem tests are based on examining the return from a stat(2) system call. The canonical example of this is a binary executable (compiled program) a. The magic number tests are used to check for files with data in particular fixed formats.FILE (1) PropertyGeneral Commands Manual System of BladeLogic. change “shell commands text” to “shell script”. BSD December 4. The options are as follows: −b −C −c Do not prepend filenames to output lines (brief mode).out file. file attempts to guess its language. When modifying the file /etc/magic or the program itself. The information in these files is read from the magic file /etc/magic. The concept of magic number has been applied by extension to data files. 2004 1 . Any known file types appropriate to the system you are running on (sockets. . Exceptions are well-known file formats (core files. If an argument appears to be an ASCII file. Don’t do as Berkeley did. write a magic.h〉 and possibly 〈exec.h〉. or named pipes (FIFOs) on those systems that implement them) are intuited if they are defined in the system header file 〈sys/stat. These tests are less reliable than the previous two groups. Any file with some invariant identifier at a small fixed offset into the file can usually be described in this way. There are three sets of tests. preserve these keywords. Inc. and language tests. just as the keyword struct indicates a C program. so they are performed last. symbolic links. or “data” meaning anything else (data is usually binary or non-printable). For each magic number file.out. People depend on knowing that all the readable files in a directory have the word “text” printed. . The program checks to see if the file is empty. magic number tests. or if it’s some sort of special file. Cause a checking printout of the parsed form of the magic file. These files have a “magic number” stored in a particular place near the beginning of the file that tells the UNIX operating system that the file is a binary executable. This is usually used in conjunction with −m to debug a new magic file before installing it.mgc output file that contains a preparsed (compiled) version of it. The first test that succeeds causes the file type to be printed.

as the like-named option in ls(1) (on systems that support symbolic links). a. The one significant difference between this version and System V is that this version treats any white space as a delimiter. This is useful for determining the filesystem types of the data in raw disk partitions. −f namefile Read the names of the files to be examined from namefile (one per line) before the argument list. use ‘-’ as a filename argument. Specifying the −s option causes file to also read argument files which are block or character special files. This version knows more magic. Either namefile or at least one filename argument must be present. Don’t translate unprintable characters to ‘\ooo’. since on some systems it reports a zero size for raw disk partitions. Cause symlinks to be followed. ls(1). file only attempts to read and determine the type of argument files which stat(2) reports are ordinary files. of files containing magic numbers. This is only useful if checking a list of files. −N −n −r −s Don’t pad filenames so that they align in the output. separated by colon characters. od(1). Try to look inside files that have been run through compress(1). If a compiled magic file is found alongside. so that spaces in pattern strings must be escaped. It is intended to be used by programs that want filetype output from a pipe. Its behaviour is mostly compatible with the System V program of the same name. magic(5) STANDARDS CONFORMANCE This program is believed to exceed the System V Interface Definition of FILE(CMD). Print the version of the program and exit. −k −L Don’t stop at the first match. because reading special files may have peculiar consequences. −v −z ENVIRONMENT MAGIC Default magic number files. Strictly confidential and proprietary FILE (1) −F separator Use the specified string as the separator between the filename and the file result returned. Defaults to ‘:’. however. to test the standard input. 2004 2 .mgc” to the value of this variable as appropriate. which are block special files. FILES /etc/magic default list of magic numbers SEE ALSO compress(1). Force stdout to be flushed after checking each file. magiclist. file adds “. strings(1). This can be a single file or a colon-separated list of files. it will be used instead. Inc. so it will produce different (albeit more accurate) output in many cases. keep going. For example. This option also causes file to disregard the file size as reported by stat(2). BSD December 4.FILE (1) PropertyGeneral Commands Manual System of BladeLogic. as near as one can determine from the vague language contained therein. −m magiclist Specify an alternate list. Normally file translates unprintable characters to their octal representation (raw mode). This prevents problems. Normally. hexdump(1).out(5).

Primary development and maintenence from 1990 to the present by Christos Zoulas 〈christos@zoulas. Canada. This slowed the program down slightly but made it a lot more flexible.FILE (1) PropertyGeneral Commands Manual System of BladeLogic. Strictly confidential and proprietary FILE (1) >10 >10 0 0 string language impress string language\ impress string string \begindata (imPRESS data) (imPRESS data) in an existing magic file would have to be changed to In addition. For example Andrew Toolkit document in an existing magic file would have to be changed to \\begindata Andrew Toolkit document SunOS releases 3. My version differs from Sun’s only in minor ways. 2000. The order of entries in the magic file is significant. Covered by the standard Berkeley Software Distribution copyright. Geoff Collyer found several inadequacies and provided some magic file entries. was written by Ian F. 1989. mainly USENET. John Gilmore revised the code extensively.NOTICE in the distribution.h and is_tar. but with some extensions. to identify character codes and attempt to identify the languages of non-ASCII files. based on the System V version. Altered by Chris Lowth 〈chris@lowth. A consolidation of magic file entries will be distributed periodically. 2004 3 . Contributions to the ‘&’ operator by Rob McMahon 〈cudcv@warwick. If your old file command uses a magic file. The System V version introduced one significant major change: the external list of magic number types. making it better than the first version. BSD December 4. and contributed by various authors. It includes the extension of the ‘&’ operator. LEGAL NOTICE Copyright (c) Ian F. Toronto.orig). keep the old magic file around for comparison purposes (rename it to /etc/magic. if a pattern string contains a backslash. You know who you are. Altered by Eric Fischer 〈enf@pobox.uk〉.com〉. 2000: Handle the −i option to output mime type strings and using an alternative magic file and internal logic.com〉 without looking at anybody else’s source code. see the file LEGAL. The list of contributors to the “magdir” directory (source for the /etc/magic file) is too long to include here.c were written by John Gilmore from his public-domain tar program. used as. This program. thank you. Darwin 〈ian@darwinisys. Darwin. July. the order that they are put together may be incorrect. The files tar. 1986-1999. it must be escaped.com〉.ac. and are not covered by the above license. Depending on what system you are using.2 and later from Sun Microsystems include a file command derived from the System V one. >16 long&0x7fffffff >0 not stripped MAGIC DIRECTORY The magic file entries have been collected from various sources. Guy Harris 〈guy@auspex.com〉. HISTORY There has been a file command in every UNIX since at least Research Version 4 (man page dated November. 1973). for example. Inc.com〉 made many changes from 1993 to the present. Christos Zoulas (address below) will collect additional or corrected magic file entries. in this version.

g. The list of keywords in ascmagic probably belongs in the Magic file. it should be possible to use the first guess. Still. troff(1) commands vs man page macros. Their use of ASCII TAB as a field delimiter is ugly and makes it hard to edit the files. Make a rule that the magic entries sort based on file offset rather than position within the magic file? The program should provide a way to give an estimate of “how good” a guess is. BSD December 4. What is it? Better yet. first long. fixed-length ASCII strings for use in heterogenous network environments) for faster startup. Another optimization would be to sort the magic file so that we can just run down all the tests for the first byte. This program is slower than some vendors’ file commands. Strictly confidential and proprietary FILE (1) BUGS There must be a better way to automate the construction of the Magic file from all the glop in Magdir. file uses several algorithms that favor speed over accuracy. first word. This could be done by using some keyword like ‘∗’ for the offset value. ndbm(3) or. once we have fetched it.FILE (1) PropertyGeneral Commands Manual System of BladeLogic.astron. inefficient and requires recompilation to update.g. It might be advisable to allow upper-case letters in keywords for e. This manual page. with the flexibility of the System V version. 2004 4 .. and particularly this section.com in the directory /pub/file/file-X.gz. better yet. The magic file and keywords should have regular expression support. The support for ASCII files (primarily for programming languages) is simplistic. etc. “From ” as first 5 chars of file) because they are not as good as other guesses (e. The program doesn’t grok FORTRAN. Then the program would run as fast as the Version 7 program of the same name.. AVAILABILITY You can obtain the original author’s latest version by anonymous FTP on ftp.. Complain about conflicts in the magic file entries. We end up removing guesses (e.tar. thus it can be misled about the contents of ASCII files. but is entrenched. Regular expression support would make this easy.YY. if the others don’t pan out. the magic file should be compiled into binary (say. Inc. There should be an “else” clause to follow a series of continuation lines.g. is too long. Regular expression support would make this easy. It should be able to figure FORTRAN by seeing some keywords which appear indented at the start of line. “Newsgroups:” versus "Return-Path:").

rounded up to the next full minute.. rounded up to the next full 24-hour period. -anewer file True if the current file has a more recent last access time than file. backslash ( ‘\’ ) . is n 24-hour periods. Permit find to be safely used in conjunction with xargs(1). In the absence of an expression. find visits directories in pre-order i. tab. Inc. [expression] DESCRIPTION find recursively descends the directory tree for each path listed. and newline ( ‘\n’ ) characters. the −print0 primary may be used in conjunction with the −0 option to xargs(1). evaluating an expression (composed of the “primaries” and “operands” listed below) in terms of each file in the tree. The delimiting characters include single ( ‘’’ ) and double ( ‘"’ ) quotes. -cmin n True if the difference between the time of last change of file status information and the time find was started.FIND (1) PropertyGeneral Commands Manual System of BladeLogic. This option exists for backwards compatibility. File information of all symbolic links not on the command line is that of the link itself. BSD December 4. File hierarchies may also be specified as the operands immediately following the options. a diagnostic message is displayed on standard error. is n minutes. the file information and type will be for the link itself. rounded up to the next full minute. If a file name contains any of the delimiting characters used by xargs.. not the link itself. Alternatively. before their contents. The options are as follows: −d Causes find to visit directories in post-order i. An alias for the −L option. −h −L −X −x PRIMARIES -amin n True if the difference between the file last access time and the time find was started. Causes the file information and file type (see stat(2)) returned for each symbolic link to be those of the file referenced by the link. all entries in a directory will be acted on before the directory itself. the file information and type will be for the link itself. not the link itself. Strictly confidential and proprietary FIND (1) NAME find − walk a file hierarchy SYNOPSIS find [ −dHhLWXx] [ −f path] path .e. −H Causes the file information and file type (see stat(2)) returned for each symbolic link encountered on the command line to be those of the file referenced by the link. space. -print is assumed. allowing all file names to be processed safely.e. and the file is skipped. is n minutes. −f path Specifies a file hierarchy for find to traverse. Prevents find from descending into directories that have a device number different than that of the file from which the descent began. -atime n True if the difference between the file last access time and the time find was started. 1999 1 . By default. If the referenced file does not exist. If the referenced file does not exist.

BSD December 4. size in bytes. -fstype type True if the file is contained in a file system of type type. .]. number of hard links. Two special file system types are recognized: “local” and “rdonly”.]. Inc. The filename substituted for the string "{}" is not qualified. . -ls This primary always evaluates to true. utility will be executed from the directory from which find was executed. The expression must be terminated by a semicolon ( ‘. -mmin n True if the difference between the file last modification time and the time find was started. -execdir utility [argument . the pathname of the linked-to file will be displayed preceded by “−>”. 1999 2 . and pathname.FIND (1) PropertyGeneral Commands Manual System of BladeLogic. size in 512-byte blocks. last modification time.’ ) . If the string "{}" appears anywhere in the utility name or the arguments it is replaced by the pathname of the current file. . -inum n True if the file has inode number n. file permissions. owner. is n 24-hour periods. If gname is numeric and there is no such group name. then gname is treated as a group ID. -mindepth n True if the current search depth is at least what is specified in n. -ctime n True if the difference between the time of last change of file status information and the time find was started. the major and minor numbers will be displayed instead of the size in bytes. Case insensitive. These do not describe actual file system types. rounded up to the next full minute. -group gname True if the file belongs to the group gname. Strictly confidential and proprietary FIND (1) -cnewer file True if the current file has a more recent last change time than file. group. -follow Follow symbolic links. -maxdepth n True if the current search depth is less than or equal to what is specified in n. -links n True if the file has n links. Optional arguments may be passed to the utility. Identical to the -exec primary with the exception that utility will be executed from the directory that holds the current file. The format is identical to that produced by “ls −dgils”. -exec utility [argument . The following information for the current file is written to standard output: its inode number. is n minutes. -empty True if the current file or directory is empty. If the file is a block or character special file. the former matches any file system physically mounted on the system where find is being executed whereas the latter matches any file system which is mounted read-only. -iname pattern True if the last component of the pathname being examined matches pattern. rounded up to the next full 24-hour period. True if the program named utility returns a zero value as its exit status. . If the file is a symbolic link.

Slashes ( ‘/’ ) are treated as normal characters and do not have to be matched explicitly. It prints the pathname of the current file to standard output. ‘∗’. -prune This primary always evaluates to true. nor -print0 is specified. -ok utility [argument . It causes find to not descend into the current file. Note. It prints the pathname of the current file to standard output. the -prune primary has no effect if the −d option was specified. -print This primary always evaluates to true. If the mode is not preceded by a dash. -nouser True if the file belongs to an unknown user. is n 24-hour periods. -size n[c] True if the file’s size. ‘∗’. If the mode is symbolic. BSD December 4. If the response is other than ‘y’ the command is not executed and the value of the ok expression is false. -nogroup True if the file belongs to an unknown group. the first character of a symbolic mode may not be a dash. 1999 3 . . then the primary is true if the file’s size is n bytes.FIND (1) PropertyGeneral Commands Manual System of BladeLogic. These characters may be matched explicitly by escaping them with a backslash ( ‘\’ ) . -name pattern True if the last component of the pathname being examined matches pattern. this primary evaluates to true if the bits in the mode exactly match the file’s mode bits. followed by a newline ( ‘\n’ ) character. -ls. Strictly confidential and proprietary FIND (1) -mtime n True if the difference between the file last modification time and the time find was started. If the mode is preceded by a dash ( ‘−’ ) . followed by a null character. only bits 07777 (S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO) of the file’s mode bits participate in the comparison. If the mode is octal. -perm [ − ] mode The mode may be either symbolic (see chmod(1)) or an octal number.]. -newer file True if the current file has a more recent last modification time than file. the given expression shall be effectively replaced by (given expression) -print. this primary evaluates to true if at least all of the bits in the mode are set in the file’s mode bits. a starting value of zero is assumed and the mode sets or clears permissions without regard to the process’s file mode creation mask. and ‘?’) may be used as part of pattern. Identical to the -exec primary with the exception that find requests user affirmation for the execution of utility by printing a message to the terminal and reading a response. and ‘?’) may be used as part of pattern. Special shell pattern matching characters (‘[’. These characters may be matched explicitly by escaping them with a backslash ( ‘\’ ) . rounded up. rounded up to the next full 24-hour period. -print0 This primary always evaluates to true. -ok. If n is followed by a ‘c’. . ‘]’. Special shell pattern matching characters (‘[’. Note. ‘]’. -path pattern True if the pathname being examined matches pattern. Inc. If neither -exec. in 512-byte blocks is n.

c’ -print Print out a list of all the files owned by user “wnj” that are newer than the file “ttt”: $ find / -newer ttt -user wnj -print Print out a list of all the files which are not both newer than “ttt” and owned by “wnj”: $ find / \! \( -newer ttt -user wnj \) -print Print out a list of all the files that are either owned by “wnj” or that are newer than “ttt”: BSD December 4. All primaries which take a numeric argument allow the number to be preceded by a plus sign ( ‘+’ ) or a minus sign ( ‘−’ ) .FIND (1) PropertyGeneral Commands Manual System of BladeLogic. then uname is treated as a user ID. expression -or expression The -or operator is the logical OR operator. The second expression is not evaluated if the first expression is false. The operators are listed in order of decreasing precedence. and neither means “exactly n”. (expression) This evaluates to true if the parenthesized expression evaluates to true. Possible file types are as follows: b c d f l p s block special character special directory regular file symbolic link FIFO socket -user uname True if the file belongs to the user uname.c”: $ find / \! -name ’∗. 1999 4 . All operands and primaries must be separate arguments to find. OPERATORS The primaries may be combined using the following operators. Primaries which themselves take arguments expect each argument to be a separate argument to find. a preceding minus sign means “less than n”. Strictly confidential and proprietary FIND (1) -type t True if the file is of the specified type. If uname is numeric and there is no such user name. EXAMPLES Print out a list of all the files whose names do not end in “. The expression evaluates to true if either the first or the second expression is true. It evaluates to true if the expression is false. !expression This is the unary NOT operator. A preceding plus sign means “more than n”. The expression evaluates to true if both expressions are true. The second expression is not evaluated if the first expression is true. expression -and expression expression expression The -and operator is the logical AND operator. As it is implied by the juxtaposition of two expressions it does not have to be specified. Inc.

The -iname option was inspired by GNU find. -follow. As there is no delimiter separating options and file names or file names and the expression. The options and primaries -amin. and -xdev. ‘!’. Historically. but skip directory /usr/src/gnu: $ find /usr/src -path /usr/src/gnu -prune -or -name \∗\. BSD December 4. and −x options were implemented using the primaries -depth. some legal expressions could have unexpected results. -maxdepth. the standard order of evaluation implies that −depth would never be evaluated. -follow. -inum.FIND (1) PropertyGeneral Commands Manual System of BladeLogic. ‘?’. stat(2).2 (“POSIX.[0-9] SEE ALSO chflags(1). -ls. -execdir. ‘]’.core’ -print Find all files in /usr/src ending in a dot and single digit. BUGS The special characters used by find are also special characters to many shell programs.2 (“POSIX. Strictly confidential and proprietary FIND (1) $ find / \( -newer ttt -or -user wnj \) -print Print out a list of all core files on local file systems: $ find / \! -fstype local -prune -or -name ’∗. As −print always evaluates to true. -cmin. ‘[’. and -print0 are extensions to IEEE Std 1003. -mindepth. and ‘.’ may have to be escaped from the shell. ‘\’. ‘(’. This version replaces it no matter where in the utility name or arguments it appears. In particular. −H. This is not the case. ‘)’. Historic implementations of the -exec and -ok primaries did not replace the string "{}" in the utility name or the utility arguments if it had preceding or following non-whitespace characters. strmode(3). and the operator -and was implemented as −a. -empty. Inc. the characters ‘∗’. -iname.2”). An example is the expression “−print −o −depth”. As they were really global variables that took effect before the traversal began. it is difficult to specify files named “-xdev” or “!”. chmod(1). fts(3). The operator -or was implemented as −o.2”) standard. which(1). the −d. 1999 5 . getgrent(3). symlink(7) STANDARDS The find utility syntax is a superset of the syntax specified by the IEEE Std 1003. xargs(1). These primaries always evaluated to true. -mmin. These problems are handled by the −f option and the getopt(3) “−−” construct. locate(1). whereis(1). -links. getpwent(3). -fstype. HISTORY A find command appeared in Version 1 AT&T UNIX.

User Commands Property of BladeLogic. Inc. ORIGIN Fold includes software developed by the University of California. OPTIONS The options are as follows: -w SEE ALSO Specifies a line width to use instead of the default 80 characters. Strictly confidential and proprietary fold ( 1 ) NAME fold . SunOS 5. DESCRIPTION Fold is a filter which folds the contents of the specified files. or the standard input if no files are specified. Width should be a multiple of 8 if tabs are present. breaking the lines to have maximum of 80 characters.fold long lines for finite width output device SYNOPSIS fold [-w width] file .. Please see the intro section for complete acknowledgements. expand(1) BUGS If underlining is present it may be messed up by folding.. or the tabs should be expanded using expand(1) before using fold. Berkeley and its contributors.8 Last change: NSH 1 .

<nis> . <hostname> Print the first fqdn resolved name of <hostname> resolved using any one of the name resolution databases specified along the hosts stanza of the nsswitch.domaincomponent1.. <local> <dns> . <dns> . and NIS. -a <hostname> Print fqdn of <hostname> resolved using all the name resolution databases specified along the hosts stanza of the nsswitch. <dns> host2.conf like file.conf like file.domaincomponent1.. OPTIONS -u Print usage.. DNS. only the first hostname from the left in the given hostname list is considered. Empty sections signify either absence of the hostname in the name resolution database or unavailability of the database. EXAMPLES Example 1 [host1] $ fqdn host1 host1. Inc... Example 2 [host3] $ fqdn -a host2 <local> .Property of BladeLogic... <local> . in that particular sequence.conf like file...com <nis> ...domaincomponent2. This command typically determines the host’s corresponding fqdn by querying the name resolution database entries specified along the hosts stanza of the nsswitch..com The following example shows host2 being resolved from host3’s local name resolution database (/etc/hosts).conf like file on the operating system. <nis> NSH 1 .. If multiple hostnames are specified.domaincomponent2. in that particular sequence.... <dns> .conf like file. Strictly confidential and proprietary fqdn(1) fqdn(1) NAME fqdn − print fully qualified domain name of the current or specified host SYNOPSIS fqdn [ [ -u ] | [ -a ] [ <hostname> ] ] DESCRIPTION fqdn prints out the fully qualified domain name (fqdn) of the current or specified host. <nis> .. No Argument Print the first fqdn resolved name of the current hostname resolved by any one of the name resolution database specified along the hosts stanza of the nsswitch. <local> .. -a Print fqdn of the current hostname resolved using all the name resolution databases specified along the hosts stanza of the nsswitch.

Strictly confidential and proprietary fqdn(1) fqdn(1) Example 3 [host4] $ fqdn -a <local> .Property of BladeLogic..com loghost <dns> . NSH 2 . <local> .com ORIGIN fqdn was written by Jaswinder Bhamra.domaincomponent3..domaincomponent2. <dns> host4.domaincomponent1.. <dns> .domaincomponent1...com host4..domaincomponent2.. <local> . Inc.domaincomponent2.... <local> host4 host4. <dns> .. SEE ALSO hostname(1)..

] funzip [–password] input. o r g / p u b / i n f o z i p / f t p: / / f t p. after prompting again for the password. nrst0 is a SCSI tape drive). Decryption may not be supported at some sites. currently running processes are often visible via simple commands (e..]  funzip [–password]  [. Given the limitation on single-member extraction. See DESCRIPTION for more details. . the terminal may sometimes be reset to a non-echo mode.zip (any errors will be reported on standard error): funzip test. BUGS When piping an encrypted file into more and allowing funzip to prompt for password.zip | more To use funzip to test the first member file of test.gz  [.93) 1 . . ps(1) under Unix).z i p. . zipinfo(1L). i n f o . and command-line histories can be read. DESCRIPTION funzip acts as a filter. and more then ‘‘restores’’ the terminal to this mode before exiting.zip > /dev/null To use zip and funzip in place of compress(1) and zcat(1) (or gzip(1L) and gzcat(1L)) for tape backups: tar cf – . zipcloak(1L). funzip changes the terminal mode to non-echo before more reads its state.g. To recover. then the input comes from the specified file instead of from stdin. If there is an argument. funzip is most useful in conjunction with a secondary archiver program such as tar(1).] funzip [–password] input. . funzip will reset the terminal properly. Reference Manual Pages Property of BladeLogic. A password for encrypted zip files can be specified on the command line (preceding the file name. i nf o.zip  [. that is. or Info-ZIP Last change: 14 January 2001 (v3.zip and to pipe it into more(1): funzip test. Note that this constitutes a security risk on many systems. for example. SEE ALSO gzip(1L). funzip simply creates the directory and exits. .Misc. This would be useful in the case where a ZIP archive is included within another archive. it assumes that a ZIP archive (or a gzip’d(1) file) is being piped into standard input. If the first entry of the zip file is encrypted and no password is specified on the command line. unzip(1L). In the case where the first member is a directory. The functionality of funzip should be incorporated into unzip itself (future release). This is apparently due to a race condition between the two programs. EXAMPLES To use funzip to extract the first member file of the archive test.] ARGUMENTS [–password] Optional password to be used if ZIP archive is encrypted. Strictly confidential and proprietary FUNZIP ( 1L ) NAME funzip – filter for extracting from a ZIP archive in a pipe SYNOPSIS [. and it extracts the first member from the archive to stdout. .z i p . There is presently no way to extract any member but the first from a ZIP archive. unzipsfx(1L). | zip –7 | dd of=/dev/nrst0 obs=8k dd if=/dev/nrst0 ibs=8k | funzip | tar xf – (where. The following section includes an example illustrating this usage in the case of disk backups to tape. zipsplit(1L) URL The Info-ZIP home page is currently at h t t p : / / www. . or g/ pub/ i nf oz i p/ . then the user is prompted for a password and the password is not echoed on the console. if any) by prefixing the password with a dash. zip(1L). run funzip on the same file but redirect to /dev/null rather than piping into more. Inc. . zipnote(1L).

Strictly confidential and proprietary FUNZIP ( 1L ) AUTHOR Mark Adler (Info-ZIP) Info-ZIP Last change: 14 January 2001 (v3.Misc. Reference Manual Pages Property of BladeLogic. Inc.93) 2 .

a license key. host1 .. and an optional expiration key. USAGE host $ getlic -n -v bombay madras bagalore Host bombay is not licensed Host madras has a valid evaluation license Host bagalore has a valid permanent license host $ getlic bombay madras host $ cat license. OPTIONS The following four options let you select a subset of hosts based on their current license status. hostn] DESCRIPTION The getlic command is meant to be used in conjunction with the putlic command. If you do not specify any of these four options.dat to license the remote agents. a product code. one entry per line. The license. and writes this data to a file called license. Displays the status of each host. BladeLogic’s licensing web page takes this file and generates a file called license. Other options include: -f filename Instead of listing your hosts one at a time on the command line as arguments.getlic(1) Property of BladeLogic. Inc.dat file can contain multiple entries. you can use this option to point to a file containing a list of hosts (one per line) from which you want to obtain license information. -l -u -e -x -n -v Get license data from hosts that currently have a valid permanent license.. Do not create a license. Verbose output.. hostn List of hosts whose license information you want to retrieve.raw.dat. regardless of license status. Get license data from hosts that are currently un-licensed. The putlic command uses license.. Strictly confidential and proprietary getlic(1) NAME getlic − Get remote license data from agents SYNOPSIS getlic [-luenxv] [-f file] [host1 . You can specify multiple options. The basic idea is to let you remotely license multiple servers. getlic gets license data from all the hosts you specify. This is useful when you just want to get an overview of your licensing situation. See the -v option for more details. The getlic command gathers necessary license data from each remote host. putlic sends this data to each remote host specified in the first (hostname) field of each entry.raw file. ORIGIN getlic was written by Thomas Kraus NSH 1 . Each entry consists of a hostname. Get license data from hosts that currently have a valid evaluation (timed) license. Get license data from hosts that currently have an expired evaluation license. putlic creates an appropriate license based on the data.raw bombay 1 AF23B1C9 madras 1 2F23B1C4 CAVEATS This command works even if the remote agent is currently not licensed.

By default. follow symbolic links only if they were explicitly listed on the command line. Treat all files as text. Search binary files. List the pathname for each file. follow all symbolic links. fgrep . -C -E -F -G -H -I -L Print two lines of leading context and two lines of trailing context after each match. -h -i Never print filename headers with output lines. grep does not follow symbolic links. If grep searched the standard input. If you specified the -R option. display the offset in bytes of the matching pattern.. Recursively search the subdirectories you specify. Select the input files that do NOT contain lines that match the pattern(s). Perform case insensitive matching. Force grep to behave as egrep. Force grep to behave as fgrep. but do not attempt to print them. -B num Print num lines of leading context before each match. The grep utility is used for simple patterns and ex(1) or ed(1) style regular expressions. selecting lines that match one or more patterns. When displaying a matching line.. egrep. -f pattern_file Read one or more newline separated patterns from pattern_file. If you specified -R. NSH 1 . The egrep utility can handle extended regular expressions and multi-line patterns. grep selects an input line if it matches any of the specified patterns. Display version information. Inc.] DESCRIPTION The grep utilities search the given input files. OPTIONS -A num Print num lines of trailing context after each match. Ignore binary files.file pattern searcher SYNOPSIS grep [-AB num] [-CEFGHILPRSUVabchilnoqsvwx] [-e pattern] [-f file] [pattern] [file .grep(1) Property of BladeLogic. Newlines are not considered part of a pattern. You can specify multiple -e options to specify multiple patterns. an input line matches a pattern if any regular expression (RE) in the pattern matches the input line without its trailing newline. The fgrep utility is quick but can handle only fixed patterns consisting of one or more lines. it writes the pathname ‘-’. in front of the matching line. Force grep to behave as grep. An empty expression matches every line. Each input line that matches at least one of the patterns is written to the standard output. If you specified the -R option. -P -R -S -U -V -a -b -c -e expression Specify a pattern to use to search the input. Strictly confidential and proprietary grep(1) NAME grep. Write only a count of matching lines. Equivalent to -A 2 -B 2. and write the names of these files to standard output. allowing any of the pattern lines to match a portion of the input.

To find all lines in a file that do not contain the words foo or bar: NSH 2 . it writes the pathname ‘-’. The caret ‘ˆ’ matches the null string at the beginning of a line. Suppress normal output. RETURN VALUES grep exits with one of the following values: 0 1 >1 One or more lines were selected. grep uses the standard input.Pp’ at the beginning of a line: grep’ˆ\. Select lines that do not match any of the specified patterns.ˆ[]|?+*{}()\’. and the ‘\’ escapes the ‘. Silent mode. -n -o -q -s -v -w -x If you do not specify any file arguments.’ which would otherwise match any character. No lines were selected. Search for the expression as a word (as if surrounded by ‘[[:<:]]’ and ‘[[:>:]]’). Match 1 or more sequential repetitions of the pattern. Strictly confidential and proprietary -l grep(1) Select the input files that contain lines that match the pattern(s). Match 1 or less sequential repetitions of the pattern. An error occurred. Match 0 or more sequential repetitions of the pattern. Match any single character or range of characters enclosed in the brackets.grep(1) Property of BladeLogic. Ignore nonexistent and unreadable files. If grep searched the standard input. List the pathname for each file. ‘$. Escape special characters that have meaning to egrep. Only input lines selected against an entire fixed string or regular expression are considered to be matching lines. or -q. grep ignores this option if you specify -c. Add another pattern (see example below). EXTENDED REGULAR EXPRESSIONS The following characters are interpreted by egrep: $ ˆ | ? + * {} [] \ Align the match from the end of the line. Inc. These special characters are: EXAMPLES To find all occurrences of the word patricia in a file: grep patricia myfile To find all occurrences of the pattern ‘. Always print filename headers with output lines. -l. The first line of each file is 1. grep resets the line number counter for each file it processes. Precede each output line with its relative line number in the file. and write the names of these files to standard output. Match specified number of sequential repetitions of the pattern.Pp’ The apostrophes ensure the entire expression is evaluated by grep instead of by your shell. Align the match from the beginning of the line.

20 or 25. Strictly confidential and proprietary $ grep -v -e foo -e bar myfile A simple example of an extended regular expression: $ egrep ’19|20|25’ calendar Peruses the file calendar looking for either 19. NSH 3 . grep(1) HISTORY The grep command appeared in Version 6 AT&T UNIX. Inc.grep(1) Property of BladeLogic.

You specified an unknown option. CAVEATS There are two ways in which to define the number of lines/characters to be output. if you are using the -c option) to be n. One of the files you want to view was not accessible. EXIT CODES 0 1 2 255 No errors detected. -n -? file Set the number of lines to be output (or characters to be output. meaning that lines of text are terminated with a <LF> rather than the Windows standard <CR><LF>.] DESCRIPTION head displays the first few lines (by default. ORIGIN head was written by Thomas Kraus SEE ALSO tail(1) NSH 1 . File whose first few lines you want to display. head displays the first few lines from the standard input.c $ head -c -n 1024 //vienna/etc/passwd DIAGNOSTICS head: Cannot open file filename This message is output if head is unable to access the file filename. If you do not specify any file names. This is the default. Inc. Output a brief summary of available options and then exit with a zero status without doing any viewing. This is done for compatibility purposes. EXAMPLE The first example views the first 20 lines of all . OPTIONS -B On Windows systems..head(1) Property of BladeLogic. if you are using the -c option) to be count. display count number of characters. -c -l -n count Set the number of lines to be output (or characters to be output. $ head -20 *. head displays the first few lines from the standard input.. Strictly confidential and proprietary head(1) NAME head − Display first few lines of a file SYNOPSIS head [-?] [-l | -c | -n count | -n] [file . the head command by default reads lines of text in TEXTUAL mode.c files. Instead of displaying count number of lines. The second example views the first 1024 characters in the password file on the host vienna. 10 lines) from the named file(s) to the standard output." meaning <CR><LF> remains <CR><LF>. Measure quantities in lines. When you specify the -B option. head outputs the file "as is. Unable to get a license to use the software. If you do not specify any files.

or 1048576. -s offset Skip offset bytes from the beginning of the input. or m to offset causes it to be interpreted as a multiple of 512.. per line. od. with the following exceptions: NSH 1 . space-filled.ascii. two byte quantities of input data. With a leading 0x or 0X. The iteration count is an optional positive integer. zero-filled.hexdump(1) Property of BladeLogic. OPTIONS The options are as follows: -b -c -d One-byte octal display. Display the input offset in hexadecimal. or the standard input. Strictly confidential and proprietary hexdump(1) NAME hexdump. followed by eight space-separated. k. a byte count. It is interpreted as a fprintfstyle format string (see fprintf(3)). -e format_string Specify a format string to be used for displaying data. -n length Interpret only length bytes of input. per line. By default. in the order that they were specified. Without the -v option. five column. offset is interpreted as a decimal number. zero-filled. and a format. in a user specified format. xd . zero-filled. four column. with a leading 0. Two-byte hexadecimal display. 1024. three column. One-byte character display. which defaults to one. respectively. offset is interpreted as a hexadecimal number. -v The -v option causes hexdump to display all input data. For each input file. The byte count is an optional positive integer. followed by sixteen spaceseparated. Display the input offset in hexadecimal. any number of groups of output lines. -o Two-byte octal display. bytes of input data. in unsigned decimal. Each format is applied iteration count times. six column. -f format_file Specify a file that contains one or more newline separated format strings. three column. followed by eight space-separated. transforming the data according to the format strings specified by the -e and -f options. characters of input data per line. a single slash must be placed after the iteration count and/or before the byte count to disambiguate them. hexadecimal. in octal. followed by eight. Display the input offset in hexadecimal. per line.. octal dump SYNOPSIS hexdump [-bcdovx] [-e format_string] [-f format_file] [-n length] [-s skip] file . Empty lines and lines whose first non-blank character is a hash mark (#) are ignored. -x FORMATS A format string contains any number of format units. followed by sixteen space-separated. are replaced with a line comprised of a single asterisk. per line. separated by whitespace. Any whitespace before or after the slash is ignored. A format unit contains up to three items: an iteration count. two-byte units of input data. Display the input offset in hexadecimal. If an iteration count and/or a byte count is specified. The format is required and must be surrounded by double quote (" ") marks. Appending the character b. two-byte quantities of input data. if no files are specified. Inc. DESCRIPTION The hexdump utility is a filter which displays the specified files. space separated. which would be identical to the immediately preceding group of output lines (except for the input offsets). If specified it defines the number of bytes to be interpreted by each iteration of the format. Two-byte decimal display. in hexadecimal. decimal. zero-filled. offset is interpreted as an octal number. otherwise. hexdump sequentially copies the input to standard output. Display the input offset in hexadecimal. in octal.

Inc. %u. Format strings interpreting less than an input block’s worth of data. have the iteration count incremented until the entire input block has been processed or there is not enough data remaining in NSH 2 . %x %E.hexdump(1) + + + + Property of BladeLogic. ‘‘n’’. one. or the iteration count times the number of bytes required by the format if the byte count is not specified. names. which is the iteration count times the byte count. _p _u The amount of data interpreted by each format string is the sum of the data required by each format unit. lower-case. Strictly confidential and proprietary An asterisk (*) may not be used as a field width or precision. %X. %_u. 000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel 008 bs 009 ht 00A lf 00B vt 00C ff 00D cr 00E so 00F si 010 dle 011 dc1 012 dc2 013 dc3 014 dc4 015 nak 016 syn 017 etb 018 can 019 em 01A sub 01B esc 01C fs 01D gs 01E rs 01F us 0FF del The default and supported byte counts for the conversion characters are as follows: %_c.’’. except for those representable by standard escape notation (see above). The conversion characters ‘‘h’’. %_p. of the next byte to be displayed. with the exception that control characters are displayed using the following. Nonprinting characters are displayed in three character. %f. _c Output characters in the default character set. two and four byte counts supported. and x specify the display base as decimal. four byte counts supported. are displayed as hexadecimal strings. %e. o. Output characters in the default character set. when all of the input data has been processed. Characters greater than 0xff. Nonprinting characters are displayed as a single ‘‘. ‘‘p’’ and ‘‘q’’ are not supported. %o. ‘‘l’’. hexdump(1) A byte count or field precision is required for each ‘‘s’’ conversion character (unlike the fprintf(3) default which prints the entire string if the precision is unspecified). The single character escape sequences described in the C standard are supported: NUL \0 <alert character> \a <backspace> \b <form-feed> \f <newline> \n <carriage return> \r <tab> \t <vertical tab> \v Hexdump also supports the the following additional conversion strings: _a[dox] Display the input offset. Eight byte default. _A[dox] Identical to the _a conversion string except that it is only performed once. hexadecimal. %G. %c %d. octal or hexadecimal respectively. Output US ASCII characters. Four byte default. zero-padded octal. cumulative across input files. %g One byte counts only. whose last format unit both interprets some number of bytes and does not have a specified iteration count. %i. The input is manipulated in ‘‘blocks’’. The appended characters d. where a block is defined as the largest amount of data specified by any format string. which are displayed as two character strings.

7_ax " 8/2 "%04x " "\n" Hexdump includes software developed by the University of California.hexdump(1) Property of BladeLogic. If no format strings are specified. EXAMPLES Display the input in perusal format: "%06. hexdump exits 0 on success and >0 if an error occurred. the default display is equivalent to specifying the -x option. Further output by such format strings is replaced by an equivalent number of spaces. either as a result of user specification or hexdump modifying the iteration count as described above. input data only partially satisfies a format string.e. It is an error to specify a byte count as well as multiple conversion characters or strings unless all but one of the conversion characters or strings is _a or _A. the input block is zero-padded sufficiently to display all available data (i. an iteration count is greater than one. If. Please see the intro section for complete acknowledgements. no trailing whitespace characters are output during the last iteration. SEE ALSO od(1) NSH 3 .7_Ax\n" "%07. An equivalent number of spaces is defined as the number of spaces output by an s conversion character with the same field width and precision as the original conversion character or conversion string but with any ‘‘+’’. and referencing a NULL string. Strictly confidential and proprietary hexdump(1) the block to satisfy the format string.6_ao " 12/1 "%3_u " "\t\t" "%_p " "\n" Implement the -x option: "%07. as a result of the specification of the -n option or end-of-file being reached. any format units overlapping the end of data will display some number of the zero bytes). If. ‘‘ ’’. Berkeley and its contributors. Inc. ‘‘#’’ conversion flag characters removed.

8 Last change: 23 October 1988 1 . Inc. but cute.User Commands Property of BladeLogic. front-end for grep.highlight results of a grep SYNOPSIS hgrep <grep args> Hgrep is a trivial. SunOS 5. Strictly confidential and proprietary HGREP ( 1 ) NAME hgrep . It takes the results of the grep and highlights the word that was searched for. Quoting is not handled. DESCRIPTION SEE ALSO grep(1) BUGS Meta-characters are not handled.

Strictly confidential and proprietary hostname(1) NAME hostname − print name of current host SYNOPSIS hostname DESCRIPTION hostname prints out the name of the host on which your current directory resides. Inc. OPTIONS hostname has no options. ORIGIN hostname was written by Thomas Kraus SEE ALSO uname(1). NSH 1 .hostname(1) Property of BladeLogic. This command does NOT let you set the name of the current host.

For example. the following options are available: -a In addition to the default output. When you specify the field delimiter characters with the -t option. -j1 field In file 1. If one of the arguments file1 or file2 is ‘‘-’’. join on the field specified by field. There is one line in the output for each pair of lines in file1 and file2 that have identical join fields. In file 2. -j2 3 means join on the third field in file 2.) Use character char as a field delimiter for both input and output. but display a line for each unpairable line in file file_number. -1 3 means join on the third field in file 1. Both file numbers and field numbers are 1 based. join on the field specified by field. join may not report all field matches. The first field in each line is used by default. NSH 1 . Otherwise. you should order the files you are joining in the collating sequence of sort(1). on the fields on which they are to be joined. where file_number is a file number and field is a field number. (The latter requires quoting to protect it from the shell.relational database operator SYNOPSIS join [-a file_number | -v file_number] [-e string] [-j file_number field] [-o list] [-t char] [-1 field] [-2 field] file1 file2 DESCRIPTION The join utility performs an ‘‘equality join’’ on the specified files and writes the result to the standard output. The elements of list must be either comma (‘‘. -e string Replace empty output fields with string. -o list The -o option specifies the fields that will be output from each file for each line with matching join fields.using the -b option. -1 field -2 field In file 1. meaning the first file on the command line is file number 1 and the first field is field number 1. You can specify options -v 1 and -v 2 at the same time.join(1) Property of BladeLogic. -j1 3 means join on the third field in file 1.’’) or whitespace separated. Strictly confidential and proprietary join(1) NAME join . Every occurrence of char in a line is significant. Multiple tabs and spaces count as a single field separator. join on the field specified by field. -t char -v file_number Do not display the default output. and >0 if an error occurs. Inc. Each element of the list has the form ‘file_number. When you are using the default field delimiter characters. Each output line consists of the join field. -2 3 means join on the third field in file 2. Many of the options use file and field numbers.field’. join uses the standard input. The default input field separators are tab and space characters. the remaining fields from file1 and then the remaining fields from file2. For example. the collating sequence should be the same as sort without the -b option. For example. and leading tabs and spaces are ignored. produce a line for each unpairable line in both file 1 and file 2. A a simpler approach is to use multiple -o options. The default output field separator is a single space character. produce a line for each unpairable line in file file_number. The ‘‘join field’’ is the field in each file by which the files are compared. join on the field specified by field. -j2 field In file 2. The join utility exits 0 on success. COMPATIBILITY For compatibility with historic versions of join. For example. OPTIONS -a file_number In addition to the default output.

. Historical implementations of join permitted multiple arguments to the -o option. These options are available only so historic shellscripts do not require modification. SEE ALSO awk(1). comm(1). Berkeley and its contributors. These arguments were of the form ‘‘file_number.field_number’’ as described for the current -o option. paste(1). join(1) -o list . uniq(1) NSH 2 . do not use these options. Inc.join(1) Property of BladeLogic. join on the field specified by field. sort(1). This has obvious difficulties in the presence of files named ‘‘1.2’’. ORIGIN join includes software developed by the University of California.. Strictly confidential and proprietary -j field In both file 1 and file 2. In general.

each option affects only the file after it. the fragment will be left-adjusted within the field. The n-th input lines from the input files are considered fragments of the single long n-th output line into which they are assembled. Berkeley and its contributors.. where min is the minimum field width and max the maximum field width.max Print line fragments according to the format string min. The newline normally appended to each output line is omitted. but pad this file’s field when end-of-file is reached and other files are still active. –f min. –p min. Strictly confidential and proprietary lam ( 1 ) NAME lam – laminate files SYNOPSIS lam [ –[fp] min. To merge the lines from four different files use lam file1 –S " \ " file2 file3 file4 Every 2 lines of a file may be joined on one line with lam – – < file and a form letter with substitutions keyed by ‘@’ can be done with lam –t @ letter changes ORIGIN Lam includes software developed by the University of California. and may be repeated.. Please see the intro section for complete acknowledgements. –t c The input line terminator is c instead of a newline.max ] [ –s sepstring ] [ –t c ] file . SEE ALSO join(1). The options are described below. Inc. The name ‘–’ means the standard input. pr(1).User Commands Property of BladeLogic. This option may appear after the last file.max Like –f. zeros will be added to make up the field width. Normally. and if it begins with a ‘–’. EXAMPLES The command lam file1 file2 file3 file4 joins 4 files together along each line. SunOS 5.8 Last change: NSH 1 . DESCRIPTION Lam copies the named files side by side onto the standard output. If min begins with a zero. –s sepstring Print sepstring before printing line fragments from the next file. If the option letter is capitalized it affects all subsequent files until it appears again uncapitalized. To print files simultaneously for easy viewing use pr(1).max.

SPACE | ˆV | f | ˆF Scroll forward N lines.. default 1. In this mode. . default one window (see option -z below). but if N is specified. RETURN | ˆN | e | ˆE | j | ˆJ Scroll forward N lines. Warning: some systems use ˆV as a special literalization character. ˆX means control-X. 2003 1 .LESS (1) PropertyGeneral Commands Manual System of BladeLogic. only the final screenful is displayed. Commands are based on both traditional more and vi(1).) This version of less also acts as more(1) if it is called as more. If you forget all the other commands. There is even limited support for hardcopy terminals. BSD January 17.] [ −y lines] [ −[z] lines] [ −# shift] [+[+] cmd] [ −− ] [filename . Strictly confidential and proprietary LESS (1) NAME less... Also. for example ESC-v means the two character sequence "ESCAPE". less does not have to read the entire input file before starting. remember this one. z Like SPACE. even if N is more than the screen size. The entire N lines are displayed. (On a hardcopy terminal. ESC stands for the ESCAPE key. even if it reaches end-of-file in the process. COMMANDS In the following descriptions. If N is specified. The number is used by some commands. default one half of the screen size. d | ˆD Scroll forward N lines. ESC-SPACE Like SPACE. h | H Help: display a summary of these commands. but which allows backward movement in the file as well as forward movement. the differences are in the prompt and that more exits by default when it gets to the end of the file. it becomes the new default for subsequent d and u commands. . Inc. it becomes the new window size. as indicated. but scrolls a full screensful. If N is more than the screen size. so it can run on a variety of terminals. lines which should be printed at the top of the screen are prefixed with a caret. called N in the descriptions below.] DESCRIPTION less is a program similar to the traditional more(1). then "v". Commands may be preceded by a decimal number. less uses termcap (or terminfo on some systems). more − view files on a CRT SYNOPSIS less more less more less more less more less more | −? | −-help | −V | −-version | [ −[+]aBcCdeEfFgGiIJLmMnNqQrRsSuUVwWX˜] [ −b space] [ −h lines] [ −j line] [ −k keyfile] [ −o | −O logfile] [ −p pattern] [ −P prompt] [ −t tag] [ −T tagsfile] [ −x tab. so with large input files it starts up faster than text editors like vi(1).

If N is more than the screen size. default one window (see option -z below). ESC-) | RIGHTARROW Scroll horizontally right N characters. a number N may be used to specify the N-th bracket on the line. N should be between 0 and 100. r | ˆR | ˆL Repaint the screen. but applies to parentheses rather than curly brackets. it becomes the new default for subsequent d and u commands. The entire N lines are displayed. it acts as though the -S option (chop lines) were in effect. The matching right curly bracket is positioned on the bottom line of the screen. } ( ) BSD January 17. ESC-( | LEFTARROW Scroll horizontally left N characters. If a left curly bracket appears in the top line displayed on the screen. and keep trying to read when the end of file is reached. discarding any buffered input. Strictly confidential and proprietary LESS (1) b | ˆB | ESC-v Scroll backward N lines. default one half of the screen size. Inc. the } command will go to the matching left curly bracket. Normally this command would be used when already at the end of the file. but if N is specified. 2003 2 . it becomes the default for future RIGHTARROW and LEFTARROW commands. Like }. rather than a file. It is a way to monitor the tail of a file which is growing while it is being viewed. If there is more than one right curly bracket on the top line. the { command will go to the matching right curly bracket. it becomes the default for future RIGHTARROW and LEFTARROW commands. Useful if the file is changing while it is being viewed. even if N is more than the screen size.) p | % { Go to a position N percent into the file. If there is more than one left curly bracket on the top line. If a right curly bracket appears in the bottom line displayed on the screen. (The behavior is similar to the "tail -f" command.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. a number N may be used to specify the N-th bracket on the line. or if N is not specified and standard input. but applies to parentheses rather than curly brackets. Like {. default 1 (beginning of file). it becomes the new window size. (Warning: this may be slow if N is large. is being read. default half the screen width (see the -# option). default 1. R F Repaint the screen. Scroll forward. If N is specified. If a number N is specified. The matching left curly bracket is positioned on the top line of the screen. w Like ESC-v. y | ˆY | ˆP | k | ˆK Scroll backward N lines.) G | > | ESC-> Go to line N in the file. While the text is scrolled. If a number N is specified. default the end of the file. (Warning: this may be slow if N is large. only the final screenful is displayed. u | ˆU Scroll backward N lines.) g | < | ESC-< Go to line N in the file. Warning: some systems use ˆY as a special job control character. default half the screen width (see the -# option).

respectively. That is. Search multiple files. Inc. Certain characters are special. (Single quote. so the ’ command can be used to switch between input files. "ESC ˆF < >" could be used to go forward to the > which matches the < in the top displayed line. For example. marks the current position with that letter. m ’ Followed by any lowercase letter. but applies to square brackets rather than curly brackets. "ESC ˆB < >" could be used to go backward to the < which matches the > in the bottom displayed line. returns to the position at which the last "large" movement command was executed. the search continues in the previous file in the command line list. but uses the two characters as open and close brackets. ESC-ˆF Followed by two characters. The search starts at the second line displayed (but see the -a and -j options. respectively. ˆXˆX Same as single quote. BSD January 17. jumps to the beginning or end of the file respectively. For example. which change this).LESS (1) PropertyGeneral Commands Manual System of BladeLogic. ˆF | @ ˆK ˆR ?pattern Search backward in the file for the N-th line containing the pattern. 2003 3 . Strictly confidential and proprietary LESS (1) [ ] Like {. but don’t move to the first match (KEEP current position). if the search reaches the END of the current file without finding a match. The pattern is a regular expression. Highlight any text which matches the pattern on the current screen. acts like }. but uses the two characters as open and close brackets. do a simple textual comparison. they modify the type of search rather than become part of the pattern: ˆN | ! ˆE | ∗ Search for lines which do NOT match the pattern. The search starts at the line immediately before the top line displayed. the search continues in the next file in the command line list. N defaults to 1.) Followed by any lowercase letter. as recognized by ed(1). Certain characters are special if entered at the beginning of the pattern. Begin the search at the first line of the FIRST file in the command line list. Like }. acts like {. Followed by a ˆ or $. ESC-ˆB Followed by two characters. That is. Don’t interpret regular expression metacharacters. returns to the position which was previously marked with that letter. regardless of what is currently displayed on the screen or the settings of the -a or -j options. as in the / command: ˆN | ! ˆE | ∗ Search for lines which do NOT match the pattern. /pattern Search forward in the file for the N-th line containing the pattern. Search multiple files. Followed by another single quote. but applies to square brackets rather than curly brackets. if the search reaches the beginning of the current file without finding a match. that is. Marks are preserved when a new file is examined.

If a number N is specified. Warning: some systems use ˆV as a special literalization character. the search is made for the N-th line NOT containing the pattern. they are all inserted into the list of files and the first one is examined. Repeat previous search. but in the reverse direction and crossing file boundaries. If highlighting is already off because of a previous ESC-u command. As in forward searches. Turn off highlighting of strings matching the current search pattern. n Repeat previous search. for N-th line containing the last pattern. but in the reverse direction. Inc. Similarly.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. N ESC-n Repeat previous search. the "current" file (see the :n and :p commands below) from the list of files in the command line is re-examined. Any search command will also turn highlighting back on. If the filename contains one or more spaces. The filename is inserted into the command line list of files so that it can be seen by subsequent :n and :p commands. BSD January 17. you may not be able to use ˆV. The effect is as if the previous search were modified by ∗. If the previous search was modified by ˆN. the search is done without using regular expressions. 2003 4 . This allows you to enter a filename that contains a percent sign in the name. the entire filename should be enclosed in double quotes (also see the -" option). Examine the previous file in the command line list. ˆXˆV | E Same as :e. If a number N is specified. in that case search commands do not turn highlighting back on. If the previous search was modified by ˆR. If the filename is missing. Strictly confidential and proprietary LESS (1) ˆF | @ Begin the search at the last line of the last file in the command line list. the N-th next file is examined. two consecutive percent signs are simply replaced with a single percent sign. the search continues in the next (or previous) file if not satisfied in the current file. regardless of what is currently displayed on the screen or the settings of the -a or -j options. If the filename consists of several files. However. ˆK ˆR ESC-/pattern Same as "/∗". two consecutive pound signs are replaced with a single pound sign. turn highlighting back on. ESC-u Undo search highlighting. There is no effect if the previous search was modified by ˆF or ˆK. but crossing file boundaries. the N-th previous file is examined. A pound sign (#) is replaced by the name of the previously examined file. As in forward searches. ESC-?pattern Same as "?∗".) :e [filename] Examine a new file. If the previous search was modified by ˆE. On such systems. A percent sign (%) in the filename is replaced by the name of the current file. (Highlighting can also be disabled by toggling the -G option. :n :p Examine the next file (from the list of files given in the command line). ESC-N Repeat previous search.

(Double underscore. See the −t option for more details about tags. If no new value is entered. the N-th file in the list is examined. If a number N is specified. You must press RETURN after typing the option name. The following four commands may or may not be valid. but takes a long option name rather than a single option letter. Followed by one of the command line option letters. (The "−+X" command does the same thing as "−+X" on the command line. For example. − Followed by one of the command line option letters (see OPTIONS below). Like the −! command. If a ˆP (CONTROL-P) is entered immediately after the dash. including its name and the line number and byte offset of the bottom line being displayed. if there were more than one matches for the current tag. or EDITOR if VISUAL is not defined. but takes a long option name rather than a single option letter. BSD January 17. = | ˆG | :f Prints some information about the file being viewed. See also the discussion of LESSEDIT under the section on PROMPTS below. this will reset the option to the "opposite" of its default setting and print a message describing the new setting. depending on your particular installation. a message describing the current setting is printed and nothing is changed. −− −+ −−+ −! −−! _ __ +cmd Causes the specified cmd to be executed each time a new file is examined. (Underscore. Followed by one of the command line option letters this will reset the option to its default setting and print a message describing the new setting. but takes a long option name (see OPTIONS below) rather than a single option letter. q | Q | :q | :Q | ZZ Exits less. the setting of the option is changed but no message is printed. If possible. Like the −+ command. Inc. This does not work for numeric or string-valued options. Go to the next tag. but takes a long option name rather than a single option letter. it also prints the length of the file. A ˆP immediately after the second dash suppresses printing of a message describing the new setting. this will print a message describing the current setting of that option. V Prints the version number of less being run. a new value may be entered after the option letter. or defaults to "vi" if neither VISUAL nor EDITOR is defined. if there were more than one matches for the current tag. Strictly confidential and proprietary LESS (1) :t :x :d t T Go to the specified tag. or a string value (such as -P or -t).) Like the _ (underscore) command.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. as in the − command. v Invokes an editor to edit the current file being viewed. The setting of the option is not changed. if defined. +G causes less to initially display each file starting at the end rather than the beginning. this will change the setting of that option and print a message describing the new setting. Remove the current file from the list of files. Like the − command. 2003 5 . the number of lines in the file and the percent of the file above the last displayed line. You must press RETURN after typing the option name.) This does not work for string-valued options. The editor is taken from the environment variable VISUAL.) Followed by one of the command line option letters. Examine the first file in the command line list. Go to the previous tag. If the option letter has a numeric value (such as -b or -h).

) −a | −-search-skip-screen Causes searches to start after the last line displayed on the screen. A long option name may be abbreviated as long as the abbreviation is unambiguous. 2003 6 . A percent sign (%) in the command is replaced by the name of the current file. | <m> shell-command <m> represents any mark letter. it may be necessary to quote the question mark. Options are also taken from the environment variable LESS if the command is less. not an ordinary file. to avoid typing "less -options . s filename Save the input to a file. For example. "!" with no shell command simply invokes a shell. see the -j option). so command line options override the LESS environment variable. the current screen is piped.. --Quit-at-eof is equivalent to --QUIT-AT-EOF. see the -B option). thus: "-\?". <m> may also be ˆ or $ to indicate beginning or end of file respectively. in units of kilobytes (1024 bytes). or defaults to "sh". By default. a dollar sign ($) must be used to signal the end of the string. If an option appears in the LESS variable. Strictly confidential and proprietary LESS (1) ! shell-command Invokes a shell to run the shell-command given. Such option names need only have their first letter capitalized.. By default 64K of buffer space is used for each file (unless the file is a pipe. it can be reset to its default value on the command line by beginning the command line option with "−+". Pipes a section of the input file to the given shell command. searches start at the second line on the screen (or after the last found line. as distinct from --quit-at-eof. A pound sign (#) is replaced by the name of the previously examined file. Some long option names are in uppercase. For example. If <m> is .LESS (1) PropertyGeneral Commands Manual System of BladeLogic. For example. --quit-at-eof may be abbreviated --quit. Most options may be given in one of two forms: either a dash followed by a single letter. export LESS The environment variable is parsed before the command line. Inc. or two dashes followed by a long option name. to separate a prompt value from any other options with dollar sign between them: LESS="-Ps--More--$-C -e" −? | −-help This option displays a summary of the commands accepted by less (the same as the h command). since both --quit-at-eof and --quiet begin with --qui. the remainder of the name may be in either case. Most options may be changed while less is running. (Depending on how your shell interprets the question mark. thus skipping all lines displayed on the screen. The BSD January 17. For options like -P which take a following string. For example." each time less is invoked. OPTIONS Command line options are described below. or from the environment variable MORE if the command is more. but not --qui. or newline. via the "−" command. you might tell csh(1): setenv LESS -options or if you use sh(1): LESS="-options". such as --QUIT-AT-EOF. This only works if the input is a pipe. The shell is taken from the environment variable SHELL. −bn | −-buffers=n Specifies the amount of buffer space less will use for each file. "!!" repeats the last shell command. The section of the file to be piped is between the first line on the current screen and the position marked by the letter.

−E | −-QUIT-AT-EOF Causes less to automatically exit the first time it reaches end-of-file. This can cause less to run somewhat faster than the default. full screen repaints are done by scrolling from the bottom of the screen.]’’. (A non-regular file is a directory or a device special file. −F | −-quit-if-one-screen Causes less to automatically exit if the entire file can be displayed on the first screen. −d (more only) The -d option causes the default prompt to include the basic directions ‘‘[Press space to continue. that is. the bell is rung). −hn | −-max-back-scroll=n Specifies a maximum number of lines to scroll backward. −B | −-auto-buffers By default. This option is on by default when invoked as more. since only the most recently viewed part of the file is kept in memory. Warning: use of -B can result in erroneous display. so that only 64K (or the amount of space specified by the -b option) is used for the pipe.) Also suppresses the warning message when a binary file is opened. By default. Strictly confidential and proprietary LESS (1) -b option specifies instead that n kilobytes of buffer space should be used for each file. Inc. −G | −-HILITE-SEARCH The -G option suppresses all highlighting of strings found by search commands. −g | −-hilite-search Normally.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. If it is necessary to scroll backward more than n lines. −f | −-force Forces non-regular files to be opened. By default. less will refuse to open non-regular files. lacks some important capability. -h0 is implied. If n is -1. the only way to exit less is via the "q" command. By default. (If the terminal does not have the ability to scroll backward. −C | −-CLEAR-SCREEN The -C option is like -c. buffers are allocated automatically as needed. 2003 7 . such as the ability to clear the screen or scroll backward. buffer space is unlimited. This option is useful in environments where users may not be experienced with pagers. ’q’ to quit. this can cause a large amount of memory to be allocated. the entire file is read into memory. The -B option disables this automatic allocation of buffers for pipes.) BSD January 17. The -d option does not otherwise change the behavior of less on a dumb terminal. −d | −-dumb (less only) The -d option suppresses the error message normally displayed if the terminal is dumb. The -g option changes this behavior to highlight only the particular string which was found by the last search command. The -d option also causes the message ‘‘[Press ’h’ for instructions. but the screen is cleared before it is repainted. −e | −-quit-at-eof Causes less to automatically exit the second time it reaches end-of-file.]’’ to be displayed when an invalid command is entered (normally. when data is read from a pipe. any earlier data is lost. that is. If a large amount of data is read from the pipe. the screen is repainted in a forward direction instead. −c | −-clear-screen Causes full screen repaints to be painted from the top line down. less will highlight ALL strings which match the last search command.

−N | −-LINE-NUMBERS Causes a line number to be displayed at the beginning of each line in the display. the target line is the fourth line on the screen. in other words. The default (to use line numbers) may cause less to run more slowly in some cases. −I | −-IGNORE-CASE Like -i. that is. not to the file which is currently open. −L | −-no-lessopen Ignore the LESSOPEN environment variable (see the INPUT PREPROCESSOR section below). −ofilename | −-log-file=filename Causes less to copy its input to the named file as it is being viewed. −m | −-long-prompt Causes less to prompt verbosely (like more). If the -j option is used. −M | −-LONG-PROMPT Causes less to prompt even more verbosely than more. and so on. If the file already exists. the second to the bottom is -2. BSD January 17. Multiple -k options may be specified. but it will apply only to files opened subsequently. −n | −-line-numbers Suppresses line numbers. but it will overwrite an existing file without asking for confirmation. and the v command will pass the current line number to the editor (see also the discussion of LESSEDIT in PROMPTS below). or if a lesskey file is found in a standard place (see KEY BINDINGS). The screen line is specified by a number: the top line on the screen is 1. if "-j4" is used. A target line is the object of a text search. or jump to a marked position. if a pattern contains uppercase letters. The status column is also used if the -w or -W option is in effect. This option is ignored if any uppercase letters appear in the search pattern. so searches begin at the fifth line on the screen. less prompts with a colon. −Ofilename | −-LOG-FILE=filename The -O option is like -o. with the percent into the file. tag search. −kfilename | −-lesskey-file=filename Causes less to open and interpret the named file as a lesskey(1) file. but searches ignore case even if the pattern contains uppercase letters. not an ordinary file. The number may be negative to specify a line relative to the bottom of the screen: the bottom line on the screen is -1. Suppressing line numbers with the -n option will avoid this problem. Inc. uppercase and lowercase are considered identical. This option can be set from within less. Strictly confidential and proprietary LESS (1) −i | −-ignore-case Causes searches to ignore case. and so on. especially with a very large input file. This applies only when the input file is a pipe. By default. then that search does not ignore case. the LESSOPEN environment variable is ignored by default. less will ask for confirmation before overwriting it. When invoked as more. The status column shows the lines that matched the current search. jump to a line number. 2003 8 . jump to a file percentage. Using line numbers means: the line number will be displayed in the verbose prompt and in the = command.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. If the LESSKEY or LESSKEY_SYSTEM environment variable is set. searches begin at the line immediately after the target line. the next is 2. −J | −-status-column Displays a status column at the left edge of the screen. For example. it is also used as a lesskey file. −jn | −-jump-target=n Specifies a line on the screen where the "target" line is to be positioned.

That is. The bell will be rung on certain other errors. it is used instead." is zero or more characters other than "m". Without a file name. This works only if the input consists of normal text and possibly some ANSI "color" escape sequences. the portion of a long line that does not fit in the screen width is not shown. -Ph changes the prompt for the help screen. −r | −-raw-control-chars Causes "raw" control characters to be displayed. The "s" command is equivalent to specifying -o from within less. -Pm changes the medium (-m) prompt. −Pprompt | −-prompt=prompt Provides a way to tailor the three prompt styles to your own preference. Such an option must either be the last option in the LESS variable. m where the ". The default is to fold long lines. -PM changes the long (-M) prompt. but tries to keep track of the screen appearance where possible. -Pw changes the message printed while waiting for data (in the F command). the -o and -O options can be used from within less to specify a log file... You can make less think that characters other than "m" can end ANSI color escape sequences by setting the environment variable LESSANSIENDCHARS to the list of characters which can end a color escape sequence. -P= changes the message printed by the = command. If the terminal has a "visual bell". The default is to display control characters using the caret notation. less cannot keep track of the actual appearance of the screen (since this depends on how the screen responds to each type of control character). Thus. they will simply report the name of the log file. This is useful when viewing nroff(1) output. −S | −-chop-long-lines Causes lines longer than the screen width to be chopped rather than folded..LESS (1) PropertyGeneral Commands Manual System of BladeLogic. For the purpose of keeping track of screen appearance. which are sequences of the form: ESC [ . all control characters and all ANSI color escape sequences are assumed to not move the cursor. Warning: when the -r option is used. various display problems may result. such as typing an invalid character.. BSD January 17. for example. All prompt strings consist of a sequence of letters and special escape sequences. This option would normally be put in the LESS environment variable. See the section on PROMPTS for more details. −R | −-RAW-CONTROL-CHARS Like -r. Inc. −Q | −-QUIET | −-SILENT Causes totally "quiet" operation: the terminal bell is never rung. that is. that is. −s | −-squeeze-blank-lines Causes consecutive blank lines to be squeezed into a single blank line. rather than being typed in with each less command. such as long lines being split in the wrong place. The default is to ring the terminal bell in all such cases. 2003 9 . Strictly confidential and proprietary LESS (1) If no log file has been specified. display the remainder on the next line. −ppattern | −-pattern=pattern The -p option on the command line is equivalent to specifying +/pattern. it tells less to start at the first occurrence of pattern in the file. or be terminated by a dollar sign. −q | −-quiet | −-silent Causes moderately "quiet" operation: the terminal bell is not rung if an attempt is made to scroll past the end of the file or before the beginning of the file. -Ps followed by a string changes the default (short) prompt to that string. a control-A (octal 001) is displayed as "ˆA".

. 33. and that command is executed to find the tag. tab stops are set at multiples of n. Inc. The command ":t" is equivalent to specifying -t from within less. there may be a file in the current directory called "tags". This is sometimes useful if the keypad strings make the numeric keypad behave in an undesirable manner. that is. −X | −-no-init Disables sending the termcap initialization and deinitialization strings to the terminal. For this to work. they are sent to the terminal when they appear in the input... they are handled as specified by the -r option.. −Ttagsfile | −-tag-file=tagsfile Specifies a tags file to be used instead of "tags". but temporarily highlights the first new line after any forward movement command larger than one line. in which case only the status column is highlighted. 25. −W | −-HILITE-UNREAD Like -w. like clearing the screen. will edit the file containing that tag. Sets tab stops. If only one n is specified. along with the preceding character. If the environment variable LESSGLOBALTAGS is set.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. unless the -J option is in effect. -x9. etc. The first "new" line is the line immediately following the line previously at the bottom of the screen. The entire line is highlighted. −u | −-underline-special Causes backspaces and carriage returns to be treated as printable characters. that is. it is taken to be the name of a command compatible with global. | −-tabs=n.. 17. 2003 10 . backspaces which appear between two identical characters are treated specially: the overstruck text is printed using the terminal’s hardware boldface capability. if neither -u nor -U is given. −U | −-UNDERLINE-SPECIAL Causes backspaces. For example. Carriage returns immediately followed by a newline are deleted. The highlight is removed at the next command which causes movement. tag information must be available. If multiple values separated by commas are specified.org/software/global/global. which was previously built by ctags(1) or an equivalent command.. The default for n is 8. This is sometimes desirable if the deinitialization string does something unnecessary. −-no-keypad Disables sending the keypad initialization and deinitialization strings to the terminal. −xn.17 will set tabs at positions 9. Strictly confidential and proprietary LESS (1) −ttag | −-tag=tag The -t option. Other backspaces are deleted. −w | −-hilite-unread Temporarily highlights the first "new" line after a forward movement of a full page. By default.gnu. Also. backspaces which appear adjacent to an underscore character are treated specially: the underlined text is displayed using the terminal’s hardware underlining capability.html). followed immediately by a TAG. tabs and carriage returns to be treated as control characters. Other carriage returns are handled as specified by the -r option. BSD January 17. Also highlights the target line after a g or p command. and then continue with the same spacing as the last two. Text which is overstruck or underlined can be searched for if neither -u nor -U is in effect. (See http://www. for example. tab stops are set at those positions. The -t option may also be specified from within less (using the − command) as a way of examining a new file. −V | −-version Displays the version number of less.

not just the first one. If it is necessary to scroll forward more than n lines. BSD January 17. This can be useful when viewing a file whose name begins with a "-" or "+". The + command described previously may also be used to set (or change) an initial command for every file. Most commands have an alternate form in [ brackets ] which can be used if a key does not exist on a particular keyboard. As a special case. and +/xyz tells it to start at the first occurrence of "xyz" in the file. certain keys can be used to manipulate the command line. it indicates n lines less than the current screen size. see the caveat under the "g" command above). LEFTARROW [ESC-h] Move the cursor one space to the left. By default. and the close quote to the second character. it sets the default number of positions to one half of the screen width. Filenames containing a space should then be surrounded by that character rather than by double quotes. the screen is repainted instead. 2003 11 . -cc | −-quotes=cc Changes the filename quoting character. Filenames containing a space should then be preceded by the open quote character and followed by the close quote character. RIGHTARROW [ESC-l] Move the cursor one space to the right. + LINE EDITING When entering command line at the bottom of the screen (for example. If the screen is resized to 40 lines. this option remains -" (a dash followed by a double quote). +<number> acts like +<number>g. This may be necessary if you are trying to name a file which contains both spaces and quote characters. +G tells less to start at the end of the file rather than the beginning. it starts the display at the specified line number (however. Any arguments following this are interpreted as filenames. this changes the quote character to that character. The "z" may be omitted for compatibility with more. either ˆV or ˆA. if the screen is 24 lines. If the number specified is zero. −− A command line argument of "--" marks the end of option arguments. any forward movement causes scrolling. -z-4 sets the scrolling window to 20 lines. −[z]n | −-window=n Changes the default scrolling window size to n lines. the remainder of that option is taken to be an initial command to less. If the option starts with ++. the initial command applies to every file being viewed. For example. changes the open quote to the first character. the scrolling window automatically changes to 36 lines. If the number n is negative. The -c or -C option may be used to repaint from the top of the screen if desired.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. Strictly confidential and proprietary LESS (1) −yn | −-max-forw-scroll=n Specifies a maximum number of lines to scroll forward. Inc. Followed by two characters. a filename for the :e command. −˜ | −-tilde Normally lines after end of file are displayed as a single tilde (˜). Any of these special keys may be entered literally by preceding it with the "literal" character. If a command line option begins with +. The z and w commands can also be used to change the window size. −# | −-shift Specifies the default number of positions to scroll horizontally in the RIGHTARROW and LEFTARROW commands. For example. Followed by a single character. This option causes lines after end of file to be displayed as blank lines. Note that even after the quote characters are changed. The default is one screenful. or the pattern for a search command). that is. A backslash itself may also be entered literally by entering two backslashes.

BACKSPACE Delete the character to the left of the cursor. UPARROW [ESC-k] Retrieve the previous command line. less uses that as the name of the lesskey file. all matches are entered into the command line (if they fit). TAB Complete the partial filename to the left of the cursor. If the completed filename is a directory. and to set environment variables. END [ESC-$] Move the cursor to the end of the line. Delete the entire command line. Otherwise. CONTROL and RIGHTARROW simultaneously. Otherwise. 2003 12 . Strictly confidential and proprietary LESS (1) ˆLEFTARROW [ESC-b or ESC-LEFTARROW] (That is.) Move the cursor one word to the left. If you have changed your line-kill character to something other than ˆU. See the lesskey(1) manual page for more details.less". HOME [ESC-0] Move the cursor to the beginning of the line. Inc.) Delete the word under the cursor. less looks in a standard place for the system-wide lesskey file: On OpenBSD. Repeated TABs will cycle through the other matching filenames. If it matches more than one filename. the system-wide lesskey file is /etc/sysless. less looks for a lesskey file called "$HOME/. The environment variable LESSSEPARATOR can be used to specify a different character to append to a directory name. the first match is entered into the command line. ˆBACKSPACE [ESC-BACKSPACE] (That is. If a key is defined in both a local lesskey file and in the system-wide file. If the environment variable LESSKEY is set. or cancel the command if the command line is empty. key bindings in the local file take precedence over those in the system-wide file. BACKTAB [ESC-TAB] Like TAB. CONTROL and LEFTARROW simultaneously.) Move the cursor one word to the right. but cycles in the reverse direction through the matching filenames.) Delete the word to the left of the cursor. If the environment variable LESSKEY_SYSTEM is set. A system-wide lesskey file may also be set up to provide key bindings. ˆL ˆU Complete the partial filename to the left of the cursor. a "/" is appended to the filename. or cancel the command if the command line is empty.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. CONTROL and BACKSPACE simultaneously. BSD January 17. KEY BINDINGS You may define your own less commands by using the program lesskey(1) to create a lesskey file. DOWNARROW [ESC-j] Retrieve the next command line. DELETE or [ESC-x] Delete the character under the cursor. ˆDELETE [ESC-X or ESC-DELETE] (That is. You may also use lesskey to change the line-editing keys (see LINE EDITING). ˆRIGHTARROW [ESC-w or ESC-RIGHTARROW] (That is. CONTROL and DELETE simultaneously. If it matches more than one filename. less uses that as the name of the system-wide lesskey file. that character is used instead of ˆU. This file specifies a set of command keys and an action associated with each key.

set the LESSOPEN environment variable to a command line which will invoke your input preprocessor. esac lessclose.sh: #! /bin/sh case "$1" in ∗. To set up an input preprocessor. as normal. If the input pipe does not write any characters on its standard output. it first gives your input preprocessor a chance to modify the way the contents of the file are displayed.$$ fi . which may perform any desired clean-up action (such as deleting the replacement file created by LESSOPEN). and when finished print the name of the replacement file to its standard output. and the name of the replacement file. less uses the original file. but still let less view them directly: lessopen. This avoids the need to decompress the entire file before starting to view it. the first is replaced with the original name of the file and the second with the name of the replacement file. that is.$$ else rm -f /tmp/less. It may include two occurrences of the string "%s". For example. less will display the original filename as the name of the current file. This program receives two command line arguments. More complex LESSOPEN and LESSCLOSE scripts may be written to accept other types of compressed files. It is also possible to set up an input preprocessor to pipe the file data directly to less. When less closes a file opened in such a way.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. as entered by the user. To use an input pipe. To set up an input postprocessor. If the input preprocessor does not output a replacement filename. then there is no replacement file and less uses the original file. put them both where they can be executed and set LESSOPEN="lessopen. rather than putting the data into a replacement file.$$ ]. then echo /tmp/less.Z) uncompress -c $1 >/tmp/less. An input pipe. Inc. This command line should include one occurrence of the string "%s". The contents of the replacement file are then displayed in place of the contents of the original file. instead of writing the name of a replacement file on its standard output. make the first character in the LESSOPEN environment variable a vertical bar (|) to signify that the input preprocessor is an input pipe. which was output by LESSOPEN. An input preprocessor is simply an executable program (or shell script). it will appear to the user as if the original file is opened. An input preprocessor receives one command line argument. An input preprocessor that works this way is called an input pipe. Strictly confidential and proprietary LESS (1) INPUT PREPROCESSOR You may define an "input preprocessor" for less. 2003 13 . these two scripts will allow you to keep files in compressed format. and LESSCLOSE="lessclose. called the replacement file. the original filename as entered by the user. called the input postprocessor. it will call another program. 2>/dev/null BSD January 17. However. writes the entire contents of the replacement file on its standard output.sh %s %s". as normal. The input preprocessor is not called when viewing standard input. It should create the replacement file.. which writes the contents of the file to a different file.sh: #! /bin/sh rm $2 To use these scripts. and so on. which will be replaced by the filename when the input preprocessor command is invoked.sh %s". set the LESSCLOSE environment variable to a command line which will invoke your input postprocessor. Before less opens a file. the original filename.$$ if [ -s /tmp/less.

6 and 7 are binary. and "b" for binary. NATIONAL CHARACTER SETS There are three types of characters in the input file: normal characters control characters binary characters Can be displayed directly to the screen. All characters after the last are taken to be the same as the last. all chars with values between 32 and 126 are normal. and formfeed are control characters. In this case. Selects a character set appropriate for MS-DOS.sh: #! /bin/sh case "$1" in ∗. Same as iso8859. Should not be displayed directly. it may be desired to tailor less to use a character set other than the ones definable by LESSCHARSET. "bccc4b." would mean character 0 is binary.sh %s". In this case.Z) uncompress -c $1 . A "character set" is simply a description of which characters are to be considered normal. Selects a Russian character set. You get similar results by setting either LESSCHARSET=IBM-1047 or LC_CTYPE=en_US in your environment. this script will work like the previous example scripts: lesspipe. "c" for control." is used for a normal character. so characters 9 through 255 would be normal. but it is usually not necessary since there is no replacement file to clean up. CR. This is the EBCDIC analogue of latin1. Possible values for LESSCHARSET are: ascii iso8859 latin1 latin9 dos ebcdic IBM-1047 BS. esac 2>/dev/null To use this script. koi8-r next utf-8 In special cases. The LESSCHARSET environment variable may be used to select a character set. the environment variable LESSCHARDEF can be used to define a character set. The character ". put it where it can be executed and set LESSOPEN="|lesspipe. 2003 14 . Selects a character set appropriate for NeXT computers. the replacement file name passed to the LESSCLOSE postprocessor is "-". 1. but are expected to be found in ordinary text files (such as backspace and tab).) BSD January 17. and 8 is normal. 4. Inc. A decimal number may be used for repetition.. (This is an example. 5. Same as iso8859. Selects an EBCDIC character set used by OS/390 Unix Services. a LESSCLOSE postprocessor can be used. except characters between 160 and 255 are treated as normal characters. Selects an ISO 8859 character set. Should not be displayed directly and are not expected to be found in text files. Selects an EBCDIC character set. Selects the UTF-8 encoding of the ISO 10646 character set. It should be set to a string where each character in the string represents one character in the character set. This is the same as ASCII. and binary. and does not necessarily represent any real character set. When an input pipe is used. TAB. Strictly confidential and proprietary LESS (1) For example. control. and all others are binary. For example.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. NL. 2 and 3 are control.

and "∗n" is normal. 5bc6bcc7bcc41b. The prompt mechanism is rather complicated to provide flexibility.7b 9.10b6.7b9. but your system supports the setlocale interface.g. Replaced by the number of pages in the input file. less will use setlocale to determine the character set. or equivalently. but the string "UTF-8" is found in the LC_ALL. Caret notation is used only if inverting the 0100 bit results in a normal printable character. This format can be changed by setting the LESSBINFMT environment variable. The remainder of LESSBINFMT is a string which may include one printf-style escape sequence (a % followed by x. Certain characters in the string are interpreted specially.b 8bcccbcc12bc5b95.b128. %B %c %dX %D BSD January 17. etc. d. Finally. LC_TYPE or LANG environment variables.33b. 8bcccbcc18b95. The line to be used is determined by the X. PROMPTS The -P option allows you to tailor the prompt to your preference. then the default character set is utf-8.6b10. the byte offset of the top line in the display is used.. "∗u" is underlined. 8bcccbcc18b95.b9. Each such character is displayed in caret notation if possible (e. "∗d" is bold. Replaced by the column number of the text appearing in the first column of the screen.33b. 8bcccbcc18b95.b 8bcccbcc18b95.8b6.9b5. o. as with the %b option. If that string is not found. "∗s" is standout. The b is followed by a single character (shown as X above) which specifies the line whose byte offset is to be used. if the setlocale interface is also not available. an "m" means use the middle line. Inc.bb If neither LESSCHARSET nor LESSCHARDEF is set. ˆA for control-A). Replaced by the size of the current input file.9b7. The string given to the -P option replaces the specified prompt string. For example. a "B" means use the line just after the bottom line. a "b" means use the bottom line. setlocale is controlled by setting the LANG or LC_CTYPE environment variables. Strictly confidential and proprietary LESS (1) This table shows the value of LESSCHARDEF which is equivalent to each of the possible values for LESSCHARSET: ascii dos ebcdic IBM-1047 iso8859 koi8-r latin1 next 8bcccbcc18b95. Control and binary characters are displayed in standout (reverse video). A percent sign followed by a single character is expanded according to what the following character is: %bX Replaced by the byte offset into the current input file. Replaced by the page number of a line in the input file. but the ordinary user need not understand the details of constructing personalized prompt strings. and a "j" means use the "target" line.8b8. binary characters are displayed in underlined hexadecimal surrounded by brackets.bb125. normal attribute is assumed. the character is displayed as a hex number in angle brackets. 2003 15 . If LESSBINFMT does not begin with a "∗".LESS (1) PropertyGeneral Commands Manual System of BladeLogic.b. as specified by the -j option.b.17b3. Otherwise. If the character is a "t".b. if LESSBINFMT is "∗u[%x]". the default character set is latin1. 4cbcbc3b9cbccbccbb4c6bcc5b3cbbc4bc4bccbc 191. LESSBINFMT may begin with a "∗" and one character to select the display attribute: "∗k" is blinking. X.b.8b8. the page number of the last line in the input file. The default if no LESSBINFMT is specified is "∗s<%X>".b.).3b9.

Replaced by the total number of input files. See the discussion of the LESSEDIT feature below. The line used is determined by the X. True if the percent into the current input file. Replaced by the index of the current file in the list of input files. as with the %b option. If the condition is true. if and only if the IF condition is false.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. Replaced by the percent into the current input file. any characters following the question mark and condition character. a question mark is printed instead. True if the page number of the specified line is known. Inc. True if there is an input filename (that is. Replaced by the percent into the current input file. of the specified line is known. or the EDITOR environment variable if VISUAL is not defined). if input is not a pipe). True if the line number of the last line in the file is known. 2003 16 . up to a period. based on byte offsets. Causes any trailing spaces to be removed. True if the text is horizontally shifted (%c is not zero). True if this is the first prompt in a new input file. such characters are not included. Condition characters (which follow a question mark) may be: ?a ?bX ?B ?c ?dX ?e ?f ?lX ?L ?m ?n ?pX ?PX True if any characters have been included in the prompt so far. Same as %B. The line to be used is determined by the X. True if the line number of the specified line is known. are included in the prompt. based on byte offsets. A question mark followed by a single character acts like an "IF": depending on the following character. The line used is determined by the X. based on line numbers. as with the %b option. A colon appearing between the question mark and the period can be used to establish an "ELSE": any characters between the colon and the period are included in the string. of the specified line is known. True if the percent into the current input file. Replaced by the line number of the last line in the input file. Strictly confidential and proprietary LESS (1) %E %f %i %lX %L %m %pX %PX %s %t %x Replaced by the name of the editor (from the VISUAL environment variable. Replaced by the name of the current input file. but may appear anywhere. the file size if input is a pipe). Replaced by the name of the next input file in the list. Usually used at the end of the string. based on line numbers. True if at end-of-file. BSD January 17. If the condition is false. True if there is more than one input file. The format of the prompt string can be changed depending on certain conditions. as with the %b option. a condition is evaluated. Replaced by the line number of a line in the input file. True if the size of the current input file is known. True if the byte offset of the specified line is known. If any item is unknown (for example.

Inc.?n?m(file %i of %m) . ?f%f . byte %bB?s/%s. if there is one.: ?pB%pB\%:byte %bB?s/%s. period.. less runs in a "secure" mode..?e(END) ?x. Strictly confidential and proprietary LESS (1) ?s ?x Same as "?B". . followed by a + and the line number.:?pB%pB\%. or has other differences in invocation syntax.. any trailing spaces are truncated.. otherwise the byte offset if known. BSD January 17.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. ?n?f%f . if known.. if the current input file is not the last one)..%t And here is the default message produced by the = command: ?f%f ..Next\: %x.?e(END) ?x. it is used as the command to be executed when the v command is invoked.?ltlines %lt-%lb?L/%L.%t This prints the filename if this is the first prompt in a file. Any of the special characters may be included in the prompt literally by preceding it with a backslash. The LESSEDIT string is expanded in the same way as the prompt strings. The filename is followed by the line number.%t The prompt expansion features are also used for another purpose: if an environment variable LESSEDIT is defined. and how the % after the %pt is included literally by escaping it with a backslash. ?e(END) :?pB%pB\%. otherwise the percent if known.?m(file %i of %m) . followed by the "file N of N" message if there is more than one input file. This is the default prompt. the LESSEDIT variable can be changed to modify this default. If your editor does not accept the "+linenumber" syntax. This prompt would print the filename. followed by the file name. otherwise the string "Standard input". percent. %f Note that this expands to the editor name. This prompt prints the filename.?e(END) ?x. Some examples: ?f%f:Standard input. This means these features are disabled: ! | The shell command.Next\: %x. True if there is a next input file (that is.?m(file %i of %m) .. if known. 2003 17 . and backslash) become literally part of the prompt. Then. here are the defaults for the other two prompts (-m and -M respectively). ?n?f%f .?ltlines %lt-%lb?L/%L. For reference. Otherwise.%t ?f%f . if known. The default value for LESSEDIT is: %E ?lm+%lm. the string "(END)" is printed followed by the name of the next file.?ltLine %lt:?pt%pt\%:?btByte %bt:-.?m(file %i of %m) .. SECURITY When the environment variable LESSSECURE is set to 1. a dash is printed. . Finally. Each is broken into two lines here for readability only. if we are at end-of-file.Next\: %x. The pipe command. Notice how each question mark has a matching period. colon.. Any characters other than the special ones (question mark. : byte %bB?s/%s.

Language for determining the character set.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. 2003 18 . HOME LANG Name of the user’s home directory (used to find a lesskey file). which take precedence over variables defined in the system-wide lesskey file. If environment variables are defined in more than one place. Strictly confidential and proprietary LESS (1) :e v s -o -k -t The examine command. LESSBINFMT Format for displaying non-printable. non-control characters. Normally should be set to "global" if your system has the global command. Filename completion (TAB. LC_CTYPE Language for determining the character set. (But if you have a windowing system which supports TIOCGWINSZ or WIOCGETD. See discussion under PROMPTS. or in a lesskey(1) file. such as "∗". Log files. Inc. BSD January 17. variables defined in a local lesskey file take precedence over variables defined in the system environment. The editing command. Metacharacters in filenames. COLUMNS Sets the number of columns on the screen. Less can also be compiled to be permanently in "secure" mode. LESSCLOSE Command line to invoke the (optional) input-postprocessor.) EDITOR The name of the editor (used for the v command). Use of lesskey files. Use of tags files. global tags are not used. LESSCHARDEF Defines a character set. LESSEDIT Editor prototype string (used for the v command). LESSGLOBALTAGS Name of the command used by the -t option to find global tags. LESSANSIENDCHARS Characters which are assumed to end an ANSI color escape sequence (default "m"). ENVIRONMENT Environment variables may be specified either in the system environment as usual. LESSCHARSET Selects a predefined character set. ˆL). the window system’s idea of the screen size takes precedence over the LINES and COLUMNS environment variables. Takes precedence over the number of columns specified by the TERM variable. If not set. LESS Options which are passed to less automatically.

LESSSEPARATOR String to be appended to a directory name in filename completion. In certain cases. VISUAL The name of the editor (used for the v command). the window system’s idea of the screen size takes precedence over the LINES and COLUMNS environment variables. On such terminals. search highlighting will cause an erroneous display.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. more text than the matching string may be highlighted. see the less homepage at http://www. but the byte and percent of the line after the one at the bottom of the screen. the new files may be entered into the list in an unexpected order. when search highlighting is enabled and a search pattern begins with a ˆ. LESSOPEN Command line to invoke the (optional) input-preprocessor.) BSD January 17. LINES Sets the number of lines on the screen. search highlighting is disabled by default to avoid possible problems.com〉 Send bug reports or comments to the above address or to 〈bug−less@gnu. TERM The type of terminal on which less is being run. Strictly confidential and proprietary LESS (1) LESSKEY Name of the default lesskey(1) file. as well as to expand filenames. CAVEATS The = command and prompts (unless changed by -P) report the line numbers of the lines at the top and bottom of the screen.) SHELL The shell used to execute the ! command. LESSMETAESCAPE Prefix which less will add before each metacharacter in a command sent to the shell. Inc. (This problem does not occur when less is compiled to use the POSIX regular expression package.com/less. If the :e command is used to name more than one file. commands containing metacharacters will not be passed to the shell. SEE ALSO lesskey(1) AUTHORS Mark Nudelman 〈markn@greenwoodsoftware. For more information. If LESSMETAESCAPE is an empty string. On certain older terminals (the so-called "magic cookie" terminals).org〉. LESSMETACHARS List of characters which are considered "metacharacters" by the shell. LESSSECURE Runs less in "secure" mode. and one of the named files has been viewed previously. (But if you have a windowing system which supports TIOCGWINSZ or WIOCGETD.greenwoodsoftware. See discussion under SECURITY. Takes precedence over the number of lines specified by the TERM variable. 2003 19 . LESSKEY_SYSTEM Name of the default system-wide lesskey(1) file.

com/less for the latest list of known bugs in this version of less. 2003 20 . Strictly confidential and proprietary LESS (1) When viewing text containing ANSI color escape sequences using the -R option. This causes less to treat some binary files as ordinary. To workaround this problem.LESS (1) PropertyGeneral Commands Manual System of BladeLogic. set the environment variable LESSCHARSET to "ascii" (or whatever character set is appropriate).greenwoodsoftware. Also. See http://www. non-binary files. BSD January 17. setlocale claims that ASCII characters 0 through 31 are control characters rather than binary characters. searching will not find text containing an embedded escape sequence. Inc. search highlighting may change the color of some of the text which follows the highlighted text. On some systems.

The input file consists of one or more sections. If a key is defined in both a local lesskey file and in the system-wide file. Blank lines and lines which start with a pound sign (#) are ignored. other options and arguments are ignored. less(1) looks in a standard place for the system-wide lesskey file: On NSH the system-wide lesskey file is /etc/sysless . If the output file already exists. #env Defines environment variables. If no input file is specified. The string is the command key(s) which invoke the action. The action is the name of the less action. The input file is a text file which describes the key bindings. or a sequence of up to 15 keys. by default $HOME/. If the input file is ‘-’. COMMAND SECTION The command section begins with the line #command If the command section is the first section in the file. The string may be a single command key. The command section consists of lines of the form: string <whitespace> action [extra-string] <newline> Whitespace is any sequence of one or more spaces and/or tabs. If the environment variable LESSKEY_SYSTEM is set. key bindings in the local file take precedence over those in the system-wide file. except for the special section header lines. lesskey will overwrite it. Otherwise.LESSKEY(1) LESSKEY(1) NAME lesskey − specify key bindings for less SYNOPSIS lesskey [ o output | −− output = output ] [ input ] lesskey -V | --version DESCRIPTION lesskey is used to specify a set of key bindings to be used by less(1). and the environment variable LESSKEY is set.less is used. A backslash followed by one to three octal digits may be used to specify a character by its octal value. Otherwise. less(1) uses that as the name of the system-wide lesskey file. Each section starts with a line that identifies the type of section. The characters in the string may appear literally. from the list below. A system-wide lesskey file may also be set up to provide key bindings. standard input is read. this line may be omitted. If no output file is specified. a standard filename is used as the name of the input file. #line-edit Defines new line-editing keys. a standard filename is used as the name of the output file. the value of LESSKEY is used as the name of the output file.lesskey . The −V or −−version option causes lesskey to print its version number and immediately exit. or be prefixed by a caret to indicate a control key. by default $HOME/. The output file is a binary file which is used by less(1). If −V or −−version is present. A backslash followed by certain characters specifies input characters as follows: \b \e \n \r \t \ku \kd \kr BACKSPACE ESCAPE NEWLINE RETURN TAB UP ARROW DOWN ARROW RIGHT ARROW NSH 1 . Possible sections are: #command Defines new command keys.

Characters which must be preceded by backslash include caret. space. The extra string has a special meaning for the "quit" action: when less quits. see the ‘{’ and ‘:t’ commands in the example below. first character of the extra string is used as its exit status. This feature can be used in certain cases to extend the functionality of a command. the action is performed. For example. The following input file describes the set of default command keys used by less: #command \r forw-line \n forw-line e forw-line j forw-line \kd forw-line ˆE forw-line ˆN forw-line k back-line y back-line ˆY back-line ˆK back-line ˆP back-line J forw-line-force K back-line-force Y back-line-force d forw-scroll ˆD forw-scroll u back-scroll ˆU back-scroll \40 forw-screen f forw-screen ˆF forw-screen ˆV forw-screen \kD forw-screen b back-screen ˆB back-screen \ev back-screen \kU back-screen z forw-window w back-window \e\40 forw-screen-force F forw-forever R repaint-flush r repaint ˆR repaint ˆL repaint \eu undo-hilite g goto-line NSH 2 . and then the extra string is parsed.LESSKEY(1) \kl \kU \kD \kh \ke \kx LEFT ARROW PAGE UP PAGE DOWN HOME END DELETE LESSKEY(1) A backslash followed by any other character indicates that character is to be taken literally. An action may be followed by an "extra" string. tab and the backslash itself. just as if it were typed in to less. When such a command is entered while running less.

LESSKEY(1) \kh < \e< p % \e[ \e] \e( \e) { } ( ) [ ] \eˆF \eˆB G \e> > \ke = ˆG :f / ? \e/ \e? n \en N \eN m ´ ˆXˆX E :e ˆXˆV :n :p t T :x :d :t s _ | v ! + H h goto-line goto-line goto-line percent percent left-scroll right-scroll left-scroll right-scroll forw-bracket {} back-bracket {} forw-bracket () back-bracket () forw-bracket [] back-bracket [] forw-bracket back-bracket goto-end goto-end goto-end goto-end status status status forw-search back-search forw-search * back-search * repeat-search repeat-search-all reverse-search reverse-search-all set-mark goto-mark goto-mark examine examine examine next-file prev-file next-tag prev-tag index-file remove-file toggle-option toggle-option t toggle-option o display-option pipe visual shell firstcmd help help LESSKEY(1) NSH 3 .

LESSKEY(1) V 0 1 2 3 4 5 6 7 8 9 q Q :q :Q ZZ version digit digit digit digit digit digit digit digit digit digit quit quit quit quit quit LESSKEY(1) PRECEDENCE Commands specified by lesskey take precedence over the default commands. The #stop line should be the last line in that section of the file. Be aware that #stop can be dangerous. you must provide sufficient commands before the #stop line to enable all necessary actions. "noaction" is similar to "invalid" but less will give an error beep for an "incalid" command. one per line as in the example below. ALL default commands may be disabled by adding this control line to the input file: #stop This will cause all default commands to be ignored. a key may be defined to do nothing by using the action "noaction". The following input file describes the set of default line-editing keys used by less: #line-edit \t forw-complete \17 back-complete \e\t back-complete ˆL expand ˆV literal ˆA literal \el right \kr right \eh left \kl left \eb word-left \e\kl word-left \ew word-right \e\kr word-right NSH 4 . A default command key may be disabled by including it in the input file with the action "invalid". The line-editing section consists of a list of keys and actions. In addition. Since all default commands are disabled. failure to provide a "quit" command can lead to frustration. Alternatively. For example. LINE EDITING SECTION The line-editing section begins with the line: #line-edit This section specifies new key bindings for the line editing commands. but not for a "noaction" command. in a manner similar to the way key bindings for ordinary commands are specified in the #command section.

lesskey Default lesskey input file. $HOME/. The following input file sets the -i option whenever less is run. in a keyboard-independent manner.less Default lesskey file. the main purpose of assigning variables in the lesskey file is simply to have all less configuration information stored in one file. which take precedence over variables defined in the system-wide lesskey file. Whitespace before and after the equals sign is ignored.LESSKEY(1) \ei \ex \kx \eX \ekx \e\b \e0 \kh \e$ \ke \ek \ku \ej insert delete delete word-delete word-delete word-backspace home home end end up up down LESSKEY(1) ENVIRONMENT SECTION The environment variable section begins with the line #env Following this line is a list of environment variable assignments. and specifies the character set to be "latin1" : #env LESS = -i LESSCHARSET = latin1 ENVIRONMENT LESSKEY Name of the default lesskey file. The only way to specify such keys is to specify the escape sequence which a particular keyboard sends when such a key is pressed. /etc/sysless Default system-wide lesskey file. variables defined in a local lesskey file take precedence over variables defined in the system environment. SEE ALSO less(1) CAVEATS It is not possible to specify special keys. Each line consists of an environment variable name. LESSKEY_SYSTEM Name of the default system-wide lesskey file. Although the lesskey file can be used to override variables set in the environment. Variables assigned in this way are visible only to less. FILES $HOME/. an equals sign (‘=’) and the value to be assigned to the environment variable. such as uparrow. If environment variables are defined in more than one place. NSH 5 .

SEE ALSO ln(1) ORIGIN link was written by Thomas Kraus NOTES On some systems.link(1) Property of BladeLogic. If you want this behavior. Normally. OPTIONS link has only one option. there are no diagnostic messages to be output except for network and licensing messages. CAVEATS Since link does not perform any error checking. and links across hosts will not work. change the ownership of the file to root and the mode to 500. The second example creates a new file /u1/data/yourdata which is linked to the file /u1/data/mydata on the host reykjavik. $ link foo bar $ link //reykjavik/u1/data/mydata //reykjavik/u1/data/yourdata DIAGNOSTICS Since link errors are ignored. Unable to get a license to use the software. NSH 1 . -? file1 file2 Output a brief summary of available options and then exit with a zero status without linking any files. do not use it except in exceptional cases. Existing file to be linked. This is not the default for link. only the super user can use the link command. file2 must be on the same disk partition as file1. Newly created link file. you should use the ln command instead. links to files on different partitions. Strictly confidential and proprietary link(1) NAME link − Create a link to a file SYNOPSIS link [-?] file1 file2 DESCRIPTION The link command creates a link from the existing file file1 to the file file2 which will be newly created. Errors of any kind in creating the link are silently ignored. Inc. link always exits with an exit code of 0. The link command creates file2 without doing any type of error checking. We strongly suggest that you use the ln command instead of the link command. EXAMPLE The first example links the file foo to the file bar. since improper use may adversely affect the consistency of the file systems. Links to directories. EXIT CODES 0 255 Besides license problems.

With this option. Create symbolic links instead of hard links. and you can make symbolic links to directories. Furthermore. Existing file to be linked. if the target file already exists. This allows you to create symbolic links to directories and between files on different disk partitions. if the target file of a link already exists. ln does not ask for this confirmation. You cannot create a symbolic link if the file (symbolic link to be created) already exists. The second example creates the symbolic link /u1/file2 which points to the file /u1/file1 on the host belgrade.2 tmk 328 Nov 7 14:43 foo 113380 -rw-r--r-. then ln will first ask for confirmation to overwrite the file.. ln will not ask for confirmation before overwriting the target file. containing the name of the file to which it is linked. and it does not have appropriate write permissions. -? file1 file2 Output a brief summary of available options and then exit with a zero status without linking any files. then ln will NOT create the link which would have overwritten the current target file. With this option. -i -n -s EXAMPLE The first example links the file foo to the file bar. OPTIONS -f By default. Symbolic links however.] directory DESCRIPTION In the first case. notice that both files have the same inode number and have two links to them (first and third column). Inc. In the second case.ln(1) Property of BladeLogic. links to the named (existing) files are made in the named directory.. then the target file must be a directory.2 tmk 328 Nov 7 14:43 bar 385299 lrwxrwxrwx 1 tmk 3 Nov 7 14:43 //belgrade/u1/file2 -> /u1/file1 DIAGNOSTICS ln: Target directory (dirname) not found When linking more than one file. Strictly confidential and proprietary ln(1) NAME ln − Create a link to a file SYNOPSIS ln [-?fins] file1 file2 ln [-?fins] file1 [file2 . ln creates either hard links (the default) or symbolic links. NSH 1 . Newly created link file. With this option. if the target file already exists. $ ln foo bar $ ln -s //belgrade/u1/file1 //belgrade/u1/file2 $ ls -li foo bar //belgrade/u1/file2 total 3 113380 -rw-r--r-. ln will ask for confirmation to unlink the file. If you use the -f option with the -i option. The advantage of symbolic links over hard links is that symbolic links can cross disk partitions. The named directory (last argument) does not seem to exist. the ln command creates a link from the existing file file1 to the file file2 which will be newly created. the name of the file to which the symbolic link points does not need to exist at the time that you create the link. It simply deletes the current version of the target file. In the output of the ls command. You can create hard links only between files (not directories) residing on the same disk partition. You cannot create hard links or symbolic links between files on different hosts. consist of a special file.

avoid using it except in exceptional cases. Unable to get a license to use the software. CAVEATS Since link does not perform any error checking. This implementation was selected to closely resemble System V. it has many varying implementations on the supported platforms.ln(1) Property of BladeLogic. ln: Unable to link files across hosts You tried to create a link to a file that is not on the same host as the file to which the link should be created. This message is followed my an appropriate system error message. SEE ALSO link(1). An unknown option was given. One of the files to be removed was not removable. The -n option causes ln not to overwrite existing target files. Strictly confidential and proprietary ln(1) ln: Target file (filename) must be a directory When linking more than one file. NSH 2 . This is not possible to do. Inc. You should normally use the ln command. ln: Unable to create symbolic link to file filename An error occurred while trying to create a symbolic link to the file filename.4 and also to be behave in a similar way as other NSH commands. ln: Unable to create link to file filename An error occurred while trying to create a hard link to the file filename. ORIGIN ln was written by Thomas Kraus NOTES With regards to the available options for the ln command. then the target file must be a directory. The target file is not a directory. ln: Will not create link file filename: File exists You used the -n option. and the target file already exists. EXIT CODES 0 1 2 255 No errors detected. This message is followed my an appropriate system error message.

With this option. For each file argument. lf. -x. With the P_BSD variable set. If the output is going to a terminal. ls outputs the name of the files as it finds them. then ls will try to determine the width of the screen by using the value of the TERM variable to consult the terminfo or termcap database (depending on the type of system the command is running on). This often includes the directories ". The output format of the listing can also be in the form of a long listing (see the -l. ls tries to determine the width of the screen by looking at the value of the COLUMNS variable. ls does not display files beginning with a period (. ls is the standard program. ls uses a multi-column output (like with the -x option). then ls uses the current directory (. OPTIONS -1 -a This option tells ls to produce a single column output instead of a multi-column output. If you do not specify any file arguments. the output may look jumbled and/or unreadable. Consequently. If you use the -c option with the -t option (sort the listing by time). If the COLUMNS variable is not set. This option is similar to the -a option.". With this option. Strictly confidential and proprietary ls(1) NAME ls.. The remaining programs are derivatives of ls. if a file contains special characters in the name. then the default format depends on two things. By default." (current directory) and "..) If you use the -c option with the -l option (or other options that produce a long listing).] DESCRIPTION The ls program family outputs listings of the named files. lr. Inc. a multi-column listing (see the -C. it sorts the listing (by default) alphabetically. l lc lf lr lx Automatically turns on the option -l Automatically turns on the option -C Automatically turns on the options -C and -F Automatically turns on the options -C and -R Automatically turns on the option -x For each directory argument. By default. ls uses a single column output (like with the -1 option). however it does not include the directories ". ls will output all non-printable characters in the form \nnn where nnn is the octal value of the unprintable character (also see the -q option). (This is the default behavior. Before ls displays a listing. Each derivative has a specific option turned on. ls will output a listing for the directory itself and not its contents. then ls usually will list the contents of that directory. This option tells ls to output the a multi-column listing sorted by column. If ls is still not able to determine the width of the screen. -o. With the P_ATT variable set.. or a stream listing (see the -m option). or if it has a value less than 20." (parent directory). it uses the default value of 80. and -g options). If one of the file arguments to ls is a directory. This option tells ls to include all files beginning with a period. -A -b -c -C -d NSH 1 .. l. See UNIVERSE BEHAVIOR for details on how this option works. ls displays the contents of the directory. When using a multi-column output. lc. If you do not specify an output format. lx − List the contents of a directory SYNOPSIS ls [-1aAbcCdfFgilLmnopqrRstux?] [filename . If the output is not going to a terminal (for example. ls displays the name of the file itself along with any other requested information. This may be the default. then ls includes the date of last modification in the listing. then ls outputs the listing in a single column. then ls sorts the listing by date of last modification. if it is being redirected or piped).ls(1) Property of BladeLogic. and -1 options).). then the default universe behavior determines the output format. depending on the universe setting." and ".).

If ls comes across a directory. etc. This option causes ls to output the files in a stream format. Include the md5 checksum of the file as a field in the output. while the -a option is turned on. Consequently. block/character special. If sorting the listing by time with the -t option. ls does not display the owner name/ID field. the options -l. When used with the -t option. A long listing consists of a single line for each file. This option is like the -F option. With this option. -s. ls produces blank output for otherwise non-regular files (directories. with the contents of each directory being listed as found (no sorting). See the -t option and the -u option for more information. With this option. When used with the -u option. By default. Each line contains detailed information about the file. ls sorts the listing by file name. ls will output all non-printable characters as question marks (?). ls will output the file’s inode number in a separate field before the name of the file. then ls will recursively descend the directory and produce a listing for that directory. but instead of marking directories with a slash (/). then sort the listing by the date of last access instead of the date of last modification. ls sorts the listing by file size. ls treats it as such and does not follow it. ls will output the file’s size in blocks in a separate field before the name of the file. See UNIVERSE BEHAVIOR for details on how this option works. Strictly confidential and proprietary -f ls(1) With this option. A stream format means that ls will display as many file names as it can fit on a line. When used with the -l option (or other options producing a long listing). This option tells ls to dereference (follow) arguments that are symbolic links. ls treats each file argument as a directory. ls sorts the listing by file name. The checksum of a symlink is the checksum of its target. ls also displays the owner name/ID field. For each file found. and sockets are marked with a ’=’. With this option. files with the user execute bit set are marked with a ’*’. With the P_BSD variable set. does a reverse sort by user name. putting a comma and a space between file names. if a file contains special characters in the name. The block size can either be 1024 (P_BSD) or 512 (P_ATT) depending on the universe setting. ls sorts the listing by time stamp. -t. See the options -c and -u for more information. This option causes ls to mark certain file types with an identifying character after the file name. With the P_ATT variable set. This makes it easy to identify directories. . when an argument is a symbolic link.. By default. For each file found. Directories are marked with a ’/’. Inc.) When outputting a long listing. the output may look jumbled and/or unreadable. With this option turned on. By default. and -r are turned off. By default. except that ls does not display the group name/ID. The default time stamp is date of last modification. -F -g -i -l -L -m -M -n -o -p -q -r -R -s -S -t -u -v -x NSH 2 . does a reverse sort by time stamp. use the numeric values of the UID and GID instead of their associated names.ls(1) Property of BladeLogic. This option tells ls to output a long listing. This option tells ls to output a long listing. ls surrounds directories with square brackets ([ and ]). tells ls to output the date of last access instead of the date of last modification.. symbolic links are marked with a ’@’. This option causes ls to put a slash (’/’) after each file that is a directory. This option tells ls to output the a multi-column listing sorted by rows. This option is similar to the -l option. ls outputs the name of the files as it finds them.

With the P_ATT variable set ls defaults to a single column output equivalent to the -1 option. -C. There are 25 options for this command. When using the -s option to display file sizes in blocks. ls assumes block sizes to be 1024 bytes large. ls: %s: Unable to access directory dirname Ls was unable to access the directory dirname to determine its contents. With the P_ATT variable set. ls calculates column widths based on the longest file name with an interval of two spaces between columns. With the P_BSD variable set. then with the P_BSD variable set. UNIVERSE BEHAVIOR Because of the large number of options for this command. ORIGIN ls was written by Thomas Kraus NSH 3 . ls uses the default screen width of 80. Strictly confidential and proprietary -? ls(1) Output a brief summary of available options and then exit with a zero status without doing any listing. If a long listing is being output. the default behavior is to output the group name field. $ ls -pC $ ls -lrt //berlin/bin/a* DIAGNOSTICS ls: filename <system error message> Ls was unable to determine detailed information about the file filename.ls(1) Property of BladeLogic. EXAMPLE The first example outputs a multi-column listing of the current directory. ls aligns columns to the nearest 8 character interval with columns separated by TAB characters. Instead. the group name field is also included in long listings. or -x options). Inc. The second example produces a long listing sorted in reverse by time of last modifications of all files/directories beginning with the letter ’a’ in the directory bin on the host berlin. The -g flag has two very different meanings depending on your universe setting. If a long listing is not being produced. With the P_BSD variable set. Multi-column listings are presented differently depending on your universe setting. there are several option conflicts. Any directories found in the current directory have a ’/’ appended to their names. ls ignores column settings less than 20. With the P_ATT variable set. a long listing is automatically made with the group name file not shown. then with the P_BSD variable set the default behavior is not to output the group name field. then with the P_BSD variable set ls will default to a multi-column output equivalent to the -x option. and the user has not selected an output format (-1. EXIT CODES 0 1 2 255 No errors detected An unknown option was given One of the files to be listed was not accessible Unable to get a license to use the software. With the P_ATT variable set. With the P_ATT variable set ls assumes block sizes to be 512 bytes large.

NSH 1 . Unable to get a license to use the software. $ man -h dublin man $ P_MANHOST=dublin $ export P_MANHOST $ man -s 2 wait DIAGNOSTICS man: Do not know on which host to look for man pages on This message is output if you did not specify the -h option and the P_MANHOST variable was not set. The second example prints the man page for the command wait in section 2 of the man pages. EXAMPLE The first example prints the man page for the command man which is found on the host dublin. CAVEATS Some versions of man automatically redirect their output to the more command for easier browsing. Because of this. This version of man does not. Normally. man will check the shell variable P_MANHOST for the name of a host. man does not know on which host to look for man pages. man: Error in starting remote program This error message is output when no data was received back from the remote host when executing the man command on it. If you do not specify this option. thus letting you effectively access the man page on the remote host. man displays the output of the remote man command. using the -h host option. you specify the name of the host that contains the man page. OPTIONS -h -? The name of the host that contains the man page. Inc. Strictly confidential and proprietary man(1) NAME man − Get man pages from remote host SYNOPSIS man [-h host] man_options DESCRIPTION man invokes a man page on a selected remote host. man was unable to determine where to look for the man page. No data was returned from the remote host.man(1) Property of BladeLogic. Output a brief summary of available options and then exit with a zero status without displaying any man pages. found on the host dublin (as defined by the P_MANHOST variable). EXIT CODES 0 1 2 255 No errors detected. The available options for the man command differ from system to system. You must use the command syntax for the host from which you are retrieving the man page.

If you do not specify any files. You can use this option in conjunction with the -s option to checksum subsets of the file. -f -o offset This option tells md5sum what offset in bytes to start calculating from. You can use this option in conjunction with the -o option to checksum subsets of the file. If the size value ends with an ’m’ md5sum will interpret the value as a MB value. If you specify a file on a remote host.md5sum(1) Property of BladeLogic. AUTHOR md5sum was written by Thomas Kraus SEE ALSO ls (-M option) NSH 1 . If the offset value ends with an ’m’ md5sum will interpret the value as a MB value. This option is useful when dealing with textual files on a Windows system. If the size value ends with a ’k’ md5sum will interpret the value as a KB value. Light mode. Do not output warning messages. This option tells the md5sum command to read the file in textual mode (as opposed to binary mode). Only read (up to) the first 512 bytes (same as -s 512). OPTIONS -b -l -t This option tells the md5sum command to read the file in binary mode (as opposed to textual mode). -s size This option tells md5sum the number of bytes to use in the calculation. md5sum takes its input from stdin..] DESCRIPTION The md5sum command calculates the MD5 checksum of each file you specify as an argument.. where you do not want to have the different end of line characters (which differ between UNIX and Windows) affect the calculation. Strictly confidential and proprietary md5sum(1) NAME md5sum − Calculate MD5 checksum of files SYNOPSIS md5sum [-bltf] [-o offset] [-s size] [file . Inc. so as not to have to pull the whole file across the network. This is the default behavior. If the offset value ends with a ’k’ md5sum will interpret the value as a KB value. the remote RSCD agent calculates the MD5 checksum.

By default the mode of the newly created directories is calculated to be: 0777 minus <current umask of local host> -p By default the parent of the directory must already exist. An unknown option was given.) Parent directories for the new directory must already exist unless you use the -p option (see below). NSH 1 . where mode is an octal value. Unable to get a license to use the software. On Windows this must be numeric and you must have appropriate permissions on the file. $ mkdir newdir $ mkdir -p -m 0755 //andorra/u2/newdir/src //madrid/u2/newdir/src DIAGNOSTICS mkdir: Error creating directories dirname An error was encountered while creating the directory dirname.. mkdir creates the directory /u2/newdir/src. Each of the created directories will have their permissions set to mode.mkdir(1) Property of BladeLogic. then this error message will appear. EXAMPLE The first example creates the directory newdir in the local directory. The second example first makes sure the directories /u2 and /u2/newdir exist. Second. (This may be altered by the value of current umask. mkdir creates directories with the mode 0777. dirname The name of the directory you want to create. By default. This message is followed by a system error message indicating the possible problem. On Windows this must be numeric and you must have appropriate permissions on the file. OPTIONS -m mode Set the file permissions of all created directories to mode. Otherwise a warning message appears. -? Output a brief summary of available options and then exit with a zero status without creating any directories. Set the initial user ownership to user. If the mode contains non octal digits. With this option. mkdir was unable to create one of the named directories. -u user -g group Set the initial group ownership to group. Strictly confidential and proprietary mkdir(1) NAME mkdir − Create directories SYNOPSIS mkdir [-m mode] [-p] [-?] dirname . EXIT CODES 0 1 2 255 No errors detected. mkdir will create parent directories as required.. If either directory does not exist. Otherwise a warning message appears. DESCRIPTION mkdir creates new directories. mkdir creates the missing directory. Inc. mkdir: Invalid mode (mode) The mode the directory should be set to must be in octal (digits 0-7).

Inc.mkdir(1) Property of BladeLogic. Strictly confidential and proprietary mkdir(1) ORIGIN mkdir was written by Thomas Kraus NSH 2 .

mkfifo(1) Property of BladeLogic. The mode of the newly created named pipe is calculated as follows: 0666 minus <current umask of local host> OPTIONS name The name of the named pipe you want to create. DESCRIPTION mkfifo creates a named pipe (FIFO) for each of the named arguments. ORIGIN mkfifo was written by Thomas Kraus SEE ALSO mknod(1). Strictly confidential and proprietary mkfifo(1) NAME mkfifo − Create named pipe (FIFO) SYNOPSIS mkfifo name . Unable to get a license to use the software. NSH 1 . You cannot create a special file if a file of that name already exists.. EXIT CODES 0 1 2 255 No errors detected. Inc. this error message will appear along with an appropriate system message. CAVEATS You must be a super user to create character and block special files.. mkfifo was unable to create the special file. EXAMPLE The first example creates the named pipe mypipe in the local directory. The second example creates the named pipes /tmp/pipe1 and /tmp/pipe2 on host montecarlo $ mkfifo mypipe $ mkfifo //montecarlo/u2/pipe1 //montecarlo/u2/pipe2 DIAGNOSTICS mkfifo: Error creating named pipe filename If an error occurred while creating the named pipe. You specified an unknown option or an option was missing.

CAVEATS You must be a super user to create character and block special files. which can be either a named pipe (FIFO) (p). Unable to get a license to use the software. You specified an unknown option or an option was missing. Strictly confidential and proprietary mknod(1) NAME mknod − Create a special file SYNOPSIS mknod name [p] [b | c major minor] DESCRIPTION mknod creates a special file. this error message will appear along with an appropriate system message. NSH 1 . tells mknod to create a block special file. The mode of the newly created special file is calculated as follows: 0666 minus <current umask of local host> OPTIONS name p c b major minor As the first argument. mknod was unable to create the special file. As the second argument. As the second argument. you must also specify the major and minor number of the device. a character special file (c). The second example creates the character special file /tmp/null on host tirana # mknod mypipe -p # mknod //tirana/tmp/null c 3 2 DIAGNOSTICS mknod: Error creating special file filename If an error occurred while creating the special file. tells mknod to create a character special file. The second argument specifies the type of special file. EXIT CODES 0 1 2 255 No errors detected. EXAMPLE The first example creates the named pipe mypipe in the local directory. The major number of the character/block special file. If you create a character or block special file.mknod(1) Property of BladeLogic. Inc. the name of the special file you want to create. or a block special file (b). The first argument is the name of the special file. ORIGIN mknod was written by Thomas Kraus. The minor number of the character/block special file. tells mknod to create a named pipe (FIFO). As the second argument. You cannot create a special file if a file of that name already exists.

mv prompts you to see if it should overwrite the file anyway. The target file is not a directory. $ mv foo. See UNIVERSE BEHAVIOR for details on how this option interacts with the -f option. The named directory (last argument) does not seem to exist. This option tells mv not to check for potential overwrite problems in the target file’s mode. If the file exists and does not have appropriate permissions.c files from the directory /u1/src from host bucharest to the local directory new_src.bar foobar $ mv //bucharest/u1/src/*. if a target file already exists. mv: Unable to access parent directory dirname The parent directory of the target file/directory could not be found. The second examples moves all . If the user confirms with an entry beginning with the letter y. By default. mv checks to see if the target file already exists. Strictly confidential and proprietary mv(1) NAME mv − Move or rename files SYNOPSIS mv [-fi?] file1 file2 mv [-fi?] file .. NSH 1 . then mv will ask for confirmation to overwrite the target file. Inc. mv does not display this prompt. mv: Target file (filename) must be a directory When moving more than one file. Output a brief summary of available options and then exit with a zero status without moving any files. If there are two or more files to be moved to the target. then the target file must be a directory. mv: Unable to access file filename The file to be moved (filename) was not accessible. and makes sure that the file has appropriate write permissions allowing it to be overwritten. then the target must be a directory. then mv overwrites the file. you can use it to move files/directories from one directory into another. you can use it to rename files.mv(1) Property of BladeLogic. The last argument given to mv is the destination file/directory (target). An error occurred while trying to move a file. Second.. then the target file must be a directory. -f -? file1 file2 EXAMPLE The first example renames the file foo. OPTIONS -i With this option. With the -f option.c new_src EXIT CODES 0 1 2 255 No errors detected. It simply overwrites the file. Destination file or directory. Source file. dir DESCRIPTION mv works in two forms. First.bar to foobar. Unable to get a license to use the software. DIAGNOSTICS mv: Target directory (dirname) not found When moving more than one file. An unknown option was given.

Inc. the files are actually copied. the files are actually copied. mv: Error writing to file filename If a cross partition/host move is to be made. the source file is removed. The source file to be copied could not be accessed. mv(1) mv: Unable to unlink file filename After the source file has been linked to the target file. the files are actually copied. You cannot move directories over partition or host borders. With the P_ATT variable set. then with the P_BSD variable set (Berkeley behavior). the files are actually copied. UNIVERSE BEHAVIOR If you use both the -i and -f options. mv: Unable to move directory dirname across partitions or hosts You can move directories only within a disk partition. After having copied the source file to the target file. There was an error deleting the source file. mv: Unable to create file filename If a cross partition/host move is to be made. See cp for more details on copying directories. the source must be deleted. Strictly confidential and proprietary mv: Unable to create link to new file filename An error occurred while moving the file filename. The target file could not be created. There was an error removing the source file.mv(1) Property of BladeLogic. The target file could not be created. the -f option will override the -i option. mv: Could not unlink file filename If a cross partition/host move is to be made. mv: Unable to open file filename If a cross partition/host move is to be made. the -i option will override the -f option. NSH 2 . ORIGIN mv was written by Thomas Kraus SEE ALSO cp(1). There was an error copying the source file to the target file.

These commands provide an alternate interface. This option can be used in conjunction with the -h option to indicate the (absolute) directory on the destination host into which you want to copy the <sources>. The descriptions below apply to both the ncp and ndsync commands. Inc. A maximum of n processes in parallel are started at any time. This indicates that the destinations are actually hostnames or I. see their respective documentation. This option indicates that for each source/destination pair.. sourceN -[hv] [-d dir] [-p n] dest1 .. For full details of how the cp/dsync commands work. sourceN -[hv] [-d dir] [-p n] dest1 .//athens/etc/host //paris/etc/hosts NSH 1 . you must include a dash (-) to delimit the start of your target destination(s). because the overhead of each fork and subsequent copy of a single file may outweigh the rewards of doing things in parallel... the flat file should contain a list of files/directories to which you want to copy the <sources>. addresses to which you want to copy the <sources>.. unless you are using the -d option. ndsync − Copy/synchronize multiple sources to multiple destinations SYNOPSIS ncp [-bifnprtuvBCLPRST?] [-s suf] source1 . allowing users to copy/synchronize multiple files and/or directories to multiple destinations. If you use this option. If you use this option with the -h option (above) then the flat file should contain a list of hosts. The sections are: ncp <cp options> <sources> <ncp options> <destinations> <cp options> Since ncp/ndsync are supersets of cp/dsync. These commands are most useful when you want to update multiple remote hosts with the same data. because the <sources> are copied to the same location on the destination hosts. OPTIONS The command line arguments are split into multiple sections.. then the <sources> must be absolute path names..ncp(1) Property of BladeLogic. <sources> These are the files and/or directories that you want to copy to the given destinations. these options are the same options supported by the respective parent command. Strictly confidential and proprietary ncp(1) NAME ncp. a separate process should be created to perform the copy. The available options are: -h If you are not using any other options. Otherwise. destN DESCRIPTION ncp and ndsync are supersets of their respective cp and dsync parents. This option is more useful when copying directories than individual files. Copy in parallel. This option lets you define a list of destinations inside a flat file. destN ndsync [-bifnprtuvBCLPRST?] [-s suf] source1 . <ncp options> These options affect the way in which the source files/directories are copied to the destinations. -f file -d dir -p n -v EXAMPLE The following example copies a file to multiple destinations rome $ ncp /etc/hosts .. This option tell the program to output verbose messages that include percentages of how far a particular file has been copied.P.

. cp(1). uncp(1). ncp... dsync. ORIGIN The cp command family (cp.. NSH 2 . Done Copy /etc/hosts -> //moscow/tmp/hosts .ncp(1) Property of BladeLogic. Done Copy /etc/hosts -> //lisbon/tmp/hosts . Inc. EXIT CODES See EXIT CODES section in cp documentation. ndsync) was written by Thomas Kraus. Strictly confidential and proprietary You could have done the same thing as follows: rome $ ncp /etc/hosts -h athens paris Or as follows: rome $ cd /etc rome $ ncp hosts -h -d /etc athens paris Here is an example of using the -f option rome $ cat hosts athens moscow lisbon rome $ ncp -v /etc/hosts -h -f hosts -d /tmp Copy /etc/hosts -> //athens/tmp/hosts ... SEE ALSO dsync(1). Done The following example copies a directory to several remote hosts and does so in parallel: rome $ ncp -rvp /foo/bar -p 3 -h athens paris london -d /foo ncp(1) DIAGNOSTICS See DIAGNOSTICS section in cp documentation.

Increase wait time between refreshes by 1 second. In addition. Refresh screen. The following keyboard commands are available while in top mode. STATUS Indicates whether the CPU is online or offline. TYPE The manufacturer and model type of the CPU. SLOT Indicates which slot this CPU occupies. Therefore. OPTIONS -c -e expr -f file -H -h hosts Specify a list of hosts whose CPU information you want to display. Strictly confidential and proprietary ncpu(1) ncpu(1) NAME ncpu − View CPU information from one or more hosts SYNOPSIS ncpu [-c] [-e expr] [-f file] [-H] [-h host . Quit application. Do not show a header on output. You can specify multiple space separated hostnames without re-specifying the -h option.] [-r] [-s field] [-t] ncpu2 [-c] [-e expr] [-f file] [-H] [-h host . addresses..P. With the -s option you can specify an alternate field to sort on. Quit application.] [-r] [-s field] [-t] DESCRIPTION ncpu displays CPU information in a standardized format independent of the server’s operating system.P.. This data is not available on all systems.2.. this data may not be available for all servers. Display data similar to the way the top command displays data. The values must be resolvable hostnames or valid I. ncpu2 can display the value as a number or a string. SPEED The estimated CPU speed in MHz. -t NSH 1 . See the -f option below. See the EXPRESSIONS section below for more details. Load the list of servers whose CPU information you want to display.or 5. Show only entries that match the given expression. See the -s option below. ncpu displays data in the following columns: HOSTNAME The name of the host the entry applies to. ncpu displays the value as a number. Inc. Output system overview information as a set of comma separated values. <SPACE> Ctrl-L Ctrl-C q r + # Refresh the data. -r -s field Sort in reverse order. Replace the # character with 1. addresses.3. The field must be one of the column headers listed above. Reverse sort order. Sort on the specified column. The file should be a flat file containing either resolvable hostnames or valid I. some systems (for example. Decrease wait time between refreshes by 1 second. This option overrides the -t option. By default ncpu sorts in reverse order (largest to smallest) on the CPU speed..Property of BladeLogic. AIX) require root access to determine CPU speed.4. With this option the data display is truncated by screen size and repeated periodically.

nmem(1). and OR. including NOT. nstats(1) NSH 2 . host% ncpu2 engaix43agt2 engaix53lp1 HOSTNAME SLOT SPEED STATUS engaix53lp1 00-00 1648 Online engaix43agt2 00-00 0 Online TYPE PowerPC_POWER5 PowerPC_604e EXPRESSIONS You can use the -e option to define an expression that filters the output data. Switch to process info view. Switch to memory info view. Switch to disk info view.Property of BladeLogic. host% ncpu -h engsuse8agt1 engsol9agt2 HOSTNAME SLOT SPEED STATUS engsol9agt2 0 548 Online engsuse8agt1 0 2800 Online engsuse8agt1 1 2800 Online TYPE sparcv9 GenuineIntel Intel(R) Pentium(R) 4 CPU 2. CAVEATS The -t option mimics the top command’s behavior. Switch to system info view. AND. ndf(1). wildcards are supported. EXAMPLE This example shows how to view CPU information for multiple hosts (and operating systems). Truncate each line of output to the actual screen width. but does not mimic it exactly. For full details on expressions. Switch to statistics view. nps(1). Switch to network info view. see the man page for blexpr. ORIGIN ncpu was written by Thomas Kraus SEE ALSO blexpr(1). Expressions can contain multiple operators and operands. Strictly confidential and proprietary ncpu(1) ncpu(1) e d m n o p s u -w Define an expression to filter the output data. nnet(1). Inc.8 GenuineIntel Intel(R) Pentium(R) 4 CPU 2. The expression should be a single argument surrounded by single quotes. See the EXPRESSIONS section below for more details.8 This example shows how to view non-numeric slot information using ncpu2. Switch to process summary view. When an expression is used to match a string.

See the -s option below. The file should be a flat file containing either resolvable hostnames or valid I. The following keyboard commands are available while in top mode. FILESYSTEM The name of the system device associated with the disk partition KBYTES The total amount of available disk space in KB USED FREE The total amount of used disk space in KB The total amount of available disk space in KB CAPACITY Amount of disk space used in terms of percentage of total available.ndf(1) Property of BladeLogic. See the -f option below. Load the list of servers from which to get disk usage information. addresses. -h hosts Specify the list of hosts from which to get the disk usage information. The values must be resolvable hostnames or valid I.] [-r] [-s field] [-t] DESCRIPTION Ndf displays disk usage statistics of one or more servers in a standardized format independent of the server’s operating system. By default ndf sorts in reverse order (largest to smallest) on the disk usage capacity. With the -i option you can specify an alternate field to sort on. The field should be one of the column headers as described above. Behave top like. This option overrides the -t option. Inc.. MOUNTED ON The directory (or drive) associated with the disk partition OPTIONS The following options are available to modify the behaviour of ndf.. Do not show a header on output.P. The data it displays is displayed in columns as follows: HOSTNAME The name of the host the entry applies to. <SPACE> Ctrl-L Ctrl-C q r + Refresh the data Refresh screen Quit application Quit application Reverse sort order Increase wait time between refreshes by 1 second -t NSH 1 . Inc. -r -s field Sort in reverse order. With this option the data is displayed such that it is truncated by screen size and repeated periodically. Comparisons are made case neutral. Only show entries which match the given expression. Strictly confidential and proprietary ndf(1) NAME ndf − View disk usage statistics from one or more hosts SYNOPSIS ndf [-c] [-e expr] [-f file] [-H] [-h host . addresses.P. Property of BladeLogic. -c -e expr -f file -H Output disk usage information as a set of comma separated values. Please see the EXPRESSIONS section below for more details. You can specify multiple space separated hostnames without needing to re-specify the -h option.

nover(1).9. ndf(1) Define an expression used to filter the output data. wildcards are supported. When an expression is used to match a string.e.8. Truncate each line of output to the actual screen width. Switch to disk info view. The expression should be a single argument (i.6. CAVEATS The top like behaviour is not meant to exactly mimic the top command. AND. ORIGIN ndf was written by Thomas Kraus SEE ALSO blexpr(1). Switch to process summary view. Switch to system info view. Property of BladeLogic. and OR. nps(1). Switch to process info view..5. enclose the expression in single quotes).3. Switch to statistics view. Switch to network info view. Switch to memory info view. Expressions can contain multiple operators and operands. Inc.7. Please see the EXPRESSIONS section below for more details. nmem(1).4.ndf(1) Property of BladeLogic. Strictly confidential and proprietary # e d m n o p s u -w Decrease wait time between refreshes by 1 second Sort on column # which is a value of 1. see the man page for blexpr. you can define an expression used to filter the output data. EXAMPLE The following illustrates a simple example of getting disk usage information from multiple hosts sorted (smallest to largest) by the available disk space: host% ndf -h solarishost linuxhost winhost -s Free EXPRESSIONS With the -e option.2. or 0 (10). including NOT. For full details on expressions. Inc. nstats(1) NSH 2 . nnet(1).

Also compare the files’ respective MD5 checksums in the comparison. Also compare file permissions. When you specify the -o option. This option tells ndircmp to calculate the optimal spacing for the generated output based on the width of the output device. Each entry is preceded with a code field indicating what differences exist.ndircmp(1) Property of BladeLogic. Strictly confidential and proprietary ndircmp(1) NAME ndircmp − Compare contents of multiple directories SYNOPSIS ndircmp [-aeMmnOoprst] dir1 dir2 . The file exists but has different access permissions. it indicates this permissions difference by including the letter P in the compare code.. DESCRIPTION The ndircmp utility lets you compare the contents of multiple directories. each entry for an existing file will include the username/groupname of the file in parentheses. If ndircmp detects different file sizes. When you specify the -p option. Also compare file sizes. If the file exists. then depending on which options you specified. each entry for an existing file will include the octal file permissions of the file in parentheses. When you specify the -s option. The file is equal (the same) based on all of the comparison parameters you specified. Will only appear if you specified the -s option. If you specify this option without specifying any additional comparisons (besides existence) then ndircmp will not output a report. The calculation of MD5 checksums will significantly increase the amount of time it takes to perform the file/directory comparisons. and -p options. The file exists but has different file ownerships. ndircmp outputs a report of the aggregate files in all given directories. Will only appear if you specified the -o option. Will only appear if you specified the -p option.. Do not output files if they are equal or missing. it indicates this ownership difference by including the letter O in the compare code. and date of latest modification. the width is set to 80 characters. By default. file ownerships. it indicates this size difference by including the letter S in the compare code. In its base use. Inc. Not only does it compare the contents (file names) of the directories (which files exist or do not exist) but it can also optionally compare file size. S T O P The file exists but is of a different size. file permissions. Output file ownerships numerically (UID/GID) instead of by username/groupname. The file exists but has a different time of last modification. -t. OPTIONS -a -e -f file -M Equivalent to specifying the -s. Use the directories listed in file as arguments for the command. each entry for an -m -n -O -o -p -r -s NSH 1 . If ndircmp detects a different file ownership. with the first given directory taken as a base line for the remaining directories. the following codes may also appear. Traverse directories recursively. Will only appear if you specified the -t option. If ndircmp detects different file permissions. You can change the output device width by using the -w option. -o. Also compare file ownerships. Do not output files if they are equal. The possible codes are: < = The file is missing from this directory.

ndircmp(1) -t Also compare dates of last modification. By default.. assume the output device width to be width characters. Strictly confidential and proprietary existing file will include the file size in parentheses..ndircmp(1) Property of BladeLogic. Inc. When you specify the -t option. it indicates this last modification difference by including the letter T in the compare code. -w width -[1-9] Specify the maximum number of columns to output. NSH 2 . -2 . The default assumption is 80 characters. -9) let you specify how many columns to output with directory results (sets of columns) separated by a form feed (Ctrl-L) character. These options (-1. When calculating the optimal output. where N is the number of directories being checked. If ndircmp detects different dates of last modification. each entry for an existing file will include the date of last modification of the file in parentheses. SEE ALSO cp(1). ndircmp outputs a table that has N columns. ORIGIN ndircmp was written by Thomas Kraus. dsync(1).

Tells the agent to run in a pure interactive mode. a pseudo tty is created in which the program is run while on Windows agents a simple pipe-based I/O mechanism is used to communictae with the command. COMMAND OPTIONS -e -i Executes the command on the current remote host. Solaris /bin/vi or AIX smit). For more information. it uses the syntax nexec ARG1 ARG2. any messages to standard error messages are indistinguishable from standard output messages. The remaining arguments are the name and arguments of the remote program to be executed. . -l Simulates a login session. an entry in the Network Shell remote_cmds configuration file must exist indicating that this command should be treated as a remote command.g. bash.profile) should be run. Strictly confidential and proprietary nexec(1) NAME nexec − Engine to interface remote commands. Invoking a command that is linked to nexec automatically translates the command from <command> to nexec <host> <command>. the nexec command acts as an I/O interface to the remotely running command. For the command to be executed directly from /bin/nsh. It sets the HOME. not all platforms fully support the utmp entry. SYNOPSIS nexec [-?] [-t term] [-o] [-i] [-l] [-nohup hostname "cmd &"] -e | hostname cmd [args] DESCRIPTION The nexec program works in one of two ways. LOGNAME. If the program is called explicitly. Inc. Finally. Once the remote program has been started. and it displays all stdout/stderr it gets sent by the remote command. the remote stdout/stderr outputs are written to the respective local stdout/stderr. If you specify this option.) for indicating that the shell is a login shell and that the shell’s startup scripts (e. Client sends ’nexec -l -e ls -la’ Agent executes ’/bin/ksh -ksh -c "ls -la" Client sends ’nexec -l -e ksh’ Agent executes ’/bin/ksh -ksh’ NSH 1 . which some interactive programs need (e. You should only use this option when the remote interactive program does not behave as expected on screen. This option attempts to start the remote program in a way that simulates an actual login session. etc. and USER environment variables to their respective values based on the remote permissions. The following examples show what exactly gets executed (assuming a default shell of /bin/ksh). Note that this option only applies when the remote server is a UNIX-like machine. This is a traditional method understood by shells (sh. The other way to call the nexec program is by calling a command that is implicitly linked to the nexec program. which indicates that the command should be executed on the current remote host.g. ksh. On UNIX agents. In addition.nexec(1) Property of BladeLogic. this option creates an appropriate entry in the utmp database for use by utilities such as who. The first argument is either the name of the host on which the specified command should be executed or the command option -e.. where the host is determined by the program’s present working directory. see the NETWORK SHELL UTILITIES section below. Without this option. Note that if the cmd executed is the effective remote user’s default shell then nexec will execute the command directly instead of spawning their shell twice. Nexec captures all stdin and sends it to the remote command (see -n option). as determined by the current working directory. It sets your initial working directory to the home directory of the effective remote user.. It then invokes the cmd args using the effective remote user’s default shell and also sets argv[0] of the executing program (the effective remote user’s default shell) to "-".

The output which would now be displayed on the Windows server will be incorrect as the Windows is looking to output CP932 code sequences and the Solaris server is providing EUC-JP code sequences. By default. Release 7. then one should use the -r (raw) option to have no transcoding done. Use this option to tell nexec not to use the synchronization fixes. automatically transcode data. Output generated by the command is captured by the agent and converted to UTF-8 before being sent back to the nexec client where it is converted to the local code page before it is output to the terminal/screen. before it is passed to the application. As such the output will be not very useful. the command to be executed cannot be an interactive command. If this type of behaviour is not wanted. Now imagine that from the Windows server one kicks off a command (via nexec) on the Solaris server that generates Japanese output.0. It should be noted that if there are any transcoding issues. To deal with this nexec will now. This allows you to securely tunnel X11 traffic using the same security features as other NSH utilities. As this automatic transcoding may not always be desired there is the -r option to have all data dealt with in raw mode. -nohup hostname "cmd &" Executes a command in the background on the specified server. In the same way. INTERNATIONALIZATION ISSUES One of the issues a user could run into when dealing with multiple computers is how these computers meaningfully interact in a mixed code page environment. With this option nexec will convert all output (stdout/stderr) generated by the command from the local code page of the target server to UTF8. is converted to the local code page. It must be a batch (output only) command. This assumes that the generated output consists of proper code page sequences. a Windows server localized for Japanese with a code page of CP932 and a Solaris server also localized for Japanese but with a code page of EUC-JP.0 introduced some synchronization fixes to the nexec protocol. Inc. This option is available on agents running 7. Strictly confidential and proprietary -n nexec(1) Leave stdin alone (do not read any data from stdin). With this option stdin is not read and as such should only be used with commands that do not require any input. -o -r -u Use the legacy version of the nexec protocol. by default. that unrecognized characters are replaced with question marks (’?’). Tells nexec to ignore the value of the TERM variable and use term instead as the terminal type. DEFAULT PROGRAMS The Network Shell provides the following pre-configured links: arp finger ifconfig Address resolution display and control Display information about users Configure and show network interface parameters NSH 2 . random binary data may not be converted properly and invalid and/or unrecognized sequences will be converted to question marks (’?’). As such. See examples below. nexec will read all data it gets from stdin and sent it to the remote command as standard input (stdin). Do not transcode input/output. When using the nexec command to execute a command on a Windows host.3 or later. See INTERNATIONALIZATION ISSUES below for more details. input (stdin) captured by the nexec client is converted to UTF-8 before it is sent to the agent where. Imagine for example. -t term See the EXAMPLES section below for more information. meaning no auto transcoding. X11 FORWARDING The nexec utility automatically configures the agent to capture X11 traffic by resetting the DISPLAY variable and tunneling traffic to the server that initiated the nexec call.nexec(1) Property of BladeLogic.

nexec(1) Property of BladeLogic. Inc. In the second example all entries in the file are handled as nexec is not reading stdin input. the first line of the stdin is read via the read host command and the remaining entries are gobbled up by nexec and as such only one line of output is generated. take the following steps.. First. host% cat hosts NSH 3 . the second field (<path_to_foobar>) is an optional path to the remote executable. For more information. This field is only required if the executable is not found in the PATH of the remote RSCD Agent (daemon) when the Agent is started. In the first instance./share echo "foobar <path_to_foobar>" >> remote_cmds Now from the Network Shell environment you can: $ /bin/nsh $ cd //rome/home/foo $ foobar -now In the above example. nexec(1) NETWORK SHELL UTILITIES To have the Network Shell seamlessly execute remote programs. EXAMPLES The following example shows typical uses of nexec: unix% $ nexec winhost net start unix% $ cd //winhost winhost% $ nexec -e net start winhost% $ nexec linux rpm -qai Notice in the next example the effect of the -n option. Strictly confidential and proprietary ipconfig (NT) mem (NT) mount nbtstat (NT) net (NT) netstat nfsstat ps size swap umount uptime who xterm Configure and show network interface parameters Display memory usage Mount or show mounted file system Show nbt statistics Interface to net command Show network statistics Display NFS status/statistics Display process status/statistics Report size of an object file Display swap space status/statistics on System V type systems Unmount files system Determine how long a system has been up Display who is logged in on a system Start a remote xterm displaying on your local screen. see the nsh man page. make a link to the Network Shell utility nexec and then make a corresponding entry in the remote_cmds file to indicate the program is a remote command. The following example shows how a remote utility called foobar can be configured for remote execution. # # # # # cd ‘cat /usr/lib/rsc/HOME‘ cd bin ln -s nexec foobar cd .

bletch. ORIGIN nexec was written by Thomas Kraus. NSH 4 .nexec(1) Property of BladeLogic. The best example of this is the ps command.com Hostname for rome is: rome. nexec runs a command named bgCmd in the background on a server named RemoteHost : nexec -nohup RemoteHost "bgCmd &" CAVEATS Programs/utilities vary between hosts and operating systems. this capability is currently limited on Windows machines to simple input/output programs. Inc.bletch.bletch. not all commands are available on all hosts. An option may not be universal to all platforms. SEE ALSO rsh(1). While the nexec command does support the ability to interface remote interactive commands.com In the following example. Strictly confidential and proprietary madrid lisbon rome host% cat hosts | while read host do echo -n "Hostname for $host is: " nexec $host hostname done Hostname for madrid is: madrid.com nexec(1) host% cat hosts | while read host do echo -n "Hostname for $host is: " nexec -n $host hostname done Hostname for madrid is: madrid.com Hostname for lisbon is: lisbon. Its options vary drastically between BSD and ATT systems. Similarly.bletch. and programs needing full Console support may hang or not function as expected.

This capability may be a suitable replacement for utilities such as telnet. The user name with which you want to log into the remote host. NSH 1 . rlogin. host% nlogin santiago Password for tmk@santiago: ******* $ EXAMPLES CAVEATS You can only nlogin to UNIX style machines. It performs a remote login to host. the remote user’s login shell will be started in the remote user’s HOME directory. If you do not specify a username with which to log in to the remote host (by using the -l user option). OPTIONS -? -l user host Displays a general usage message. SEE ALSO nexec(1). Strictly confidential and proprietary nlogin(1) NAME nlogin − Secure remote login (through RSCD Agent) SYNOPSIS nlogin [-?] [-l user] host DESCRIPTION nlogin is a special instance of the nexec utility.nlogin(1) Property of BladeLogic. nlogin does not have such an escape key sequence. Inc. ORIGIN nlogin was written by Thomas Kraus. Utilities such as telnet have a special escape key sequence that lets you exit the protocol and take local action. telnet(1). nlogin will prompt you to enter the appropriate remote password. If the remote server successfully authenticates the username and password. nlogin will attempt to log into the remote host using your current login name. The name of the remote host you want to log into. and/or ssh. The login session uses the same encrypted protocol as all other NSH utilities and therefore provides a secure remote login capability.

See the -f option below..] [-r] [-s field] [-t] DESCRIPTION Nmem displays memory and swap statistics of one or more servers in a standardized format independent of the server’s operating system. Behave top like. addresses. With the -i option you can specify an alternate field to sort on. You can specify multiple space separated hostnames without needing to re-specify the -h option. Strictly confidential and proprietary nmem(1) NAME nmem − View memory and swap statistics from one or more hosts SYNOPSIS nmem [-c] [-e expr] [-f file] [-H] [-h host . Inc. -r -s field Sort in reverse order.P. Inc. By default nmem sorts in reverse order (largest to smallest) on the swap usage percentage.nmem(1) Property of BladeLogic. Load the list of servers from which to get memory information. -h hosts Specify the list of hosts from which to get the memory information. MEMTOTAL The total amount of physical memory in KB. SWAPUSED The amount of swap space used in KB SWAPFREE The amount of free swap space available in KB %SWAP Amount of swap space used in terms of percentage of total available.. Property of BladeLogic. Please see the EXPRESSIONS section below for more details. The file should be a flat file containing either resolvable hostnames or valid I. -c -e expr -f file -H Output memory information as a set of comma separated values. Comparisons are made case neutral. addresses. SWAPTOTAL The total amount of swap space in KB. With this option the data is displayed such that it is truncated by screen size and repeated periodically. OPTIONS The following options are available to modify the behaviour of nmem. This option overrides the -t option.P. The values must be resolvable hostnames or valid I. The data it displays is displayed in columns as follows: HOSTNAME The name of the host the entry applies to. See the -s option below. Only show entries which match the given expression. The field should be one of the column headers as described above. The following keyboard commands are available while in top mode. Do not show a header on output. <SPACE> Ctrl-L Ctrl-C Refresh the data Refresh screen Quit application -t NSH 1 . MEMUSED The amount of memory used in KB. MEMFREE The amount of free memory available in KB %MEM Amount of memory used in terms of percentage of total available.

Switch to statistics view. Switch to process summary view. ndf(1). Switch to memory info view.6. Expressions can contain multiple operators and operands. Switch to network info view. The expression should be a single argument (i. including NOT.nmem(1) Property of BladeLogic. and OR. Property of BladeLogic.4. enclose the expression in single quotes).7.9.. Strictly confidential and proprietary q r + # e d m n o p s u Quit application Reverse sort order Increase wait time between refreshes by 1 second Decrease wait time between refreshes by 1 second Sort on column # which is a value of 1. For full details on expressions. CAVEATS The top like behaviour is not meant to exactly mimic the top command. -w Truncate each line of output to the actual screen width. Inc. or 0 (10). Switch to process info view. When an expression is used to match a string. ORIGIN nmem was written by Thomas Kraus SEE ALSO blexpr(1). see the man page for blexpr.e. nps(1). you can define an expression used to filter output data. EXAMPLE The following illustrates a simple example of getting memory and swap information from multiple hosts sorted (largest to smallest) by total used memory host% nmem -h solarishost linuxhost winhost -r -s MEMUSED EXPRESSIONS With the -e option. Inc. Switch to system info view.5.2. nstats(1) NSH 2 . AND.3. Switch to disk info view. nnet(1). wildcards are supported. nmem(1) Define an expression used to filter the output data. nover(1). Please see the EXPRESSIONS section below for more details.8.

addresses..P. Display data similar to the way the top command displays data.P. Load the list of servers whose network adapter configuration information you want to display. BROADCAST Broadcast address for the adapter. NIC speed for HP-UX is supported from version 10. MAC Adapter MAC address. Reverse sort order. address of the adapter. See the -s option below. or if you do not have the required permissions. In addition. The following keyboard commands are available while in top mode. the data display is truncated by screen size and repeated periodically. nnet sorts in reverse alphabetical order by host name. -r -s field -t Sort in reverse order. Inc. With the -s option you can specify an alternate field to sort on. With this option.] [-r] [-s field] [-t] DESCRIPTION nnet displays network adapter configuration data for one or more servers in a standardized format independent of the server’s operating system. Strictly confidential and proprietary nnet(1) NAME nnet − View network adapter configuration data SYNOPSIS nnet [-c] [-e expr] [-f file] [-H] [-h host . nnet displays data in the following columns: HOSTNAME The name of the host the entry applies to. If there is no MAC address. <SPACE> Ctrl-L Ctrl-C q r + Refresh the data. NIC speed is obtainable only if the user has appropriate permissions. Do not show a header on output. Quit application.nnet(1) Property of BladeLogic. You can specify multiple space separated hostnames without re-specifying the -h option. SPEED NIC speed in Mbit.. The values must be resolvable hostnames or valid I. The field must be one of the column headers listed above. -H -h hosts Specify a list of hosts whose network adapter configuration information you want to display. you might not have the permissions to gather MAC address data. IP SUBNET OPTIONS -c -e expr -f file Output network adapter configuration information as a set of comma separated values. See the EXPRESSIONS section below for more details. The file should be a flat file containing either resolvable hostnames or valid I. This option overrides the -t option. addresses. See the -f option below. NSH 1 . Refresh screen.2 and beyond. I. Quit application. Not all adapters have a MAC address. By default. Subnet mask for the adapter. Show only entries that match the given expression. Increase wait time between refreshes by 1 second. the MAC address appears as all zeros. NAME Adapter name.P.

2. nover(1). or 7. Replace the # character with 1. The expression should be a single argument surrounded by single quotes. EXAMPLE This example shows how to get network adapter configuration information from multiple hosts: host% nnet -h solarishost linuxhost winhost EXPRESSIONS You can use the -e option to define an expression that filters the output data. see the man page for blexpr. nstats(1). Inc. ORIGIN nnet was written by Thomas Kraus SEE ALSO blexpr(1). but does not mimic it exactly. ndf(1) NSH 2 .5. nps(1).nnet(1) Property of BladeLogic.6.3. For full details on expressions.4. nnet(1) Sort on the specified column. nmem(1). Truncate each line of output to the actual screen width. CAVEATS The -t option mimics the top command’s behavior. Strictly confidential and proprietary # -w Decrease wait time between refreshes by 1 second.

it is directed to the same place as the standard output. the nohup utility uses the directory named by HOME to create the file. SEE ALSO signal(3) STANDARDS The nohup command is expected to be IEEE Std 1003.2 (“POSIX. .2”) compatible. If the standard output is a terminal. The nohup utility shall exit with one of the following values: 126 127 The utility was found but could not be invoked.out cannot be created in the current directory. Inc. . BSD June 6. the exit status of nohup shall be that of utility. If standard error is a terminal.out in the current directory. ENVIRONMENT HOME If the output file nohup. the standard output is appended to the file nohup.] DESCRIPTION The nohup utility invokes command with its arguments and at this time sets the signal SIGHUP to be ignored. Strictly confidential and proprietary NOHUP (1) NAME nohup − invoke a command immune to hangups SYNOPSIS nohup utility [arg . The utility could not be found or an error occurred in nohup. Otherwise.NOHUP (1) PropertyGeneral Commands Manual System of BladeLogic. 1993 1 .

] [-r] [-s field] [-t] DESCRIPTION Nover displays a system overview in a standardized format independent of the server’s operating system. CPUS The number of system CPUs (online and off). Property of BladeLogic. <SPACE> Ctrl-L Ctrl-C q Refresh the data Refresh screen Quit application Quit application -t NSH 1 .. -c -e expr -f file -H Output system overview information as a set of comma separated values. The values must be resolvable hostnames or valid I. SPEED The estimated CPU speed in MHz.P. the release level for AIX. -h hosts Specify the list of hosts from which to get the system overview information. Inc. Only show entries which match the given expression.nover(1) Property of BladeLogic. With this option the data is displayed such that it is truncated by screen size and repeated periodically. AIX) require root access to determine CPU speed and as such this data may not be available for all servers. This field has different meanings for different operating systems and includes the service pack for Windows. Inc. OS The system’s operating system MAINT The current maintenance release of the OS. Comparisons are made case neutral.. By default nover sorts in reverse order (largest to smallest) on the CPU speed. Do not show a header on output. The file should be a flat file containing either resolvable hostnames or valid I. the kernel release for Linux. MEMORY The amount of memory in MB SWAP DISK The amount of swap space in MB The total amount of local disk space in GB. This option overrides the -t option. See the -s option below. Please see the EXPRESSIONS section below for more details.g. and as not set for Solaris. addresses. The data it displays is displayed in columns as follows: HOSTNAME The name of the host the entry applies to. This data is not available on all systems while some systems (e. Windows systems.P. With the -i option you can specify an alternate field to sort on. Strictly confidential and proprietary nover(1) NAME nover − View system overview from one or more hosts SYNOPSIS nover [-c] [-e expr] [-f file] [-H] [-h host . The field should be one of the column headers as described above. The following keyboard commands are available while in top mode. You can specify multiple space separated hostnames without needing to re-specify the -h option. Behave top like. ARCH The system hardware architecture. Load the list of servers from which to get system overview information. addresses. -r -s field Sort in reverse order. See the -f option below. OPTIONS The following options are available to modify the behaviour of nover.

8 CPUS 1 1 SPEED 797 MHz 440 MHz ARCH i686 sun4u MEMORY 121 MB 256 MB SWAP 251 MB 513 MB DIS 18 G 17 G EXPRESSIONS With the -e option. Property of BladeLogic. ORIGIN nover was written by Thomas Kraus SEE ALSO blexpr(1). nover(1) Define an expression used to filter the output data. Please see the EXPRESSIONS section below for more details. Switch to statistics view.2.EL solaris8 SunOS 5. Inc. The expression should be a single argument (i. enclose the expression in single quotes).nover(1) Property of BladeLogic. For full details on expressions.7. Switch to process info view. you can define an expression used to filter output data.4. Switch to network info view..4. including NOT. nnet(1). Switch to process summary view. Strictly confidential and proprietary r + # e d m n o p s u -w Reverse sort order Increase wait time between refreshes by 1 second Decrease wait time between refreshes by 1 second Sort on column # which is a value of 1. nps(1). wildcards are supported.5. Truncate each line of output to the actual screen width. When an expression is used to match a string.9. Switch to system info view. and OR. nstats(1) NSH 2 . Switch to disk info view. Expressions can contain multiple operators and operands. or 0 (10). nmem(1). AND.8.e.3. Switch to memory info view. see the man page for blexpr. EXAMPLE The following illustrates a simple example of viewing an overview of multiple hosts (and operating systems). host% nover -h solaris8 linux HOSTNAME OS MAINT linux RedHat ES3 2. ndf(1). CAVEATS The top like behaviour is not meant to exactly mimic the top command.6. Inc.21-4.

The percentage of CPU that the processes have used altogether. VSIZE RSS The total amount of virtual memory that the processes are using altogether. OPTIONS -c -e expr -f file -H -h hosts Specify a list of hosts whose process summary information you want to display. By default nprocsum sorts in reverse order (largest to smallest) on the total number of processes. Output process summary information as a set of comma separated values. TIME CPU The cumulative amount of CPU that the processes have used altogether. The username of the owner of the processes on the remote host. Quit application. The total amount of real memory that the processes are using altogether. USER NPROCS Total number of processes. addresses. See the EXPRESSIONS section below for more details. -r -s field Sort in reverse order. The values must be resolvable hostnames or valid I.. The field must be one of the column headers listed above. You can specify multiple space separated hostnames without re-specifying the -h option. The file should be a flat file containing either resolvable hostnames or valid I. Show only entries that match the given expression. Strictly confidential and proprietary nprocsum(1) nprocsum(1) NAME nprocsum − View process summary from one or more hosts SYNOPSIS nprocsum [-c] [-e expr] [-f file] [-H] [-h host .] [-r] [-s field] [-t] DESCRIPTION nprocsum displays process summary for one or more servers in a standardized format independent of the server’s operating system. This option overrides the -t option. Do not show a header on output. See the -f option below.Property of BladeLogic.P. See the -s option below. Display data similar to the way the top command displays data. Load the list of servers whose process summary information you want to display. With this option the data is truncated by screen size and repeated periodically.P.Various systems may have different algorithms to determine this value. Refresh screen. MEMORY The percentage of total memory that the processes are using altogether. With the -s option you can specify an alternate field to sort on. <SPACE> Ctrl-L Ctrl-C q r + Refresh the data. The following keyboard commands are available while in top mode. Quit application. Inc. nprocsum displays data in the following columns: HOSTNAME The name of the host the entry applies to. addresses. -t NSH 1 . Increase wait time between refreshes by 1 second. Reverse sort order..

Sort on the specified column.2. 7 or 8.5. When an expression is used to match a string. EXAMPLE This example shows how to get process summary information from multiple hosts sorted (smallest to largest) by the available number of processes: host% nprocsum -h solarishost linuxhost winhost -s NPROCS EXPRESSIONS You can use the -e option to define an expression that filters the output data. nover(1). ORIGIN nprocsum was written by Thomas Kraus SEE ALSO blexpr(1). Switch to network info view. Switch to system info view. but does not mimic it exactly. nstats(1) NSH 2 . Switch to process info view. Replace the # character with 1.3. Switch to statistics view. Define an expression to filter the output data. Strictly confidential and proprietary nprocsum(1) nprocsum(1) # e d m n o p s u -w Decrease wait time between refreshes by 1 second. Switch to disk info view. wildcards are supported. Switch to process summary view.4. Truncate each line of output to the actual screen width. For full details on expressions. and OR. nnet(1). CAVEATS The -t option mimics the top command’s behavior. AND. Inc.6. Switch to memory info view. nps(1).Property of BladeLogic. See the EXPRESSIONS section below for more details. The expression should be a single argument surrounded by single quotes. nmem(1). including NOT. see the man page for blexpr. Expressions can contain multiple operators and operands.

Strictly confidential and proprietary nps(1) NAME nps − Displays process information for one or more hosts SYNOPSIS nps [-c] [-e expr] [-f file] [-H] [-h host . USER PPID PID CPU MEM VSIZE RSS PRI TIME The username of the owner of the process on the remote host. Load the list of servers whose process information you want to display. The field must be one of the column headers listed above. With the -s option you can specify an alternate field to sort on. <SPACE> Ctrl-L Refresh the data. With this option. -r -s field Sort in reverse order. See the -s option below. COMMAND The command name and arguments of the given process. The following keyboard commands are available while in top mode. Display data similar to the way the top command displays data. All Windows processes are currently owned by root. OPTIONS -c -e expr -f file -H Output process information as a set of comma separated values. (This column only appears in the -c output. Do not show a header on output. the data display is truncated by screen size and repeated periodically. The total amount of real memory that the process is using..) The process ID. START The start time of the process. The meaning of the value may differ from system type to system type. See the EXPRESSIONS section below for more details. Refresh screen. The file should be a flat file containing either resolvable hostnames or valid IP addresses.] [-r] [-s field] [-t] DESCRIPTION nps displays process statistics for the processes running on one or more servers in a standardized format independent of the server’s operating system.nps(1) Property of BladeLogic. The parent process ID. nps displays data in the following columns: HOSTNAME The name of the host the entry applies to. -h hosts Specify a list of hosts whose process information you want to display. By default nps sorts in reverse order (largest to smallest) on the percentage of CPU in use. This field has no relevant value for Windows systems. This option overrides the -t option. -t NSH 1 .. The percentage of total memory that the process is using. The total amount of virtual memory that the process is using. Show only entries that match the given expression. Inc. The percentage of CPU that the process is using. The cumulative amount of CPU that the process has used. The values must be resolvable hostnames or valid IP addresses. Various systems may have different algorithms to determine this value. You can specify multiple space separated hostnames without re-specifying the -h option. The process’ priority.

Inc. nstats(1) NSH 2 . you could create an expression like the following: host% nps -e ’COMMAND = "*sbin*"’ Expressions can contain multiple operators and operands. host% nps -h solarishost linuxhost winhost -r -s RSS This second example shows all non root processes. nmem(1). see the man page for blexpr. Switch to network info view. Inc. CAVEATS The -t option mimics the top command’s behavior.4.2.8. EXAMPLE This example shows how to get process information from multiple hosts.6. Inc. host% nps -h solarishost linuxhost winhost -e ’user != "root"’ This example searches for non root processes that may be running out of control. Switch to system info view. Replace the # character with 1. Increase wait time between refreshes by 1 second.3. SEE ALSO blexpr(1). and OR.5. The expression should be a single argument surrounded by single quotes. AND. ndf(1). Switch to process info view. wildcards are supported. When an expression is used to match a string. nover(1). Decrease wait time between refreshes by 1 second. but does not mimic it exactly. ORIGIN nps was developed by BladeLogic. For full details on expressions. nnet(1). nps(1) Sort on the specified column. Truncate each line of output to the actual screen width. Define an expression to filter the output data. 0 indicates column 10. Switch to disk info view. Switch to process summary view. Switch to memory info view. host% nps -h solarishost -e ’user != "root" & CPU > 5% & mem > 3%’ EXPRESSIONS You can use the -e option to define an expression that filters the output data.7. sorted (largest to smallest) by the amount of real memory the process is using. See the EXPRESSIONS section below for more details.nps(1) q r + # e d m n o p s u -w Property of BladeLogic. Reverse sort order. Switch to statistics view.9. or 0. Strictly confidential and proprietary Quit application. Property of BladeLogic. including NOT. For example.

The code generating the prompt replaces the sequence \h with the name of the host you are currently accessing rather than the name of the local host. You can never access the root of a drive. If you do not. ACCESSING REMOTE FILES AND HOSTS WITH THE CD COMMAND The following example shows how to use the cd command to access remote hosts: beaver $ cd //otter/etc otter $ pwd //otter/etc otter $ uname -a Linux otter 2. as the following example illustrates. the shell connects you to the // (root) directory. The Network Shell is a link to a distributed version of zsh. Strictly confidential and proprietary nsh(1) nsh(1) NAME nsh − Network Shell SYNOPSIS This manual page outlines the differences between the Network Shell and a regular shell. nor can you access any other drives. NSH 1 .bat unix $ cd //nt/d nt $ ls /e/*. If you have not set a root directory and you do not provide a drive letter.assuming the default shell prompt (PS1) has not been previously set. explicitly mention the drive letter as shown in the following examples: $ /bin/nsh unix $ cat //windows/c/autoexec.Property of BladeLogic. you do not have to include the drive letter in the name. the \h sequence takes on a new value. If you have set a root directory. such as C:. you should treat the drive letter as a directory even though that differs from how Windows treats drives. To access other drives on the computer. It does not provide a detailed description of Network Shell behavior. See the man pages for zsh to obtain detailed information on how the Network Shell works. then a drive is irrelevant because the root directory itself is the highest point you can access on the directory tree.34 #1 Fri May 8 16:05:57 EDT 1998 i586 i386 otter $ vi termcap When you access a remote host.EXE In Network Shell. Inc. You can access remote files from the command line: beaver $ vi //otter/etc/termcap You can also use the command line to specify files on multiple hosts: beaver $ diff //otter/etc/termcap //duckbill/etc/termcap REMOTE WINDOWS DRIVES When accessing a remote Windows (NT4/2000) machine. then the Network Shell environment defaults to the <SYSTEMDRIVE> drive. SHELL PROMPT The first thing you may notice when you start Network Shell is that the default shell prompt incorporates the name of the host you are currently on -. you should also specify a directory. When you cd to a new host.0.

Native commands./host2/etc host2 $ pwd //host2/etc If you have root privileges.. When executing a command. For example. host3 host4 EXECUTING A COMMAND There are three categories of commands you can execute through Network Shell.Property of BladeLogic. nsh# cd //host2 host2 nsh# hostid NSH 2 . and the command has a native equivalent on the remote host with a different path. you can be in one of two states: on the local host or on a remote host. The action is equivalent to running "nexec -e hostid" while being rooted on host2 in Network Shell. enter the command with a fully qualified path. EXECUTING COMMANDS FROM A REMOTE HOST Network Shell supports two methods for executing commands from a remote host: the default implied "nexec" method and the remote_cmds file method. Implied nexec Execution of Commands on a Remote Host When your current directory is on a remote host. Inc. execution of a native command which is not a Network Shell command will result in an "nexec" execution of the native command on the remote server. In the following example. or unique Network Shell commands that do not have native equivalents. For example: host1 $ cd // host1 $ ls host1 host2 host1 $ cd host2 host2 $ pwd //host2/ In another example: host1 $ pwd //host1/etc host1 $ cd . You cannot create regular files and other special files in this directory. Strictly confidential and proprietary nsh(1) nsh(1) THE // DIRECTORY The Network Shell supports the // directory..tar /etc The following section describes the two methods for executing commands on a remote host./. which is a virtual directory that contains only hostname entries. Network Shell equivalents of native commands. Host$ /bin/tar -cvf /tmp/etc. The later is supported for backwards compatibility. the command returns the hostid of host2. This last category is referred to as Network Shell utilities. The // directory allows you to change directories to another host using relative path names. For a command for which there is a native version and a Network Shell equivalent. Network Shell equivalents of native commands are executed by default in either state. Each entry correspond to another host’s root (/) directory. to execute the native command. the version of the command that is executed is the one pointed to by the path specified in the remote_cmds file. Note that you do not need an entry for a remote host in the // directory to access data on that remote host. When executing a command that has an entry in the remote_cmds file. you can make entries in the // directory with the mkdir command and remove them with the rmdir command.

capturing both its standard output and standard error. The command_path should be the absolute path name to the program on the remote host. they can be set to use default values. If the remote command does not finish after the maximum allocated time. The default value is 300 seconds (5 minutes). you must perform two steps. First. For example: command_name . This can be unset.Property of BladeLogic. There are a few limitations when using redirection. Each entry consists of up to three white space-delimited fields. the shell assumes an error has occured and the command is aborted. only the file descriptors 1 (standard output) and 2 (standard error) are NSH 3 . In addition to regular DOS commands. the second step for the myapp program could look something like this: # cd ‘cat /usr/lib/rsc/HOME‘ # cd share # echo "myapp /home/me/bin/myapp -" >> remote_cmds When the Network Shell (actually the nexec program) executes a remote command. It should be a non-interactive program. you would create a soft link as follows: # cd ‘cat /usr/lib/rsc/HOME‘ # cd bin # ln -s nexec myapp Next. you wanted to run the remote command myapp. for example. The soft link should have the same name as the remote command. and reboot. If you want to use Network Shell to run these commands. but. This ensures that all Network Shell utilities are available. Any arguments to these utilities must conform with the remote commands arguments and must be in the PATH of the rscd program. the Network Shell maps its known utilities to utilities in the Network Shell bin directory. Strictly confidential and proprietary nsh(1) nsh(1) Specifying Remote Commands Using the remote_cmds File The remote_cmds file contains a list of remote commands that the Network Shell supports. the PATH variable is automatically initialized to include the Network Shell bin directory as the first element in the PATH. Some typical commands in the remote_cmds file are who and ps. First. By entering a value of -. Inc. create a soft link to the program nexec. This is necessary to properly implement redirection to files on remote hosts. If this field is not set. REDIRECTION Redirection in the Network Shell is implemented with pipes rather than the usual dup() or dup2 () system calls.) command_name command_path max_time The command_path and max_time fields are optional. halt. you must run them in conjunction with the nexec command. The remote_cmds file resides in the share directory of the Network Shell install directory. The max_time field represents the maximum time in seconds that the remote command should need to execute. To continue with the above example. (White space can be a TAB or SPACE. the shell searches for the command in the PATH of the RSCD Agent (daemon).The command_name field must be the basename of the remote command you want to execute. as described earlier. create an entry in the remote_cmds file in the share directory relative to the Network Shell installation directory. Adjust this value if you anticipate that the remote command might take longer than 300 seconds to execute. To add a supported remote command using this method. in the bin directory of the Network Shell installation directory. Note that by default the Network Shell is not configured to run the halt and reboot commands. These remote utilities CANNOT require any terminal input because their standard input is redirected from /dev/null. the RSCD Agent on Windows NT4/2000 machines supports the built-in commands df. PATH VARIABLE When the Network Shell is started. If. the shell attempts to execute the named program on the remote host.

Other values may produce unexpected results. the shell closes all connections.. For example: $ agentinfo -? Usage: agentinfo [-?] [-c] [-H] [-f file] [hostname .nshprofile $ZDOTDIR/.nshlogin $ZDOTDIR/. Next. then a new dynamic network connection is created. STARTUP/SHUTDOWN FILES See the zsh(1) man page for more information on startup/shutdown files. Strictly confidential and proprietary nsh(1) nsh(1) supported for redirection. The NSH differs from ZSH in that all startup/shutdown files are prepended with nsh instead of z or zsh. which causes the output file to be opened for both read and write.nshenv $ZDOTDIR/. THE DISCONNECT COMMAND The Network Shell dynamically creates network connections to the remote hosts that it accesses. To ensure that you do not exhaust system resources. The remaining types of redirections work (with the restrictions described above). THE SHELL VARIABLE The SHELL variable is often used to tell programs the default shell to use when a program needs to run a shell process. instead of using /etc/zshenv you would use /etc/nshenv instead. you must escape the -? option as shown below: agentinfo -\? NSH 4 . especially if you are accessing large numbers of remote hosts. Inc.] -? Output this message -c Output data in CSV format -f file Load list of host from flat file -H Do not output a header line if -c used If you want to use the -? option when you are WITHIN the NSH shell. REMOTE SHELL SCRIPTS It is possible to execute remote shell scripts. For efficiency reasons. these connections remain open until the user exits the shell or executes the disconnect command. For example. If no arguments are given. When accessing relatively few remote hosts. They can be included in your PATH or expressed as an absolute pathname. it is a good idea to call the disconnect command occasionally.. the redirection type <>. If the Network Shell again needs access to a remote host. The network connection to the host on which the current directory exists is not closed even if specifically asked to do so.nshrc $ZDOTDIR/. All of the Network Shell utilities ignore this variable and always use /bin/nsh when a shell process is required. calling the disconnect command is not required.nshlogout ${TMPPREFIX}* (default is /tmp/nsh*) /etc/nshenv /etc/nshprofile /etc/nshrc /etc/nshlogin /etc/nshlogout (installation−specific − /etc is the default) USING THE -? OPTION WITHIN THE NSH SHELL A number of NSH commands let you display brief usage information by specifying the -? option. $ZDOTDIR/. The Network Shell utilities manage their own network connections and do not affect the shell. The following is a list of valid startup/shutdown files for NSH. This command closes the network connections of the hosts given to it as arguments.Property of BladeLogic. is treated the same as the < redirection type.

Inc. Strictly confidential and proprietary nsh(1) nsh(1) SEE ALSO zsh(1) NSH 5 .Property of BladeLogic.

(R_OK) Test for read permission. then you current host is changed to be that host and all subsequent access to any files which are not in full UNC (do not include a hosrtname) will be assumed to be on the given host.. NSH::close($fd). Perl Module Strictly confidential and proprietary NSH::(1) NAME NSH:: . then the file on the current host is used. If no hostname is included in the argument. $buf. NSH::chmod ("//hostname/foo/bar". $fd = NSH::open ("bar"."). The NSH module currently supports 45 calls which interface the corresponding Network Shell distributed API.Network Shell Perl module to access and manipulate remote files.. NSH:: FUNCTIONS NSH::access (char *path. If mode is ommitted it checks for file readability (R_OK). int mode) NSH::access() checks the file pointed to by path for accessibility according to the bit pattern contained in mode The values for mode can be the ORing of the following values: 0 1 2 4 (F_OK) Check existence of file (X_OK) Test for execute or search permission. Network Shell Perl Module 1 . 0777). NSH::chdir (char *dirname) Change you current directory to dirname. 100). (W_OK) Test for write permission. NSH::chdir (". use NSH. NSH::close($fd). If dirname is a full UNC path (includes a hostname). 0. $buf. 0. and commands. Inc. NSH::rmdir ("bar"). DESCRIPTION The NSH Perl Module gives Perl programmers the ability to access remote files and commands. All arguments which are file or directory names support UNC syntax which allows the use of a hostname as part of the filename. SYNOPSIS use NSH. 0) || die "Cant open file: $!\n". The NSH calls emulate their C function counter parts. NSH::chdir ("//hostname/foo/") || die "Can’t cd: $!\n". NSH::. NSH::chmod ("bar". NSH::unlink("file"). $fd = NSH::open ("//hostname/foo/bar". 0) || die "Cant open file: $!\n". 100). NSH::chdir ("//hostname/foo". The NSH module acts as glue between Perl and the Network Shell core technology.NSH::(1) Property of BladeLogic. NSH::chmod (char *path. NSH::chdir ("//hostname/foo/bar") !! die "Can’t cd: $!\n"). The following examples will help clarify their use. int mode) Change the mode (protection attributes) of the file path to mode. 0777).. $count = NSH::read ($fd. $count = NSH::read ($fd. processes. 0777).

and group gid. "Hello world\n". 200). 12). int uid. NSH::fchown ($fd. int mode) Create the file filename with an initial mode (protection attribute) of mode. int fd) Read the next line of input from the file descriptor $fd up to a maximum of size bytes. 200). NSH::closedir (int fd) Close the file descriptor fd which was returned from a successfull call to NSH::opendir $fd = NSH::opendir(". int uid. and group gid. $fd = NSH::open ("/foo/bar") || die "Open failed: $!\n". NSH::close ($fd). print "PWD = $pwd". pwd = NSH::getcwd (). int gid) Change the file ownership of the file pointed to by the file descriptor fd to be of owner uid. $fd = NSH::open("foo") || die "Cant open file: $!\n". while (($filename. NSH::fchdir($fd). } NSH::closedir ($fd). Network Shell Perl Module 2 . $fd = NSH::creat ($filename. $inode) = NSH::readdir($fd)) { print "FILENAME = $filename\n". NSH::write ($fd. NSH::close ($fd). int fd2) Duplicate the open file descriptor fd1 to filedescriptor fd2 NSH::fchown (int fd.") || die "Can’t open current directory: $!\n". NSH::close ($fd).NSH::(1) Property of BladeLogic. int gid) Change the file ownership of the file path to be of owner uid. NSH::fgets (char *buffer. 100. NSH::creat (char *filename. Inc. 0777) || die "Cant create: $!\n". NSH::chown ("foo". NSH::fchdir (int fd) Change directory to the pth pointed to by the file descriptor fd. int size. $fd = NSH::open("//hostname/foo"). NSH::close (int fd) Close the file descriptor fd. NSH::dup (int fd) Duplicate the open file descriptor fd NSH::dup2(int fd1. Perl Module Strictly confidential and proprietary NSH::(1) NSH::chown (char *path. 100.

$prio = NSH::getpriority (0. Specific signals may have different values on different OSes. In other words. NSH::fstat (int fd) Return information on the file pointed to by the file descriptor fd. 1 2 4 8 Apply shared lock (LOCK_SH). Inc. while (NSH::fgets ($buffer. and can have any of the following values ORed together. Apply exclusive lock (LOCK_SH). If sig is ommitted. $prio = NSH::getpriority (100). then it is assumed that the priority for the given process (PRIO_PROCESS) is desired. know what you are doing with the call. NSH::kill (int pid. NSH::ftruncate (int fd. The argument op determines what operation is to be performed. int op) Apply or remove an advisory lock on an open file pointed to by the filedescriptor fd. int sig) Send a signal to a process. 512. The format of the returned value will be a UNC type name (//hostname/directory) if the current NSH:: directory is on a remote host. Remove lock. process group or user. or just a regular path name if the current NSH:: directory is on the local host. Perl Module Strictly confidential and proprietary NSH::(1) $fd = NSH::open ($filename) || die "Cant open $filename: $!\n". int who) Get the scheduling priority for a process. NSH::kill (100. } NSH::close ($fd). NSH::getpriority (int which. The following examples both get the priority of the process with PID 100. $fd) { print "Next line is: $buffer". NSH::flock (int fd. Which is one of 0 1 2 who is a process identifier (PRIO_PROCESS) who is a process group identifier (PRIO_PGRP) who is a user ID (PRIO_USER) If NSH::getpriority is called with only one argumnet. 100). long pos) Truncate the size of the file pointed to by the file descriptor fd to pos bytes. Please see the STAT section below for further information on the stat family of calls. then a SIGTERM is sent. 9). $pwd = NSH::getcwd (). Network Shell Perl Module 3 . Make operation non-blocking (LOCK_NB). Pid is the Process ID of the process to receive the signal while sig is the numberic signal to be sent.NSH::(1) Property of BladeLogic. NSH::getcwd () Return the current NSH:: working directory.

NSH::chdir ("//hostname"). The following example move the read pointer to the end of the file. NSH::chdir("//hostname/foo"). you can determine it’s file permissions with the third argument. in which case information about the link is returned rather than the information about the file the link references. The value of the mode argument can be a ORed value of the following flags. NSH::mkdir ("//hostname/foo/bar"). If mode is ommitted. 0777). char *newname) Create a hard link called newname to the existing file called existing. int mode. int min) NSH::open (char *filename. Please see the STAT section below for further information on the stat family of calls. As previously mentioned. NSH::lseek ($fd. NSH::mkfifo (char *filename. NSH::lstat (char *filename) Return information on the file filename. then the file is opened for reading in binary mode. int mode = 0666) Open a file for reading and/or writing. NSH::mknod (char *filename. NSH::mkdir ("//hostname/foo/bar"). NSH::lseek (int fd. If none is given. If whence is 2 (SEEK_END). NSH::mkdir (char *dirname. long offset. Perl Module Strictly confidential and proprietary NSH::(1) NSH::link (char *existing. If only a single argument is given. If whence is 1 (SEEK_CUR).NSH::(1) Property of BladeLogic. int maj. 2. NSH::lstat() works like NSH::stat() with the exception of when the file is a symbolic link. file2") || warn ("Link failed: $!\n". Network Shell Perl Module 4 . 0777). then the file is opened for reading. For other read options or to write to a file the remaining arguments must be set. NSH::mkdir ("foo. 0). Inc. the mode 0666 is used (read/write for all). the pointer is set to size of the file plus offset bytes. NSH::chdir ("//hostname"). $fd = NSH::open ("bar"). The second argument controls how the file is opened. if the second (and third) argument are not given. int mode) Create the new directory dirname with initial permissions set to mode. mode is assumed to be 0755. NSH::mkdir ("foo. Both newname can only be created on the same host and disk partition as that of the existing file. When creating a file. mode is assumed to be 0755. NSH::link ("file1". the pointer is set to offset bytes. If mode is ommitted. int mode) Create the new FIFO special device called filename with initial permissions set to mode. the pointer is set to its current location plus offset bytes. int whence) Move the read write pointer of the file descriptor fd as follows: • • • If whence is 0 (SEEK_SET). int flags = O_RDONLY.

This function pushes the filename and the filename’s inode number on the stack. NSH::readdir (int fd) Read the next directory entry of the directory pointed to by the descriptor fd returned by a successfull call to NSH::opendir(). Perl Module Strictly confidential and proprietary 0 1 2 4 8 16 64 96 256 512 1024 2048 32768 262144 524288 Open for reading Open for writing only Open for reading and writing Non-blocking I/O Append. If the string mode begins with a ’r’ then subsequent NSH::read() will read the standard output of the command while if mode begins with a ’w’. Open file in text mode (Not usefull for UNIX files) Open file in binary mode (default) NSH::(1) NSH::opendir (char *dirname) Open the directory dirname for reading. NSH::closedir($fd). $buf. } NSH::read (int fd. char *mode) Execute the Network Shell command cmd and returns a file descriptor which allows you to either read or write to the command depending on the value of mode. $fd = NSH::opendir ("foo") || die "Can’t access foo: $!\n". NSH::popen (char *cmd. Network Shell Perl Module 5 . NSH::pclose (int fd) Close a file descriptor returned by a successfull call to NSH::popen(). subsequent NSH::write() will write data to the standard input of the command.NSH::(1) Property of BladeLogic. ls") while (NSH::read ($fd. If mode is ommited. Writes guaranteed at the end of file Synchronized file update option Synchronized data update option Non-blocking I/O (POSIX) Open with file create (uses third argument if given) Open with truncation Exclusive open Don’t allocate controlling tty (POSIX) Synchronized file update option. returning a file descriptor which can be used in subsequent calls to NSH::readdir() to determine the contents of the given directory. char *buffer. $fd = NSH::opendir("//hostname/foo") || die "Can’t read directory: $!\n (filename) = NSH::readdir($fd). 100)) { print $buf. Inc. int nbytes) Read the next nbytes bytes from the file descriptor fd storing the result in buf which will always be ’null’ terminated. $fd = NSH::popen ("cd //hostname/foo. it is assumed to be ’r’.

int who. ($filename) = NSH::readdir ($fd). $fd = NSH::opendir ("foo") || die "Can’t read directory: $!\n". $inode) = NSH::readdir($fd)) { print "FILENAME = $FILENAME INODE = $inode\n". $pos = NSH::telldir ($fd). Please see the STAT section below for further information on the stat family of calls. NSH::(1) NSH::readlink (char *filename) Return the value of a symbolic link. Inc. Perl Module Strictly confidential and proprietary while (($filename. ($filename) = NSH::readdir ($fd). NSH::stat (char *filename) Return information about the file filename. NSH::seekdir ($fd. $fd = NSH::opendir ("foo") || die "Can’t read directory: $!\n". } NSH::closedir($fd). NSH::rewinddir (int fd) Move the read pointer to the start of the directory. If NSH::setprio() is only called with two arguments. NSH::rmdir (char *dirname) Remove the empty directory dirname. int prio) Set the scheduling priority for a process. Which is one of 0 1 2 who is a process identifier (PRIO_PROCESS) who is a process group identifier (PRIO_PGRP) who is a user ID (PRIO_USER) Finally. ($filename) = NSH::readdir ($fd). $pos). NSH::rename (char *oldname. process group or user. "bar") || die "Can’t rename: $!\n".NSH::(1) Property of BladeLogic. NSH::rename ("foo". NSH::rewinddir ($fd). int pos) Move the read pointer of the directory descriptor fd to pos which must be a value returned by a previous call to NSH::telldir(). Network Shell Perl Module 6 . $linkname = NSH::readlink("foobar"). char *newname) Rename the file oldname to newname. prio is the new priority to be set. NSH::setpriority (int which. then they are assumed to be a process ID and it’s new priority. NSH::rmdir ("//hostname/foo/bar") || warn "Cant remove directory: $!\n" NSH::seekdir (int fd.

int nbytes) Write nbytes of data in buffer to the file pointed to by the file descriptor fd. @PROPS @PROPS @PROPS @PROPS @PROPS [0]). foreach $host ("//host1". [4]). symbolic links may traverse hosts (name -> //hostname/foo/bar). "//host2". Perl Module Strictly confidential and proprietary NSH::(1) NSH::symlink (char *name. then the current date of the local host is used. [1]). $nodename. NSH::system (char *cmd) Run the Network Shell command cmd and output it’s standard output and error. fstat) of these functions return an array of values representing the various properties of the file in question. NSH::uname () This command pushes on the stack information about the host on which the current working NSH directory is. Inc. NSH::utime (char *filename. NSH::write (int fd. [2]). These types of symbolic links however. @PROPS = NSH::stat ("//hostname/etc/passwd"). %d\n". The returned value is only of use to the NSH::seekdir() function and should not be interpreted to be mean anything specific. "//host3") { nsh::chdir($host). $machine) = NSH:uname ( } NSH::unlink (char *filename) Unlink (remove) the file filename. Network Shell Perl Module 7 . long atime) Adjust the date of last modification and last access of the file filename to mtime and atime respectively. char *buffer. exec /bin/nsh -D <pwd> -c <cmd> NSH::telldir (int fd) Return the current location of the directory descriptor fd. $release. %d\n". [3]). In the Network Shell environment. The best way to document this is through an example: use NSH. If either mtime or atime are not given. printf printf printf printf printf ("Device ID of parent dir ("File inode number ("File mode/permissions ("Number of links to file ("File UID = = = = = %d\n". will not work outside the Network Shell environment. ($sysname. $version.NSH::(1) Property of BladeLogic. STAT This section gives a more detailed outline the return value of the stat family of calls. the following command is generated and executed. NSH::utime ("//hostanme/foo/bar"). In essence. 200). stat. NSH::truncate (char *filename. %d\n". char *newname) Create the symbolic link newname to the file name. %d\n". long mtime. NSH::truncate ("foobar". All three (lstat. long pos) Truncate the file filename to be of size pos bytes.

%d\n". [6]). [11]). Inc. [7]).NSH::(1) Property of BladeLogic. [10]). @PROPS @PROPS @PROPS @PROPS @PROPS @PROPS @PROPS @PROPS [5]). [9]). [8]). %d\n". %d\n". %d\n". %d\n". Perl Module Strictly confidential and proprietary printf printf printf printf printf printf printf printf ("File ("Rdev ("File ("Time ("Time ("Time ("Size ("Size GID (for special files) size of last access of last modification of last status change of a block of file in blocks = = = = = = = = %d\n". %d\n". [12]). %d\n". NSH::(1) Network Shell Perl Module 8 .

The difference between the two is that with a bulk write there is no checking or return code to verify that the write actually worked.147 seconds for 2048 KB = 40 KB/sec) KB/sec) KB/sec) KB/sec) KB/sec) 1024 CAVEATS The nshopt command tests how best to send data to a remote host.. but sometimes this value may not be optimal. done. nshopt starts with a write buffer size of 512 bytes and continues to perform the test in 512 byte increments up to a maximum buffer size of 16384 bytes (16KB). done. # secadmin -W hpux to to to to to to hpux hpux hpux hpux hpux hpux .. done.. (52. # nshopt hpux Trying 512 bytes Trying 1024 bytes Trying 1536 bytes Trying 2048 bytes Trying 2560 bytes Trying 3072 bytes . NSH 1 . Strictly confidential and proprietary nshopt(1) NSHOPT nshopt − Test different network write buffer sizes SYNOPSIS nshopt [-i size] [-k size] [-s bytes] [-b] host1 . Inc. The default write buffer size is 4480 bytes.nshopt(1) Property of BladeLogic. The cp command performs bulk writes when copying a file to a remote host.012 seconds for 2048 KB = 39 (3. . start with a write buffer size and use an increment size of size. A regular write does perform those checks and therefore will take a little longer. using specific write buffer sizes when communicating with remote hosts can improve the net throughput of data. This example then uses the command secadmin to update the configuration file with the desired buffer size. DESCRIPTION Depending on the network. To determine the optimal write buffer size.173 seconds for 2048 KB = 40 (51. It does not test how fast it can receive data. .145 seconds for 2048 KB = 40 (51. EXAMPLE The following example tests the host hpux. OPTIONS -i size -k size Instead of starting with a write buffer size of 512 and using an increment of 512 bytes.. . By default nshopt starts with a buffer size equivalent to the increment size (512 bytes). perform a bulk write rather than a regular write. use a file size KB large. If you anticipate that you will be receiving large amounts of data.. -b When writing data to the remote host.. use the secadmin command to configure the new buffer size.. done..) Once nshopt has determined an optimal buffer size. each time using different network write buffer sizes and determining the time it takes to send the file. (See EXAMPLE. This lets you determine the optimal network write buffer size to use when communicating with the given host. ORIGIN nshopt was written by Thomas Kraus. From the data you can see that a buffer size of 1024 bytes is optimal for transferring data from the local host to the host hpux.020 seconds for 2048 KB = 678 (51. Instead of transferring a 2 MB (2048 KB) test file as a sample. nshopt prints the results of each test to the standard output for review.. . done. . -s bytes Start off with a buffer size of bytes... nshopt writes a 2MB file to a remote host multiple times. then you should be running this test from the agent server to the client server (where you will need to install an agent to test it properly).... .

cp(1). Inc.nshopt(1) Property of BladeLogic. Strictly confidential and proprietary nshopt(1) SEE ALSO secadmin(1). NSH 2 . secure(1).

Inc.nshpath(1) Property of BladeLogic. ORIGIN nshpath was developed by BladeLogic. NSH 1 . a user working on machine ’host1’ would do the following: host1% nshpath host2 /usr/nsh/bin/nsh This tells the user that nsh has been installed and that the nsh executable resides at /usr/nsh/bin on the ’host2’ machine.] DESCRIPTION The nshpath command displays the path where an nsh executable resides on a local or remote machine. Inc. OPTIONS None EXAMPLE To determine the path of nsh installed on a remote machine called ’host2’. Strictly confidential and proprietary nshpath(1) NAME nshpath − show the path where an nsh executable resides on a local and/or remote machine SYNOPSIS nshpath [hostname ...

addresses.5. SWAP TIME UPTIME The amount of time the system has been running..4. Load the list of servers from which to get system statistics. -t NSH 1 . Strictly confidential and proprietary nstats(1) NAME nstats − View system statistics from one or more hosts SYNOPSIS nstats [-c] [-e expr] [-f file] [-H] [-h host . For Windows. Replace the # character with 1. Do not show a header on output. Inc. LOAD The system’s current load average. <SPACE> Ctrl-L Ctrl-C q r + # Refresh the data. The values must be resolvable hostnames or valid I. Increase wait time between refreshes by 1 second. This option overrides the -t option. By default.] [-r] [-s field] [-t] DESCRIPTION nstats displays some system statistics in a standardized format independent of the server’s operating system. nstats displays data in the following columns: HOSTNAME The name of the host the entry applies to.3. PROCS The total number of processes currently running.nstats(1) Property of BladeLogic. Sort on the specified column. With this option. See the EXPRESSIONS section below for more details.P. The following keyboard commands are available while in top mode. With the -s option you can specify an alternate field to sort on. You can specify multiple space separated hostnames without re-specifying the -h option. For UNIX.6. MEMORY The percentage of total memory currently being used.. Quit application. it shows a CPU usage percentage. Quit application. The current time on the system. OPTIONS -c -e expr -f file -H Output system statistics as a set of comma separated values. -h hosts Specify the list of hosts from which to get the system statistics. Reverse sort order. Display data similar to the way the top command displays data. or 7. the data display is truncated by screen size and repeated periodically. -r -s field Sort in reverse order.2. nstats sorts in reverse order (largest to smallest) on the current load average. addresses. The percentage of total swap space currently being used. Show only entries that match the given expression. See the -s option below. see uptime (1). Decrease wait time between refreshes by 1 second. The field must be one of the column headers listed above.P. Refresh screen. The file should be a flat file containing either resolvable hostnames or valid I. See the -f option below.

03 68% 1% 43 16:13 linuxdev 0. Inc. wildcards are supported. Truncate each line of output to the actual screen width. ORIGIN nstats was written by Thomas Kraus SEE ALSO uptime(1).nstats(1) Property of BladeLogic. Switch to disk info view. nover(1) NSH 2 . blexpr(1). nnet(1). nps(1). Switch to network info view. Switch to memory info view.00 87% 20% 63 16:14 UPTIME 6 days 05:12:48 56 days 04:43:39 88 days 15:04:57 host% nstats -h solaris8 linux windows -e ’LOAD > 0’ windows 0. When an expression is used to match a string. The expression should be a single argument surrounded by single quotes. see the man page for blexpr. host% nstats -h solaris8 linux windows HOSTNAME LOAD MEMORY SWAP PROCS TIME windows 0.03 68% 1% 43 16:13 6 days 05:13:52 EXPRESSIONS You can use the -e option to define an expression that filters the output data. Switch to statistics view. but does not mimic it exactly. including NOT. Switch to process summary view. nmem(1). Switch to process info view. and OR. For full details on expressions. Strictly confidential and proprietary e d m n o p s u -w nstats(1) Define an expression used to filter the output data. Expressions can contain multiple operators and operands. AND.00 98% 0% 39 16:12 solaris8dev 0. EXAMPLE These examples show how to get an overview of key system statistics. CAVEATS The -t option mimics the top command’s behavior. Switch to system info view. See the EXPRESSIONS section below for more details. ndf(1).

nps(1)..] [-r] [-s field] [-t] DESCRIPTION Ntop is a family of commands that can be used to view information and statistics about one or more servers. SEE ALSO blexpr(1).] [-r] [-s field] [-t] nover [-c] [-e expr] [-f file] [-H] [-h host ...ntop(1) Property of BladeLogic.. ndf(1) NSH 1 . nmem(1). blquery(1).. nover. nover(1). nps. nstats − A collection of commands used to view information and statistics for one or more servers SYNOPSIS ndf [-c] [-e expr] [-f file] [-H] [-h host .. nstats(1). Strictly confidential and proprietary ntop(1) NAME ndf. please read the individual man page for each command.] [-r] [-s field] [-t] nstats [-c] [-e expr] [-f file] [-H] [-h host ..] [-r] [-s field] [-t] nmem [-c] [-e expr] [-f file] [-H] [-h host . Inc..] [-r] [-s field] [-t] nps [-c] [-e expr] [-f file] [-H] [-h host .. For more information. nmem..

nukecert(1) Property of BladeLogic. SEE ALSO putcert(NSH) NSH 1 . Inc. Strictly confidential and proprietary nukecert(1) NAME nukecert − remove certificates from servers SYNOPSIS nukecert user_name server1 [<server2> <server2>] DESCRIPTION The nukecert command removes user certificates from servers that you specify. Inc. server1 [<server2> <server2>] A space-delimited list of the names or IP addresses of the servers from which certificates should be removed. EXAMPLE nukecert johnk linuxBuild solarisQA ORIGIN nukecert was developed by BladeLogic. OPTIONS user_name The user for whom certificates should be removed.

Strictly confidential and proprietary nunzip1(NSH) NAME nunzip.nunzip1(NSH) Property of BladeLogic. OPTIONS -c -v Uncompress to stdout. . gzip − decompress or compress files SYNOPSIS nunzip [-cv] [--no-name] [--quiet] [--verbose] file DESCRIPTION The nunzip command takes a list of files and decompresses or compresses each file whose name ends with . when config. Inc. gzip -c file1 > foo. This option is the default when decompressing. Inc. 1 .tar. Display the name and percentage reduction for each file compressed or decompressed. gunzip. the name of the resulting uncompressed file is config. .GZ. EXAMPLES ORIGIN nunzip was developed by BladeLogic. For example.gz is uncompressed. Verbose output.gz. copy the time stamp from the compressed file. do not restore the original file name if one is present (remove only the gzip suffix from the compressed file name) and do not restore the original time stamp if one is present.tar.TGZ. Instead. provided that the file has the correct header.gz Suppress all warnings. The resulting file is an uncompressed (or compressed) file without the original extension.tgz.gz nunzip --verbose foo. --help file Display a help screen and quit. --no-name When decompressing. --quiet --verbose Same as -v. File or files to be compressed or decompressed.gz gzip -c file2 >> foo.gz nunzip foo. gzcat. or .

If you provide a tag field. input lines are contained in a file called list. The resulting list contains only unique entries. the resulting list is printed in the format (<tag>) <character string> If no order style option is specified. Strictly confidential and proprietary order(1) NAME order − sort a list of strings (or lines) in a specified order SYNOPSIS order s|r [-u] [order-style] DESCRIPTION The order command is used to sort a list of strings (or lines) in an order specified by the user. In the syntax shown above. $cat list. the resulting list is printed in the format <tag> <character string> -2 If specified. Sorting is alphabetical. the string order is not changed. the resulting list contains strings grouped by the tag fields. only the -s option is considered. Sort the list in descending order. Remove duplicate entries. the resulting list is printed in the format <tag>: <character string> -3 If specified. it must be enclosed within round brackets ’()’. the resulting list is printed in the format (<tag>) <character string> EXAMPLES In this example.order(1) Property of BladeLogic.txt (city) bangalore (country) australia (city) new york asia (country) united states (city) adelaide (city) new york NSH 1 .txt. the strings are sorted in a user-specified order. the tag field is optional. The strings are only grouped by tag. If tag fields are provided in the input list. Note: if both the -s and -r options are specified. Each entry in the list of strings that are input must have the following syntax: (<tag>) <character string or line>. If you do not provide a sorting option. OPTIONS -s -r -u Sort the list in ascending order. Within each tag group. ORDER STYLE -1 If specified. The tag groups themselves are always sorted in ascending alphabetical order. Inc.

txt europe order(1) NSH 2 .order(1) Property of BladeLogic. Inc.txt asia america europe (city) bangalore (city) new york (city) adelaide (city) new york (city) new york (city) Rome (country) australia (country) united states (country) india (country) australia (country) england (country) australia (country) germany If ascending order is specified: $order -s < list.txt america asia europe (city) Rome (city) adelaide (city) bangalore (city) new york (city) new york (city) new york (country) australia (country) australia (country) australia (country) england (country) germany (country) india (country) united states If descending order is specified with the -u (unique) option and the order style specified as -2: $order -r -u -2 < list. Strictly confidential and proprietary america (country) india (country) australia (country) england europe (city) new york (city) Rome (country) australia (country) germany If no sorting option is provided: $order < list.

Inc.order(1) Property of BladeLogic. Inc. NSH 3 . Strictly confidential and proprietary asia america city:new york city:bangalore city:adelaide city:Rome country:united states country:india country:germany country:england country:australia order(1) ORIGIN order was developed by BladeLogic.

. This continues until a line from the last input file (in default operation) or the last line in each file (using the -s option) is displayed. Concatenate all of the lines of each separate input file in command line order. standard input is read one line at a time. The paste utility exits 0 on success.e. DESCRIPTION The Paste utility concatenates the corresponding lines of the given input files. circularly. ORIGIN Paste includes software developed by the University of California. and >0 if an error occurs. replacing all but the last file’s newline characters with a single tab character.. the standard input is used.User Commands Property of BladeLogic. The newline character of every line except the last line in each input file is replaced with the tab character. \n \t \ \0 -s newline character tab character backslash character Empty string (not a null character). i. If ‘-’ is specified for one or more of the input files. Please see the intro section for complete acknowledgements. SEE ALSO cut(1) SunOS 5. the file is treated as if it were an endless source of empty lines. when list is exhausted the first character from list is reused.8 Last change: NSH 1 . The following special characters can also be used in list: Any other character preceded by a backslash is equivalent to the character itself. unless otherwise specified by the -d option.merge corresponding or subsequent lines of files SYNOPSIS paste [-s] [-d list] file .. If end-offile is reached on an input file while other input files still contain data. Strictly confidential and proprietary paste ( 1 ) NAME paste . The characters in list are used circularly. The options are as follows: -d list Use one or more of the provided characters to replace the newline characters instead of the default tab. and writes the resulting lines to standard output. at which time paste begins selecting characters from the beginning of list again. Berkeley and its contributors. for each instance of ‘-’. Inc.

. pax reads a list of files to copy with one per line from standard input. Write..to_date]] . All extracted files are created relative to the current file hierarchy. [-s replstr] ..read and write file archives and copy directory hierarchies SYNOPSIS tar -[bcefmprutvwxBLPX[0-9]] [option arguments] [files . [-T [from_date] [... pax will read an archive file from standard input.. and file mode of the extracted files are discussed in more detail under the -p option. read. and will copy directory hierarchies.] directory DESCRIPTION pax will read. If you do not specify any file operands.pax(1) Property of BladeLogic. and copy.to_date] [/[c][m]]] . When an extracted file is a directory. [-U user] .. For a description of tar options. [-G group] .. write... and supports a wide variety of different archive formats.] pax [-cdnv] [-f archive] [-s replstr] .. [pattern . [-G group] .. The archive format and blocking is automatically determined on input...to_date]] ..] pax -r [-cdiknuvDYZ] [-f archive] [-o options] . -r Read. For a list of supported archive formats.. write. Inc. [file .. <none> List..] pax -w [-dituvHLPX] [-b blocksize] [[-a] [-f archive]] [-x format] [-s replstr] . [-T [from_date] [. [-E limit] [-U user] . [pattern .. [file .. and list the members of an archive file. and write a table of contents to standard output. except that there may be hard links between the original and the copied files (see the -l option below). The table of contents will contain the members of the archive file whose pathnames match the specified patterns. [-G group] ... pax copies the file operands to the destination directory. the entire file hierarchy rooted at that directory will be included. pax also supports a tar interface if the basename of argv[0] is tar... While processing a damaged archive during a read or list operation... The presence of the -r and the -w options specifies which of the following functional modes pax will operate under: list. pax reads a list of files to copy with one per line from the standard input.. [-T [from_date] [. The result of a copy under these conditions is unpredictable. [-p string] ... -w -r -w NSH 1 . pax will attempt to recover from media defects and will search through the archive to locate and process the largest number of archive members possible (see the -E option for more details on error handling). If you do not specify any file operands. The table of contents contains one filename per line and is written using single line buffering. see the -x option... [-U user] ...... and extract the archive file members whose pathnames match the specified patterns.tar . Strictly confidential and proprietary pax(1) NAME pax.to_date] [/[c][m]]] ... The setting of ownership. pax operation is independent of the specific archive format.. access and modification times.. [-s replstr] . [-U user] .. Copy.] pax -r -w [-diklntuvDHLPXYZ] [-p string] . The effect of the copy is as if the copied files were written to an archive file and then subsequently extracted. Warning: The destination directory must not be one of the file operands or a member of a file hierarchy rooted at one of the file operands.. pax writes an archive containing the file operands to standard output using the specified archive format... When a file operand is also a directory the entire file hierarchy rooted at that directory will be included. When a file operand is also a directory.... [-B bytes] [-T [from_date] [. [-o options] .. [-G group] . see the section below. pax extracts the entire file hierarchy rooted at that directory... pax will read an archive file from standard input.

If you do not specify any file operands. pattern operands. Write files to the standard output in the specified archive format. -b blocksize Tells pax the size of the output block (bytes per write) it should use when writing an archive. A specific archive device may impose additional restrictions on the size of blocking it will support. pax selects archive members using the pattern matching notation described by fnmatch(3). The directory operand specifies a destination directory pathname. these directories will be created as if mkdir(2) was called with the bitwise inclusive OR of S_IRWXU. pax exits immediately with a non-zero exit status. Strictly confidential and proprietary pax(1) OPERANDS There are three types of operands: directory operands. or if it is not of type directory. using a format different from the archive’s existing format. If any intermediate directories are needed in order to extract an archive member. pax will exit with a non-zero exit status. -c -d Match all file or archive members except those specified by the pattern and file operands. S_IRWXG. and will continue to use that blocking size for the remainder of the archive volume. pax selects the entire file hierarchy rooted at that directory. to match only the directory file or archive member and not the file hierarchy rooted at the directory. A blocksize can end with k or b to specify multiplication by 1024 (1K) or 512. Inc. and file operands. Any attempt to append to an archive stored on such a device may damage the archive or have other unpredictable results. respectively. A single archive may span multiple files and different archive devices. The file operand specifies the pathname of a file to be copied or archived. The pattern operand is used to select one or more pathnames of archive members. When a pattern matches a directory. pax reads standard input for a list of pathnames with one per line without any leading or trailing <blanks>. Warning: Many storage devices are not able to support the operations necessary to perform an append operation. pax selects all members of the archive. Specify archive as the pathname of the input or output archive. You can separate a pair of blocksizes by x to indicate a product. An archive stored in a regular file system file or on a disk device will usually support an append operation. pax will write these pattern operands in a diagnostic message to standard error and then exit with a nonzero exit status.pax(1) Property of BladeLogic. pax uses the archive’s existing format. pax will prompt for the pathname of the file or -w -a -f archive NSH 2 . OPTIONS -r Read an archive file from standard input and extract the specified files. the default block size depends on the specific archive format being used (see the -x option). or archive members of type directory being extracted. When a file operand does not select at least one archive member. Its maximum is 32256 bytes. pax will observe the blocking size being used in the archive volume where the writing starts. Cause files of type directory being copied or archived. or if it is not writable by the user. When a pattern operand does not select at least one archive member. When required. If you do not specify a block size. pax will write a diagnostic message to standard error and exit with a non-zero exit status at the completion of operation. blocksize must be a positive decimal integer that is a multiple of 512 bytes. When the selected archive format supports the specification of linked files and these files cannot be linked while the archive is being extracted. If you try to append to an archive. pax will write these file operand pathnames in a diagnostic message to standard error and then exit with a non-zero exit status. and S_IRWXO as the mode argument. Tape drives in particular are more likely to not support an append operation. overriding the default standard input (for list and read) or standard output (for write). If you do not supply a pattern operand. Append files to the end of a previously written archive. If the directory operand does not exist. If you do not specify an archive format -x option.

pax preserves file access times whenever possible. pax processes the file or archive member with no modification to its name. if -p eme is specified. subject to the permissions of the invoking process. The file times are preserved by default. Select the first archive member that matches each pattern operand. If neither the e nor the o specification character is specified. pax replaces its name with the contents of the line. In general. options take the form: name=value -p string Specify one or more file characteristic options (privileges). Otherwise. its file mode and. Strictly confidential and proprietary device of the next volume in the archive. file modification times are still preserved. and p (described below). Preserve the file mode bits. For example. For each archive member matching a pattern operand or each file matching a file operand. This is intended to be used by root.pax(1) Property of BladeLogic. pax will not set the S_ISUID (setuid) and S_ISGID (setgid) bits of the file mode. Otherwise the attribute of the extracted file is determined as part of the normal file creation action. but two other flags are offered to disable this and use the time of extraction instead.the user ID. This intended to be used by a user with regular privileges who wants to preserve all aspects of the file other than the ownership. group ID. By default. and you can specify multiple -p options. You can concatenate multiple characteristics within the same string. pax preserves file modification times whenever possible. By default. pax makes hard links between the source and destination file hierarchies whenever possible. In the copy mode ( -r -w). The e flag is the sum of the o and p flags. pax skips the file or archive member. ‘preserve’ indicates that an attribute stored in the archive is given to the extracted file. the one(s) given last will take precedence. Inc. m. Do not preserve file modification times. -k -l -n -o options Information to modify the algorithm for extracting or writing archive files. pax will immediately exit with a non-zero exit status if <EOF> is encountered when reading a response or if /dev/tty cannot be opened for reading and writing. file mode bits. Do not overwrite existing files. its modification time. pax will write a diagnostic message to standard error. These options are specific to the archive format specified by -x. and file modification time. The meanings of the specification characters are: a e Do not preserve file access times. The string option-argument is a string specifying file characteristics to be retained or discarded on extraction. o. Link files. If this line consists of a single period. pax will then read a line from /dev/tty. If the preservation of any of these items fails for any reason. When pax matches members of type directory. someone with all the appropriate privileges. If the file characteristic letters in any of the string option-arguments are duplicated or conflict with each other. -i pax(1) Interactively rename files or archive members. in order to preserve all aspects of the files as they are recorded in the archive. (This option is the letter ell). Match no more than one archive member for each pattern. file access time. it also matches the file hierarchy rooted at that directory (unless -d is also specified). e. If this line is blank. pax will prompt to /dev/tty giving the name of the file. The string consists of the specification characters a. or the user ID and group ID are not preserved for any reason. Preserve the user ID and group ID. but will not cause the extracted file to be deleted. NSH 3 . Failure to preserve these items will affect the final exit status. m o p In the preceding list. Preserve everything -.

Otherwise. You can specify multiple -s expressions. The optional trailing p will cause the final result of a successful substitution to be written to standard error in the following format: <original pathname> >> <new pathname> File or archive member names that substitute to the empty string are not selected and will be skipped. During write. This format is not very portable. The old binary cpio format. and is written only after the file has been read or written. If this format truncates inode and device information about a file (used for detecting file hard links). using the syntax of the ed(1) utility regular expressions. produce a verbose table of contents using the format of the ls(1) utility with the -l option. Inc. write. with the default format being ustar.2 (‘‘POSIX’’) standard. The optional trailing g continues to apply the substitution expression to the pathname substring which starts with the first character following the end of the last successful substitution. The trailing <newline>. and copy). is not buffered. The default blocksize for this format is 5120 bytes. or subexpression matching. terminating with the first successful substitution. pax applies the expressions in the order you specify them on the command line. -t -u Reset the access times of any file or directory that pax read or accessed to be the same as they were before pax. For pathnames representing a hard link to a previous member of the archive. the output has the format: <ls -l listing> => <link name> Where <ls -l listing> is the output format specified by the ls(1) utility when used with the -l option. Any non-null character can be used as a delimiter (/ is shown here). pax currently supports the following formats: cpio The extended cpio interchange format specified in the IEEE Std1003. old is a basic regular expression and new can contain an ampersand (&). do not use this format if other formats are -v bcpio NSH 4 . Therefore. During a list operation. The default blocksize for this format is 5120 bytes. for all the other operational modes ( read. -x format Specify the output archive format. \n (where n is a digit) back-references. the output has the format: <ls -l listing> == <link name> For pathnames representing a symbolic link. read or accessed them. a file system member with the same name as an archive member will be written to the archive if it is newer than the archive member. The old string may also contain <newline> characters. pax detects the truncation and repairs it. The first unsuccessful substitution stops the operation of the g option. the file in the destination hierarchy is replaced by the file in the source hierarchy or by a link to the file in the source hierarchy if the file in the source hierarchy is newer. an archive member with the same name as a file in the file system will be extracted if the archive member is newer than the file. During read. Ignore files that are older (having a less recent file modification time) than a pre-existing file or archive member with the same name.pax(1) -s replstr Property of BladeLogic. pax writes pathnames and flushes them to standard error without a trailing <newline> as soon as processing begins on that file or archive member. During copy. Strictly confidential and proprietary pax(1) Modify the file or archive member names specified by the pattern or file operands according to the substitution expression replstr. The format of these regular expressions is: /old/new/[gp] As in ed(1).

Instead. gid. If this format truncates inode and device information about a file (used for detecting file hard links). The default limit is a small positive number of retries. A limit of 0 will cause pax to stop operation after it detects the first read error on an archive volume. or b to specify multiplication by 1048576 (1M). pax will attempt to recover from an archive read error and will continue processing starting with the next file stored in the archive. -G group Select a file based on its group name. The bytes limit can end with m. The default blocksize for this format is 10240 bytes.) is newer than a copy of the file in the destination directory. For backwards compatibility with even older tar formats. or when starting with a #. respectively. k. Typical archive format restrictions include (but are not limited to): file pathname length. This is the default mode. -H -L -P Follow only command line symbolic links while performing a physical file system traversal. 1024 (1K) or 512. We do not recommend using this option with a floppy or hard disk.pax(1) Property of BladeLogic. Warning: Use this option only when writing an archive to a device that supports an end of file read condition based on last (or largest) write offset (such as a regular file or a tape drive). and directories will be archived (other file system types are not supported). NSH 5 . a numeric gid. Inc. You can use a ’´ to escape the #. With a positive limit. Do not follow symbolic links. etc. The default blocksize for this format is 5120 bytes. Checking stops with the first match. Pathnames stored by this format must be 250 characters or less in length. because pax may get stuck in an infinite loop on a very badly flawed archive. If this format truncates inode and device information about a file (used for detecting file hard links). hard links. Warning: Use NONE with extreme caution. A limit of NONE will cause pax to attempt to recover from read errors forever. The individual archive formats may impose additional restrictions on use. -B bytes Limit the number of bytes written to a single archive volume to the value you specify here.3. The default blocksize for this format is 10240 bytes. A pair of bytes limits can be separated by x to indicate a product. -D This option is the same as the -u option. file size. sv4crc tar ustar pax will detect and report any file that it is unable to store or extract as the result of any specific archive format restrictions. uid. Follow all symbolic links to perform a logical file system traversal. If this format truncates inode and device information about a file (used for detecting file hard links). sv4cpio The System V release 4 cpio. You can supply multiple -G options. pax detects the truncation and repairs it. link pathname length and the type of the file. The default blocksize for this format is 5120 bytes. Pathnames stored by this format must be 100 characters or less in length. except that pax checks the file inode change time instead of the file modification time. a -o option can be used when writing an archive to omit the storage of directories.2 (‘‘POSIX’’) standard. Only regular files. The old BSD tar format as found in BSD4. perform a physical file system traversal. The file inode change time can be used to select files whose inode information (for example. The System V release 4 cpio with file crc checksums. This option takes the form: -o write_opt=nodir The extended tar interchange format specified in the IEEE Std1003. pax detects the truncation and repairs it. soft links. Strictly confidential and proprietary pax(1) available. -E limit Limit the number of consecutive read faults while trying to read a flawed archive to the number specified here. pax detects the truncation and repairs it.

Each field must contain two digits.to_date][/[c][m]] Allow files to be selected based on a file modification or inode change time falling within a specified time range of from_date to to_date (the dates are inclusive). except that pax checks the modification time using the pathname created after all the file name modifications have completed. Time ranges are relative to the current time. -n. The inode change time comparison is useful in selecting files whose attributes were recently changed. or copying files during a copy operation. -T. do not descend into directories that have a different device ID. When extracting files during a read operation. If you supply only a to_date. This option is the same as the -D option. Inc. -u. -D. You can supply multiple -T time ranges. Finally the -v option will write the names resulting from these modifications. -v. pax defaults to using the file modification time only. You can supply multiple -U options. Time comparisons using both file times are useful when you are using pax to create a time based incremental archive (only files that were changed during a specified time range will be archived). etc). If you specify neither. pax selects only files with a modification or inode change time of exactly that time. -U options. dd. When archiving files during a write operation. Checking stops with the first match. Finally the -v option will write the names NSH 6 . Then any -s and -i options will modify in that order. or selecting files that were recently created and had their modification time reset to an older time (as happens when a file is extracted from an archive and the modification time is preserved). -D. When traversing the file hierarchy specified by a pathname. If you supply only a from_date.pax(1) Property of BladeLogic. A ’´ can be used to escape the #. archive members are selected based only on the user specified pathnames as modified by the -n. dd is the day of the month (from 01 to 31). pax selects all files with a modification or inode change time equal to or younger than the fromdate. for example. archive members are selected based only on the user specified pattern operands as modified by the -c. -n. -i. If you specify both c and m.ss] Where yy is the last two digits of the year. yy. The c tells pax to compare the inode change time (the time when the file inode was last changed. except that pax checks the inode change time using the pathname created after all the file name modifications have completed. -G. pax selects all files with a modification or inode change time equal to or older than the to-date. then pax compares both the modification time and the inode change time. and -Z) interact as follows. The ss field may be added independently of the other fields. The m tells pax to compare the file modification time (the time when the file was last written). -s. -U user -X Select a file based on its user name. a numeric uid. so -T 1234/cm would select all files with a modification or inode change time of 12:34 PM today or later. Then the -Y and -Z options will be applied based on the final pathname. -T. -u. -u. -D. Strictly confidential and proprietary pax(1) -T [from_date][. the first mm is the month (from 01 to 12). and ss is the seconds (from 00 to 59). -Y -Z The options that operate on the names of files or archive members ( -c. the names of these selected files. -T. Checking stops with the first match. -U. See the st_dev field as described in stat(2) for more information about device IDs. or when starting with a #. The format is: [yy[mm[dd[hh]]]]mm[. and -U options (the -D option applies only during a copy operation). the second mm is the minute (from 00 to 59). group. -Y. When pax is in the write or copy mode. A time range is made up of six different fields. file modification or both) pax should use in the comparison. mm. The minute field mm is required. you can use the optional trailing field [c][m] to specify which file time (inode change. hh is the hour of the day (from 00 to 23). This option is the same as the -u option. -G. the names of these selected files. while the other fields are optional and must be added in the following order: hh. Then any -s and -i options will modify in that order. Then during a copy operation the -Y and the -Z options will be applied based on the final pathname. When the from_date is equal to the to_date. -G. mode. the last time there was a change of owner.

ˆ//*usr//*. Do not pass over mount points in the file system. Preserve user ID. Do not follow symlinks. access/modification times. Do not preserve modification time.’ -f a. with all files rooted in ‘‘/usr’’ into the archive extracted relative to the current directory. Append to the archive. The following commands: mkdir newdir cd olddir pax -rw . pax does not select a file unless it is newer than the file to which it is compared. Append to the archive. Inc. Stop after first error. In this case the following options are supported. List contents of the tape. Follow symlinks. along with the -n option. [14578] Use tape device /dev/rmt/ N EXAMPLES The command: pax -w -f /dev/rst0 . The command: pax -r -v -f filename gives the verbose table of contents for an archive stored in filename. Interactive file rename. Strictly confidential and proprietary resulting from these modifications. group ID. The command: pax -r -s ’.pax. NSH 7 .pax reads the archive a. TAR OPTIONS The pax utility supports a tar interface if the basename of argv[0] is tar. Extract data from archive. b c e f m p r u t v w x H L P X The respective argument is the desired blocksize to use. Follow command line symlinks only. The respective argument is the name of the archive to create/view/update. newdir will copy the entire olddir directory hierarchy to newdir.pax(1) Property of BladeLogic. file mode. copies the contents of the current directory to the device /dev/rst0. Create an archive.. pax(1) If you specify one or both of the -u or -D options. Verbose operation mode.

-T. ORIGIN pax includes software developed by the University of California. or cannot preserve the user ID. STANDARDS The pax utility is a superset of the IEEE Std1003. Whenever pax cannot create a file or a link when reading an archive or cannot find a file when writing an archive. the file modes of extracted files and directories may have incorrect file bits. Berkeley and its contributors. Additionally.pax that are owned by root with group bin and will preserve all file permissions. NSH 8 . pax writes a diagnostic message to standard error and when pax completes. -L. If. pax will not create a second copy of the file.pax(1) The command: pax -rw -i . tar. -U. The command: pax -r -w -v -Y -Z home /backup will update (and list) only those files in the destination directory /backup that are older (less recent inode change or file modification times) than files with the same name found in the source file tree home. pax writes a diagnostic message to standard error and returns a non-zero exit status. The command: pax -r -pe -U root -G bin -f a.pax will extract all files from the archive a. If the creation of an archive is prematurely terminated by a signal or error. or file mode when the -p option is specified. 1 An error occurred. pax may have only partially extracted a file the user wanted. pax detects a file is about to overwrite itself. -E. -Y. but continues processing. group ID. -D. -Z. Inc.2 (‘‘POSIX’’) standard. sv4crc. If the extraction of a file from an archive is prematurely terminated by a signal or error. In the case where pax cannot create a link to a file. while doing a copy. the archive formats bcpio. The options -B. -G. -H. and the modification and access times may be wrong. sv4cpio. Strictly confidential and proprietary pax(1) can be used to interactively select the files to copy from the current directory to dest_dir. dest_dir Property of BladeLogic. ERRORS pax will exit with one of the following values: 0 All files were processed successfully. -P. pax does not copy the file. it exits with a non-zero exit status. and the flawed archive handling during list and read operations are extensions to the POSIX standard. pax may have only partially created the archive which may violate the specific archive format specification.

solaris # pkgadd -d SUNWppm Install a package on the local system where the package file exists on the remote host athens.pkgadd(1) Property of BladeLogic.P. Install a package on the local system where the package file also exists on the local system.06-sol8-sparc-local Install a package on a remote host where the package file exists on the local host. can reside on any server. rather than copying a complete CDROM to a remote host in order to install a single package. /bin/ksh. The packages you install. Defines an alternative directory for the default staging directory /tmp. solaris # pkgadd -h rome -d SUNppm The previous example could have also been done from the Network Shell as follows: solaris # cd //rome/tmp rome # pkgadd -d //@/cdrom/cdrom0/s0/Solaris_8/Product/SUNWppm NSH 1 . This utility lets you install Solaris packages onto any number of remote (or local) hosts. Strictly confidential and proprietary pkgadd(1) NAME pkgadd − Network Shell wrapper to pkgadd command SYNOPSIS pkgadd [-h host1 [hostn]] [-T tmpdir] <pkgadd arguments> DESCRIPTION The Network Shell version of pkgadd is a distributed utility wrapped around the Solaris pkgadd utility. pkgadd will selectively copy just the package needed for the installation. -h host The resolvable hostname or I. and/or response) need to be copied to each target host. If you do not use this option. pkgadd installs the package the host from which you executed the package command. For example. the pkgadd command will emulate the standard pkgadd command. pkgadd supports both individual files as well as directories. Because the pkgadd utility acts as a wrapper utility that eventually executes the pkgadd command on the target Solaris server.P. OPTIONS The pkgadd wrapper understands all the standard pkgadd command options as well as the options below. Inc. <pkgadd arguments> See the man section for the pkgadd (1M) command to see what options the pkgadd command supports. You can specify multiple hostname/I. When you use the -d option to install a directory of packages in file system format (not a single file datastream). copying the necessary files to those target hosts. address of the host on which you want to install the package. solaris # pkgadd -d //athens/tmp/bc-1. The pkgadd wrapper utility works by automatically determining which files (package. it needs a staging area to hold all files required for the installation. etc. The following examples are meant to work from within the Network Shell environment and may not necessarily work on any Solaris standard shell. address arguments. including remote servers. and then will selectively copy those packages (directories) to each target host. It will first determine which packages you want to install. and executing the Solaris pkgadd command with the selected arguments on the target hosts. such as /bin/sh. -T tmpdir EXAMPLES The pkgadd wrapper is designed for use from within the Network Shell (nsh). as well as any optional response or admin files. admin.

pkgadd(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

pkgadd(1)

Install a package on a remote host where the package file exists on that same remote host. solaris # cd //budapest/tmp budapest # pkgadd -d apache-1.3.12-sol8-sparc-local.gz Install a package on two remote hosts where the package file exists on the local host. solaris # pkgadd -h rome paris -d SUNWppm Install a package on a remote host where the package file (directory) exists on a different remote server. solaris # pkgadd -h london -d //athens/cdrom/cdrom0/s0/Solaris_8/Product

DIAGNOSTICS
pkgadd has several of its own self-explanatory diagnostic messages. It also outputs all messages from the execution of the remote pkgadd command.

EXIT CODES
pkgadd exits with a zero value if all package adds work successfully. If a remote pkgadd commands fails, it returns an exit code of 6. General errors return an exit code of 1.

CAVEATS
When installing a remote package to a series of hosts where the remote package is being copied from a (slower) WAN to hosts on a (faster) LAN, there is no option to tell the pkgadd command to copy the remote package into the LAN environment first and then copy the package to each of the remote hosts. Instead, pkgadd copies the package from the WAN to the LAN for each host. You can install packages only on Solaris hosts, as reported by the uname system call (looking for "SunOS").

ORIGIN
The pkgadd wrapper utility was written by Thomas Kraus.

SEE ALSO
pkgadd(1M), nsh(NSH).

NSH

2

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

pr ( 1 )

NAME

pr - print files
SYNOPSIS

pr [+page] [-column] [-adFmrt] [[-e] [char] [gap]] [-h header] [[-i] [char] [gap]] [-l lines] [-o offset] [[-s] [char]] [[-n] [char] [width]] [-w width] [-] [file ...]
DESCRIPTION

The pr utility is a printing and pagination filter for text files. When multiple input files are specified, each is read, formatted, and written to standard output. By default, the input is separated into 66-line pages, each with A 5-line header with the page number, date, time, and the pathname of the file. A 5-line trailer consisting of blank lines. If standard output is associated with a terminal, diagnostic messages are suppressed until the pr utility has completed processing. When multiple column output is specified, text columns are of equal width. By default text columns are separated by at least one <blank>. Input lines that do not fit into a text column are truncated. Lines are not truncated under single column output.
OPTIONS

In the following option descriptions, column, lines, offset, page, and width are positive decimal integers and gap is a nonnegative decimal integer. +page Begin output at page number page of the formatted input. -column Produce output that is columns wide (default is 1) that is written vertically down each column in the order in which the text is received from the input file. The options -e and -i are assumed. This option should not be used with -m. When used with -t , the minimum number of lines is used to display the output. -a Modify the effect of the -column option so that the columns are filled across the page in a roundrobin order (e.g., when column is 2, the first input line heads column 1, the second heads column 2, the third is the second line in column 1, etc.). This option requires the use of the -column option. Produce output that is double spaced. An extra <newline> character is output following every <newline> found in the input.

-d

-e [char][gap] Expand each input <tab> to the next greater column position specified by the formula n∗gap+1, where n is an integer > 0. If gap is zero or is omitted the default is 8. All <tab> characters in the input are expanded into the appropriate number of <space>s. If any nondigit character, char, is specified, it is used as the input tab character. -F -h header header Use the string header to replace the file name in the header line. -i [char][gap] In output, replace multiple <space>s with <tab>s whenever two or more adjacent <space>s reach column positions gap+1, 2∗gap+1, etc. If gap is zero or omitted, default <tab> settings at every eighth column position is used. If any nondigit character, char, is specified, it is used as the output <tab> character. -l lines Override the 66 line default and reset the page length to lines. If lines is not greater than the sum of both the header and trailer depths (in lines), the pr utility suppresses output of both the header and trailer, as if the -t option were in effect. Use a <form-feed> character for new pages, instead of the default behavior that uses a sequence of <newline> characters.

SunOS 5.8

Last change: NSH

1

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

pr ( 1 )

-m

Merge the contents of multiple files. One line from each file specified by a file operand is written side by side into text columns of equal fixed widths, in terms of the number of column positions. The number of text columns depends on the number of file operands successfully opened. The maximum number of files merged depends on page width and the per process open file limit. The options -e and -i are assumed.

-n [char][width] Provide width digit line numbering. The default for width, if not specified, is 5. The number occupies the first width column positions of each text column or each line of -m output. If char (any nondigit character) is given, it is appended to the line number to separate it from whatever follows. The default for char is a <tab>. Line numbers longer than width columns are truncated. -o offset Each line of output is preceded by offset <spaces>s. If the option is not specified, the default is zero. The space taken is in addition to the output line width. -r -s char -t Write no diagnostic reports on failure to open a file. Separate text columns by the single character char instead of by the appropriate number of <space>s (default for char is the <tab> character). Print neither the five-line identifying header nor the five-line trailer usually supplied for each page. Quit printing after the last line of each file without spacing to the end of the page.

-w width Set the width of the line to width column positions for multiple text-column output only. If the -w option is not specified and the -s option is not specified, the default width is 72. If the -w option is not specified and the -s option is specified, the default width is 512. file A pathname of a file to be printed. If no file operands are specified, or if a file operand is ‘-’, the standard input is used. The standard input is used only if no file operands are specified, or if a file operand is ‘-’.

The -s option does not allow the option letter to be separated from its argument, and the options -e, -i , and -n require that both arguments, if present, not be separated from the option letter.
ERRORS

If pr receives an interrupt while printing to a terminal, it flushes all accumulated error messages to the screen before terminating.
EXIT CODES

The pr utility exits 0 on success, and 1 if an error occurs. Error messages are written to standard error during the printing process (if output is redirected) or after all successful file printing is complete (when printing to a terminal).
SEE ALSO

cat(1), more(1)
ORIGIN

Pr includes software developed by the University of California, Berkeley and its contributors. Please see the intro section for complete acknowledgements.

SunOS 5.8

Last change: NSH

2

prune(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

prune(1)

NAME
prune − prune log files to specified size

SYNOPSIS
prune

DESCRIPTION
prune is a utility that prunes log files to a specific size. prune clips off the tops of the log files to shorten them. prune reads the file share/prune/prune_list (from the Network Shell install directory) to find the names of the files to prune. Each line of prune_list should consist of two white space separated fields. The first field is the name of the file you want to prune and the second field is the size in KB that the file should be pruned to. Lines beginning with a ’#’ are treated as comment lines and are ignored. prune was designed to run from cron. When running from cron with root privileges be sure to allow root access on remote hosts in order for prune to work (See exports(1)).

AUTHORS
prune was originally written by Ray Davis, with modifications made by Thomas Kraus.

NSH

1

putcert(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

putcert(1)

NAME
putcert − push a certificate generated by bl_gen_ssl to one or more servers

SYNOPSIS
putcert user_name id.pem server1 [<server2> <server2>]

DESCRIPTION
The putcert command pushes a certificate that was generated by the bl_gen_ssl command to one or more servers. When the putcert command is issued, BladeLogic places the public key in a file called <user_name>. The file resides in the /nsh/certs directory on UNIX-style servers and in /Program Files/BladeLogic/RSC/certs on Windows servers.

OPTIONS
user_name The name of the user who created the certificate by running bl_gen_ssl. id.pem The path to the id.pem file generated by the bl_gen_ssl command. server1 [<server2> <server2>] A space-delimited list of the names or IP addresses of the servers to which the certificate should be pushed.

EXAMPLE
putcert gopal id.pem linuxBuild solarisQA

ORIGIN
putcert was developed by BladeLogic, Inc.

SEE ALSO
bl_gen_ssl(NSH), nukecert(NSH)

NSH

1

putlic(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

putlic(1)

NAME
putlic − License remote agents

SYNOPSIS
putlic

DESCRIPTION
The putlic command is meant to be used in conjunction with the getlic command. The basic idea is to let you remotely license multiple servers. The getlic command gathers necessary license information from each remote host, and places this information in a file called license.raw. BladeLogic’s licensing web page takes this file and creates a file called license.dat. putlic uses license.dat to license the remote agents. The license.dat file can contain multiple entries, one per line. Each entry consists of a hostname, a product code, a license key, and an optional expiration key. putlic sends this data to each remote host (listed in the first field of each entry) and creates an appropriate license based on the data.

USAGE
The putlic command takes an optional argument that specifies the name of the file containing the license data. If you do not specify a file name, putlic defaults to using the license.dat file. host $ putlic Host bombay successfully licensed Host madras successfully licensed

CAVEATS
To install new licenses on remote UNIX-style machines, you usually need root privileges.

ORIGIN
putlic was written by Thomas Kraus

SEE ALSO
getlic(NSH), agentinfo(NSH).

NSH

1

redi(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

redi(1)

NAME
redi − redirect input to a file

SYNOPSIS
redi [-?] [-a] filename

DESCRIPTION
redi reads the standard input and writes it to filename. If the file does not exist, redi creates it. The primary purpose of this utility is to let you perform distributed redirection. In other words, you can use redi as a replacement for the output redirection sh(1) commands (> and >>) in a distributed environment by piping the data to the redi command.

OPTIONS
-a -? Append to the file instead of overwriting the file. If the file does not exist, create it. Equivalent to the >> command. Output a brief summary of available options and then exit with a zero status without redirecting any input. $ wc *.c | redi files.wc This would be equivalent to: $ wc *.c > files.wc The following example appends the data found by the fgrep utility into the file /etc/users.bad on host vaduz. $ fgrep evil /etc/passwd | redi -a //vaduz/etc/users.bad

EXAMPLE

DIAGNOSTICS
redi: Unable to redirect output to file filename redi was unable to create or append to the file filename. redi: Error redirecting output to file filename An error occurred while trying to write data to the named output file. This message will be followed by system error message offering a possible reason for the error.

EXIT CODES
0 1 2 255 No errors detected. You specified an unknown option. An error occurred in redirecting the data to the named output file. Unable to get a license to use the software.

ORIGIN
redi was written by Thomas Kraus

SEE ALSO
sh(1).

NSH

1

RENICE ( 8 )

Property of BladeLogic, Inc. BSD System Manager’s Manual Strictly confidential and proprietary

RENICE ( 8 )

NAME renice – alter priority of running processes SYNOPSIS renice priority [ [ –p] pid ...] [ [ –g] pgrp ...] [ [ –u] user ...] DESCRIPTION Renice alters the scheduling priority of one or more running processes. The following who parameters are interpreted as process ID’s, process group ID’s, or user names. Renice’ing a process group causes all processes in the process group to have their scheduling priority altered. Renice’ing a user causes all processes owned by the user to have their scheduling priority altered. By default, the processes to be affected are specified by their process ID’s. Options supported by renice: –g –u –p Force who parameters to be interpreted as process group ID’s. Force the who parameters to be interpreted as user names. Resets the who interpretation to be (the default) process ID’s.

For example, renice +1 987 -u daemon root -p 32 would change the priority of process ID’s 987 and 32, and all processes owned by users daemon and root. Users other than the super-user may only alter the priority of processes they own, and can only monotonically increase their ‘‘nice value’’ within the range 0 to PRIO_MAX (20). (This prevents overriding administrative fiats.) The super-user may alter the priority of any process and set the priority to any value in the range PRIO_MIN (–20) to PRIO_MAX. Useful priorities are: 20 (the affected processes will run only when nothing else in the system wants to), 0 (the ‘‘base’’ scheduling priority), anything negative (to make things go very fast). FILES /etc/passwd to map user names to user ID’s SEE ALSO getpriority(2), setpriority(2) BUGS Non super-users can not increase scheduling priorities of their own processes, even if they were the ones that decreased the priorities in the first place. The Linux kernel (at least version 2.0.0) and linux libc (at least version 5.2.18) does not agree entierly on what the specifics of the systemcall interface to set nice values is. Thus causes renice to report bogus previous nice values. HISTORY The renice command appeared in 4.0BSD.

4th Berkeley Distribution

June 9, 1993

1

rm(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

rm(1)

NAME
rm − Remove a file

SYNOPSIS
rm [-] [-firRv?] file ...

DESCRIPTION
rm removes the named files. rm removes a file by unlinking it from its parent directory. If this link was the last link the file had, then rm also destroys the file. rm does not remove directories unless you use the -r option. In this case, rm deletes ALL files and subdirectories in the named directory.

OPTIONS
-f -i This option causes rm not to output any error messages that occur. This option causes rm to first prompt the user to see if rm should remove the file/directory. If the user confirms with an entry beginning with the letter y, then rm removes the file/directory. See UNIVERSE BEHAVIOR for details on how this option interacts with the -f option. If any of the named arguments is a directory, then rm will recursively descend the directory and try to remove all files and sub-directories below it. Same as -r Output a message for each file or directory to be removed. Useful for monitoring recursive file removal. This option causes rm to treat the remaining arguments as file names. This can be useful when trying to remove a file starting with the character ’-’. Output a brief summary of available options and then exit with a zero status without removing any files. File to be removed

-r -R -v -? file

EXAMPLE
The first example removes all .old files in the directory /tmp The second example removes all .old files in the directory /u1/data on host helsinki. $ rm /tmp/*.old $ rm -frv //helsinki/u1/data/*.old

DIAGNOSTICS
rm: filename non existent You asked rm to remove a file that does not exist. rm: dirname is a directory You asked rm to remove a directory without using the -r option. rm: Unable to access directory dirname When removing a directory recursively, rm was unable to access a directory within the directory hierarchy. rm: Unable to remove file filename There was a problem in removing the file filename. rm: Unable to remove directory dirname There was a problem in removing the directory dirname.

EXIT CODES
0 1 No errors detected. You specified an unknown option.

NSH

1

rm(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary 2 255 One of the files to be removed was not removable. Unable to get a license to use the software.

rm(1)

CAVEATS
rm will not allow you to delete the directories . and ..

UNIVERSE BEHAVIOR
If both the -i and -f options are used, then with the P_BSD variable set (Berkeley behavior), the -i option will override the -f option. With the P_ATT variable set, the -f option will override the -i option.

ORIGIN
rm was written by Thomas Kraus

SEE ALSO
rmdir(1).

NSH

2

rmdir(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

rmdir(1)

NAME
rmdir − Remove an empty directory

SYNOPSIS
rmdir [-] [-ifps?] directory ...

DESCRIPTION
rmdir tries to remove the named directories. For a directory to be removed, it must be empty, meaning that it must not contain any files or sub-directories.

OPTIONS
-f -i This option causes rmdir not to output any error messages that occur. This option causes rmdir to first prompt the user to see if the directory should be removed. If the user confirms with an entry beginning with the letter y, then rmdir will remove the directory. See UNIVERSE BEHAVIOR for details on how this option interacts with the -f option. This option causes rmdir to try to also delete any of the named parent directories. If the parent directory is not explicitly named as a component of the directory, then rmdir will not delete it. This option is used in conjunction with the -p option, where if there are any errors in removing a directory, then no error messages are output. This option causes rmdir to treat the remaining arguments as directory names. This can be useful when trying to remove a directory starting with the character ’-’. Output a brief summary of available options and then exit with a zero status without removing any directories. Directory to be removed

-p -s -? directory

EXAMPLE
The first example will first ask for confirmation that the directory mydir should be deleted. The second example deletes the directory mydir/foo and then tries to remove the (parent) directory mydir on host valetta. $ rmdir -i mydir $ rmdir -p //valleta/mydir/foo

DIAGNOSTICS
rmdir: Cannot remove directories . or .. rmdir does not allow you to remove the directories ’.’ and ’..’. If you try to do this, and you are not suppressing error messages, then rmdir displays this message. rmdir: Unable to delete directory dirname If there is an error in deleting the directory dirname, rmdir displays this message, along with a possible explanation of why the operation failed.

EXIT CODES
0 1 2 255 No errors detected. You specified an unknown option. One of the files to be deleted was not accessible. Unable to get a license to use the software.

CAVEATS
By default the command ls does not show hidden files in a directory (files beginning with the character ’.’). Consequently, running ls in a directory may seem to indicate that the directory is empty, but when you try to remove the directory using rmdir, rmdir may complain that the directory is not empty. Use the -a option in ls to find hidden files.

NSH

1

rmdir(1) Property of BladeLogic. ORIGIN rmdir was written by Thomas Kraus SEE ALSO mkdir(1). then with the P_BSD variable set (Berkeley behavior). NSH 2 . With the P_ATT variable set. Strictly confidential and proprietary rmdir(1) UNIVERSE BEHAVIOR If both the -i and -f options are used. Inc. the -f option will override the -i option. the -i option will override the -f option.

If it finds an entry in the database. When it hears a connection. so that the Network Shell utilities can access the host.The agent must now handle the initial handshake between the client and daemon (server). For now it will proceed and fork off a sub-process to continue handling the acceptance. the connection to the agent is closed and the agent terminates. The first way is to start the RSCD agent directly. the agent needs to determine the TCP/IP port on which it should be listening. the agent forks off a child process to handle all future requests from that one client (connection). 4 . The agent will use this information in further security related checks. If it finds an entry. among other things. 3 . it uses the configured port number. 2 . If the handshake is valid. Inc. the agent closes the connection. If not. See the -i option for the RSCD agent below. The agent determines its TCP/IP port in the following way. it opens a connection on that port and listens for Network Shell client connections.rscd(1) Property of BladeLogic. the agent closes the connection. Before the client exits.It looks for an rscd entry in the secure file. it basically attempts to make a connection to the RSCD daemon running on that remote host. the agent decrypts the data that the client sent.Based on the client host. either from a command line or from a script. This master process will eventually fork off sub-processes for client connections as these connections are made and validated. the encryption type and encryption key or keys. the agent determines and sets appropriate permissions (see below). the initial handshake will include valuable information about the connecting client. The second way to start the RSCD agent is through the inetd mechanism. 2 . At this time full acceptance of the client has not yet occurred. the agent consults the exports file to determine if the client is even allowed to make the connection. If the handshake is invalid (which usually occurs when the encryption type and/or encryption keys do not match). it looks for an rscd entry in the Internet service database (often /etc/services ). In this case. It goes through the following steps: 1 . 1 . Once the agent has determined its TCP/IP port.Determine the client machine from which the connection is coming. 3 .If it does not find an entry there. Next. it initially accepts the connection and then checks to see if the connection is allowed. then verifies that it is a valid handshake.If it does not find an entry in either the secure file or in the Internet services database. But first.Remote System Call Daemon SYNOPSIS rscd [-D] [-d] [-f] [-i] [-r] [-x] DESCRIPTION The RSCD agent (or daemon) is the piece of software that needs to be installed and running on each remote host. it uses the configured port number. the agent defaults to port 4750. Strictly confidential and proprietary rscd(1) NAME rscd . When an RSCD agent receives a connection. This information is found in the secure file and includes. If you started the agent with the -i option (start from inetd) then the fork does not occur. because some of the criteria for acceptance can only be determined after the initial handshake. With this mechanism. NSH 1 . the RSCD agent first turns itself into a daemon. If necessary. determine how the communication between the two should occur. STARTING THE RSCD AGENT There are two ways to start the RSCD agent.Before going any further. the Internet services daemon ( inetd ) acts as the master process and just forks off rscd sub-processes as needed. so that it can run in background mode. RSCD AND SECURITY When a Network Shell utility (client) attempts to access a remote host.

which includes performing a seteuid and setegid (UNIX type systems only). Output brief usage description. These are also known as the user overrides. and what permissions the client should have. If the client is allowed to have access.Once it has the initial handshake data. If the client is not allowed to have access.rscd(1) Property of BladeLogic. the default TCP/IP communications port is not determined by the secure file. but rather by the rscd Internet service entry found in the /etc/services file or other respective configuration file.conf file might look something like this: rscd stream tcp nowait root /opt/nsh/bin/rscd rscd -i When you use this option. ORIGIN rscd was written by Thomas Kraus SEE ALSO exports (1). Sometimes after the master RSCD daemon exits. secure (1). the daemon closes the connection without processing any requests. After the first client exits the daemon exits as well. Strictly confidential and proprietary rscd(1) 5 . the daemon now consults the users file see if there should be any specific (override) permissions for the connecting user.Once the daemon has all the relevant information. This option tells the daemon to retry listening on the port every 10 seconds until it succeeds. NSH 2 . 6 . Output some debug messages. then the daemon sets the final permissions. Do not fork. -D -f -d -x Do not go into daemon mode. the port it was listening on may continue to be busy for a short time longer. The following options are not recommended for use and exist only for debugging purposes. OPTIONS The RSCD agent accepts the following options: -i Use this option when you are starting the daemon from inetd. -r This option tells the RSCD daemon to retry listening on the configured TCP/IP port if the port is currently already being listened on. and the daemon will just keep trying and trying and trying. the daemon sets them. Note that if the daemon was initiated by inetd then the port will never be free (not being listened on). users (1). Inc. Implied if -i option is used and basically makes the daemon single use. it decides whether or not the client should have access. If there should be overrides. A sample entry for the /etc/inetd.

If the remote user is not set up this way. if you rsu root a vi session and enter into a sub-shell. you will need to enter the respective password for the user for each host.. The user and entered password are then authenticated on the remote server. It does not apply to any sub-commands (processes). when you run an NSH command to access a remote host. With the rsu command. you will not gain access to the remote server. Password for root@host3: . you will be prompted for the user’s password for that host. For this option to work. Those permissions govern your access to that host.] DESCRIPTION You can use the rsu command to run a command with a different set of permissions on a remote machine. If the user/password combination does not properly authenticate on the remote host.. you will not get access to the host.rsu(1) Property of BladeLogic.. If you are accessing multiple hosts. Normally. In other words. this change in permissions applies only to the selected command. the RSCD agent (NSH server) of that host assigns you a specific set of permissions. $ /bin/nsh host1 $ id uid=503(tmk) gid=600(nsh) host1 $ nexec host2 id uid=503(tmk) gid=600(nsh) host1 $ rsu root nexec host2 id Password for root@host2: uid=0(root) gid=1(other) host1 $ In this example you can look at a restricted file on two hosts $ /bin/nsh host1 $ cat //host2/etc/shadow //host3/etc/shadow cat: Cannot open file //host2/etc/shadow: Permission denied cat: Cannot open file //host3/etc/shadow: Permission denied host1 $ rsu root cat //host2/etc/shadow //host3/etc/shadow Password for root@host2: . Except when you are using the -p option (see below). You obtain the specified user’s permissions by providing the password for the user on the remote host. host1 $ NSH 1 . the remote user must be configured on the remote server as a user who does not need a password. The specified user’s permissions will override the standard permissions. To do this. OPTIONS You can configure the RSCD agent to let you rsu to the remote server without having to enter a password.. When the command accesses a remote host for the first time. the sub-shell and subsequent commands you run from the shell will NOT have the new permissions. Otherwise the command will continue on with the new permissions.. Inc.. just as if you had entered an incorrect password. EXAMPLE The following example shows a sample session where you can determine your effective UID on the various hosts you are working with. Strictly confidential and proprietary rsu(1) NAME rsu − Run NSH command with alternate privileges SYNOPSIS rsu [-p] user command [args . use the -p option. you can select an alternate user whose permissions will be granted to the selected NSH command you are using to access the remote host.

) in the users. Appropriate entries (rsu=. exports (1). See the users and/or exports man pages for more details.. ORIGIN rsu was written by Thomas Kraus SEE ALSO users(1). users.local. Inc. Strictly confidential and proprietary rsu(1) CAVEATS The -p option will work only if the target server has been specifically configured to allow the rsu command to access the server without providing a password. rscd(1) NSH 2 .. EXIT CODES rsu exits with the same exit code as that of the finished command.rsu(1) Property of BladeLogic. and/or exports file must exist.

each -h argument can be either a hostname or a UNC name. OPTIONS -c Execute a Network Shell command on each host. hostn] [-e command1 ..... Inc. All arguments after the -e are assumed to be part of the commands to be executed on each host.. if you specified -H "%h belongs to Engineering" for the host eng1. which consists of a hostname and directory. NSH 1 . -e cmd . -n This option tells runcmd and runscript not to output a CR (carriage return) after the header. where each entry can be either a hostname or a UNC name. This option specifies the command to execute. which consists of a hostname and directory. runcmd and runscript consider all subsequent arguments to be host names. This option must be the last option. Strictly confidential and proprietary runcmd(1) NAME runcmd − Run a Network Shell command on one or more hosts SYNOPSIS runcmd [-v -n -p n] [-H header] [-NH] [-s | -c] [-d directory] [-f file] [-h host1 . while runscript runs the given Network Shell script on each machine. until runcmd and runscript encounter another option (an argument starting with ´-´).. As with each entry in the file specified with the -f file option.. commandn] runscript [-v -n -p n] [-H header] [-NH] [-s | -c] [-d directory] [-f file] [-h host1 .runcmd(1) Property of BladeLogic. you may want to know which host you are dealing with. After encountering the -h option. your header line would read eng1 belongs to Engineering.. You can specify multiple hosts by putting spaces between host names. Depending on what action you are currently performing. For example. runcmd and runscript output a brief header before the command is executed.. To this end. commandn] DESCRIPTION The programs runcmd and runscript let you run the same command on multiple machines. The format of this file is one entry per line. -h host . you have the option of also specifying a start directory on each host. The -H header option lets you specify a custom header. The difference between the two is that runcmd executes a shell command. -f file This option indicates that file file contains the names of the hosts on which the command is to be executed. This option indicates the host(s) on which you want to run the command. This lets you easily differentiate the output that each host produces. The default header is "==> %h <==" where the macro "%h" is substituted by the name of the host where the program is about to be executed. the environment variable NSH_RUNCMD_HOST is set for each sub-command that is run. hostn] [-e command1 . -H header By default.. Furthermore the environment variable NSH_RUNCMD_DIR is set indicating the current Network Shell path. This is implicit if the program name is runcmd -d dirname When you specify the hosts on which you want to run the command... If you do not specify a start directory with the host. you can specify it using the -d option’s dirname.

ORIGIN runcmd and runscript were written by Thomas Kraus NSH 2 . Output a brief explanation of the available options. This includes the default header or any header you defined using the -H option.runcmd(1) Property of BladeLogic. The host name is preceded by a ( and followed by a ) as in (hostname). Tag each line with the name of the host the output is coming from. then these programs will exit with a status of 0. Run up to n commands/scripts in parallel. -v -V -s -? EXAMPLE Some simple examples. Inc. This is implicit if the program name is runscript. if you are going to make assumptions about the output produced by each instance. In other words. but be advised that since things are running in parallel. Output the effective command executed for each host. If an error occurs or if a command or script exits with a non zero status. you may not want to do things in parallel. then these programs will exit with a non-zero status. Strictly confidential and proprietary runcmd(1) -NH -p n This option tells runcmd and runscript not to display a header. host% runcmd -h rome athens -d /etc -e ls -l \| wc -c host% runscript -h //rome/bin //athens/bin -e scriptname -script_option host% runcmd -h rome athens paris london -p 2 -e ifconfig ppp down host% runcmd -h rome athens -d /tmp -e sh -c ’echo $NSH_RUNCMD_HOST $NSH_RUNCM ==> rome <== rome //rome/tmp ==> athens <== athens //athens/tmp EXIT STATUS If a command or script is successfully executed on all named hosts. This can significantly speed things up. Execute a Network Shell script on each host. the output generated by each instance may overall not be output in a linear way.

scriptutil(1) Property of BladeLogic. As such. The script library is found in <install_directory>/share/sensors. If it does not refer to an existing file. the output (stdout) of the script is sent to stdout on the local machine. Scriptutil also supports the concept of a script library that in turn supports the concept of OS abstraction.. -d dir -f file The default staging directory for the script is /tmp. grp_uniq_gid grp_uniq_grpname net_disabled_uucp. then it will show all scripts (for all OSes) of that name. scriptutil proceeds as follows for a given script to run on a particular server: 1) 2) 3) 4) 5) 6) Determine remote OS type Look for script name with OS name extension in library directory If not found look for script in library directory as is (no OS name extension) Copy script to remote server Execute script on remote server capturing (and passing through) stdout and stderr Remove script from remote server OPTIONS The following options are supported. Inc.[ALL] Audit non-unique group names in /etc/group .e. -s script Specify the name of the script one want to run on the given remote servers. then the script library will be searched with the OS type extension filter applied.] [-l] [-o file] -s scan [-x arg] DESCRIPTION The idea behind scriptutil is to execute a given script on a remote server without the need to have the script on the given server before the script is executed (if the script already exists on the remote server one can execute the script directly by using nexec).. one still wants to have a single point of access for all platforms for that task.[AIX] Audit that UUCP is disabled NSH 1 . Scripts in the library with an OS name extension (output of uname command) are treated as overrides for the particular platform (i. EXAMPLE Show all scripts host% scriptutil -l . .. See also -h -h host [host .AIX . If a name is given. With this option one can specify a file to which the output is sent. -o file By default. If the script refers to an existing file then that file will be the one copied and executed.. file contains a list of servers one wants to run the scripts on (one entry per line). when looking to run a script. As a particular task may have different implementations on various UNIX type servers. With this option one can override the staging directory.[ALL] Audit non-unique GIDs in /etc/group . -l [name] Show the list of scripts in the library and exit. Strictly confidential and proprietary scriptutil(1) NAME scriptutil − Copy and execute scripts on remote servers SYNOPSIS scriptutil [-d dir] [-f file] -h host1 [host2 . Can specify multiple hosts and can also be used in conjunction with the -f file option. no OS name extension).] Add host to the list of hosts one wants to run the script on.

.[HP-UX] Audit that UUCP is disabled Example of using a script in the script library host% scriptutil -h rome -s net_disabled_uucp Example of using an existing script host% cd //athens/tmp athens% cat rr pwd athens% scriptutil -h rome -s rr -d /tmp/nsh /tmp/nsh ORIGIN scriptutil was written by Thomas Kraus SEE ALSO runscript (NSH). nexec (NSH). NSH 2 . scriptutil(1) .HP-UX . Inc. Strictly confidential and proprietary net_disabled_uucp.scriptutil(1) Property of BladeLogic.

prompting at each set of differences. Options passed to diff(1) are: −a −b −d Treat file1 and file2 as text files. All lines in the change must match regexp for the change to be ignored. if any. deleted lines are marked with ‘<’. −i Do a case-insensitive comparison. −I regexp Ignore line changes matching regexp. Minimize diff size. −w width Print a maximum of width characters on each line. sdiff can also be used to interactively merge two files. which will be merged into outfile upon exiting the editor. below. with any differences between the two highlighted as follows: new lines are marked with ‘>’. 2008 1 . The options are: −l Only print the left column for identical lines. Start editing file with left set of diffs. BSD March 28. In this mode. The commands are as follows: l | 1 Choose left set of diffs. Start editing file with both sets of diffs.SDIFF (1) System General Commands Manual SDIFF (1) NAME sdiff − side-by-side diff SYNOPSIS sdiff [ −abdilstW] [ −I regexp] [ −o outfile] [ −w width] file1 file2 DESCRIPTION sdiff displays two files side by side. The default is 130 characters. See the −o option for an explanation. Start editing file with right set of diffs. for details of which editor. Verbose mode – identical lines are printed. Quit sdiff. is invoked. and changed lines are marked with ‘|’. Skip identical lines. See EDITOR and VISUAL. Start editing an empty file. Ignore trailing blank spaces. s v e e l e r e b q −s Silent mode – identical lines are not printed. the user is prompted for each set of differences. r | 2 Choose right set of diffs. −o outfile Interactively merge file1 and file2 into outfile.

BUGS sdiff may not work with binary data. Terminals that treat tabs as eight characters wide will look best. diff(1). Ignore all spaces (the −w flag is passed to diff(1)). 2008 2 . vi(1). The default is /tmp. VISUAL Specifies an editor to use with the −o option. diff3(1). SEE ALSO cmp(1). If neither EDITOR nor VISUAL are set.SDIFF (1) System General Commands Manual SDIFF (1) −t −W Expand tabs to spaces.net〉. Tabs are treated as anywhere from one to eight characters wide. sdiff supports most long options supported by GNU sdiff. VISUAL takes precedence. though some require GNU diff. re_format(7) AUTHORS sdiff was written from scratch for the public domain by Ray Lai 〈ray@cyth. TMPDIR Specifies a directory for temporary files to be created. BSD March 28. If both EDITOR and VISUAL are set. the default is vi(1). ENVIRONMENT EDITOR. CAVEATS Although undocumented. depending on the current column.

Accessing passwords non-interactively is essential for setting up secure. When configuring default communication parameters for BladeLogic clients. create an entry that stores the password for the owner of the process that NSH 1 . use the special hostname default.secadmin(1) Property of BladeLogic. If you are creating entries for individual hostnames as well as an rscd or default entry. you can provide a host’s IP address. If an entry does not exist for a particular remote host. or a subnet designation that defines a range of addresses (see SUBNET DESIGNATIONS below). create a hostname entry in the secure file. When configuring default communication parameters for servers. then the software looks for a default entry. certificate-based communication between an Application Server and agents and repeaters. When entering a value for hostname.. a resolvable host name. See CREATING ENTRIES IN THE SECURECERT FILE. when the agent detects that a host is attempting to make a connection. the client searches from top to bottom through entries in its secure file until it finds the first entry that resolves to an IP address matching the IP address of the server. Inc. By storing passwords in the securecert file. CREATING ENTRIES IN THE SECURE FILE When using secadmin to create a secure file. Protocol 5 auto-negotiates the most secure connection between a client and server. BladeLogic can access those passwords without any user interaction. CREATING ENTRIES IN THE SECURECERT FILE When using secadmin to edit a securecert file. On the agent side. if you are using the same communication parameters for all your RSCD Agents. When configuring communication parameters for a specific host (client or server). SSL). BladeLogic clients and servers use a communication protoccol called protocol 5 that is based on a TLS transportation mechanism (a. the agent searches its secure file from top to bottom until it finds the first entry that resolves to an IP address matching the IP address of the client attempting to make a connection. which stores encrypted password information needed to access the private key for X. it uses the default entry.509 certificates. Strictly confidential and proprietary secadmin(1) NAME secadmin − Utility to define encryption and authentication security SYNOPSIS secadmin -up | -down | -top | -bottom hostname secadmin -c <config_file> . Secadmin also lets you edit the securecert file. If the client does not find a match. For an Application Server. When a client attempts to establish a connection with a server. you can specify communication parameters by creating three types of entries: rscd. it uses the rscd entry. place the rscd or default entry at the end of the list. for BladeLogic clients and RSCD servers running on the local host. By default.. use the special hostname rscd. secadmin -c <config_file> -i secadmin -d [hostname] secadmin -P [-C] secadmin -W hostname size secadmin -a|m [hostname] [-w size] [-r [port [hostname]]] [-p 5] [-e tls] secadmin [-appserver_host [hostname]] [-appserver_port [port]] [-appserver_protocol [ clear | srp ]] secadmin [-cu [username]] [-cp [password]] DESCRIPTION Secadmin is a utility that can be used to define communications parameters. you do not have to create an entry for each remote host needing access to those agents. default. including encryption and authentication parameters. or hostname. The order of entries in the secure file matters. you can create entries for an Application Server and entries for repeaters.a. NOTE: Hostnames are matched to secure file entries by matching the IP addresses (including ranges) of their respective resolved names and not by comparing the hostnames entered in secure file entries. Thus. If the agent does not find a match. through an indirect deployment). It is also necessary when using secure communication to deploy assets via repeaters (that is.k.

(NOTE: The alternate secure file is encrypted). Strictly confidential and proprietary secadmin(1) communicates securely with repeaters and servers. On Windows. -a hostname Create a new entry for host hostname. that user is BladeLogicRSCD. When issuing a secadmin command. With the -c option you can create and install (-c and -i) a portable secure file.secadmin(1) Property of BladeLogic. At times it may be necessary to re-arrange the order of the entries in the secure file. As mentioned above. On UNIX-style systems. If hostname is not provided. you are prompted to enter the hostname. If hostname is not provided. that user is bladmin. you are prompted to enter the hostname. To accomplish this.cfg is used. If no value is entered for file. Since this alternate secure file is encrypted. To accomplish this. The primary use for this option is to create and install pre-configured secure files. in a regular secure file. -P Print the output of the current configuration in a formatted table. then the file secure. If hostname is not provided. you are prompted to enter the hostname. See below for details. enter one of the following commands: # secadmin -m default -cu root -cp password # secadmin -m default -cu BladeLogicRSCD -cp password OPTIONS With the secadmin utility. NSH 2 . enter one of the following commands: # secadmin -m default -cu bladmin -cp password # secadmin -m default -cu SYSTEM -cp password For a repeater. that user is typically root. you can delete or modify an existing entry in the secure file as well as add new entries to the file. The encrypted file must be installed on a system using the -i option. passwords (keys) are encrypted using a key that is unique to the host for which the key is generated. Use the following options to change the order of an entry: -up hostname Move the entry up one. If this option is followed by the -C option then the output will be in a CSV format. On UNIX-style systems. While this is an important security measure. -m hostname Modify the entry for host hostname. On Windows. the passwords are not revealed. you must append one of the following options immediately after the command: -c file Use file as an alternate secure file. create an entry that stores the password for the administrative user that communicates with servers. This primarily happens when you are working with subnet definitions (see below) and you have individual host overrides in that subnet. -down hostname Move the entry down one. it impedes the ability to pre-configure the secure file for use in automated or non-interactive installations on multiple systems. Inc. that user is SYSTEM. -d hostname Delete the entry for entry hostname.

-i Install an encrypted secure file created with the -c option. Set the network write buffer size to be size bytes with the default size being 4480 bytes. A bad connection can happen if encryption is not set up properly or a particular host is not granted access. To compress data. These failures are limited to encryption misconfigurations and host authorization errors. Inc. the IP address is locked until the RSCD Agent is restarted. with a higher number indicating better compression. If you are adding or modifying an entry. -w size -z value Set compression level. The default value for -u is 1 minute. the secadmin utility prompts you for all information required to create or modify an entry. By default data is not compressed. -p protocolnum Specify which protocol to use. which allows you to lock out IP addresses that repeatedly fail to connect to an agent. a cipher) and then use that cipher to communicate. Strictly confidential and proprietary secadmin(1) -top hostname Move the entry to the top of the list. -bottom hostname Move the entry to the bottom of the list. The software searches for certificates in $HOME/BladeLogic/id. This option is used in conjunction with the -l option. you can enter the following options to define the communication parameters for a given hostname. -u n -T mode Specify one of the following TLS features: encryption_only Use the TLS protocol to auto-negotiate an encryption type (that is. See the nshopt command for details about the network write buffer size. you can specify how many minutes the IP address should be locked before allowing connection attempts to resume. With the -u option.secadmin(1) Property of BladeLogic. this option determines the maximum number of times a bad connection is allowed from a source address before the address is locked.pem. If you omit these additional arguments from the command line. Each of the following options may require additional arguments.2. -W hostname size Only update the network write buffer size for host hostname to be size bytes. This option requires a certificate. encryption_and_auth Use TLS for encryption and authorization. This option must be used with the -c option. Note that better compression is more CPU intensive. The address is locked for a period of time as defined by the -u field (see below). -l n When set to a non-zero positive value. supported since release 5. No authorizations or certificates are required. The default protocol is protocol 5. Please see the EXAMPLES section below for an example. NSH 3 . set value to a number between 1 and 9. If -u is a negative number.

is the same as giving no redirection host.509 certificate. all clients must be configured to use that alternate port number when accessing a server.secadmin(1) Property of BladeLogic. When accessing the host specified in either the -m or -a option. The secadmin utility also provides the following options. Currently the rscd daemon cannot listen to multiple ports for connections. This value is related to the -appserver_host setting.10. configured as a Network Shell Proxy Server.255.509 certificate.255. It should be followed by an IP address or hostnames within the subnet followed by a / and then the number of bits in the subnet mask. BladeLogic now only supports the tls encryption type. Use SRP authentication when communicating with the Network Shell Proxy Server. -appserver_port Specify the port used to connect to a Network Shell Proxy Server. This field is related to the -appserver_host setting. Consequently.0 might look something like: @192. If no hostname is given. which let you add entries to the securecert file: -cu -cp The user for whom you are storing a password to the private key for an X. A subnet with a subnet mask of 255. Inc. A subnet designation has the following format: @<IP Address or Hostname>/mask The @ symbol indicates that a subnet is being defined. -appserver_host Specify the Application Server. This value is useful because otherwise the secadmin utility will prompt you for a redirection host. Setting hostname to . -appserver_protocol Specify the authentication protocol used when communicating with a Network Shell Proxy Server. -e tls Specify the encryption method to be used to encrypt data between BladeLogic clients and the RSCD Agent (daemon). Strictly confidential and proprietary secadmin(1) -r [port [hostname]] Specify port redirection parameters. you can choose to specify a subnet address that defines a range of addresses for that entry. The password to the private key for a user’s X. then data is sent to the alternate port number on the hostname specified by the -m or -a options. that functions as an intermediary when Network Shell is communicating with RSCD agents. data should be sent to the specified port number on the host hostname.0/24 Here are some sample subnet mask definitions: NSH 4 .168. Set the protocol to one of the following: clear srp Do not use authentication when communicating with the Network Shell Proxy Server. if you want to use an alternate port number for a server. SUBNET DESIGNATIONS When defining a hostname or address for a specific permission.

255.241/28 @192.000 255.240 255. enter # secadmin -a foo -p 5 -e tls To specify use of port 999 rather than the default port of 4750.255. enter the following command.168.255. To delete the entry for host foo.168.168.248 Property of BladeLogic.168.255.129/25 @192.255.255.100.168.225/27 @192.128 255.255.secadmin(1) 255. enter the following command on the server host: # secadmin -a rscd -p 5 -r 999 -e tls On each client host that is communicating with the server host. NSH 5 .255.100.100.192 255.224 255.100.255.168.100.100. enter # secadmin -d foo To create a standard entry for host foo so it communicates using protocol 5 (the default communication protocol). Strictly confidential and proprietary @192.255. Inc.193/26 @192.0/24 @192.249/29 secadmin(1) EXAMPLES The following examples illustrate actions you can take to modify the secure file.255.255. # secadmin -a <server_host> -r 999 -e tls SEE ALSO nshopt (1).

The form of a sed command is as follows: BSD December 30. (If the second address is a number less than or equal to the line number first selected.) Starting at the first line following the selected range. or a context address (which consists of a regular expression preceded and followed by a delimiter). A command line with two addresses selects the inclusive range from the first pattern space that matches the first address through the next pattern space that matches the second. into a pattern space.address]]function[arguments] Whitespace may be inserted before the first address and the function portions of the command. The input is then written to the standard output. copies the pattern space to the standard output. not including its terminating newline character. sed cyclically copies a line of input. appending a newline. (unless there is something left after a ‘D’ function). modifying the input as specified by a list of commands. Inc. A command line with no addresses selects every pattern space. SED ADDRESSES An address is not required. Strictly confidential and proprietary SED (1) NAME sed − stream editor SYNOPSIS sed [ −an] command [file . . −f command_file Append the editing commands found in the file command_file to the list of commands.] sed [ −an] [ −e command] [ −f command_file] [file . but if specified must be a number (that counts input lines cumulatively across input files). Normally. Multiple commands may be specified by using the −e or −f options. 1993 1 . applies all of the commands with addresses that select that pattern space. sed starts looking again for the first address. . [address[. The −a option causes sed to delay opening each file until a command containing the related ‘w’ function is applied to a line of input. each line of input is echoed to the standard output after all of the commands have been applied to it. and deletes the pattern space. by default. The editing commands should each be listed on a separate line. −e command Append the editing commands specified by the command argument to the list of commands. All commands are applied to the input in the order they are specified regardless of their origin. . The −n option suppresses this behavior.SED (1) PropertyGeneral Commands Manual System of BladeLogic. a dollar character ( ‘$’ ) that addresses the last line of input. Some of the functions use a hold space to save all or part of the pattern space for subsequent retrieval. . or the standard input if no files are specified. The options are as follows: −a The files listed as parameters for the ‘w’ functions are created (or truncated) before any processing begins. only that line is selected. A command line with one address selects all of the pattern spaces that match the address.] DESCRIPTION The sed utility reads the specified files. A single command may be specified as the first argument to sed. −n By default.

branch to the end of the script. The terminating ‘}’ must be preceded by a newline or optional whitespace. ‘!’. Inc. If a regular expression is empty. The function can be preceded by whitespace as well. which should be separated from the function letter by whitespace. [1addr]. In addition. Other backslashes in text are deleted and the following character taken literally. The argument text consists of one or more lines. the maximum number of permissible addresses for each command is indicated by [0addr]. One special feature of sed regular expressions is that they can default to the last regular expression used. [1addr]a\ text Write text to standard output immediately before each attempt to read a line of input. i. The following synopses indicate which arguments have to be separated from the function letters by whitespace characters. whether by executing the ‘N’ function or by beginning a new cycle. however. representing zero. ‘w’. The last regular expression is defined as the last regular expression used as part of an address or substitute command. See re_format(7) for more information on regular expressions. The ‘b’. Two of the functions take a function-list. If the label is not specified. or two addresses. use a literal newline character in an address or in the substitute command. For example. precede it with a backslash. You can’t. and ‘:’ functions all accept additional arguments. or [2addr]. putting a backslash character before the delimiting character causes the character to be treated literally. one. sed has the following two additions to BREs: 1.SED (1) PropertyGeneral Commands Manual System of BladeLogic.. The escape sequence \n matches a newline character embedded in the pattern space. Also.. just the delimiter characters are specified. [2addr]b[label] Branch to the ‘:’ function with the specified label. In a context address. For example. ‘y’. so that the regular expression is “abcxdef”. The ‘r’ and ‘w’ functions take an optional file parameter. in the context address \xabc\xdefx. any character other than a backslash ( ‘\’ ) or newline character may be used to delimit the regular expression. This is a list of sed functions separated by newlines. ‘t’. the RE delimiter is an ‘x’ and the second ‘x’ stands for itself. the command “/abc/s//XXX/” will substitute “XXX” for the pattern “abc”. Strictly confidential and proprietary SED (1) Editing commands can be applied to non-selected pattern spaces by use of the exclamation character ( ‘!’ ) function. and at run-time.e. [2addr] function-list Execute function-list only when the pattern space is selected. 2. SED REGULAR EXPRESSIONS The sed regular expressions are basic regular expressions ( BREs ) . the last regular expression encountered is used instead. To embed a newline in the text. SED FUNCTIONS In the following list of commands. not compile-time. Each file given as an argument to sed is created (or its contents truncated) before any input processing begins. ‘r’. as follows: { function function . ‘s’. BSD December 30. function } The ‘{’ can be preceded or followed by whitespace. 1993 2 ..

Append the next line of input to the pattern space. This form is as follows: backslash alert form-feed newline carriage-return tab vertical tab \\ \a \f \n \r \t \v Delete the pattern space and start the next cycle. [2addr]d [2addr]D [2addr]g [2addr]G [2addr]h [2addr]H [1addr]i\ text Write text to the standard output. Write the pattern space to standard output. Note that the current line number changes. If file cannot be read for any reason. text is written to the standard output. and replace the pattern space with the next line of input. Any character other than backslash or newline can be used instead of a slash to delimit [2addr]p [2addr]P [1addr]q [1addr]r file BSD December 30. Replace the contents of the pattern space with the contents of the hold space. Long lines are folded. it is silently ignored and no error condition is set. Non-printable characters are written as three-digit octal numbers (with a preceding backslash) for each byte in the character (most significant byte first). [2addr]n [2addr]N Write the pattern space to the standard output if the default output has not been suppressed. [2addr]s/re/replacement/flags Substitute the replacement string for the first instance of the regular expression in the pattern space. up to the first newline character to the standard output. 1993 3 . Branch to the end of the script and quit without starting a new cycle.) Write the pattern space to the standard output in a visually unambiguous form. The end of each line is marked with a ‘$’. Append a newline character followed by the contents of the pattern space to the hold space. Strictly confidential and proprietary SED (1) [2addr]c\ text Delete the pattern space. using an embedded newline character to separate the appended material from the original contents. Write the pattern space. [2addr]l (The letter ell. Inc.SED (1) PropertyGeneral Commands Manual System of BladeLogic. Copy the contents of file to the standard output immediately before the next attempt to read a line of input. Replace the contents of the hold space with the contents of the pattern space. Delete the initial segment of the pattern space through the first newline character and start the next cycle. Append a newline character followed by the contents of the hold space to the pattern space. with the point of folding indicated by displaying a backslash followed by a newline. With 0 or 1 address or at the end of a 2-address range.

SED (1)

PropertyGeneral Commands Manual System of BladeLogic, Inc. Strictly confidential and proprietary

SED (1)

the RE and the replacement. Within the RE and the replacement, the RE delimiter itself can be used as a literal character if it is preceded by a backslash. An ampersand ( ‘&’ ) appearing in the replacement is replaced by the string matching the RE. The special meaning of ‘&’ in this context can be suppressed by preceding it by a backslash. The string ‘\#’, where ‘#’ is a digit, is replaced by the text matched by the corresponding backreference expression (see re_format(7)). A line can be split by substituting a newline character into it. To specify a newline character in the replacement string, precede it with a backslash. The value of flags in the substitute function is zero or more of the following: 0 ... 9 g p Make the substitution only for the N’th occurrence of the regular expression in the pattern space. Make the substitution for all non-overlapping matches of the regular expression, not just the first one. Write the pattern space to standard output if a replacement was made. If the replacement string is identical to that which it replaces, it is still considered to have been a replacement. Append the pattern space to file if a replacement was made. If the replacement string is identical to that which it replaces, it is still considered to have been a replacement.

w file

[2addr]t[label] Branch to the ‘:’ function bearing the label if any substitutions have been made since the most recent reading of an input line or execution of a ‘t’ function. If no label is specified, branch to the end of the script. [2addr]w file Append the pattern space to the file. [2addr]x Swap the contents of the pattern and hold spaces. [2addr]y/string1/string2/ Replace all occurrences of characters in string1 in the pattern space with the corresponding characters from string2. Any character other than a backslash or newline can be used instead of a slash to delimit the strings. Within string1 and string2, a backslash followed by any character other than a newline is that literal character, and a backslash followed by an ‘n’ is replaced by a newline character. [2addr]!function, [2addr]!function-list Apply the function or function-list only to the lines that are not selected by the address(es). [0addr]:label This function does nothing; it bears a label to which the ‘b’ and ‘t’ commands may branch. [1addr]= [0addr] [0addr]# Write the line number to the standard output followed by a newline character. Empty lines are ignored. The ‘#’ and the remainder of the line are ignored (treated as a comment), with the single exception that if the first two characters in the file are ‘#n’, the default output is suppressed. This is the same as specifying the −n option on the command line.

The sed utility exits 0 on success or >0 if an error occurred.

BSD

December 30, 1993

4

SED (1)

PropertyGeneral Commands Manual System of BladeLogic, Inc. Strictly confidential and proprietary

SED (1)

SEE ALSO awk(1), ed(1), grep(1), regex(3), re_format(7) "SED — A Non-interactive Text Editor", /usr/share/doc/usd/15.sed/. STANDARDS The sed function is expected to be a superset of the IEEE Std 1003.2 (“POSIX.2”) specification. HISTORY A sed command appeared in Version 7 AT&T UNIX.

BSD

December 30, 1993

5

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

sort ( 1 )

NAME

sort - sort or merge text files
SYNOPSIS

sort [-cmubdfinr] [-t char] [-T char] [-k field1[,field2]] ... [-o output] [file] ...
DESCRIPTION

The sort utility sorts text files by lines. Comparisons are based on one or more sort keys extracted from each line of input, and are performed lexicographically. By default, if keys are not given, sort regards each input line as a single field. The following options are available: -c -m Check that the single input file is sorted. If the file is not sorted, sort produces the appropriate error messages and exits with code 1; otherwise, sort returns 0. Sort -c produces no output. Merge only; the input files are assumed to be pre-sorted.

-o output The argument given is the name of an output file to be used instead of the standard output. This file can be the same as one of the input files. -u Unique: suppress all but one in each set of lines having equal keys. If used with the -c option, check that there are no lines with duplicate keys.

The following options override the default ordering rules. When ordering options appear independent of key field specifications, the requested field ordering rules are applied globally to all sort keys. When attached to a specific key (see -k), the ordering options override all global ordering options for that key. -d -f -i -n Only blank space and alphanumeric characters are used in making comparisons. Considers all lowercase characters that have uppercase equivalents to be the same for purposes of comparison. Ignore all non-printable characters. An initial numeric string, consisting of optional blank space, optional minus sign, and zero or more digits (including decimal point) is sorted by arithmetic value. (The -n option no longer implies the -b option.) Reverse the sense of comparisons. Ignores leading blank space when determining the start and end of a restricted sort key. A -b option specified before the first -k option applies globally to all -k options. Otherwise, the -b option can be attached independently to each field argument of the -k option (see below). Note that the -b option has no effect unless key fields are specified. Char is used as the field separator character. The initial char is not considered to be part of a field when determining key offsets (see below). Each occurrence of char is significant (for example, ‘‘charchar’’ delimits an empty field). If -t is not specified, blank space characters are used as default field separators. Char is used as the record separator character. This should be used with discretion; -T <alphanumeric> usually produces undesirable results. The default line separator is newline.

-r -b

The treatment of field separators can be altered using the options:

-t char

-T char

-k field1[,field2] Designates the starting position, field1, and optional ending position, field2, of a key field. The -k option replaces the obsolescent options +pos1 and -pos2. The following operands are available: file The pathname of a file to be sorted, merged, or checked. If no file operands are specified, or if a file operand is -, the standard input is used. A field is defined as a minimal sequence of characters followed by a field separator or a newline character. By default, the first blank space of a sequence of blank spaces acts as the field separator. All blank spaces

SunOS 5.8

Last change: NSH

1

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

sort ( 1 )

in a sequence of blank spaces are considered as part of the next field; for example, all blank spaces at the beginning of a line are considered to be part of the first field. Fields are specified by the -k field1[,field2] argument. A missing field2 argument defaults to the end of a line. The arguments field1 and field2 have the form m.n followed by one or more of the options -b, -d, -f, -i, -n, -r. A field1 position specified by m.n (m,n > 0) is interpreted as the nth character in the mth field. A missing .n in field1 means indicating the first character of the ‘’, field; If the -b option is in effect, n is counted from the first non-blank character in the mth field; m.1b refers to the first non-blank character in the mth field. A field2 position specified by m.n is interpreted as the nth character (including separators) of the mth field. A missing .n indicates the last character of the mth field; m = 0 designates the end of a line. Thus the option -k v.x,w.y is synonymous with the obsolescent option +v-1.x-1 -w-1.y; when y is omitted, -k v.x,w is synonymous with +v-1.x-1 -w+1.0. The obsolescent +pos1 -pos2 option is still supported, except for -w.0b, which has no -k equivalent.
FILES

/tmp/sort.∗ Default temporary directories. output#PID if output already exists.
SEE ALSO

Temporary name for output

sort(1), comm(1), uniq(1), join(1)
RETURN VALUES

Sort exits with one of the following values: 0: with the -c option 2: an error occurred.
BUGS

normal behavior. 1:

on disorder (or non-uniqueness)

Lines longer than 65522 characters are discarded and processing continues. To sort files larger than 60Mb, use sort -H; files larger than 704Mb must be sorted in smaller pieces, then merged. To protect data sort -o calls link and unlink, and thus fails in protected directories.
ORIGIN

Sort includes software developed by the University of California, Berkeley and its contributors. Please see the intro section for complete acknowledgements.
NOTES

The current sort command uses lexicographic radix sorting, which requires that sort keys be kept in memory (as opposed to previous versions which used quick and merge sorts and did not.) Thus performance depends highly on efficient choice of sort keys, and the -b option and the field2 argument of the -k option should be used whenever possible. Similarly, sort -k1f is equivalent to sort -f and may take twice as long.

SunOS 5.8

Last change: NSH

2

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

split ( 1 )

NAME

split - split a file into pieces
SYNOPSIS

split [-b byte_count[km]] [-l line_count] [file [name]]
DESCRIPTION

The split utility reads the given file (or standard input if no file is specified) and breaks it up into files of 1000 lines each.
OPTIONS

The options are as follows: -b Create smaller files byte_count bytes in length. If ‘‘k’’ is appended to the number, the file is split into byte_count kilobyte pieces. If ‘‘m’’ is appended to the number, the file is split into byte_count megabyte pieces. Create smaller files n lines in length.

-l

If additional arguments are specified, the first is used as the name of the input file which is to be split. If a second additional argument is specified, it is used as a prefix for the names of the files into which the file is split. In this case, each file into which the file is split is named by the prefix followed by a lexically ordered suffix in the range of ‘‘aa-zz’’. If the name argument is not specified, the file is split into lexically ordered files named in the range of ‘‘xaa-zzz’’.
BUGS

For historical reasons, if you specify name, split can only create 676 separate files. The default naming convention allows 2028 separate files.
ORIGIN

Split includes software developed by the University of California, Berkeley and its contributors. Please see the intro section for complete acknowledgements.

SunOS 5.8

Last change: NSH

1

strings(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

strings(1)

NAME
strings - find printable strings in a file

SYNOPSIS
strings [-afo] [-n number] [file ...]

DESCRIPTION
Strings displays the sequences of printable characters in each of the specified files, or in the standard input, by default. By default, a sequence must be at least four characters in length before being displayed. The options are as follows: -a -f -n -o By default, strings only searches the text and data segments of object files. The -a option causes strings to search the entire object file. Each string is preceded by the name of the file in which it was found. Specifies the minimum number of characters in a sequence to be number, instead of four. Each string is preceded by its decimal offset in the file.

Strings is useful for identifying random binaries, among other things.

SEE ALSO
hexdump(1)

BUGS
The algorithm for identifying strings is extremely primitive. In particular, machine code instructions on certain architectures can resemble sequences of ASCII bytes, which will fool the algorithm.

NOTES
Since strings works in a multi platform environment, it can not recognize all types of executable files. Consequently the -a option is always assumed to be turned on. This may be fixed in the future. Strings includes software developed by the University of California, Berkeley and its contributors. Please see the intro section for complete acknowledgements.

NSH

1

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

su ( 1 )

NAME

su – substitute user identity
SYNOPSIS

su [-flm] [login [args ... ]]
DESCRIPTION

Su requests the password for login (or for root, if no login is provided), and switches to that user and group ID and then executes the Network Shell nsh. If su is executed by root, no password is requested and the Network Shell with the appropriate user ID is executed By default, the environment is unmodified with the exception of USER, HOME, and SHELL. HOME and SHELL are set to the target login’s default values. USER is set to the target login, unless the target login has a user ID of 0, in which case it is unmodified. The invoked shell is the target login’s. This is the traditional behavior of su. The options are as follows: -f -l or This flag is used in confunction with the csh which of course we are not running. This option is accepted for compatability reasons and is ignored. Simulate a full login. The environment is discarded except for HOME, SHELL, PATH, TERM, and USER. HOME and SHELL are modified as above. USER is set to the target login. PATH is set to /usr/sbin/usr/bin on Solaris hosts, /usr/sbin:/usr/bin on HPUX hosts, /usr/ucb:/bin:/usr/bin on Sun OS hosts, and TERM is imported from your current environment. The invoked shell is the Network Shell nsh, and su will change directory to the target login’s home directory. Leave the environment unmodified. The Network Shell is started and no directory or environment variable changes are made.

-m

The -l and -m options are mutually exclusive; the last one specified overrides any previous ones. By default (unless the prompt is reset by a startup file) the super-user prompt is set to ‘‘#’’ to remind one of its awesome power.
SEE ALSO

nsh(1), login(1)
ENVIRONMENT

Environment variables used by su: HOME PATH TERM USER Default home directory of real user ID unless modified as specified above. Default search path of real user ID unless modified as specified above. Provides terminal type which may be retained for the substituted user ID. The user ID is always the effective ID (the target user ID) after an su unless the user ID is 0 (root).

SunOS 5.8

Last change: NSH

1

TAIL (1)

PropertyGeneral Commands Manual System of BladeLogic, Inc. Strictly confidential and proprietary

TAIL (1)

NAME tail − display the last part of a file SYNOPSIS tail [ −f | −r] [ −b number | −c number | −n number | −number] [file . . .] DESCRIPTION The tail utility displays the contents of file or, by default, its standard input, to the standard output. The display begins at a byte, line, or 512-byte block location in the input. Numbers having a leading plus ( ‘+’ ) sign are relative to the beginning of the input, for example, -c +2 starts the display at the second byte of the input. Numbers having a leading minus ( ‘-’ ) sign or no explicit sign are relative to the end of the input, for example, -n 2 displays the last two lines of the input. The default starting location is -n 10, or the last 10 lines of the input. The options are as follows: −b number The location is number 512-byte blocks. −c number The location is number bytes. −n number | −number The location is number lines. −f Do not stop when end-of-file is reached, but rather to wait for additional data to be appended to the input. If the file is replaced (i.e., the inode number changes), tail will reopen the file and continue. If the file is truncated, tail will reset its position to the beginning. This makes tail more useful for watching log files that may get rotated. The −f option is ignored if the standard input is a pipe, but not if it is a FIFO. The −r option causes the input to be displayed in reverse order, by line. Additionally, this option changes the meaning of the −b, −c, and −n options. When the −r option is specified, these options specify the number of bytes, lines or 512-byte blocks to display, instead of the bytes, lines, or blocks from the beginning or end of the input from which to begin the display. The default for the −r option is to display all of the input.

−r

If more than a single file is specified, each file is preceded by a header consisting of the string “==> XXX <==” where “XXX” is the name of the file. The tail utility exits 0 on success or >0 if an error occurred. EXAMPLES To display the last 500 lines of the file foo: $ tail -500 foo Keep /var/log/messages open, displaying to the standard output anything appended to the file: $ tail -f /var/log/messages SEE ALSO cat(1), head(1), sed(1)

BSD

June 6, 1993

1

TAIL (1)

PropertyGeneral Commands Manual System of BladeLogic, Inc. Strictly confidential and proprietary

TAIL (1)

STANDARDS The tail utility is expected to be a superset of the IEEE Std 1003.2-1992 (“POSIX.2”) specification. In particular, the −b and −r options are extensions to that standard. The historic command line syntax of tail is supported by this implementation. The only difference between this implementation and historic versions of tail, once the command line syntax translation has been done, is that the −b, −c and −n options modify the −r option, i.e., -r -c 4 displays the last 4 characters of the last line of the input, while the historic tail (using the historic syntax -4cr) would ignore the −c option and display the last 4 lines of the input. HISTORY A tail command appeared in Version 7 AT&T UNIX.

BSD

June 6, 1993

2

tee(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

tee(1)

NAME
tee − Pipe fitting

SYNOPSIS
tee [-ai?] [file ...]

DESCRIPTION
The tee utility copies the standard input to standard output, making copies of the input to the optionally named files.

OPTIONS
The following options may modify the behavior of tee. -a -i Append the output to the files rather than overwriting them. This option causes tee to ignore the SIGINT signal.

EXAMPLE
The first example takes the output from the program someprog and appends it to the file messages creating the file if it does not already exist. The second example copies the file /etc/motd to the hosts ottawa and washington. $ someprog | tee -a messages $ cat /etc/motd | tee //ottawa/etc/motd //washington/etc/motd

DIAGNOSTICS
tee: Unable to access file filename Error creating or trying to append to one of the name files. tee: Write error to file filename An error occurred updating (writing) to one of the files.

EXIT CODES
0 1 2 255 No errors detected An unknown option was given Was not able to create or able to write to one the files. Unable to get a license to use the software.

ORIGIN
Tee includes software developed by the University of California, Berkeley and its contributors. Please see the intro section for complete acknowledgments.

SEE ALSO
tee(1)

NSH

1

test(1)

Property of BladeLogic, Inc. Strictly confidential and proprietary

test(1)

NAME
test − Test value of expression

SYNOPSIS
test expression

DESCRIPTION
The test command tests the value of the given expression and exits with an appropriate exit code to indicate if the expression was TRUE or FALSE. In the sh(1) family of command interpreters, an exit code of 0 indicates a value of TRUE, while a non zero exit code indicates a value of FALSE.

OPTIONS
You can build an expression from any combination of the following primitives. -b file -c file -d file -f file. -f file -g file -h file -k file -l string -n string -p file -r file -s file -t fd -u file -w file -x file -z string s1 = s2 s1 != s2 n1 -eq n2 n1 -ne n2 n1 -gt n2 n1 -ge n2 n1 -lt n2 n1 -le n2 ! -a -o (expr) TRUE if file is a block special device. TRUE if file is a character special device. TRUE if file is a directory. TRUE if file is not a directory (P_BSD). TRUE if file is a regular file (P_ATT). TRUE if file has its set-GID bit set. TRUE if file is a symbolic link. TRUE if file has its sticky bit set. The length of string. TRUE if length of strings is not zero. TRUE if file is a named pipe (FIFO). TRUE if file is readable. TRUE if file is greater than 0 bytes large. TRUE if file descriptor is associated with a tty. TRUE if file has its set-UID bit set. TRUE if file is writable. TRUE if file is executable. TRUE if length of strings is zero. TRUE if strings s1 and s2 are equal. TRUE if strings s1 and s2 are not equal. TRUE if integers n1 and n2 are equal. TRUE if integers n1 and n2 are not equal. TRUE if integer n1 is greater than integer n2. TRUE if integer n1 is greater than or equal to integer n2. TRUE if integer n1 is less than integer n2. TRUE if integer n1 is less than or equal to integer n2. Unary negation operator. Binary ’and’ operator. Binary ’or’ operator. Parentheses for grouping.

NSH

1

which can be used for grouping primitives. which in turn has a higher precedence than the ! (negation) operator. EXAMPLE The first example would return TRUE if both the files /etc/passwd and /etc/group exist on host bonn. You can use parentheses to group operators so that they are evaluated in the order you want. the -f primitive check that the file is a regular file. CAVEATS Parentheses. The sh(1) counterpart test(1) is a built in function to the shell and a separate executable program for it does not exist. also have special meaning to the sh(1). Consequently you must escape or quote them. Value of the expression is FALSE. The second example would return TRUE if either one of the files /etc/passwd or /etc/group exists. With the P_ATT variable set. test is an executable program. UNIVERSE BEHAVIOR With the P_BSD variable set (Berkeley behavior). $ test -f //bonn/etc/passwd -a -f //bonn/etc/group $ test -f \( /etc/passwd -o -f /etc/group \) -a -d /etc/security DIAGNOSTICS test: argument expected This message is output if a primitive of the expression is missing an operand. Inc. EXIT CODES 0 1 2 255 Value of the expression is TRUE. Unable to get a license to use the software. An operand of a primitive was missing. The difference is that a special file such as a character special file is neither a directory nor a regular file.test(1) Property of BladeLogic. the -f primitive checks if the file is not a directory. The -a (binary AND) operator has a higher precedence than the -o (binary OR) operator. ORIGIN test was written by Thomas Kraus NSH 2 . and the directory /etc/security exists. Strictly confidential and proprietary -? test(1) Output a brief summary of available options and then exit with a zero status without doing any testing. so as not to have them interpreted by sh(1). Consequently the primitive -f <character_special_file> will produce different values in the two universes.

from 0 to 59. “hh” and “mm” letter pairs are treated as their counterparts specified to the −t option. .SS]] file [ . the year is set from 1969 to 1999. otherwise. the year is set in the 21st century. No error messages are displayed and the exit value is not affected. 1995 1 . a value for “YY” between 69 and 99 results in a “CC” value of 19. Inc. it is created with default permissions. The “MM”. SEE ALSO utimes(2) STANDARDS The obsolescent form of touch. from 0 to 23. If the file doesn’t exist. Change the access and modification times to the specified time. When no −r or −t option is specified. The month of the year. from 0 to 61.SS]” where each pair of letters represents the following: CC YY MM DD hh mm SS The first two digits of the year (the century). but “CC” is not.] DESCRIPTION The touch utility sets the modification and access times of files to the current time of day. where a time format is specified as the first argument. If “YY” is specified. The touch utility exits 0 on success or >0 if an error occurred. The second of the minute. “DD”. The second two digits of the year. from 1 to 31.TOUCH (1) PropertyGeneral Commands Manual System of BladeLogic. Do not create the file if it does not exist. If the “SS” letter pair is not specified. The hour of the day. from 1 to 12. the first argument is interpreted as a time specification of the form “MMDDhhmm[YY]”. BSD April 28. Change the modification time of the file. The options are as follows: −a −c −f −m −r −t Change the access time of the file. If the “YY” letter pair is in the range 69 to 99. The minute of the hour. The argument should be in the form “[[CC]YY]MMDDhhmm[. a “CC” value of 20 is used. Attempt to force the update. The touch utility does not treat this as an error. and the first argument is a string of digits either eight or ten characters in length. The access time of the file is not changed unless the −a flag is also specified. is supported. . Use the access and modification times from the specified file instead of the current time of day. even if the file permissions do not currently permit it. Otherwise. Strictly confidential and proprietary TOUCH (1) NAME touch − change file access and modification times SYNOPSIS touch [ −acfm] [ −r file] [ −t [[CC]YY]MMDDhhmm[. If the “CC” and “YY” letter pairs are not specified. the values default to the current year. there are at least two arguments. the value defaults to 0. The modification time of the file is not changed unless the −m flag is also specified. The day of the month.

Inc. Strictly confidential and proprietary TOUCH (1) The touch utility is expected to be a superset of the IEEE Std 1003. BSD April 28.2 (“POSIX.TOUCH (1) PropertyGeneral Commands Manual System of BladeLogic. HISTORY A touch utility appeared in Version 7 AT&T UNIX.2”) specification. 1995 2 .

TR ( 1 ) Property of Reference Manual BSD BladeLogic. 2 or 3 octal digits represents a character with that encoded value. and the characters in string2 are compressed as described for the –s option. A backslash followed by certain special characters maps to special values. the characters in string1 are deleted from the input. Shpink October 27. Strictly confidential and proprietary TR ( 1 ) NAME tr – Translate Characters. Inc. The following conventions can be used in string1 and string2 to specify sets of characters: character \octal Any character not described by one of the following conventions represents itself. To follow an octal sequence with a digit as a character. The –s option squeezes multiple occurrences of the characters listed in the last operand (either string1 or string2) in the input into a single instance of the character. SYNOPSIS tr [ –cs] string1 string2 tr [ –c] –d string1 tr [ –c] –s string1 tr [ –c] –ds string1 string2 DESCRIPTION The tr utility copies the standard input to the standard output with substitution or deletion of selected characters. The following options are available: –c –d –s Complements the set of characters in string1. This occurs after all deletion and translation is completed. the characters in string1 are translated into the characters in string2 where the first character in string1 is translated into the first character in string2 and so on. that is ‘‘-c ab’’ includes every character except for ‘‘a’’ and ‘‘b’’. left zero-pad the octal sequence to the full 3 octal digits. the characters in string1 are deleted from the input. \a \b \f \n \r \t \v <alert character> <backspace> <form-feed> <newline> <carriage return> <tab> <vertical tab> \character A backslash followed by any other character maps to that character. the last character found in string2 is duplicated until string1 is exhausted. 1991 1 . A backslash followed by 1. In the fourth synopsis form. the characters in string1 are compressed as described for the –s option. If string1 is longer than string2. The –d option causes characters to be deleted from the input. In the third synopsis form. In the second synopsis form. In the first synopsis form.

If n has a leading zero. it is interpreted as an octal value. In the ‘‘upper’’ and ‘‘lower’’ classes. it is be interpreted as large enough to extend string2 sequence to the length of string1. EXAMPLES The following examples are shown as given to the shell: Create a list of the words in file1. [=equiv=] Represents all characters or collating (sorting) elements belonging to the same equivalence class as equiv. tr -cd [:print:]" < file1" COMPATIBILITY System V has historically implemented character ranges using the syntax ‘‘[c-c]’’ instead of the ‘‘c-c’’ used by historic BSD implementations and standardized by POSIX. where a word is taken to be a maximal string of letters. otherwise. System V shell scripts should work under this implementation as long as the range is intended to map in another range. Strictly confidential and proprietary TR ( 1 ) c-c [:class:] Represents the range of characters between the range endpoints. the characters are ordered in ascending sequence. inclusively. Represents all characters belonging to the defined character class. see ctype(3) and related manual pages. the command ‘‘tr [a-z] [A- Shpink October 27. tr [:lower:]" "[:upper:]" < file1" Strip out non-printable characters from file1. Otherwise. Class names are: alnum alpha cntrl digit graph lower print punct space upper xdigit <alphanumeric characters> <alphabetic characters> <control characters> <numeric characters> <graphic characters> <lower-case alphabetic characters> <printable characters> <punctuation characters> <space characters> <upper-case characters> <hexadecimal characters> With the exception of the ‘‘upper’’ and ‘‘lower’’ classes. 1991 2 . it’s interpreted as a decimal value. they are ordered after their encoded values. English has no equivalence classes. and >0 if an error occurs. An example of an equivalence class might be ‘‘c’’ and ‘‘ch’’ in Spanish. For specific information as to which ASCII characters are included in these classes. Represents n repeated occurrences of the character represented by #. If there is a secondary ordering within the equivalence class. Inc. If n is omitted or is zero.TR ( 1 ) Property of Reference Manual BSD BladeLogic. [#∗n] The tr utility exits 0 on success. This expression is only valid when it occurs in string2. i. one per line. characters are entered in ascending order.e. characters in the classes are in unspecified order. tr -cs [:alpha:]" "\n" < file1" Translate the contents of file1 to upper-case.

Strictly confidential and proprietary TR ( 1 ) Z]’’ will work as it will map the ‘‘[’’ character in string1 to the ‘‘[’’ character in string2. 1991 3 . Additionally. This implementation will not permit illegal syntax. Shell scripts attempting to be portable to other POSIX systems should use the ‘‘[#∗]’’ convention instead of relying on this behavior. additionally. any scripts that depended on the sequence ‘‘a-z’’ to represent the three characters ‘‘a’’.2 (‘‘POSIX’’) compatible. the –c and –s options were ignored unless two strings were specified. The tr utility has historically been extremely forgiving of syntax errors.TR ( 1 ) Property of Reference Manual BSD BladeLogic. The tr utility has historically not permitted the manipulation of NUL bytes in its input and. Inc. This implementation has removed this behavior as a bug. It should be noted that the feature wherein the last character of string2 is duplicated if string2 has less characters than string1 is permitted by POSIX but is not required. However. the characters ‘‘[’’ and ‘‘]’’ will be included in the deletion or compression list which would not have happened under an historic System V implementation. for example. Shpink October 27. stripped NUL’s from its input stream. if the shell script is deleting or squeezing characters as in the command ‘‘tr -d [a-z]’’. STANDARDS The tr utility is expected to be IEEE Std1003. ‘‘-’’ and ‘‘z’’ will have to be rewritten as ‘‘a\-z’’.

Print the processor type in more detail.2”). machine(1). Print the operating system version. uname(3) STANDARDS The uname utility conforms to IEEE Std 1003. Print the operating system name. If no options are specified. BSD January 26. Print the patch level. SEE ALSO hostname(1).2-1992 (“POSIX. Inc. Print the nodename (the nodename may be a name that the system is known by to a communications network). 1994 1 . Print the operating system release.UNAME (1) PropertyGeneral Commands Manual System of BladeLogic.4 BSD. The options are as follows: −a −m −n −p −r −s −l −v Behave as though all of the options −mnrsv were specified. uname prints the operating system name as if the −s option had been specified. Print the machine hardware name. HISTORY The uname command appeared in 4. Strictly confidential and proprietary UNAME (1) NAME uname − print operating system name SYNOPSIS uname [ −amnprsv] DESCRIPTION The uname utility writes symbols representing one or more system characteristics to the standard output.

Strictly confidential and proprietary uncp(1) NAME uncp − Uncopy files backed up during a cp or dsync SYNOPSIS uncp [-dnv] [-s suf] file1 . -v -s suf ORIGIN uncp was written by Thomas Kraus. uncp does not rename directories as it will automatically recursively travel through the directories passed to it as arguments. OPTIONS -d -n Instead of restoring the files to their previous names.uncp(1) Property of BladeLogic. The default suffix is ˜ (foo -> foo˜). it renames them (removes the suffix). Do not actually make any changes. dsync(1). uncp looks for the suffix ˜. When uncp finds files with the specified suffix. Set the suffix to suf. DESCRIPTION The cp and dsync commands have an option (-b or -B) that lets you back up the target file (if it exists) before the new source file is copied into its place. This option tells it to look for a different suffix. The uncp command is a mechanism to restore the saved files to their previous state by renaming them back to their original name (foo˜ -> foo). It does not rename any files. This is a useful option when you want to remove any files that the dsync or cp commands previously backed up.. Inc. By default. NSH 1 . The backup is done by renaming the target file with a suffix. This option automatically turns on the verbose flag -v and just lists the renames it would perform if you had not turned on the -n option. Output a message for each file being renamed. SEE ALSO cp(1). just delete the files..

e. the first chars characters after the first fields fields will be ignored. followed by a single space. A field is a string of non-blank characters separated from adjacent fields by blanks. i. −u Only output lines which are unique. The uniq utility is expected to be IEEE Std 1003. The second and succeeding copies of identical adjacent input lines are not written. If additional arguments are specified on the command line. Character numbers are one based.2 (“POSIX. the first field is field one. so it may be necessary to sort the files first. −s chars Ignore the first chars characters in each input line when doing comparisons. the first such argument is used as the name of an input file. SEE ALSO sort(1) STANDARDS The historic +number and −number options have been deprecated but are still supported in this implementation. Strictly confidential and proprietary UNIQ (1) NAME uniq − report or filter out repeated lines in a file SYNOPSIS uniq [ −c | −d | −u] [ −f fields] [ −s chars] [input_file [output_file]] DESCRIPTION The uniq utility reads the standard input comparing adjacent lines and writes a copy of each unique input line to the standard output. the second is used as the name of an output file. −f fields Ignore the first fields in each input line when doing comparisons. A file name of ‘-’ denotes the standard input or the standard output ( depending on its position on the command line ) . The options are as follows: −c −d Precede each output line with the count of the number of times the line occurred in the input.. the first character is character one.. Only output lines which have duplicates. 2002 1 . Inc. i. If specified in conjunction with the −f option. BSD December 8.UNIQ (1) PropertyGeneral Commands Manual System of BladeLogic. Repeated lines in the input will not be detected if they are not adjacent.e.2”) compatible. The uniq utility exits 0 on success or >0 if an error occurred. Field numbers are one based.

.old files in the directory /u1/data on host amsterdam. DESCRIPTION The unlink command is similar to the rm command. there are no diagnostic messages to be output except for network and licensing messages. Unable to get a license to use the software. ORIGIN unlink was written by Thomas Kraus SEE ALSO rm(1). To restrict its use to the super user. it unlinks the named files (which is the mechanism to remove files) regardless of the state of the files. Normally. OPTIONS -? file Output a brief summary of available options and then exit with a zero status without unlinking any files. because improper use may adversely affect the consistency of the file systems.bar The second example removes all . except that it does exactly what it is told to do. unlink always exits with 0. Inc. you should use the rm command. In other words. $ unlink foo. NOTES By default.. File to be unlinked EXAMPLE The first example unlinks the file foo.bar $ unlink //amsterdam/u1/data/*. We strongly suggest that you use the commands rm and rmdir instead of the unlink command. you should use it only in exceptional cases. change the ownership of the unlink file to root and the mode to 500.old DIAGNOSTICS Since unlink errors are ignored. any user can run the unlink command. without doing any type of error checking. Strictly confidential and proprietary unlink(1) NAME unlink − Unlink a file and/or directory SYNOPSIS unlink [-?] file . EXIT CODES 0 255 Besides license problems.unlink(1) Property of BladeLogic. CAVEATS Since unlink does not perform any error checking. NSH 1 .

(VMS versions compiled with VMSCLI defined must delimit files with commas instead.42) 1 . zip(1L). [ c h ] . . The default behavior (with no options) is to extract into the current directory (and subdirectories below it) all files from the specified ZIP archive. For example. e x e suffix (if any) explicitly. The option and directory may be concatenated without any white space between them. the –d option allows extraction in an arbitrary directory (always assuming one has permission to write to the directory). commonly found on MS-DOS systems. A companion program. a hyphen. Inc. Since wildcard characters match directory separators (‘/’). but ‘‘–d˜ ’’ is treated as a literal subdirectory ‘‘˜’’ of the current directory. anything except the characters inside the brackets is considered a match). each matching file is processed in an order determined by the operating system (or file system). the suffix . as with any other ZIP archive. ‘‘u n z i p f o o ∗. Only the filename can be a wildcard. separated by spaces. particularly under Unix and VMS. test and extract compressed files in a ZIP archive SYNOPSIS unzip [–Z] [–cflptuvz[abjnoqsCLMVX$/]] file[. the path itself cannot. . but none in any subdirectories. . but in many cases the program options or default behaviors differ. just specify the . Again. [–d exdir] An optional directory to which to extract files. test. This option need not appear at the end of the command line. or extract files from a ZIP archive. (Be sure to quote any character that might otherwise be interpreted or modified by the operating system.) If no matches are found.] [–x xfile(s) . If the file specification is a wildcard. immediately after the zipfile specification.x ∗/ ∗’’ would extract all C source files in the main directory. Info-ZIP Last change: 14 January 2001 (v5. By default. creates ZIP archives. both programs are compatible with archives created by PKWARE’s PKZIP and PKUNZIP for MS-DOS. Without the –x option. ranges are specified by a beginning character. the specification is assumed to be a literal filename. [file(s)] An optional list of archive members to be processed.] matches a sequence of 0 or more characters matches exactly 1 character matches any single character found inside the brackets. In particular.zip] [file(s) .zip] Path of the ZIP archive(s). it is also accepted before the zipfile specification (with the normal options). all files and subdirectories are recreated in the current directory. and if that also fails. but note that this may cause normal shell behavior to be suppressed. see above. Reference Manual Pages Property of BladeLogic. Strictly confidential and proprietary UNZIP ( 1L ) NAME unzip – list. Note that selfextracting ZIP files are supported. .Misc. be sure to quote expressions that would otherwise be expanded or modified by the operating system. . and an ending character. If an exclamation point or a caret (‘!’ or ‘∧ follows the left bracket. this option may be used to exclude any files that are in subdirectories. [–x xfile(s)] An optional list of archive members to be excluded from processing.] [–d exdir] DESCRIPTION unzip will list. or between the file(s) and the –x option. See –v in OPTIONS below.) Regular expressions (wildcards) may be used to match multiple members. ARGUMENTS file[. . ‘‘–d ˜ ’’ (tilde) is expanded by Unix C shells into the name of the user’s home directory. all C source files in all directories within the zipfile would be extracted. then the range of characters within the brackets is comple’) mented (that is. Wildcard expressions are similar to Unix egrep(1) (regular) expressions and may contain: ∗ ? [. z i p is appended.

extract files to stdout/screen (‘‘CRT’’). ‘‘unzip –T \∗. the TZ (timezone) environment variable must be set correctly in order for –f and –u to work properly (under Unix the variable is usually set automatically). unzip’s usage screen is limited to 22 or 23 lines and should therefore be considered only a reminder of the basic unzip syntax rather than an exhaustive list of all possible flags. The reasons for this are somewhat subtle but have to do with the differences between DOS-format file times (always local time) and Unix-format times (always in GMT/UTC) and the necessity to compare the two. This option extracts each specified file in memory and compares the CRC (cyclic redundancy check. extract only those files that already exist on disk and that are newer than the disk copies. compressed size. test archive files. This corresponds to zip’s –go option except that it can be used on wildcard zipfiles (e. The exhaustive list follows: –Z –A –c zipinfo(1L) mode. be verbose or print diagnostic version info. extract files to pipe (stdout). If UnZip was compiled with OS2_EAS defined. and in addition it extracts those files that do not already exist on disk. See the appropriate manual page for a description of these options. Inc. the old MS-DOS FAT file system) and the –L option was given.42) 2 . A typical TZ value is ‘‘PST8PDT’’ (US Pacific time with automatic adjustment for Daylight Savings Time or ‘‘summer time’’). compression ratio and 32-bit CRC. adding to the basic –l info the compression method.. As an option it has two purposes: when a zipfile is specified with no other options. the compiler and version used. If a file was archived from a single-case file system (for example. along with totals for all files specified. The names. the complete command is simply ‘‘unzip –v’’). In addition.. and ASCII-EBCDIC conversion is automatically performed if appropriate. any special compilation options that might affect the program’s operation (see also DECRYPTION below). just as they are stored (no conversions). [most OSes] set the timestamp on the archive(s) to that of the newest file in each one. –v lists archive files verbosely. the target operating system for which it was compiled. and any options stored in environment variables that might do the same (see ENVIRONMENT OPTIONS below). [OS/2. When no zipfile is specified (that is. This option has evolved and now behaves as both an option and a modifier.e. and the compilation date. This option is similar to the –p option except that the name of each file is printed as it is extracted. Strictly confidential and proprietary UNZIP ( 1L ) OPTIONS Note that. In addition to the normal header with release date and version. As a modifier it works in conjunction with other –f –l –p –t –T –u –v Info-ZIP Last change: 14 January 2001 (v5. i. the filename is converted to lowercase and is prefixed with a caret (∧ ). the –l option also lists columns for the sizes of stored OS/2 extended attributes (EAs) and OS/2 access control lists (ACLs). a diagnostic screen is printed. update existing files and create new ones if needed. This option performs the same function as the –f option. Unix DLL] print extended help for the DLL’s programming interface (API). See –f above for information on setting the timezone properly. the remaining options are taken to be zipinfo(1L) options. in order to support obsolescent hardware. uncompressed file sizes and modification dates and times of the specified files are printed. Note that under many operating systems. freshen existing files.zip’’) and is much faster.Misc. By default unzip queries before overwriting. list archive files (short format). Reference Manual Pages Property of BladeLogic. extracting (with query) files that are newer than those with the same name on disk. the zipfile comment and individual file comments (if any) are displayed.g. and the files are always extracted in binary format. but the –o option may be used to suppress the queries. unzip lists the home Info-ZIP ftp site and where to find a list of other ftp and non-ftp sites. If the first option on the command line is –Z. Nothing but the file data is sent to stdout. This option is not listed in the unzip usage screen. an enhanced checksum) of the expanded file with the original file’s stored CRC value. as well as (possibly) the hardware on which it was compiled. the –a option is allowed.

(When the stored filename appears to already have an appended NFS filetype extension. Inc. Reference Manual Pages Property of BladeLogic. all files are deposited in the extraction directory (by default. the –C option may be used to force all filename matches to be case-insensitive. unzip therefore prints ‘‘[text]’’ or ‘‘[binary]’’ as a visual check for each file it extracts when using the –a option. 512-byte record format. [general] treat all files as binary (no text conversions). That is. convert text files. some ‘‘text’’ files may actually be binary and vice versa. IBM mainframes and the Michigan Terminal System use EBCDIC rather than the more common ASCII character set. and NT supports Unicode. see the relevant options below). All Macintosh specific info is skipped. match filenames case-insensitively. which preserves mixed case but is not sensitive to it). [Acorn only] suppress removal of NFS filetype extension from stored filenames. Doubling the option (–bb) forces all files to be extracted in this format.g.Misc. rather than ‘b’) to be automatically extracted as such. see above)..) Note that zip’s identification of text files is by no means perfect. Instead. specifying ‘‘makefile’’ on the command line will only match ‘‘makefile’’ in the archive. [Tandem] force the creation files with filecode type 180 (’C’) when extracting Zip entries marked as "text". Because some file systems are fully case-sensitive (notably those under the Unix operating system) and because both ZIP archives and unzip itself are portable across platforms. this is not yet fully implemented but will be in future releases. end-of-file characters and the character set itself as necessary. Ordinarily all files are extracted exactly as they are stored (as ‘‘binary’’ files). and only if compiled with ACORN_FTYPE_NFS defined] translate filetype information from ACORN RISC OS extra field blocks into a NFS filetype extension and append it to the names of the extracted files. The –aa option forces all files to be extracted as text. regardless of the supposed file type. Strictly confidential and proprietary UNZIP ( 1L ) options (e. and only if compiled with UNIXBACKUP defined] save a backup copy of each overwritten file with a tilde appended (e. [Unix only. Since this does not correspond to the behavior of many other operating/file systems (for example. This is similar to the default behavior of emacs(1) in many locations. In addition. just the file’s data. Data-fork and resource-fork are restored as separate files.g.) [MacOS only] ignore filenames stored in MacOS extra fields.. and most PC operating systems use CR+LF for EOLs and control-Z for EOF. not ‘‘Makefile’’ or ‘‘MAKEFILE’’ (and similarly for wildcard specifications). The –C option affects files in both the normal file list and the excluded-file list (xlist). –z MODIFIERS display only the archive comment. unzip’s philosophy is ‘‘you get what you ask for’’ (this is also responsible for the –L/–U change. or similar). [BeOS only] junk file attributes. (On Tandem. it is replaced by the info from the extra field. –t) to produce more verbose or debugging output. Macintoshes use carriage returns (CRs) for EOLs. all three files would then match ‘‘makefile’’ (or ‘‘make∗’’. The –a option causes files identified by zip as text files (those with the ‘t’ label in zipinfo listings. The file’s BeOS file attributes are not restored. –a is enabled by default. OS/2 HPFS. unzip’s default behavior is to match both wildcard and literal filenames case-sensitively. [MacOS only] display contents of MacOS extra field during restore operation. the current one). [MacOS only] ignore MacOS extra fields.42) 3 . This is a shortcut for – – –a. the most compatible filename stored in the generic part of the entry’s header is used. –a –b –b –b –B –C –E –F –F –i –j –J –J Info-ZIP Last change: 14 January 2001 (v5. converting line endings. [Unix only. The archive’s directory structure is not recreated. junk paths. In the example above. the old copy of ‘‘foo’’ is renamed to ‘‘foo~’’). (For example. Unix files use line feeds (LFs) for end-of-line (EOL) and have no end-of-file (EOF) marker. [VMS] auto-convert binary files (see –a above) to fixed-length.

Ordinarily unzip prints the names of the files it’s extracting or testing. etc. pipe all output through an internal pager similar to the Unixmore(1) command. Conversion of spaces to underscores can eliminate the awkwardness in some cases. interactive prompt to enter passwords. Storing the plaintext password as part of a command line in an automated script is even worse.Misc. unzip doesn’t notice if long lines wrap at the edge of the screen. This is a dangerous option.ext. SF’’). any file or zipfile comments that may be stored in the archive. on some systems. Whenever possible. effectively resulting in the printing of two or more lines and the likelihood that some text will scroll off the top of the screen before being viewed.. File comments are created with the –c option of zip(1L). NT. (It is often used with –f. which stores filenotes as comments. Since all PC operating systems allow spaces in filenames. MS-DOS] convert spaces in filenames to underscores. ‘‘EA DATA. the Enter/Return key. use the non-echoing. Inc. skip extraction of the current file.) may be stored as all-uppercase names. which is now obsolete and will be removed in a future release.11. the extraction methods. conversion of unsupported characters. regardless of the originating file system. See –L above. and is the only way to overwrite directory EAs under OS/2. in which case unzip assumes the height is 24 lines.##. there is no forwardsearching or editing capability. unzip can be terminated by pressing the ‘‘q’’ key and. VMS.##’’ version numbers are stripped. If a file already exists. overwrite all files. On some systems the number of available lines on the screen is not detected. but this option allows them to be retained. skip the extraction of that file without prompting. retain (VMS) file version numbers. the user may choose to overwrite only the current file. however.) –q perform operations quietly (–qq = even quieter). etc. By default unzip lists and extracts such filenames exactly as they’re stored (excepting truncation. (And where security is truly important. even on stand-alone systems there is always the threat of over-the-shoulder peeking. files archived under single-case file systems (VMS. the version numbers may be truncated or stripped regardless of this option. or rename the current file. use strong encryption such as Pretty Good Privacy instead of the relatively weak encryption provided by standard zipfile utilities. (obsolete. overwrite existing files without prompting. By default unzip queries before extracting any file that already exists. the new default behavior is identical to the old behavior with the –U option. Strictly confidential and proprietary UNZIP ( 1L ) –L convert to lowercase any filename originating on an uppercase-only operating system or file system. THIS IS INSECURE! Many multiuser operating systems provide ways for any user to see the current command line of any other user. Also. [OS/2. since MS-DOS in particular does not gracefully support spaces in filenames. (This was unzip’s default behavior in releases prior to 5.) –s –U –V Info-ZIP Last change: 14 January 2001 (v5. or with the –N option of the Amiga port of zip(1L). in the format file.g. however. this option causes the names of all files from certain systems to be converted to lowercase. so use it with care. this can be ugly or inconvenient when extracting to a case-preserving file system such as OS/2 HPFS or a case-sensitive one such as under Unix. At the end of a screenful of output. skip extraction of all existing files. (On file systems that limit filenames to particularly short lengths.). This can be awkward. VMS files can be stored with a version number. unzip pauses with a ‘‘– –More– –’’ prompt. By default the ‘‘. etc.42) 4 . [Amiga] extract file comments as Amiga filenotes. never overwrite existing files. Reference Manual Pages Property of BladeLogic. The –q[q] options suppress the printing of some or all of these messages. Unlike Unix more(1).) –M –n –N –o –P password use password to decrypt encrypted zipfile entries (if any). the next screenful may be viewed by pressing the Enter (Return) key or the space bar. old MS-DOS FAT.) Depending on the archiver. to be removed in a future release) leave filenames uppercase if created under MS-DOS. The –LL option forces conversion of every filename to lowercase. and possibly a summary when finished with each archive. unzip by default extracts filenames with spaces intact (e.

in effect. to make unzip act as quietly as possible.0. make it quieter. but it is probably most useful with the –a. By default. Thus the effect here is to cancel one quantum of quietness.0). As suggested by the examples above. Warp Connect with IBM Peer 1.] [MS-DOS. two (or more) minuses may be used: unzip –t––q zipfile unzip –––qt zipfile (the two are equivalent). or access control lists (ACLs) under certain network-enabled versions of OS/2 (Warp Server with IBM LAN Server/Requester 3. or make it always overwrite or never overwrite files as it extracts them. ENVIRONMENT OPTIONS unzip’s default behavior may be modified via options placed in an environment variable. To cancel both quiet flags. NT] restore owner/protection info (UICs) under VMS. make it match names case-insensitively. To override an environment option. to override one of the quiet-flags in the example above. For example. –q. In most cases this will require special system privileges. OS/2. for example. unzip’s diagnostic option (–v with no zipfile name) can be used to check the values of all four possible unzip and zipinfo environment variables. or security ACLs under Windows NT. It is not clear under what conditions this would ever be useful anyway. use the command unzip ––q[other options] zipfile The first hyphen is the normal switch character. During extraction. as long as the user IDs match his or her own. Note that ordinary file attributes are always restored--this option applies only to optional. one would use one of the following commands: UNZIP=–qq. only reporting errors. For instance. so no attempt is made at cross-platform portability of access privileges.42) 5 . or –n modifiers: make unzip auto-convert text files by default. and UNZIP for all other operating systems. export UNZIP setenv UNZIP –qq set UNZIP=–qq define UNZIP_OPTS "–qq" Unix Bourne shell Unix C shell OS/2 or MS-DOS VMS (quotes for lowercase) Environment options are. but it is reasonably intuitive: just ignore the first hyphen and go from there. one may use the ‘‘minus operator’’ to remove it. Unix.0 to 5. considered to be just like any other command-line options. volume labels are ignored. Reference Manual Pages Property of BladeLogic. except that they are effectively the first options on the command line. UNZIPOPT is also accepted (don’t ask). filename extensions that match one of the items in this extension list are swapped in front of the base name of the extracted file. UNZIP takes precedence. however. Info-ZIP Last change: 14 January 2001 (v5. and the second is a minus sign. [NT’s access control lists do not appear to be especially compatible with OS/2’s.. NT] restore the volume label if the extraction medium is removable (e. and doubling the option (–XX) under NT instructs unzip to use privileges for extraction. make it convert filenames from uppercase systems to lowercase.Misc. a user who belongs to several groups can restore files owned by any of those groups. a diskette). –L. acting on the q option. or user and group info (UID/GID) under Unix. This may seem awkward or confusing.g. –C. the default variable names are UNZIP_OPTS for VMS (where the symbol used to install unzip as a foreign command would otherwise be confused with the environment variable). For compatibility with zip(1L). Strictly confidential and proprietary UNZIP ( 1L ) –X [VMS. This can be done with any option. It is also consistent with the behavior of Unix nice(1). but under Unix. OS/2. –$ –/ extensions [Acorn only] overrides the extension list supplied by Unzip$Ext environment variable. Inc. extra ownership info available on some operating systems. If both UNZIP and UNZIPOPT are defined. Doubling the option (–$$) allows fixed media (hard disks) to be labelled as well. –o.

UnZip 5. However. If the first password fails the header check on some file. if both of these fail. The preferred decryption method is simply to extract normally. and so on until all files are extracted.. Inc. so unzip checks each encrypted file to see if the null password works. entering a null password (that is. but there is a 1-in-256 chance that an incorrect password will as well. OS/2 and Win3. In case you need binary distributions with crypt support enabled.) ISO character encodings other than Latin-1 are not supported. either attempt to test or extract an encrypted archive. or else check unzip’s diagnostic screen (see the –v option above) for ‘‘[decryption]’’ as one of the special compilation options.Misc.3 attempts to use the default character set first (e. (Since there are no known archivers that encrypt using EBCDIC encoding. including Latin-1 (ISO 8859-1) and OEM code page 850. Only unencrypted files in the archive(s) will thereafter be extracted.04g uses the OEM code page. unzip continues to use the same password as long as it appears to be valid. (This is a security feature of the PKWARE zipfile format. as noted above. This problem stems from the use of multiple encoding methods for such characters.. just a carriage return or ‘‘Enter’’) is taken as a signal to skip all further prompting. See the description of –f above for details. that’s not quite true. followed by the alternate one (e. This variable may also be necessary in order for timestamps on extracted files to be set correctly. older versions of zip(1L) and zipcloak(1L) allowed null passwords. unzip will prompt for another password. creating any subdirectories as necessary: unzip letters To extract all members of letters. Latin-1). OEM code page) to test passwords. but at a cost in security. Reference Manual Pages Property of BladeLogic.x ports but Latin-1 everywhere else. Under Windows 95/NT unzip should know the correct timezone even if TZ is unset. passwords with accented European characters) may not be portable across systems and/or other archivers. unzip will prompt for the password without echoing what is typed.50 uses Latin-1 (and is therefore incompatible with DOS PKZIP). EBCDIC encoding will be tested as a last resort. it helps prevent brute-force attacks that might otherwise gain a large speed advantage by testing only the header. Windows PKZIP 2. and our source archives do now include full crypt code. On EBCDIC systems. see the file ‘‘WHERE’’ in any Info-ZIP source or binary distribution for locations both inside and outside the US. since spring 2000. The correct password will always check out against the header. Some compiled versions of unzip may not support decryption.g.x does not allow 8-bit passwords at all. Info-ZIP uses the OEM code page on DOS. US export restrictions have been liberated.42) 6 . by testing a 12-byte header on each file. To check a version for crypt support. If a password is not known.) In the case that an incorrect password is given but it passes the header test anyway. the –P option may be used to supply a password on the command line. printing only a summary message indicating whether the archive is OK or not: unzip -tq letters Info-ZIP Last change: 14 January 2001 (v5. As noted above. de-/encryption support might be disabled in your compiled binary. EBCDIC is not tested on non-EBCDIC systems. DECRYPTION Encrypted archives are fully supported by Info-ZIP software. assuming the timezone is correctly set in the Control Panel.zip into the current directory and subdirectories below it. DOS PKZIP 2.) Archives encrypted with 8-bit passwords (for example.g.zip into the current directory only: unzip -j letters To test letters. Strictly confidential and proprietary UNZIP ( 1L ) The timezone variable (TZ) should be set according to the local timezone in order for the –f and –u to operate correctly. either an incorrect CRC will be generated for the extracted data or else unzip will fail during the extraction because the ‘‘decrypted’’ bytes do not constitute a valid compressed data stream. EXAMPLES To use unzip to extract all members of the archive letters. but due to United States export restrictions. if a zipfile member is encrypted. and Nico Mak’s WinZip 6. This may result in ‘‘false positives’’ and extraction errors.zip. (In fact.

42) 7 . With luck unzip will report ‘‘No errors Info-ZIP Last change: 14 January 2001 (v5.[fch]" makefile -d /tmp To extract any such files but convert any uppercase MS-DOS or VMS names to lowercase and convert the line-endings of all of the files to the local standard (without respect to any files that might be marked ‘‘binary’’): unzip –aaCL source.Misc. double quotes could have been used instead.zip whose names end in .c. ∗.: unzip –v In the last five examples. MAKEFILE or similar): unzip –C source.dvi to standard output and pipe it to a printing program: unzip –p articles paper1. To do a singly quiet listing: unzip –l file.h. the compiler with which unzip was compiled.zip "∗.zip or unzip –l–q file. regardless of case (e.dvi | dvips To extract all FORTRAN and C source files--∗.g. and a ‘‘newer’’ file from an eastern timezone may. without querying (NOTE: be careful of unzipping in one timezone a zipfile created in another--ZIP archives other than those created by Zip 2.zip TIPS (extra minuses don’t hurt) The current maintainer. Reference Manual Pages Property of BladeLogic.f.1 or later contain no timezone information.tex. Strictly confidential and proprietary UNZIP ( 1L ) To test all zipfiles in the current directory.zip To do a doubly quiet listing: unzip –ql file.zip or unzip –l––q file.zip "∗.) To do a standard listing: unzip ––ql file.c and ∗.zip’’ is generally not necessary. Makefile. as in the source examples below.[fch]" Makefile -d /tmp (the double quotes are necessary only in Unix and only if globbing is turned on). finds it very useful to define a pair of aliases: tt for ‘‘unzip –tq’’ and ii for ‘‘unzip –Z’’ (or ‘‘zipinfo’’). auto-converting to the local end-of-line convention and piping the output into more(1): unzip –ca letters \∗. and Makefile--into the /tmp directory: unzip source. One may then simply type ‘‘tt zipfile’’ to test an archive. To extract all FORTRAN and C source files.zip "∗.C. as in Unix. assume that UNZIP or UNZIP_OPTS is set to -q. being a lazy sort. Inc.zip (The backslash before the asterisk is only required if the shell expands wildcards.[fch]" makefile -d /tmp To extract only newer versions of the files already in the current directory. ∗.tex | more To extract the binary file paper1. in fact. be older): unzip –fo sources To extract newer versions of the files already in the current directory and to create any files not already there (same caveat as previous example): unzip –uo sources To display a diagnostic screen showing which unzip and zipinfo options are stored in environment variables.zip (Note that the ‘‘. and any makefile.) To extract to standard output all members of letters. something that is worth making a habit of doing.. etc. whether decryption support was compiled in. both ∗. printing only the summaries: unzip -tq \∗.

Processing probably failed immediately. The current mapping is as follows: 1 (success) for normal exit. the exit status is 1. no matching files were found. the end of the ZIP archive was encountered prematurely. a severe error in the zipfile format was detected.Misc. and 4 (fatal error) for the remaining ones (3-8. [currently not used] the specified zipfiles were not found. the user aborted unzip prematurely with control-C (or similar) testing or extraction of one or more files failed due to unsupported compression methods or unsupported decryption. 0x7fff0001 for warning errors. unzip was unable to allocate memory for one or more buffers during program initialization. 51). scarier-looking things. unzip was unable to allocate memory during decompression to disk. Inc. (If even one file is successfully processed. except with funzip (and then only the first member of the archive can be extracted). The maintainer also finds it useful to set the UNZIP environment variable to ‘‘–aL’’ and is tempted to add ‘‘–C’’ as well. where the ‘?’ is 2 (error) for unzip values 2. unzip was unable to allocate memory or unable to obtain a tty to read the decryption password(s). unzip was unable to allocate memory during in-memory decompression. no errors or warnings detected.zip. 50. some broken zipfiles created by other archivers have simple workarounds. Archives read from standard input are not yet supported.) This will definitely be corrected in the next major release. there is a compilation option to expand upon this behavior: defining RETURN_CODES results in a human-readable explanation of what the error status means.42) 8 . except in conjunction with zip. 9-11 and 80-82. a generic error in the zipfile format was detected. so unzip instead maps them into VMS-style status codes. invalid options were specified on the command line. BUGS Multi-part archives are not yet supported. Reference Manual Pages Property of BladeLogic. however.) 2 3 4 5 6 7 8 9 10 11 50 51 80 81 82 VMS interprets standard Unix (or PC) return values as other. (All parts must be concatenated together in order. Strictly confidential and proprietary UNZIP ( 1L ) detected in compressed data of zipfile. and then ‘‘zip –F’’ must be performed on the concatenated archive in order to ‘‘fix’’ it.’’ after which one may breathe a sigh of relief. except under VMS: 0 1 normal. This includes zipfiles where one or more files was skipped due to unsupported compression method or encryption with an unknown password. Processing may have completed successfully anyway. but processing completed successfully anyway. Info-ZIP Last change: 14 January 2001 (v5. DIAGNOSTICS The exit status (or error level) approximates the exit codes defined by PKWARE and takes on the following values. the disk is (or was) full during extraction. one or more warning errors were encountered. His ZIPINFO variable is set to ‘‘–z’’. no files were found due to bad decryption password(s). In addition. and (0x7fff000? + 16∗normal_unzip_exit_status) for all other errors.

zipcloak(1L). please refer to the CONTRIBS file in the UnZip source distribution for a relatively complete version. This is a limitation of the operating system. the old version is not overwritten or deleted. zipgrep(1L). SEE ALSO funzip(1L). Info-ZIP Last change: 14 January 2001 (v5. block devices and character devices are not restored even if they are somehow represented in the zipfile. and Dave Smith (Tandem NSK).g. unzip’s –M (‘‘more’’) option is overly simplistic in its handling of screen output. unzip should detect and treat each occurrence of line-wrap as one additional line printed. Mike White (Windows GUI. directories and symbolic (soft) links. This requires knowledge of the screen’s width as well as its height. Amiga). Since Ultrix has been abandoned in favor of Digital Unix (OSF/1).g. Onno van der Linden (Zip). if the ‘‘Fail’’ option is chosen from DOS’s ‘‘Abort. NT). [VMS] When the file being extracted already exists. Jean-loup Gailly (compression). shared code. In fact. fUnZip). it fails to detect the wrapping of long lines and may thereby cause lines at the top of the screen to be scrolled off before being read. QNX. Kai Uwe Rommel (OS/2). Carl Mascott did the first Unix port. Inc.42) 9 . Reference Manual Pages Property of BladeLogic. then overwrite just the directory entries (e. older versions of unzip may hang the system. In addition. overwriting or renaming.org/pub/infozip/ or ftp://ftp. Mark Adler (decompression. MS-DOS. VMS. unzip would sometimes fail on long zipfiles (bad CRC. The full list of contributors to UnZip has grown quite large. This problem appears to be fixed. Johnny Lee (MS-DOS. only the [. this may not be an issue anymore. Windows 95). Harald Denker (Atari. nor are hard-linked files relinked. NT.info-zip.dir syntax). Strictly confidential and proprietary UNZIP ( 1L ) Archives encrypted with 8-bit passwords (e.info-zip. unzip should detect the true screen geometry on all systems. Steve Miller (Windows CE GUI). unzip’s query only allows skipping. unzip has no way to determine whether the stored attributes are newer or older than those on disk.. Kirschbaum organized and led Info-ZIP in its early days with Keith Petersen hosting the original mailing list at WSMR-SimTel20. MVS). [Unix] Unix special files such as FIFO buffers (named pipes). general Zip and UnZip integration and optimization).org/pub/infozip/ . Sergio Monesi (Acorn RISC OS). This was apparently due either to a hardware bug (cache memory) or an operating system bug (improper handling of page faults?). not always reproducible). Steve Salisbury (Windows 95. Windows DLLs). Under DEC Ultrix. [OS/2] Extended attributes for existing directories are only updated if the –o (‘‘overwrite all’’) option is given. Chris Herborth (BeOS. zipsplit(1L) URL The Info-ZIP home page is currently at http://www. AUTHORS The primary Info-ZIP authors (current semi-active members of the Zip-Bugs workgroup) are: Greg ‘‘Cave Newt’’ Roelofs (UnZip). In practice this may mean a two-pass approach is required: first unpack the archive normally (with or without freshening/updating existing files).. Christian Spieler (UnZip maintance coordination. Hunter Goatley (VMS). the simple Unix foo syntax is silently ignored (as is the less common VMS foo. zipinfo(1L).Misc. Paul Kienitz (Amiga. [MS-DOS] When extracting or testing files from an archive on a defective floppy diskette. Dates. Fail?’’ message. NT). but control-C (or control-Break) can still be used to terminate unzip. Basically the only file types restored by unzip are regular files. there should additionally be a choice for creating a new version of the file. Retry. zipnote(1L). the ‘‘overwrite’’ choice does create a new version. passwords with accented European characters) may not be portable across systems and/or other archivers. Windows 95. zip(1L). John Bush (Solaris. and David P. because directories only have a creation time associated with them. as noted above. The author of the original unzip code upon which Info-ZIP’s was based is Samuel H. [VMS] When extracting to another directory. ‘‘unzip -o foo ∗/’’).foo] syntax is accepted for the –d option. Windows 95. Smith. requiring a reboot. Jonathan Hudson (SMS/QDOS). See the discussion in DECRYPTION above. Atari). times and permissions of stored directories are not restored except under Unix.

Reference Manual Pages Property of BladeLogic. Smith Samuel H.4 v5.0 v3.1 v4. GRR) Info-ZIP (Zip-Bugs subgroup.2 v5. GRR) Info-ZIP (Zip-Bugs subgroup.0 v4. consolidator) Info-ZIP (GRR. GRR) Info-ZIP (Zip-Bugs subgroup. SPC) Info-ZIP (Zip-Bugs subgroup.x v3.31 v5. GRR) Info-ZIP (Zip-Bugs subgroup.0 v5. GRR) Info-ZIP (Zip-Bugs subgroup.12 v5.0 v2.42) 10 . Inc.32 v5. GRR) Info-ZIP (Zip-Bugs subgroup.1 v5.3 v5. GRR) Info-ZIP (Zip-Bugs subgroup.Misc. Strictly confidential and proprietary UNZIP ( 1L ) VERSIONS v1.11 v5. GRR) Info-ZIP (Zip-Bugs subgroup. GRR) Info-ZIP (Zip-Bugs subgroup. consolidator) Info-ZIP (DPK. SPC) Info-ZIP (Zip-Bugs subgroup.2 v5. SPC) Info-ZIP Last change: 14 January 2001 (v5.01 v5.41 v5.1 v4.42 15 Mar 89 9 Sep 89 fall 1989 1 May 90 15 Aug 90 1 Dec 90 12 May 91 20 Mar 92 21 Aug 92 15 Jan 93 7 Feb 94 2 Aug 94 28 Aug 94 30 Apr 96 22 Apr 97 31 May 97 3 Nov 97 28 Nov 98 16 Apr 00 14 Jan 01 Samuel H. Smith many Usenet contributors Info-ZIP (DPK. maintainer) Info-ZIP Info-ZIP (Zip-Bugs subgroup.2 v2. GRR) Info-ZIP (Zip-Bugs subgroup.

but none in any subdirectories.Misc. For example. Since wildcard characters match directory separators (‘/’). [–x xfile(s) . Instead of taking its first non-flag argument to be the zipfile(s) to be extracted.) [–x xfile(s)] An optional list of archive members to be excluded from processing. Decryption is supported as a compile-time option but should be avoided unless the attached archive contains encrypted files. ARGUMENTS [file(s)] An optional list of archive members to be processed. In particular. unzipsfx seeks itself under the name by which it was invoked and tests or extracts the contents of the appended archive. the internal directory structure is not updated to reflect the extra bytes prepended to the original zipfile.]] DESCRIPTION unzipsfx is a modified version of unzip(1L) designed to be prepended to existing ZIP archives in order to form self-extracting archives. If an exclamation point or a caret (‘!’ or ‘∧ follows the left bracket. particularly under Unix and VMS.] matches a sequence of 0 or more characters matches exactly 1 character matches any single character found inside the brackets. the following option is also enabled: [–d exdir] An optional directory to which to extract files. . Strictly confidential and proprietary UNZIPSFX ( 1L ) NAME unzipsfx – self-extracting stub for prepending to ZIP archives SYNOPSIS <name of unzipsfx+archive combo> [–cfptuz[ajnoqsCLV$]] [file(s) . the self-extracting archive is technically not a valid ZIP archive. ranges are specified by a beginning character. anything except the characters inside the brackets is considered a match). . then the range of characters within the brackets is comple’) mented (that is. If unzipsfx is compiled with SFX_EXDIR defined. will only self-extract under the same flavor of Unix.42) 1 . Inc. . Without the –x option. [ c h ] . this option may be used to exclude any files that are in subdirectories. and the ability to extract to a directory other than the current one. the ability to decompress older compression formats (the ‘‘reduce. Regular unzip may still be used to extract the embedded archive as with any normal zipfile. but ‘‘–d˜ ’’ is treated as a literal subdirectory ‘‘˜’’ of the current directory. however. although it will generate a harmless warning about extra bytes at the beginning of the zipfile. for example. but note that this may cause normal shell behavior to be suppressed. all files and subdirectories are recreated in the current directory. . Info-ZIP Last change: 14 January 2001 (v5.x ∗/ ∗’’ would extract all C source files in the main directory. all C source files in all directories within the zipfile would be extracted. By default. the listing and diagnostic functions (–l and –v). These wildcards may contain: ∗ ? [. ‘‘f o o s f x ∗. In general a self-extracting archive made on a particular Unix system. a number of the less-vital capabilities in regular unzip have been removed. (Be sure to quote any character that might otherwise be interpreted or modified by the operating system. ‘‘–d ˜ ’’ (tilde) is expanded by Unix C shells into the name of the user’s home directory. Regular expressions (wildcards) similar to those in Unix egrep(1) may be used to match multiple members. Note that self-extracting archives made with unzipsfx are no more (or less) portable across different operating systems than is the unzip executable itself. and an ending character. and PKUNZIP may be unable to test or extract it. a hyphen. Reference Manual Pages Property of BladeLogic. Because the executable stub adds bulk to the archive (the whole purpose of which is to be as small as possible). .’’ ‘‘shrink’’ and ‘‘implode’’ methods). The option and directory may be concatenated without any white space between them. Among these are the usage (or help) screen. This limitation is due to the simplistic manner in which the archive is created. Despite this. . the –d option allows extraction in an arbitrary directory (always assuming one has permission to write to the directory).

See unzip(1L) for details. plus the following operating-system specific options: –X (restore VMS owner/protection info). those creating self-extracting archives may wish to include a short listing in the zipfile comment.exe Under VMS: copy unzipsfx. NT. –L (convert uppercase-OS names to lowercase). although this is likely to be an issue only for the person creating and testing the self-extracting archive.zip > letters chmod 755 letters zip -A letters To create the same archive under MS-DOS. since it is simple enough for the archive’s creator to ensure that text files have the appropriate format for the local OS. The second command installs the new program as a ‘‘foreign command’’ capable of taking arguments.exe" zip -A letters.zip letters. Amiga]). See unzip(1L) for details. –t (test archive) and –z (print archive comment).exe. DECRYPTION Decryption is supported exactly as in unzip(1L).exe zip -A letters. –C (match names case-insenstively). Once again.42) 2 .) To test (or list) the newly created self-extracting archive: Info-ZIP Last change: 14 January 2001 (v5. The third line assumes that Zip is already installed as a foreign command. Inc. EBCDIC conversion will of course continue to be supported since the zipfile format implies ASCII storage of text files. –j (junk paths) and –V (retain version numbers). OS/2 or NT (note the use of the /b [binary] option to the copy command): copy /b unzipsfx. –v and –Z) have been removed. (Support for regular ASCII text-conversion may be removed in future versions.exe (The VMS append command may also be used. Alternatively.exe letters == "$currentdisk:[currentdir]letters. –f and –u (freshen and update existing files upon extraction). Strictly confidential and proprietary UNZIPSFX ( 1L ) OPTIONS unzipsfx supports the following unzip(1L) options: –c and –p (extract to standard output/screen).zip letters. –n (never overwrite). NT]) and –$ (restore volume label [DOS. interactively with a non-echoing prompt for the password(s). OS/2. OS/2. EXAMPLES To create a self-extracting archive letters from a regular zipfile letters.zip UnZipSFX (MakeSFX is included with the UnZip source distribution and with Amiga binary distributions. ‘‘zip -A’’ doesn’t work on Amiga self-extracting archives.) See unzip(1L) for a more complete description of these modifiers. but the testing option (–t) may be used as a ‘‘poor man’s’’ listing. ENVIRONMENT OPTIONS unzipsfx uses the same environment variables as unzip(1L) does.) Under AmigaDOS: MakeSFX letters letters. –q (operate quietly). that is.exe+letters. note that if the archive has no encrypted files there is no reason to use a version of unzipsfx with decryption support. MODIFIERS unzipsfx currently supports all unzip(1L) modifiers: –a (convert text files). –s (convert spaces in filenames to underscores [DOS. All normal listing options (–l.zip and change the new archive’s permissions to be world-executable under Unix: cat unzipsfx letters. Reference Manual Pages Property of BladeLogic. that only adds to the size of the archive. See unzip(1L) for a more complete description of these options.Misc.letters. –o (overwrite without prompting).

unzipsfx will print a warning to the effect. ‘‘run letters’’ (to continue the examples given above).’’) There may be compatibility problems between the ROM levels of older Amigas and newer ones. e. however. Reference Manual Pages Property of BladeLogic. simple concatenation does not work. and therefore neither are the resulting archives. For some architectures there is limited portability.txt To extract everything except the ∗. If a user attempts to extract the archive from a directory in the PATH other than the current one. etc. Strictly confidential and proprietary UNZIPSFX ( 1L ) letters –t To test letters quietly. are also known to prepend junk.txt files (in Unix quote the ‘∗’): letters ∗. the attached archive is defined as a ‘‘debug hunk.’’ This is always true under Unix and may be true in some cases under MS-DOS. unzipsfx has no knowledge of the user’s PATH. All current bugs in unzip(1L) exist in unzipsfx as well. however (e. only stored and deflated files are supported. but the command to do so then becomes. depending on the compiler used (Microsoft C fully qualifies the program name. (For technically oriented users. in order to create working selfextracting archives. VMS users must know how to set up self-extracting archives as foreign commands in order to use any of unzipsfx’s options. unzip(1) takes note of the prepended bytes and ignores them since some file-transfer protocols.. Inc. listing functions and extraction to other directories. MakeSFX. printing only a summary message indicating whether the archive is OK or not: letters –tqq To extract the complete contents into the current directory. Also. recreating all files and subdirectories as necessary: letters To extract all ∗.txt files: letters -x ∗. Atari TOS. This is not necessary for simple extraction. But PKWARE’s archiver suite may not be able to deal with the modified archive unless its offsets have been adjusted. DIAGNOSTICS unzipsfx’s exit status (error level) is identical to that of unzip(1L). as noted above).g. MacOS.txt To extract only the README file to standard output (the screen): letters -c README To print only the zipfile comment: letters –z LIMITATIONS The principle and fundamental limitation of unzipsfx is that it is not portable across architectures or operating systems. As noted above.. or else a full or relative path must be given.Misc. Under OS/2 and NT there are operating-system calls available that provide the full path name.g. but other compilers may not). see the corresponding man page. Another problem with the current implementation is that any archive with ‘‘junk’’ prepended to the beginning technically is no longer a zipfile (unless zip(1) is used to adjust the zipfile offsets appropriately. Info-ZIP Last change: 14 January 2001 (v5. The situation is not known for AmigaDOS.42) 3 . notably MacBinary. The latter limitation is mainly relevant to those who create SFX archives. so the archive may be invoked from anywhere in the user’s path. ‘‘can’t find myself. between some flavors of Intel-based Unix). so in general an archive must either be in the current directory when it is invoked. a number of the normal unzip(1L) functions have been removed in order to make unzipsfx smaller: usage and diagnostic info. unzipsfx on the Amiga requires the use of a special program.

info-zip. zipnote(1L).info-zip. See unzip(1L) for the current list of Zip-Bugs authors.org/pub/infozip/ . Strictly confidential and proprietary UNZIPSFX ( 1L ) SEE ALSO funzip(1L). Inc. zipsplit(1L) URL The Info-ZIP home page is currently at http://www. unzip(1L). Reference Manual Pages Property of BladeLogic. zip(1L). zipinfo(1L). or the file CONTRIBS in the UnZip source distribution for the full list of Info-ZIP contributors. zipcloak(1L).Misc. zipgrep(1L).org/pub/infozip/ or ftp://ftp. Info-ZIP Last change: 14 January 2001 (v5. AUTHORS Greg Roelofs was responsible for the basic modifications to UnZip necessary to create UnZipSFX.42) 4 .

followed by encoded characters. and represents an integer. look like a header. the standard input) into the original form.. Inc. NSH 1 . The header line is distinguished by having the first 6 characters ‘‘begin ’’ (note the trailing space). and a trailer line.src_tree | compress | uuencode src_tree. When uudecode is run on the target system. compresses it.tar.] DESCRIPTION Uuencode and uudecode are used to transmit binary files over transmission mediums that do not support other than simple ASCII data. Groups of 3 bytes are stored in 4 characters. The encoding uses only printing ASCII characters and includes the mode of the file and the operand name for use by uudecode. Uudecode transforms uuencoded files (or by default.Z | mail jsmith FILE FORMAT Files output by uuencode(1) consist of a header line.tar.. Uudecode ignores any leading and trailing lines. All are offset by a space to make the characters printing. Please see the intro section for complete acknowledgements. The word begin is followed by a mode (in octal). The resulting file is named name and will have the mode of the original file except that setuid and execute bits are not retained. uudecode . The character count is a single printing character. A space separates the three items in the header line. Such integers are always in the range from 0 to 63 and can be determined by subtracting the character space (octal 40) from the character.encode/decode a binary file SYNOPSIS uuencode [file] name uudecode [file . of course. the number of bytes the rest of the line represents. This line consists of one ASCII space. followed by a number of body lines. These consist of a character count. The trailer line consists of ‘‘end’’ on a line by itself. ORIGIN Uuencode and uudecode include software developed by the University of California. Uuencode reads file (or by default the standard input) and writes an encoded version to the standard output. OPTIONS There are no options for any of these commands. uuencodes it and mails it to a user. 6 bits per character. If the size is not a multiple of 3. Lines preceding a header must not. EXAMPLES The following example packages up a source tree. the file ‘‘src_tree.Z’’ will be created which may then be uncompressed and extracted into the original tree.uuencode(1) Property of BladeLogic. The last line may be shorter than the normal 45 bytes. The uudecode(1) command will ignore any lines preceding the header or following the trailer. CAVEATS The encoded form of the file is expanded by 35% (3 bytes become 4 plus control information). The body is terminated by a line with a count of zero. followed by a newline. and a string which names the remote file. The body consists of a number of lines. Strictly confidential and proprietary uuencode(1) NAME uuencode. Berkeley and its contributors. each at most 62 characters long (including the trailing newline). Extra garbage will be included to make the character count a multiple of 4. tar cf . this fact can be determined by the value of the count on the last line.

compress(1) NSH 2 . Inc.uuencode(1) Property of BladeLogic. uudecode (1). Strictly confidential and proprietary uuencode(1) SEE ALSO uuencode(1).

BladeLogic Network Shell 4.version(1) Property of BladeLogic.5.494 [Oct 20 2002 16:41:59] Copyright (C) 1996 . Strictly confidential and proprietary version(1) NAME version − Output version information about BladeLogic software SYNOPSIS version DESCRIPTION The version command outputs release information about the BladeLogic software that it detects as being installed on the local server. NSH 1 .2002 BladeLogic Inc.0.2002 BladeLogic Inc. ORIGIN version was written by Thomas Kraus. Inc.0.494 [Oct 20 2002 16:41:59] Copyright (C) 1996 . Sample output is: BladeLogic RSCD Agent 4.5. SEE ALSO agentinfo(1).

. and no startup files or environment variables are read. informative messages and other user oriented messages are turned off.2 interface for the historic “+cmd” syntax. and you absolutely have to get work done immediately. disallowing all access to external programs. . and it is possible to switch back and forth during an edit session.2 interface for the historic “-” argument. Run with the secure edit option set. . or the readonly option was set. ex will read commands from it regardless. as if the command name was vi. Inc. vi. Start editing at the specified tag (see ctags(1)). Strictly confidential and proprietary VI (1) NAME ex. Prompts. If you’re in an unfamiliar environment. −e −F −R −r −S −s −t tag −v −w size Set the initial window size to the specified number of lines.] DESCRIPTION ex is a line-oriented text editor. if no files are specified. BSD October 10. vi is a screen-oriented text editor. Start editing in ex mode.] view [ −eFrS] [ −c cmd] [ −t tag] [ −w size] [file . (The default is to make a copy in case someone else modifies the file during your edit session.VI (1) PropertyGeneral Commands Manual System of BladeLogic. See the SEE ALSO section below for a list of additional materials. view is the equivalent of using the −R ( read-only ) option of vi. Enter batch mode. as if the command name were ex. This is the POSIX 1003. 1996 1 . as if the command name was view. This manual page is the one provided with the nex/nvi versions of the ex/vi text editors. read the section after the options description. . In the vi interface. In the ex interface. nex/nvi supports both the old and new syntax. Particularly useful for initial positioning in the file. nex/nvi supports both the old and new syntax. . view − text editor SYNOPSIS ex [ −FRrSsv] [ −c cmd] [ −t tag] [ −w size] [file . the session will be a batch mode session. or. it is an error if standard input is not a terminal. ex and vi are different interfaces to the same program. entitled FAST STARTUP. however. This is the POSIX 1003. applicable only to ex edit sessions. The following options are available: −c cmd Execute cmd on the first file loaded. nex/nvi is used only when it’s necessary to distinguish it from the historic implementations of ex/vi. Recover the specified files. If no recoverable files by the specified name exist. if standard input is not a terminal. Command input for ex/vi is read from the standard input. It’s probably enough to get you going. .] vi [ −eFRrS] [ −c cmd] [ −t tag] [ −w size] [file . exactly as if the −s option had been specified. nex/nvi are intended as bug-for-bug compatible replacements for the original Fourth Berkeley Software Distribution ( 4BSD ) ex and vi programs. For the rest of this manual page. Anyone else should almost certainly read a good tutorial on the editor before this manual page.) Start editing in read-only mode. This manual page is intended for users already familiar with ex/vi. Don’t copy the entire file when first starting to edit. although cmd is not limited to positioning commands. the file is edited as if the −r option had not been specified. Batch mode is useful when running ex scripts. list the files that could be recovered. Start editing in vi mode.

and you have to be in the right mode to do one or the other. To start editing a file. and move the cursor to its first character. i. 〈escape〉 means the “escape” key. Append new text.e. FAST STARTUP This section will tell you the minimum amount that you need to do simple editing tasks using vi. or greater than 0 if an error occurs. e. It will also display error messages. If you’re ever confused as to which mode you’re in. You will be in command mode when you first start editing a file. Move the cursor up one line. vi will beep at you if you try and do something that’s not allowed. Move the cursor right one character. i. Key names are written using less-than and greater-than signs. usually labeled “Esc” on your terminal’s keyboard. This means that it takes up almost the entire screen. Once you’ve entered input mode using one of the a. Insert new text. The other fact that you need to understand is that vi is a modeful editor. and for vi to give information to you. 〈cursor-arrows〉 The cursor arrow keys should work. before the cursor. The last line of the screen is used for you to give commands to vi. vi is a screen editor. displaying part of the file on each screen line. The commands to move around the file are: h j k l Move the cursor left one character. Inc.VI (1) PropertyGeneral Commands Manual System of BladeLogic. keep entering the 〈escape〉 key until vi beeps at you. enter the following command: $ vi file The command you should enter as soon as you start editing is: :set verbose showmode This will make the editor give you verbose error messages and display the current mode at the bottom of the screen. Open a new line above the line the cursor is on. and that is the 〈escape〉 key. too. use 〈escape〉 to quit entering text and return to command mode. and start entering text.g. you’re likely to have problems even with this simple introduction. Generally. 1996 2 . The commands to enter new text are: The commands to copy text are: BSD October 10. There is only one key that takes you out of input mode. Strictly confidential and proprietary VI (1) ex/vi exits 0 on success. /text a i O o 〈escape〉 Search for the string “text” in the file. There are commands that switch you into input mode. after the cursor. except for the last line of the screen. you are either entering text or you are executing commands. O or o commands. If you’ve never used any screen editor before. In that case you should find someone that already knows vi and have them walk you through this section. and start entering text. Open a new line below the line the cursor is on. Move the cursor down one line.

discarding any modifications that you may have made. 〈control-A〉 Search forward for the current word. The commands to quit editing and exit the editor are: :q :q! Quit editing and leave vi (if you’ve modified the file. the tag line is a usage synopsis for the command character. VI COMMANDS The following section describes the commands available in the command mode of the vi editor. [count] 〈control-E〉 Scroll forward count lines. scroll forward half the number of lines in the current screen. and long lines can take up more than a single screen line. Strictly confidential and proprietary VI (1) p yy dd x :w Append the copied line after the line the cursor is on. [count] 〈control-H〉 [count] h Move the cursor back count characters in the current line. Write the file back to the file with the name that you originally used as an argument on the vi command line. Copy the line the cursor is on. If count is not given. [count] 〈control-B〉 Page backwards count screens. 1996 3 . Inc. [count] 〈control-J〉 BSD October 10. In each entry below. [count] 〈control-F〉 Page forward count screens. One final caution: Unusual characters can take up more than one column on the screen. The above commands work on “physical” characters and lines. they affect the entire line no matter how many screen lines it takes up and the entire character no matter how many screen columns it takes up. leaving the current line and column as is. [count] 〈control-D〉 Scroll forward count lines. vi will refuse to quit). Delete the character the cursor is on.e. if possible. Delete the line the cursor is on. Quit. 〈control-G〉 Display the file information. The commands to delete text are: The commands to write the file are: :w file_name Write the file back to the file with the name file_name. i.VI (1) PropertyGeneral Commands Manual System of BladeLogic. but not saved your changes.

[count] ! motion shell-argument(s) 〈carriage-return〉 Replace text with results from a shell command. or to the first screen if there are no lower screens in the window. if possible. If the trailing character is a ‘-’. If the trailing character is a ‘#’ or ‘+’. 〈control-]〉 Push a tag reference onto the tag stack. the number is incremented. [count] $ Move the cursor to the end of a line. 〈control-T〉 Return to the most recent tag context. [count] 〈space〉 [count] l Move the cursor forward count characters without changing the current line. [count] # #|+|Increment or decrement the number under the cursor. Strictly confidential and proprietary VI (1) [count] 〈control-N〉 [count] j Move the cursor down count lines without changing the current column. [count] 〈control-M〉 [count] + Move the cursor down count lines to the first non-blank character of that line.VI (1) PropertyGeneral Commands Manual System of BladeLogic. [count] 〈control-U〉 Scroll backwards count lines. without changing the current column. 1996 4 . BSD October 10. [count] 〈control-Y〉 Scroll backwards count lines. 〈escape〉 Execute ex commands or cancel partial commands. the number is decremented. scroll forward half the number of lines in the current screen. 〈control-ˆ〉 Switch to the most recently edited file. 〈control-W〉 Switch to the next lower screen in the window. 〈control-L〉 〈control-R〉 Repaint the screen. If count is not given. % Move to the matching character. Inc. leaving the current line and column as is. 〈control-Z〉 Suspend the current editor session. [count] 〈control-P〉 [count] k Move the cursor up count lines.

appending the text after the end of the line. count times. [count] ( Back up count sentences. 1996 5 . Repeat the last vi command that modified text. [count] B Move backwards count bigwords. The first form returns to the beginning of the line marked by character. the cursor is placed offset lines before or after the matched regular expression. the characters input are repeated count − 1 number of times. If offset is specified. /RE 〈carriage-return〉 /RE/ [offset] 〈carriage-return〉 ?RE 〈carriage-return〉 ?RE? [offset] 〈carriage-return〉 N n Search forward ( ‘/’ ) or backward ( ‘?’ ) for a regular expression. [count] . Reverse find character count times. BSD October 10. [count] . Repeat the last character find count times. [count] ) Move forward count sentences. respectively. [count] <motion [count] >motion Shift lines left or right. [count] Move to the first non-blank of the previous line. n and N repeat the last search in the same or opposite directions. 0 : Move to the first character in the current line. Inc. [count] A Enter input mode.VI (1) PropertyGeneral Commands Manual System of BladeLogic. The second form returns to the first character of the context marked by character. If a count argument is given. “yank” the deleted text into buffer. If buffer is specified. ’〈character〉 ‘〈character〉 Return to a context marked by the character character. [count] . @ buffer Execute a named buffer. Execute an ex command. Strictly confidential and proprietary VI (1) & Repeat the previous substitution command on the current line. [buffer] [count] C Change text from the current position to the end-of-line.

[count] F 〈character〉 Search count times backward through the current line for character. 1996 6 . Inc. [count] J Join lines. or the last line of the file if count is not specified. appending text in a new line above the current line. [buffer] P Insert text from a buffer. “yank” the deleted text into buffer. [buffer] [count] X Delete count characters before the cursor. If buffer is specified. replacing the characters in the current line. If buffer is specified. the characters input are repeated count − 1 number of times. [count] I Enter input mode. [count] R Enter input mode.VI (1) PropertyGeneral Commands Manual System of BladeLogic. the characters input are repeated count − 1 number of times. [buffer] [count] Y Copy (or “yank”) count lines into the specified buffer. If a count argument is given. [count] G Move to line count. [count] L Move to the screen line count − 1 lines above the bottom of the screen. “yank” the deleted text into buffer. U Restore the current line to its state before the cursor last moved to it. [buffer] [count] S Substitute count lines. the characters input are repeated count − 1 number of times. M Move to the screen line in the middle of the screen. [count] W Move forward count bigwords. [count] O Enter input mode. or the default buffer if none is specified. [count] H Move to the screen line count − 1 lines below the top of the screen. “yank” the deleted text into buffer. count times. Strictly confidential and proprietary VI (1) [buffer] D Delete text from the current position to the end-of-line. If a count argument is given. through the current line for the character after the specified character. Q Exit vi ( or visual ) mode and switch to ex mode. [count] E Move forward count end-of-bigwords. BSD October 10. [count] T 〈character〉 Search backwards. If a count argument is given. inserting the text at the beginning of the line. If buffer is specified.

Strictly confidential and proprietary VI (1) ZZ Write the file and exit vi. the characters input are repeated count −1 number of times. [count] _ Move down count − 1 lines. count times. [count] r 〈character〉 Replace count characters. to the first non-blank character. [count] t 〈character〉 Search forward. through the current line for the character immediately before 〈character〉. m 〈character〉 Save the current context ( line and column ) as 〈character〉. ˆ Move to the first non-blank character on the current line. [count] a Enter input mode. [buffer] [count] c motion Change a region of text. appending text in a new line under the current line. [count] w Move forward count words. If a count argument is given. appending the text after the cursor. through the rest of the current line for 〈character〉. [count] f 〈character〉 Search forward. the characters input are repeated count − 1 number of times. [count] b Move backwards count words. If a count argument is given. If a count argument is given. 1996 7 . [count] [[ Back up count section boundaries.VI (1) PropertyGeneral Commands Manual System of BladeLogic. [buffer] p Append text from a buffer. [count] i Enter input mode. [count] e Move forward count end-of-words. inserting the text before the cursor. [buffer] [count] s Substitute count characters in the current line starting with the current character. the characters input are repeated count −1 number of times. count times. Inc. [buffer] [count] d motion Delete a region of text. BSD October 10. [count] ]] Move forward count section boundaries. u Undo the last change made to the file. [count] o Enter input mode.

〈control-T〉 Insert sufficient 〈tab〉 and 〈space〉 characters to move forward to the next shiftwidth column boundary. 〈control-D〉 Erase to the previous shiftwidth column boundary. The 〈interrupt〉 character is usually 〈control-C〉. [column] | Move to a specific column position on the current line. The following type characters may be used: + If count1 is specified. 0〈control-D〉 Erase all of the autoindent characters. place the line count1 at the top of the screen. Inc. . optionally repositioning and resizing the screen. 〈nul〉 Replay the previous input. [buffer] [count] y motion Copy (or “yank”) a text region specified by count and motion into a buffer. Otherwise. and reset the autoindent level. 〈carriage-return〉 Place the line count1 at the top of the screen. If count2 is specified. move to the start of the current line. BSD October 10.VI (1) PropertyGeneral Commands Manual System of BladeLogic. Place the line count1 at the bottom of the screen. 1996 8 . 2 screens before ) . Strictly confidential and proprietary VI (1) [buffer] [count] x Delete count characters. display the screen after the current screen. If column is omitted. display the screen before the current screen. [count] ˜ motion Reverse the case of the characters in a text region specified by the count and motion. ˆ〈control-D〉 Erase all of the autoindent characters. limit the screen size to count2 lines. 〈interrupt〉 Interrupt the current operation.e. ˆ Place the line count1 in the center of the screen. [count] { Move backward count paragraphs. display the screen before the screen before count1 ( i. [count1] z [count2] type Redraw. [count] } Move forward count paragraphs. VI TEXT INPUT COMMANDS The following section describes the commands available in the text input mode of the vi editor. Only in effect if the tildeop option is set. [count] ˜ Reverse the case of the next count character(s). If count1 is given. Otherwise.

The definition of word is dependent on the altwerase and ttywerase options. 〈escape〉 Resolve all text input into the file. EX COMMANDS The following section describes the commands available in the ex editor. 〈control-X〉[0-9A-Fa-f]+ Insert a character with the specified hexadecimal value into the text.VI (1) PropertyGeneral Commands Manual System of BladeLogic. The 〈literal next〉 character is usually 〈control-V〉. . Strictly confidential and proprietary VI (1) 〈erase〉 〈control-H〉 Erase the last character. display the line number of the last line in the file. [line] = [flags] Display the line number of line. 〈control-W〉 〈word erase〉 Erase the last word. " A comment. 〈end-of-file〉 Scroll the screen. BSD October 10. . the tag line is a usage synopsis for the command. [range] <[< . 〈interrupt〉 Interrupt text input mode. If line is not specified.] [count] [flags] Shift lines right. .] [count] [flags] Shift lines left. . returning to command mode. [range] nu[mber] [count] [flags] [range] # [count] [flags] Display the selected lines. In each entry below. 〈line erase〉 Erase the current line. ! argument(s) [range] ! argument(s) Execute a shell command. [range] >[> . 1996 9 . and return to command mode. Inc. The 〈interrupt〉 character is usually 〈control-C〉. 〈literal next〉 Escape the next character from any special meaning. each preceded with its line number. @ buffer ∗ buffer Execute a buffer. or filter lines through a shell command.

[line] a[ppend][!] The input text is appended after the specified line. cs[cope] add | find | help | kill | reset Execute a Cscope command. screens or tags. [line] i[nsert][!] The input text is inserted before the specified line. [range] j[oin][!] [count] [flags] Join lines of text together. Strictly confidential and proprietary VI (1) ab[breviate] lhs rhs vi only. vi only. di[splay] b[uffers] | c[onnections] | s[creens] | t[ags] Display buffers. f[ile] [file] Display and optionally change the file name. [range] l[ist] [count] [flags] Display the lines unambiguously. [range] c[hange][!] [count] The input text replaces the specified range. ar[gs] bg Display the argument list. chd[ir][!] [directory] cd[!] [directory] Change the current working directory. [range] g[lobal] /pattern/ [commands] [range] v /pattern/ [commands] Apply commands to lines matching ( ‘global’ ) or not matching ( ‘v’ ) a pattern. he[lp] Display a help message. exu[sage] [command] Display usage for an ex command. Background the current screen. Inc. [range] co[py] line [flags] [range] t line [flags] Copy the specified lines after the destination line. [Ee][dit][!] [+cmd] [file] [Ee]x[!] [+cmd] [file] Edit a different file. [Ff]g [name] vi mode only. Foreground the specified screen.VI (1) PropertyGeneral Commands Manual System of BladeLogic. Add lhs as an abbreviation for rhs to the abbreviation list. [range] d[elete] [buffer] [count] [flags] Delete the lines from the file. 1996 10 . BSD October 10. Cscope connections.

[range] m[ove] line Move the specified lines after the target line. Inc. so[urce] file Read and execute ex commands from a file. .] Edit the next file from the argument list.] [all] Display or set editor options. [range] s[ubstitute] [/pattern/replace/] [options] [count] [flags] [range] & [options] [count] [flags] [range] ˜ [options] [count] [flags] Make substitutions.. [Nn][ext][!] [file . [Pp]rev[ious][!] Edit the previous file from the argument list. rec[over] file Recover file if it was previously saved.. . . . 1996 11 . Strictly confidential and proprietary VI (1) map[!] [lhs rhs] Define or display maps (for vi only). [line] pu[t] [buffer] Append buffer contents to the current line. . [line] r[ead][!] [file] Read a file. mk[exrc][!] file Write the abbreviations. [line] ma[rk] 〈character〉 [line] k 〈character〉 Mark the line with the mark 〈character〉.VI (1) PropertyGeneral Commands Manual System of BladeLogic. su[spend][!] BSD October 10.] [nooption . pre[serve] Save the file in a form that can later be recovered using the ex −r option. res[ize] [+|-]size vi mode only. rew[ind][!] Rewind the argument list. q[uit][!] End the editing session. sh[ell] Run a shell program. editor options and maps to the specified file.] [option? . se[t] [option[=[value]] . . [range] p[rint] [count] [flags] Display the specified lines. Grow or shrink the current screen.

tagt[op][!] Pop to the least recent tag on the tags stack. Strictly confidential and proprietary VI (1) st[op][!] 〈suspend〉 Suspend the edit session. [Vi]i[sual][!] [+cmd] [file] vi mode only. [range] ya[nk] [buffer] [count] Copy the specified lines to a buffer. Edit a new file. [range] w[rite][!] [>> ] [file] [range] w[rite] [!] [file] [range] wn[!] [>> ] [file] [range] wq[!] [>> ] [file] Write the file. 1996 12 . [range] x[it][!] [file] Exit the editor. writing the file if it has been modified. unm[ap][!] lhs Unmap a mapped string. Enter vi. viu[sage] [command] Display usage for a vi command. their abbreviations and their default values. [line] vi[sual] [type] [count] [flags] ex mode only. tagp[op][!] [file | number] Pop to the specified tag in the tags stack. BSD October 10. [Tt]agn[ext][!] Edit the file containing the next context for the current tag. [line] z [type] [count] [flags] Adjust the window. The 〈suspend〉 character is usually 〈control-Z〉. [Tt]a[g][!] tagstring Edit the file containing the specified tag. una[bbreviate] lhs vi only. Delete an abbreviation. [Tt]agp[rev][!] Edit the file containing the previous context for the current tag. This section describes the options. u[ndo] Undo the last change made to the file. ve[rsion] Display the version of the ex/vi editor. Inc. SET OPTIONS There are a large number of options that may be set ( or unset ) to change the editor’s behavior.VI (1) PropertyGeneral Commands Manual System of BladeLogic. clearing the stack.

the first part of the tag line is the full name of the option. 1996 13 . followed by any equivalent abbreviations. autoindent. Strictly confidential and proprietary VI (1) In each entry below. Select an alternate word erase algorithm.e. Skip leading comments in shell. filec [no default ] Set the character to perform file path completion on the colon command line. aw [off ] Write modified files automatically when changing files. ex [off ] Read the startup files in the local directory. co [80] Set the number of columns in the screen. altwerase [off ] vi only. Inc. errorbells. instead of initializing them as unset for each new command. extended [off ] Use extended regular expressions ( EREs ) rather than basic regular expressions ( BREs ) . unless otherwise specified. Announce error messages with a bell. columns. or current directory] The directory paths used as path prefixes for the cd command. Display the current line automatically. bf [off ] Discard control characters. comment [off ] vi only. Options apply to both ex and vi modes. i. ed [off ] Remember the values of the ‘c’ and ‘g’ suffixes to the substitute commands. or /tmp] The directory where temporary files are created. autowrite. cdpath [environment variable CDPATH. directory. beautify. ap [on] ex only. autoprint. and do not have an associated value. Most of the options are boolean. BSD October 10. C and C++ language files. backup [""] Back up files before they are overwritten. cedit [no default ] Set the character to edit the colon command-line history. dir [environment variable TMPDIR. ai [off ] Automatically indent new lines. The part in square brackets is the default value of the option. See re_format(7) for more information on regular expressions. they are either on or off.VI (1) PropertyGeneral Commands Manual System of BladeLogic. escapetime [1] The 10th’s of a second ex/vi waits for a subsequent key to complete an 〈escape〉 key mapping. eb [off ] ex only. edcompatible. exrc.

VI (1) PropertyGeneral Commands Manual System of BladeLogic. ht [0] Set the spacing between hardware tab settings. This option is not yet implemented. keytime [6] The 10th’s of a second ex/vi waits for a subsequent key to complete a key mapping. Do left-right scrolling. lock [on] Attempt to get an exclusive lock on any file being edited. nu [off ] Precede each line displayed with its current line number. iclower [off ] Makes all regular expressions case-insensitive. Set the number of lines in the screen. lisp [off ] vi only. instead of the default hexadecimal. lines. BSD October 10. The 10th’s of a second ex/vi pauses on the matching character when the showmatch option is set. octal [off ] Display unknown characters as octal numbers. modeline [off ] Read the first and last few lines of each file for ex commands. as long as an upper-case letter does not appear in the search string. matchtime [7] vi only. mesgcat [/usr/share/vi/catalog/ ] Selects a message catalog to be used to display error and informational messages in a specified language. list [off ] Display lines in an unambiguous fashion. Modify various search commands and options to work with Lisp. magic [on] Treat certain characters specially in regular expressions. leftright [off ] vi only. noprint [""] Characters that are never handled as printable characters. mesg [on] Permit messages from other users. Inc. ignorecase. This option will never be implemented. 1996 14 . read or written. hardtabs. ic [off ] Ignore case differences in regular expressions. Strictly confidential and proprietary VI (1) flash [on] Flash the screen instead of beeping the keyboard on error. li [24] vi only. modelines. number. This option currently has no effect.

para [IPLPPPQPP LIpplpipbp] vi only. optimize. This option is not yet implemented paragraphs. print [""] Characters that are always handled as printable characters. searchincr [off ] Makes the / and ? commands incremental. redraw. sh [environment variable SHELL. ro [off ] Mark the file and session as read-only. opt [on] vi only. This option is not yet implemented. shell. Define additional section boundaries for the [[ and ]] commands. recdir [/var/tmp/vi. Optimize text throughput to dumb terminals. ruler [off ] vi only. sections.VI (1) PropertyGeneral Commands Manual System of BladeLogic. Note matching ‘{’ and (‘’ for ‘}’ and ‘)’ characters. If this option is not set. path [""] Define additional directories to search for files being edited. Define additional paragraph boundaries for the { and } commands. secure [off ] Turns off all access to external programs. or /bin/sh] Select the shell used by the editor.recover] The directory where recovery files are stored. Display a row/column ruler on the colon command line. sect [NHSHH HUnhsh] vi only. Simulate an intelligent terminal on a dumb one. shiftwidth. 1996 15 . shellmeta [˜{[∗?$‘’"\ ] Set the meta characters checked to determine if file name expansion is necessary. readonly. Display a command prompt. report [5] Set the number of lines about which the editor reports changes or yanks. sw [8] Set the autoindent and shift command indentation width. re [off ] vi only. the open and visual commands are disallowed. scroll. prompt [on] ex only. remap [on] Remap keys until resolved. showmatch. Strictly confidential and proprietary VI (1) open [on] ex only. Inc. sm [off ] vi only. BSD October 10. scr [($LINES − 1) / 2] Set the number of lines scrolled.

It has no effect in this implementation. before a ! command. This option will never be implemented. tabstop. BSD October 10. warn [on] ex only. w. w1200 [no default ] vi only. tildeop [off ] Modify the ˜ command to take an associated motion. This option causes a warning message to be printed on the terminal if the file has been modified since it was last written. sidescroll [16] vi only. Display an error message for every error. term. window. verbose [off ] vi only. tag [tags ] Set the list of tags files. Set the window size if the baud rate is equal to 1200 baud. 1996 16 . taglength. w9600 [no default ] vi only.VI (1) PropertyGeneral Commands Manual System of BladeLogic. sourceany [off ] Read startup files not owned by the current user. terse [off ] This option has historically made editor messages less verbose. ts [8] This option sets tab widths for the editor display. Strictly confidential and proprietary VI (1) showmode. windowname [off ] Change the icon/window name to the current file name even if it can’t be restored on editor exit. to [on] Time out on keys which may be mapped. This option is not yet implemented. wi [environment variable LINES − 1] Set the window size for the screen. Set the window size if the baud rate is greater than 1200 baud. tty [environment variable TERM] Set the terminal type. Set the amount a left-right scroll will shift. Inc. tags. w300 [no default ] vi only. Select an alternate erase algorithm. slow [off ] Delay display updating during text input. slowopen. smd [off ] vi only. ttytype. timeout. Display the current editor mode and a “modified” flag. ttywerase [off ] vi only. Set the window size if the baud rate is less than 1200 baud. tl [0] Set the number of significant characters in tag names.

If both the wraplen and wrapmargin edit options are set. the editor attempts to save the modified file so it can be later recovered. NEXINIT A list of ex startup commands. If interrupted during text input. or the term option is explicitly reset by the user.nexrc and $HOME/. ex/vi enters the value into the environment. Strictly confidential and proprietary VI (1) wraplen. SIGHUP SIGTERM If the current buffer has changed since it was last written in its entirety. the specified number of columns from the right-hand margin. Break lines automatically. If both the wraplen and wrapmargin edit options are set. the wrapmargin value is used. writeany. ex/vi enters the value into the environment. the wrapmargin value is used. wrapscan. If the LINES environment variable is not set when ex/vi runs. This value overrides any system or terminal specific values. read if the variable NEXINIT is not set. SHELL TERM TMPDIR ASYNCHRONOUS EVENTS SIGALRM vi/ex uses this signal for periodic backups of file modifications and to display “busy” messages when operations are likely to take a long time. Inc. ws [on] Set searches to wrap around the end or beginning of the file. The user’s shell of choice (see also the shell option). EXINIT HOME LINES A list of ex startup commands. or the columns option is explicitly reset by the user. wl [0] vi only. The location used to stored temporary files (see also the directory edit option). used as the initial directory path for the startup $HOME/. When an interrupt occurs. The default is the type “unknown”.VI (1) PropertyGeneral Commands Manual System of BladeLogic. wa [off ] Turn off file-overwriting checks. the specified number of columns from the left-hand margin. ENVIRONMENT COLUMNS The number of columns on the screen. If the COLUMNS environment variable is not set when ex/vi runs. See the vi/ex reference manual section Recovery for more information. Break lines automatically. SIGINT SIGWINCH The screen is resized. the current operation is halted and the editor returns to the command level. If the TERM environment variable is not set when ex/vi runs. This value overrides any system or terminal specific values. wm [0] vi only. The user’s terminal type. The user’s home directory. The number of rows on the screen. This value is also used as the default directory for the vi cd command. See the vi/ex reference manual section Sizing the Screen for more information. FILES BSD October 10. the text already input is resolved into the file as if the text input had been normally terminated.exrc files. ex/vi enters the value into the environment. or the lines option is explicitly reset by the user. 1996 17 . wrapmargin.

2”). input.4 BSD. Strictly confidential and proprietary VI (1) /bin/sh /etc/vi. Roff source for all of these documents is distributed with nex/nvi in the vi/docs/USD. This document is the closest thing available to an introduction to the vi screen editor. That document differs from historical ex/vi practice in several places. "Ex: A Tutorial". quoting.exrc /tmp /var/tmp/vi.vi/. The default recovery file directory. /usr/share/doc/usd/12. HISTORY The nex/nvi replacements for the ex/vi editor first appeared in 4.vi/vi. First choice for user’s home directory startup file.summary. The "Vi Quick Reference" card. and structures found in the vi/docs/internals directory of the nex/nvi source code. Second choice for user’s home directory startup file. there are changes to be made on both sides.recover $HOME/. System-wide vi startup file.exrc . Temporary file directory. BSD October 10.ex/. Second choice for local directory startup file. This document is the closest thing available to an introduction to the ex editor. /usr/share/doc/usd/13. First choice for local directory startup file. STANDARDS nex/nvi is close to IEEE Std 1003.exrc SEE ALSO ctags(1). "Ex Reference Manual".edit/. re_format(7) The default user shell.nexrc $HOME/. /usr/share/doc/usd/11. "Vi/Ex Reference Manual".viref/. Inc. /usr/share/doc/usd/13.nexrc . This document is the final reference for the ex editor. This document is the final reference for the nex/nvi text editors. The files autowrite.doc directory of the nex/nvi source code. "An Introduction to Display Editing with Vi".2 (“POSIX.VI (1) PropertyGeneral Commands Manual System of BladeLogic. /usr/share/doc/usd/12. 1996 18 .

vsh will use /bin/sh by default.. If you specify <nsh>. it will start a shell (or other tty application) session and capture input and output. vsh itself does not take any arguments. This file is located in share/vsh. You should create one log file per session. Strictly confidential and proprietary vsh(1) NAME vsh − Virtual shell (keyboard capture tool) SYNOPSIS vsh DESCRIPTION vsh is a keyboard (actually input and output) capture tool. Example: level=stdin:stdout DEFAULT ENTRY If the username of the given entry has the special name of default. then this entry will be used for all users that do not have a specific entry in the vsh. an autologout of NSH 1 .conf file. The available values are: stdin stdout stderr all Log all user keyboard input. It is called vsh (Virtual Shell) because once you start it. it passes any arguments you give it to the backend shell specified in vsh. vsh will automatically terminate the session. vsh dynamically creates directories for the log files as needed.conf file to specify which shell vsh should start. The format of this file is: username <field=val[:val.CONF The vsh. vshview. If there is no input or output activity for the specified number of minutes.. You can specify multiple log files.conf VSH. You can configure the vsh.conf in the NSH installation directory. Example: logout=30 Name of log file where you want to store the vsh session I/O. If you do not specify a shell. Instead. If you have more than one session logged into a particular log file.]>[. the vsh log file viewer.conf file controls the behavior of vsh.] The accepted fields are: shell The application (shell) to start when you invoke vsh. You can capture any combination of I/O streams by defining multiple levels as colon (’:’) separated values. meaning that you can specify a log file on a remote server with the //hostname/path format. which is a shell of /bin/sh.vsh(1) Property of BladeLogic. Inc. then vsh will try to launch NSH instead. Log all terminal output. The vsh.. Log all terminal error output (same as stdout). Example: Example: logout shell=/bin/ksh shell=<nsh> Set an optional auto logout time in minutes. Example: log=/var/log/vshlog-%u. All of the above. You can use macros (defined below) in your log file names to dynamically create unique names for each log file.<field=val[:val]>.. You can use NSH format to name the log files.vsh log level This defines what you want to log. may not properly understand the result.conf file comes pre-configured with a default entry.

you must dynamically create log file names by using macros. ORIGIN vsh was written by Thomas Kraus SEE ALSO vshview (1). Sunday being 0. %y The year as a decimal number without a century (range 00 to 99). and a log file in the format: /var/log/vsh/<hostname>/<username>/<start timestamp>. %I The hour as a decimal number using a 12-hour clock (range 01 to 12). %u Current user name. %j The day of the year as a decimal number (range 001 to 366). %B The full month name. %h Current host name. %M The minute as a decimal number (range 00 to 59). %a The abbreviated weekday name. Inc. %S The second as a decimal number (range 00 to 61). %w The day of the week as a decimal. which are expanded at run time.vsh vsh(1) MACROS As previously mentioned. range 0 to 6. %H The hour as a decimal number using a 24-hour clock (range 00 to 23). NSH 2 . %d The day of the month as a decimal number (range 01 to 31). %% A literal ‘%’ character. %m The month as a decimal number (range 01 to 12). The following macros are supported. log file names should be unique for each vsh session. %b The abbreviated month name. %Y The year as a decimal number including the century. %C The century number (year/100) as a 2-digit integer. Strictly confidential and proprietary 60 minutes.vsh(1) Property of BladeLogic. To do this. %A The full weekday name.

you do not have to escape the forward slash date separator. vsh creates a time stamp every 60 seconds. Show the name of the log file being displayed as it is reached. The expression should be a single argument surrounded by single quotes. logout. just output a summary of vsh sessions. shell. you do not have to escape the forward slash date separator. Output only those entries that relate to user. OPTIONS -0 -1 -2 -b -v -e -l -H -U -T -h host -u user -i date Show keyboard (stdin) input. vshview will automatically recursively scan all files in the given directory. Can be used with -0 and -2. There are two basic modes to vshview. only one minute granularity is available. Therefore. Show terminal (stdout) output. shows a summary of login and logout activity. logintime. Use the following format: expr = ( expr ) | operand operator operand | operand operand = number | string | field name number = value | value% | octal value | hex value NSH 1 .] DESCRIPTION The keyboard (I/O) capture tool vsh does not create plain text log files. Output only those entries that happened on or after this date. The second mode (turned on with the -l option). This is the default output if you do not select any other output type.. The date has the format ’month/day/year’ with the year being optional. Precede each line of output with the name of the user it relates to. Instead.vshview(1) Property of BladeLogic. The first mode is to show selected input and output (default mode). (Note that when using this option.. To view the these log files. Can be used with -1 and -2. or pid. In either case. you need to use the vshview utility. Strictly confidential and proprietary vshview(1) NAME vshview − vsh log file viewer SYNOPSIS vshview − [-012lbvHTU] [-e expr] [-h host] [-i date] [-s sort] [-o date] [-u user] file1 [file2 . vshview scans the given log files and produces the appropriate output. (Note that when using this option. host. If a given file is a directory. Inc. login. The date has the format ’month/day/year’ with the year being optional.) -s sort -o date EXPRESSIONS You can use the -e option to define an expression that filters the output data. Define a search expression (see below). logouttime. Precede each line of output with the most recent available timestamp. Show error (stderr) output (same as -1). Output only those entries that happened on host. Do not show any blank lines.) You can specify the following options to sort your display: user. Do not output any keyboard input or screen output. Output only those entries that happened before this date. Precede each line of output with the name of the host it relates to.

Inc. The second type are 8 bit characters. These are are displayed as (for example) ’207’. Strictly confidential and proprietary value = <integer value> | <floating point value> | <long long value> string = "<value>" field name = <user> | <host> | logindate | logoutdate | \ logintime | logouttime | <shell> | <pid> logindate = month/day/year logoutdate = month/day/year logintime = HH:MM logouttime = HH:MM vshview(1) Here is the operator precedence. NSH 2 . The first type are the control characters (ASCII 0-31).vshview(1) Property of BladeLogic. Operators of the same precedence are grouped together by { }: operator = + | . These are are displayed as (for example) ’ˆD’.} { > >= < <= = != } & | Some sample expressions: user = "tmk" user = "tmk" & host = "linuxdev" user != "tmk" | logindate > Feb\/12 (logintime > 10:00 ) | (user = "tmk" & logintime > 8:00) EXAMPLES $ vshview -T -b /var/log/vsh Feb 22/03 12:59:48: ls -la Feb 22/03 13:14:53: ls Feb 22/03 13:14:53: ls -la Feb 22/03 13:19:08: echo $0 Feb 22/03 13:19:08: ˆ[k Feb 22/03 13:19:08: ls Feb 22/03 13:19:08: stty -a Feb 22/03 13:19:08: exit $ vshview -u tmk -l /var/log/vsh HOSTNAME USER LOGIN TIME LOGOUT TIME PID SHELL linuxdev tmk Feb 22/03 12:59:48 Feb 22/03 12:59:54 26958 /bin/nsh linuxdev tmk Feb 22/03 13:14:50 Feb 22/03 13:14:56 27070 /bin/nsh linuxdev tmk Feb 22/03 13:19:07 Feb 22/03 13:19:52 27204 /bin/bash NOTE vshview deals with two types of non-printable characters. ORIGIN vshview was written by Thomas Kraus SEE ALSO vsh (1).| / | * | % | & | \| | > | >= | < | <= | = | != \ { * / % } { + .

svn ------+-> text-base | +-> prop-base | +-> props | +-> wcprops | −> tmp -------+-> text-base | +-> prop-base | +-> props | −> wcprops +-> . Strictly confidential and proprietary vtree(1) NAME vtree − show the directory structure of a file system SYNOPSIS vtree [ -d ] [ -h # ] [ -i ] [ -s ] [ -q ] [ -v ] [ -V ] <target-dir> DESCRIPTION The vtree command shows the directory structure of a file system or part of a file system.vtree(1) Property of BladeLogic. and the output line reflects the accumulated totals for all files in the directory.svn ------+-> text-base +-> prop-base NSH 1 . Include subdirectories that were excluded due to the -h option. For example: johnk% vtree -VVV VTREE 1. OPTIONS -d -h # -i -s -t -q -v -V Count duplicate nodes. vtree lists the file system of the ’less’ directory. It also shows the amount of space taken up by files in each subdirectory. Show the current version. EXAMPLE In this example. If any of the given file names is a directory (the usual case). vtree recursively descends into it.0 4/26/88 Tree height: 9999 <target-dir> The directory whose structure you want to display.svn ------+-> text-base | +-> prop-base | +-> props | +-> wcprops | −> tmp -------+-> text-base | +-> prop-base | +-> props | −> wcprops −> lesskey ---+-> . Adding two more Vs displays the options that are set when you run this command. Height of tree to examine. Inc. Provide a visual display. /space/home/parag/maserati_nsh/om/src/commands/less /space/home/parag/maserati_nsh/om/src/commands/less mands/less +-> lessQef ---+-> . Count nodes. Provide a quick display with no counts. Place totals at the end.

NSH 2 .vtree(1) Property of BladeLogic. Inc. Hayes at the Army Artificial Intelligence Center at the Pentagon. Strictly confidential and proprietary vtree(1) +-> props +-> wcprops −> tmp -------+-> text-base +-> prop-base +-> props −> wcprops Total space used: 0 Total inodes: 0 ORIGIN vtree vtree is based upon "agef." written by David S.

and characters. words. One of the files to be counted was not accessible. UNIVERSE BEHAVIOR There is a small difference in the way wc formats the output depending on the current universe. If you do not want counts for all of these things. words and/or characters in a file SYNOPSIS wc [-clw?] [file . wc uses the standard input. it is possible that columns will touch for very large numbers. -c -l -w -? Count the number of characters in the file. Count the number of lines in the file. With the P_ATT variable set. and (if available) the name of the file it is counting. however when the P_BSD variable is set (Berkeley behavior). Unable to get a license to use the software. EXAMPLE The first example counts the number of lines in the file /etc/passwd on the host lisbon. Count the number of words in the file. the number of words. You specified an unknown option. Inc. words. $ wc -l //lisbon/etc/passwd 14 //lisbon/etc/passwd $ wc src/*. words. ORIGIN wc was written by Thomas Kraus NSH 1 . EXIT CODES 0 1 2 255 No errors detected.c 339 917 6051 file3.c 347 945 6227 file1.. Output a brief summary of available options and then exit with a zero status without counting any files. If you specify more than one file. The second example counts lines. and characters of several source files.c 1135 3196 20769 total DIAGNOSTICS wc: Cannot open file filename This message is output if wc is unable to access the file filename.c 449 1334 8491 file2. wc outputs four columns containing the number of lines.] DESCRIPTION wc counts the number of lines. wc will also output a total for all files. OPTIONS By default.wc(1) Property of BladeLogic. an extra SPACE is output between columns to ensure that they never touch. Both behaviors output a column in at least seven spaces. Strictly confidential and proprietary wc(1) NAME wc − Count the number of lines. you can use the following options to tell wc which things you want it to count. wc counts lines. and characters in a file and then outputs its findings. If you do not specify any files.. the number of characters.

Atari and Macintosh. Note that PKUNZIP 1.n a me " ∗. Inc.04 or zip 2. Reference Manual Pages Property of BladeLogic.04g or unzip 5.3. For example: t a r c f . protection. if foo.. You must use PKUNZIP 2.zip and add foo/file3 to foo. . foo/file2. Strictly confidential and proprietary ZIP ( 1L ) NAME zip.r . zip automatically chooses the better of the two for each file to be compressed. zip will also accept a single dash ("-") as the zip file name.zip contains foo/file1. zipsplit – package and compress (archive) files SYNOPSIS zip [–aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [–tt mmddyyyy] [ zipfile [ file1 file2 . Compression ratios of 2:1 to 3:1 are common for text files. zipcloak. Minix. zip also accepts a single dash ("-") as the name of a file to be compressed. The program is useful for packaging a set of files for distribution. and foo/file3. and the directory foo contains the files foo/file1 and foo/file3. zip will replace identically named entries in the zip archive or add entries for new names. this option can be used to powerful effect in conjunction with the find(1) command.3 is compatible with PKZIP 2. Amiga and Acorn RISC OS.zip. MSDOS.  d d o f =/ d e v / n r s t 0 o b s =1 6 k would write the zip output directly to a tape with the specified block size for the purpose of backing up the current directory.]] [–xi list] zipcloak [–dhL] [–b path] zipfile zipnote [–hwL] [–b path] zipfile zipsplit [–hiLpst] [–n size] [–b path] zipfile DESCRIPTION [–b path] [–n suffixes] [–t mmddyyyy] zip is a compression and file packaging utility for Unix. . .10 cannot extract files produced by PKZIP 2. [Not on MacOS] zip takes the list of input files from standard input.  z i p ba c kup - Info-ZIP Last change: 14 August 1999 (v2.@ (note that the pattern must be quoted to keep the shell from expanding it). foo. After this. An entire directory structure can be packed into a zip archive with a single command. and for saving disk space by temporarily compressing unused files or directories. When given the name of an existing zip archive. path. in which case it will write the zip file to standard output. with foo/file2 unchanged from before. and check information to verify file integrity). allowing the output to be piped to another program. If the file list is specified as –@. zipnote. allowing zip to take input from another program.3) 1 . For example. A companion program (unzip(1L)). date. For a brief help on zip and unzip.r f oo f oo will replace foo/file1 in foo. unpacks zip archives. for archiving files. and PKZIP and PKUNZIP can work with archives produced by zip. zip has one compression method (deflation) and can also store files without compression. Under UNIX. Windows NT.0p1 (or later versions) to extract them. along with information about the files (name.p r i n t  z i p s o u r c e . [ c h ] " . run each without specifying any parameters on the command line. OS/2. It is analogous to a combination of the UNIX commands tar(1) and compress(1) and is compatible with PKZIP (Phil Katz’s ZIP for MSDOS systems). zip version 2. in which case it will read the file from standard input. The zip and unzip(1L) programs can work with archives produced by PKZIP. time of last modification. then: z i p . For example. For example: z i p . to archive all the C source files in the current directory and its subdirectories: f i n d . VMS. The zip program puts one or more compressed files into a single zip archive.04.zip exists and contains foo/file1 and foo/file2.Misc..

zip to the current directory when done. Strictly confidential and proprietary ZIP ( 1L ) would compress the output of the tar command for the purpose of backing up the current directory. all of the files that start with foo/harry/. zip will write a temporary file with the new contents. and the file system containing this old archive does not have enough space to hold both old and new archives at the same time. This generally produces better compression than the previous example using the -r option. For example: zip -d foo foo/tom/junk foo/harry/\∗ \∗.zip the existing extension is kept unchanged. compressing standard input to standard output..Misc. –B –Bn [VM/CMS and MVS] force file to be read binary (default is text). For example: dd if=/dev/nrst0 ibs=16k  funzip  tar xvf When changing an existing zip archive. or by gunzip which is provided in the gzip package. File operations (adding. because zip can take advantage of redundancy between files.3) 2 . Note: self-extracting archives for the Amiga are a special case. OPTIONS –a –A [Systems using EBCDIC] Translate file to ASCII format. | zip .zip is added. Reference Manual Pages Property of BladeLogic. If the name of the zip archive does not contain an extension. | zip | dd of=/dev/nrst0 obs=16k is equivalent to tar cf . enabling zip to match on the contents of the zip archive instead of –b path Use the specified path for the temporary zip archive. the extension . and the user is then prompted for a one-line comment for each file. Note that shell pathname expansion has been inhibited with backslashes. Adjust self-extracting executable archive. -J can be used to remove the SFX stub if other updates need to be made. The backup can be restored using the command unzip -p backup | tar xf When no zip file name is given and stdout is not a terminal.. This option is only useful when updating an existing archive.o (in any path). Inc. copying over stuff. zip acts as a filter. or just return for no comment.. The –A option tells zip to adjust the entry offsets stored in the archive to take into account this "preamble" data. so that zip can see the asterisks. Enter the comment followed by return. [TANDEM] set Edit/Enscribe formatting options with n defined as bit 0: Don’t add delimiter (Edit/Enscribe) bit 1: Use LF rather than CR/LF as delimiter (Edit/Enscribe) bit 2: Space fill record to maximum record length (Enscribe) bit 3: Trim trailing space (Enscribe) bit 8: Force 30K (Expand) large read for unstructured files zip -b /tmp stuff ∗ will put the temporary zip archive in the directory /tmp.| dd of=/dev/nrst0 obs=16k zip archives created in this manner can be extracted with the program funzip which is provided in the unzip package. tar cf . and only replace the old one when the process of creating the new version has been completed without error. At present. Remove (delete) entries from a zip archive.o will remove the entry foo/tom/junk. A self-extracting executable archive is created by prepending the SFX stub to an existing archive. and all of the files that end with . updating) are done first. only the Amiga port of Zip is capable of adjusting or updating these without corrupting them. For example. –c Add one-line comments for each file. For example: –d Info-ZIP Last change: 14 August 1999 (v2. If the name already contains an extension other than .

the archive might become corrupted. –F Fix the zip archive. After the repair. as in: zip -r foo . Directory entries are created by default so that their attributes can be saved in the zip archive.Misc. unlike the update option (–u) this will not add files that are not already in the zip archive. so you MUST make a backup of the original archive first.LONGNAME Extended Attribute (if found) as filename. Reference Manual Pages Property of BladeLogic. -i \∗. Good for exporting files to foreign operating-systems. –g Grow (append to) the specified zip archive. -u and -o options to work correctly.3) 3 .c which will include only the files that end in . For example: zip -f foo This command should be run from the same directory from which the original zip command was run. Strictly confidential and proprietary ZIP ( 1L ) the contents of the current directory. Under MSDOS. you can remove them from the archive using the –d option of zip. instead of creating a new one. If this operation fails. When doubled as in –FF the compressed sizes given inside the damaged archive are not trusted and zip scans for special signatures to identify the limits between the archive members. export ZIPOPT (The variable ZIPOPT can be used for any option except –i and –x and can include several options. so try this option first. Do not create entries in the zip archive for directories. Resource-forks will be ignored at all. The environment variable ZIPOPT can be used to change the default options. The password prompt is repeated to save the user from typing errors. A typical TZ value is ‘‘MET-1MEST’’ (Middle European time with automatic adjustment for ‘‘summertime’’ or Daylight Savings Time). since paths stored in zip archives are always relative. Note that the timezone environment variable TZ should be set according to the local timezone in order for the -f . The reasons behind this are somewhat subtle but have to do with the differences between the Unix-format file times (always in GMT) and most of the other operating systems (always local time) and the necessity to compare the two. Neither option will recover archives that have been incorrectly transferred in ascii mode instead of binary. If the restoration fails. –df –D [MacOS] Include only data-fork of files zipped into the archive. –E –f –h –i files Include only the specified files. Inc.c in the current directory and its subdirectories. Such files cannot be recovered. if standard error is not a tty. –e Encrypt the contents of the zip archive using a password which is entered on the terminal in response to a prompt (this will not be echoed. For example under Unix with sh: ZIPOPT="-D". Replace (freshen) an existing entry in the zip archive only if it has been modified more recently than the version already in the zip archive. [OS/2] Use the . This requires that file names be entered in upper case if they were zipped by PKZIP on an MSDOS system.) The option –D is a shorthand for –x "∗/" but the latter cannot be set as default in the ZIPOPT environment variable. the –t option of unzip may show that some files have a bad CRC. zip will exit with an error). (Note Info-ZIP Last change: 14 August 1999 (v2. zip attempts to restore the archive to its original state. The single –F is more reliable if the archive is not too much damaged. Display the zip help information (this also appears if zip is run with no arguments). for example if it has only been truncated. This option can be used if some portions of the archive are missing. It is not guaranteed to work. This option is ignored when there’s no existing archive or when at least one archive member must be updated or deleted. –d is case sensitive when it matches names in the zip archive.

gif. Such files are simply stored (0% compression) in the output zip file.lst. Translate the MSDOS end-of-line CR LF into Unix LF. –j –jj –J –k Store just the name of a saved file (junk the path). store only the MSDOS attribute (just the user write attribute from UNIX). [MacOS] record Fullpath (+ Volname). for compatibility with PKUNZIP under MSDOS which cannot handle certain names such as those with two dots. this deletes the target directories/files after making the specified zip archive.tiff:.) The backslash avoids the shell filename substitution. If a directory becomes empty after removal of the files. This ensure that unzip -a on Unix will get back an exact copy of the original file. If the input files already contain CR LF. The complete path including volume will be stored. This option should not be used on binary files.Misc. Inc. but will store any files that end in .zip:. a SFX stub) from the archive. By default. Strictly confidential and proprietary ZIP ( 1L ) for PKZIP users: the equivalent command is pkzip -rP foo ∗. For example.c PKZIP does not allow recursion in directories other than the current one. Also possible: zip -r foo . . zip will not consider Image files (eg.zip. Move the specified files into the zip archive. actually.tiff.Z.lst which will only include the files in the current directory and its subdirectories that match the patterns in the file include. if you have SparkFS loaded. This option should not be used on binary files. –I [Acorn RISC OS] Don’t scan through Image files. Obviously this second case will also be obtained (without the ’I’ option) if SparkFS isn’t loaded. Strip any prepended data (e. Translate the Unix end-of-line character LF into the MSDOS convention CR LF. zip will store the full path (relative to the current path).snd without trying to compress them (image and sound files often have their own specialized compression methods). so that zip doesn’t waste its time trying to compress them.zip. Attempt to convert the names and paths to conform to MSDOS. This option can be used on MSDOS if the zip file is intended for unzip under Unix. By default. -i@include. to undo the effect of zip -l. Display the zip license. zip does not compress files with extensions in the list Info-ZIP Last change: 14 August 1999 (v2. . This option can be used on Unix if the zip file is intended for PKUNZIP under MSDOS. DOS partitions or Spark archives when SparkFS is loaded) as directories but will store them as single files.snd foo foo will copy everything from foo into foo. the directory is also removed. By default the relative path will be stored. Reference Manual Pages Property of BladeLogic. this option adds an extra CR.3) 4 . . zipping a Spark archive will result in a zipfile containing a directory (and its content) while using the ’I’ option will result in a zipfile containing a Spark archive. When used.g. This is useful for conserving disk space. The suffixes are separated by either colons or semicolons. but is potentially dangerous so it is recommended to use it in combination with –T to test the archive before removing all input files.Z:.gif:. For example: zip -rn . and do not store directory names. so that the name matching is performed by zip at all directory levels. No deletions are done until zip has created the archive without error. –l –ll –L –m –n suffixes Do not attempt to compress files named with the given suffixes. or . and mark the entry as made under MSDOS (even though it was not).

zip" To attempt compression on all files.e.c in the tree starting at the current directory are stored into a zip archive named foo. –tt mmddyyyy Do not operate on files modified after or at the specified date." which will attempt to zip up the parent directory (probably not what was intended). and yyyy is the year. since the recursion does not use the shell’s file-name substitution mechanism. where mm is the month (0-12). Reference Manual Pages Property of BladeLogic.∗". –N [Amiga.Misc. to the zip archive infamy. If -c is used also.arc:.lzh:. use the –i option to specify the pattern of files to be included. The ISO 8601 date format yyyy-mm-dd is also accepted.zip. Note for PKZIP users: the equivalent command is pkzip -rP foo ∗. [MacOS] Includes finder invisible files.zip. The environment variable ZIPOPT can be used to change the default options. –R Travel the directory structure recursively starting at the current directory. If you wish to include only a specific subset of the files in directory foo and its subdirectories.". Such files are stored directly in the output archive. which are ignored otherwise. where mm is the month (0-12).zoo:. use: zip -n : foo The maximum compression option –9 also attempts compression on all files regardless of extension. Set the "last modified" time of the zip archive to the latest (oldest) "last modified" time found among the entries in the zip archive. if desired.zip.Z:. dd is the day of the month (1-31). zip does not compress files with filetypes in the list DDC:D96:68E (i. dd is the day of the month (1-31).c’ In this case. MacOS] Save Amiga or MacOS filenotes as zipfile comments.c –S [MSDOS. OS/2. all the files and directories in foo are saved in a zip archive named foo. You should not use –r with the name ". They can be restored by using the -N option of unzip. In this case.zip. CFS files and PackDir files). For example: zip -o foo will change the last modified time of foo. including files with names starting with ". Archives.gif:.arj. For example: zip -rtt 11301995 infamy foo Info-ZIP Last change: 14 August 1999 (v2. Strictly confidential and proprietary ZIP ( 1L ) . By default. Inc. for example: zip -R foo ’∗. On Acorn RISC OS systems the suffixes are actually filetypes (3 hex digit format). and yyyy is the year. For example: zip -rt 12071991 infamy foo zip -rt 1991-12-07 infamy foo will add all the files in foo and its subdirectories that were last modified on or after 7 December 1991. since that matches ". For example under Unix with csh: setenv ZIPOPT "-n .zip:. –o –t mmddyyyy Do not operate on files modified prior to the specified date.. WIN32 and ATARI] Include system and hidden files.3) 5 . all the files matching ∗. This can be used without any other operations. you are prompted for comments only for those files that do not have filenotes. The ISO 8601 date format yyyy-mm-dd is also accepted.zip to the latest time of the entries in foo.

zip while excluding all the files that end in . The default compression level is –6. The backslash avoids the shell filename substitution.lst which will include the contents of foo in foo. uid/gid and file times on Unix). If the check fails. Inc. ∧ on MSDOS.o. OS version. –x files Explicitly exclude the specified files. For example: zip -u stuff ∗ will add any new files in the current directory. to the zip archive infamy. when applied to real operations. Prompt for a multi-line comment for the entire zip archive. –V –w [VMS] Save VMS file attributes. so that the name matching is performed by zip at all directory levels. The comment can be taken from a file: zip -z foo < foowhat –# Regulate the speed of compression using the specified digit #. OS/2. –v Verbose mode or print diagnostic version info.zip. Normally.zip while excluding all the files that match the patterns in the file exclude. (default: use only the most recent version of a specified file). where –0 indicates no compression (store all files).zip into itself when you do this). a diagnostic screen is printed. some pointers to the Info-ZIP home and distribution sites are given.Misc. Strictly confidential and proprietary ZIP ( 1L ) zip -rtt 1995-11-30 infamy foo will add all the files in foo and its subdirectories that were last modified before the 30 November 1995. the old zip file is unchanged and (with the -m option) no input files are removed. In addition to the help screen header with program name. Then. –X –y –z Do not save extra file attributes (Extended Attributes on OS/2. and D Z VAX/VMS). Replace (update) an existing entry in the zip archive only if it has been modified more recently than the version already in the zip archive. version. Store symbolic links as such in the zip archive. and update any files which have been modified since the zip archive stuff. or an end of file condition (∧ on UNIX. Info-ZIP Last change: 14 August 1999 (v2.o which will include the contents of foo in foo. as in: zip -r foo foo -x \∗. The comment is ended by a line containing just a period. Also possible: zip -r foo foo -x@exclude. instead of compressing and storing the file referred to by the link (UNIX only).3) 6 . it shows information about the target environment (compiler type and version. When –v is the only command line argument. –1 indicates the fastest compression method (less compression) and –9 indicates the slowest compression method (optimal compression. and stdout is not redirected to a file. including multiple versions of files.zip was last created/modified (note that zip will not try to pack stuff. Reference Manual Pages Property of BladeLogic. [VMS] Append the version number of the files to the name. Note that the –u option with no arguments acts like the –f (freshen) option. and release date. this option enables the display of a progress indicator during compression and requests verbose diagnostic info about zipfile structure oddities. compilation date and the enabled optional features used to create the zip executable. zip archives created with this option will generally not be usable on other systems. –T –u Test the integrity of the new zip file.lst. ignores the suffix list).

the command: zip -r foo foo creates the archive foo. You can use the –j option to leave off the paths. Info-ZIP Last change: 14 August 1999 (v2.zip.3) 7 .∗ ∗ Even this will not include any subdirectories from the current directory. dick. At the completion of each zip command. [0–9]). Reference Manual Pages Property of BladeLogic. OS/2. this allows the explicit specification of other suffixes). use the drive name as first file name. foo. and harry. If you want to include only the volume label or to force a specific drive. you might not have enough room to hold both the original directory and the corresponding compressed zip archive.Misc. Inc. to include these as well: zip stuff . you can create the archive in steps using the –m option." are not included. Only one filename per line. If foo contains the subdirectories tom. To zip up an entire directory. containing all the files and directories in the directory foo that is contained within the current directory. without recording the directory name. you can: zip -rm foo foo/tom zip -rm foo foo/dick zip -rm foo foo/harry where the first command creates foo. as in: zip -$ foo a: c:bar EXAMPLES The simplest example: zip stuff ∗ creates the archive stuff. Take the list of input files from standard input. in compressed form (the . You may want to make a zip archive that contains the files in foo. and replace the argument with a list of the names that matched. unless that archive name given contains a dot already. [MSDOS. Because of the way the shell does filename substitution. The special characters are: ? ∗ [] match any single character match any number of characters (including none) match any character in the range indicated within the brackets (example: [a–f]. files starting with ". PATTERN MATCHING This section applies only to UNIX. WIN32] Include the volume label for the the drive holding the first file to be compressed. the last created archive is deleted. making room for the next zip command to function. the shell will look for files relative to the current path that match the pattern.zip suffix is added automatically.zip (assuming it does not exist) and puts all the files in the current directory in it.zip. as in: zip -j foo foo/∗ If you are short on disk space. When these characters are encountered (without being escaped with a backslash or quotes). Strictly confidential and proprietary ZIP ( 1L ) –! –@ –$ [WIN32] Use priviliges (if granted) to obtain all aspects of WinNT security. Watch this space for details on MSDOS and VMS operation. In this case. and the next two add to it. The UNIX shells (sh(1) and csh(1)) do filename substitution on command arguments.

unzip(1L). by using backslashes or quotes to tell the shell not to do the name expansion. it then adds it to the list of files to do. on the list of files to be operated on.e. unexpected end of zip file. and so patterns like \∗. using the pattern matching characters described above. –u. a generic error in the zipfile format was detected. ?∗[]). some broken zipfiles created by other archivers have simple workarounds. in the case of the –x (exclude) or –i (include) options. a severe error in the zipfile format was detected. except under VMS: 0 2 3 normal. or the entire argument must be enclosed in double quotes (""). Strictly confidential and proprietary ZIP ( 1L ) The zip program can do the same matching on names that are in the zip archive being modified or. In general. ENVIRONMENT ZIPOPT contains default options that will be used when running zip ZIP [Not on RISC OS and VMS] see ZIPOPT Zip$Options [RISC OS] see ZIPOPT Zip$Exts [RISC OS] contains extensions separated by a : that will cause native filenames with one of the specified extensions to be added to the zip file with basename and extension swapped. no matter what the path prefix is. or does not match any name given with the –i option. it first looks for the name in the file system.o". it will add that name to the list of files to be processed. tar(1). For each match. The pattern matching includes the path. In general. shar(1L). unless this name matches one given with the –x option. Note that the backslash must precede every special character (i. If it finds it. if present. Processing may have completed successfully anyway. use backslash to make zip do the pattern matching with the –f (freshen) and –d (delete) options. when zip encounters a name in the list of files to do. zip was unable to allocate memory for one or more buffers during program initialization. If it does not find it. zip ZIP_OPTS [VMS] see ZIPOPT SEE ALSO compress(1). or –d). entry too large to be split with zipsplit invalid comment format zip -T failed or out of memory the user aborted zip prematurely with control-C (or similar) zip encountered an error while using a temp file read or seek error zip has nothing to do missing or empty zip file 4 5 6 7 8 9 10 11 12 13 Info-ZIP Last change: 14 August 1999 (v2. Inc. and sometimes after the –x (exclude) option when used with an appropriate operation (add. Processing probably failed immediately.o match names that end in ". gzip(1L) DIAGNOSTICS The exit status (or error level) approximates the exit codes defined by PKWARE and takes on the following values. no errors or warnings detected.Misc. it looks for the name in the zip archive being modified (if it exists).3) 8 . Reference Manual Pages Property of BladeLogic. –f.

so zip instead maps them into VMS-style status codes.ZIP filename extension. 7. Inc. When using Kermit to transfer zip files from Vax to MSDOS. if they contain encrypted members or if they have been produced in a pipe or on a non-seekable device. LIKE ANYTHING ELSE THAT’S FREE. P. The old versions of zip or PKZIP would create an archive with an incorrect format. Other programs such as GNU tar are also affected by this bug. 9. On OS/2.1 or PKZIP 1. scarier-looking things.edu. zip files produced by zip 2. Please send bug reports and comments by email to: zip–bugs@lists.3 is not compatible with PKUNZIP 1. 6.10. please include the version of zip (see zip–h ). Only stream-LF format zip files are expected to work with zip. Richard B. it uses extra padding bytes and link pointers (it’s a linked list) to have all fields on 4-byte boundaries for portability to future RISC OS/2 versions. Jean-loup Gailly. Otherwise OS/2 1.Misc. 13.∗. Wales. and for accepting minor changes to the file format. 2 (error) for the zip values 3. ACKNOWLEDGEMENTS Thanks to R.10. even the 16-bit MS-C-compiled version running on OS/2 1. Igor Mandrichenko.3. Permission is granted to any individual or institution to use. or redistribute this software so long as all of the original files are included. However. so even this one shows the 32-bit-mode size. EITHER EXPRESSED OR IMPLIED. Use zip 1. This version of zip handles some of the conversion internally. Under VMS. not all of the odd file formats are treated properly. Under OS/2. In both cases. Onno van der Linden. BUGS zip 2. compression format. copy.0 would report different EA sizes when DIRing a file. type "set file type binary" on MSDOS. 16. and that this copyright notice is retained. the machine and operating system in use. Kai Uwe Rommel. zip stores the 32-bit format for portability.10. The old versions can list the contents of the zip file but cannot extract it anyway (because of the new compression algorithm). to Phil Katz for placing in the public domain the zip file format.Pas program.3 and 2.wku. 18. and from which the shrink algorithm was stolen. and as much additional information as possible. zip cannot match some names. This is a bug in OS/2 itself: the 32-bit DosFindFirst/Next don’t find such names. and . Reference Manual Pages Property of BladeLogic. to Steve Burg for Info-ZIP Last change: 14 August 1999 (v2. which inspired this project. The current mapping is as follows: 1 (success) for normal exit.3) 9 . the structure layout returned by the 32-bit DosQueryPathInfo() is a bit different. and (0x7fff000? + 16∗normal_zip_exit_status) for all errors. Strictly confidential and proprietary ZIP ( 1L ) 14 15 16 18 error writing to a file zip was unable to create a file to write to bad command line parameters zip could not open a specified file to read VMS interprets standard Unix (or PC) return values as other. type "set file type fixed" on the Vax. If you do not use encryption and use regular disk files. zip hangs for file specification that uses DECnet syntax foo::∗. IN NO EVENT WILL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES RESULTING FROM THE USE OF THIS SOFTWARE. you do not have to care about this problem. where the ‘?’ is 0 (warning) for zip value 12. AUTHORS Copyright (C) 1990-1997 Mark Adler. When transfering from MSDOS to Vax. such as those including an exclamation mark or a hash sign. the amount of Extended Attributes displayed by DIR is (for compatibility) the amount returned by the 16-bit version of DosQueryPathInfo(). John Bush and Paul Kienitz. type "set file type block" on the Vax. Under VMS. Therefore the value reported by zip (which uses this 32-bit-mode size) differs from that reported by DIR.3 must not be updated by zip 1. ZIP AND ITS ASSOCIATED UTILITIES ARE PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND. the make options used to compile it see zip–v ). For bug reports. Others can be converted using Rahul Dhesi’s BILF program. that it is not sold for profit.1 to produce zip files which can be extracted by PKUNZIP 1. and 4 (fatal error) for the remaining ones. Byrne for his Shrink.

Rich Wales. David Kirschbaum.who) without whose tireless testing and bug-fixing efforts a portable zip would not have been possible.3) 10 . and most importantly. Rodgers. Hunter Goatley and Mark Adler for providing a mailing list and ftp site for the Info-ZIP group to use.Misc. to Keith Petersen. The manual page was rewritten for UNIX by R. Reference Manual Pages Property of BladeLogic. Strictly confidential and proprietary ZIP ( 1L ) clarifications on the deflate format. Inc. Finally we should thank (blame) the first Info-ZIP moderator. to Haruhiko Okumura and Leonid Broukhis for providing some useful ideas for the compression algorithm. P. Info-ZIP Last change: 14 August 1999 (v2. for getting us into this mess in the first place. to the Info-ZIP group itself (listed in the file infozip. C.

Reference Manual Pages Property of BladeLogic. Inc. . ARGUMENTS All options prior to the ZIP archive filename are passed to egrep(1). zipnote(1L).Misc.] [–x xfile(s) . unzip(1L).z i p . Its output is identical to that of egrep(1). . . zip(1L). zipcloak(1L).] DESCRIPTION zipgrep will search files within a ZIP archive for lines matching the given string or pattern.zip] [file(s) . SEE ALSO egrep(1). o r g / p u b / i n f o z i p / f t p: / / f t p. or g/ pub/ i nf oz i p/ .z i p. i n f o . Strictly confidential and proprietary ZIPGREP ( 1L ) NAME zipgrep – search files in a ZIP archive for lines matching a pattern SYNOPSIS zipgrep [egrep_options] pattern file[. i nf o. . Info-ZIP Last change: 14 January 2001 1 . funzip(1L). AUTHORS or zipgrep was written by Jean-loup Gailly. zipsplit(1L) URL The Info-ZIP home page is currently at h t t p : / / www. zipinfo(1L). zipgrep is a shell script and requires egrep(1) and unzip(1L) to function.

ARGUMENTS file[. particularly under Unix and VMS. the specification is assumed to be a literal filename. z i p is appended. Only the filename can be a wildcard.zip] [file(s) . Info-ZIP Last change: 14 January 2001 (v2. anything except the characters inside the brackets is considered a match).] [–x xfile(s) . Identical to the –s output. a link to it). ranges are specified by a beginning character. encryption status. trailers and zipfile comments are never printed. As with –m except that the compressed size (in bytes) is printed instead of the compression ratio. version and operating system or file system of compressing program. The archive name. list zipfile info in long Unix ‘‘l s –l ’’ format. .] matches a sequence of 0 or more characters matches exactly 1 character matches any single character found inside the brackets. Wildcard expressions are similar to Unix egrep(1) (regular) expressions and may contain: ∗ ? [. Inc. as well. See DETAILED DESCRIPTION below. list zipfile information in verbose.zip] [file(s) .] [–x xfile(s) . The default behavior (with no options) is to list single-line entries for each file in the archive. [file(s)] An optional list of archive members to be processed. be sure to quote expressions that would otherwise be expanded or modified by the operating system. The format is a cross between Unix ‘‘l s –l ’’ and ‘‘u n z i p –v’’ output. see above. one per line. . and an ending character. This option excludes all others. Reference Manual Pages Property of BladeLogic. the path itself cannot. . .zip] Path of the ZIP archive(s). except that the compression factor. then the range of characters within the brackets is comple’) mented (that is. Note that selfextracting ZIP files are supported. see below. If the file specification is a wildcard. headers. . . actual size (in bytes) and total number of files is printed. with header and trailer lines providing summary information for the entire archive. If an exclamation point or a caret (‘!’ or ‘∧ follows the left bracket. each matching file is processed in an order determined by the operating system (or file system). and the like. one per line. however. a hyphen. Note that zipinfo is the same program as unzip (under Unix. Such information includes file access permissions. the suffix .] DESCRIPTION zipinfo lists technical information about files in a ZIP archive. This option may be useful in cases where the stored filenames are particularly long. . on some systems. OPTIONS –1 –2 –s –m –l –v –h list filenames only. (Be sure to quote any character that might otherwise be interpreted or modified by the operating system. . trailers (–t) and zipfile comments (–z). expressed as a percentage. most commonly found on MS-DOS systems.Misc. list zipfile info in short Unix ‘‘l s –l ’’ format. is also listed. It is intended for use in Unix shell scripts. .32) 1 . Again. e x e suffix (if any) explicitly. list header line. and if that also fails. multi-page format. This is the default behavior. list zipfile info in medium Unix ‘‘l s –l ’’ format. . [–x xfile(s)] An optional list of archive members to be excluded from processing. just specify the .] unzip –Z [–12smlvhMtTz] file[. Strictly confidential and proprietary ZIPINFO ( 1L ) NAME zipinfo – list detailed information about a ZIP archive SYNOPSIS zipinfo [–12smlvhMtTz] file[. list filenames only. Regular expressions (wildcards) may be used to match multiple members. type of compression. but allow headers (–h).) If no matches are found. zipinfo support may have been omitted when unzip was compiled.

0 mac 5358 Tl i4:3 4-Dec-91 11:33 longfilename. The second and third fields indicate that the file was zipped under Unix with version 1. ‘l’. the next screenful may be viewed by pressing the Enter (Return) key or the space bar.cmd and . zipinfo doesn’t notice if long lines wrap at the edge of the screen.1 fat 1. and Macintosh. The uncompressed file-size (2802 in this example) is the fourth field. but if the file is encrypted. Strictly confidential and proprietary ZIPINFO ( 1L ) –M pipe all output through an internal pager similar to the Unix more(1) command.defX 11-Aug-91 13:48 perms. These are denoted as follows: -rw-a--r--ahs --w------1. either of which may take on several values.Misc. Inc. Note that the file attributes are listed in VMS format. zipinfo pauses with a ‘‘– –More– –’’ prompt. The default date format is a more standard. depending on whether there is an extended local header and/or an ‘‘extra field’’ associated with the file (fully explained in PKWare’s APPNOTE. Also.hpfs 4096 b.9 of zip. (5) has its archive Info-ZIP Last change: 14 January 2001 (v2. (2) is readable (always true). The example below. and if both exist.R.2660 The last three fields are the modification date and time of the file. thus files that come from MS-DOS PKZIP are always capitalized.com. Thus the file in this example is (probably) a text file. the values for the entire archive are given. MS-DOS. –t –T –z DETAILED DESCRIPTION zipinfo has a number of modes. and their overall compression factor is printed. Since it comes from Unix.0 hpf 1. and its name.btm files are assumed to be so). there is no forwardsearching or editing capability.hhmmss). Unlike Unix more(1). The default behavior is to list files in the following format: -rw-rws--1. The fifth field consists of two characters. zipinfo can be terminated by pressing the ‘‘q’’ key and. The first character may be either ‘t’ or ‘b’. include the archive comment (if any) in the listing. zipinfo notes this fact by capitalizing the character (‘T’ or ‘B’). the file permissions at the beginning of the line are printed in Unix format.32) 2 . is an encrypted binary file with an extra field: RWD. and its behavior can be rather difficult to fathom if one isn’t familiar with Unix ls(1) (or even if one is). Note that the total compressed (data) size will never match the actual zipfile size. is not encrypted. but basically analogous to pragmas in ANSI C--i.R 0. the Enter/Return key. respectively. Reference Manual Pages Property of BladeLogic. . OS/2 or NT with File Allocation Table (FAT) file system. that is also displayed as part of the filename.9 vms 168 Bx shrk 9-Aug-91 19:15 perms. in which case zipinfo assumes the height is 24 lines. human-readable version with abbreviated month names (see examples below). on some systems. On some systems the number of available lines on the screen is not detected. since the latter includes all of the internal zipfile headers in addition to the compressed data.TXT.exe. . .e. and has neither an extra field nor an extended local header associated with it. ‘x’. where the seven subfields indicate whether the file: (1) is a directory.i4:2 14-Jul-91 12:58 EA DATA. If the file was zipped with a stored directory name. the character will be a hyphen (‘–’). SF 17357 bx i8:2 4-May-92 04:02 unzip. if there is an extended local header but no extra field. (3) is writable. print the file dates and times in a sortable decimal format (yymmdd. The second character may also take on four values. The number of files listed. their uncompressed and compressed total sizes. which is presumably the case here.9 unx 2802 t.. or. effectively resulting in the printing of two or more lines and the likelihood that some text will scroll off the top of the screen before being viewed. The case of the filename is respected. indicating that zip believes the file to be text or binary. (4) is executable (guessed on the basis of the extension--.macr File attributes in the first two cases are indicated in a Unix-like format. At the end of a screenful of output. they provide a standard way to include non-standard information in the archive). If neither exists. ‘X’. if the reverse.bat.0644 Extra fields are used for various purposes (see discussion of the –v option below) including the storage of VMS file attributes. on the other hand. list totals for files listed or for all files. Some other possibilities for the host operating system (which is actually a misnomer--host file system is more correct) include OS/2 or NT with High Performance File System (HPFS). if only the totals line is being printed.

and so on. which can override or add to the defaults..stor 21-Aug-91 .i8:3 26-Jun-92 . shrk. defF.81% defX 11-Aug-91 13:48 perms. In such a case the listing format must also be specified explicitly. and 2 or 3 Shannon-Fano trees). and deflating.. and their total compressed size (not including any of zip’s internal overhead). the seconds field is always rounded to the nearest even second. 1. fast. there are four levels of reducing (1 through 4). 1.c 15:34 unzip.rw.) ENVIRONMENT OPTIONS Modifying zipinfo’s default behavior via options placed in an environment variable can be a bit complicated to explain. there is some underlying logic.0% The header line gives the name of the archive. Acorn/Archimedes SparkFS info.. (Try not to laugh. Strictly confidential and proprietary ZIPINFO ( 1L ) bit set. shrinking. re:1.def 17:51 zipinfo. 1. (6) is hidden. 13386 bytes uncompressed. and defS. the file has been compressed by more than a factor of five. The medium format lists the file’s compression factor as a percentage indicating the amount of space that has been ‘‘removed’’: -rw-rws--1.0 hpf 95 b. the header and trailer lines are not listed. normal. defN. yet Unix-like. zipinfo represents these methods and their sub-methods as follows: stor. i4:2.5 unx 2802 t538 defX 910811. Interpretation of Macintosh file attributes is unreliable because some Macintosh archivers don’t store any attributes in the archive. i8:3.rw.134804 perms.0 hpf 98 b.5 unx 2802 t... In addition to individual file information.0 hpf 8753 b. maximum compression).rw.0 hpf 3710 b. four types of imploding (4K or 8K sliding dictionary. 4951 bytes 23:40 Contents 23:33 makefile. imploding.stor 21-Aug-91 5 files. both PKWARE and Info-ZIP versions. The long format gives the compressed file’s size in bytes. In addition. Info-ZIP Last change: 14 January 2001 (v2.. due to zipinfo’s attempts to handle various defaults in an intuitive. there are three ‘‘priority levels’’ of options: the default options.i4:3 26-Jun-92 .Misc. their total uncompressed size. one or more file(s) are provided.i4:3 26-Jun-92 .rw.. Finally. and the type and number of bytes in any stored extra fields. It also lists file comments and the zipfile comment. instead: -rw-rws--1. reducing.2660 Adding the –T option changes the file date and time to decimal format: -rw-rws--1. The medium and long listings are almost identical to the short format except that they add information on the file’s compression. re:2. which can override or add to either of the above. There are six methods known at present: storing (no compression).5 unx 2802 t538 defX 11-Aug-91 13:48 perms. however. and (7) is a system file. a default zipfile listing also includes header and trailer lines: Archive: OS2. environment options. its total size. and the total number of files. if any.) Nevertheless.0 hpf 730 b. manner. Inc. and explicit options given by the user. the compressed data are only 19% of the original size. The verbose listing is mostly self-explanatory. VMS filesystem info. tokenizing (never publicly released). In brief.def compressed: 63.2660 Note that because of limitations in the MS-DOS format used to store file times. and defX. etc. Reference Manual Pages Property of BladeLogic. Currently known types of extra fields include PKWARE’s authentication (‘‘AV’’) info.2660 In this example.zip 5453 bytes 5 files . For Unix files this is expected to change in the next major releases of zip(1L) and unzip. tokn. and four levels of deflating (superfast.os2 15:29 os2unzip. etc. If. the trailer gives the number of files listed. it may be overridden by specifying the –h and –t options explicitly. since –h or –t (or both) in the absence of other options implies that ONLY the header or trailer line (or both) is listed. OS/2 extended attributes. Macintosh resource forks. whereas zipinfo always reports the 32-bit storage. See the EXAMPLES section below for a semi-intelligible translation of this nonsense. (Note that in the case of OS/2 extended attributes--perhaps the most common use of zipfile extra fields--the size of the stored EAs as reported by zipinfo may not match the number given by OS/2’s dir command: OS/2 always reports the number of bytes required in 16-bit format. This behavior is also similar to that of Unix’s ‘‘ls –l’’. 1.rw.32) 3 . the sixth field indicates the compression method and possible sub-method used. 1.

corresponds roughly to the "zipinfo –hst" command (except when individual zipfile members are specified). short-format listing of the first example again. but the one before the ‘t’ is a minus sign. export ZIPINFO setenv ZIPINFO –l set ZIPINFO=–l define ZIPINFO_OPTS "–l" Unix Bourne shell Unix C shell OS/2 or MS-DOS VMS (quotes for lowercase) If.Misc. Nothing was indicated about the header.zip. For compatibility with zip(1L). an explicit –t option was necessary to produce the full listing. either negate the –h and –t options or else specify the contents explicitly: zipinfo ––h–t storage zipinfo storage \∗ (where the backslash is required only if the shell would otherwise expand the ‘∗’ wildcard. unless otherwise specified. however.g. ZIPINFOOPT is also accepted (don’t ask). zipinfo’s concept of ‘‘negative options’’ may be used to override the default inclusion of the line. Info-ZIP Last change: 14 January 2001 (v2. ZIPINFO takes precedence. short-format listing of the complete contents of a ZIP archive storage. the default variable names are ZIPINFO_OPTS for VMS (where the symbol used to install zipinfo as a foreign command would otherwise be confused with the environment variable). when used by themselves or with each other. use –l: zipinfo –l storage To list the complete contents of the archive without header and totals lines. Inc. Reference Manual Pages Property of BladeLogic. use only the archive name as an argument to zipinfo: zipinfo storage To produce a basic. This is accomplished by preceding the undesired option with one or more minuses: e. so the –s option was sufficient. The dual use of hyphens may seem a little awkward. with both header and totals lines. As suggested above. in addition. EXAMPLES To get a basic. including header and totals lines.. in this example. it is necessary to specify the –s option explicitly. To turn off the totals line by default. This behavior is useful when zipinfo is used with a wildcard zipfile specification. the contents of all zipfiles are then summarized with a single command. It is also consistent with the behavior of the Unix command nice(1). includes headers and footers by default. ‘‘–l–t’’ or ‘‘––tl’’. and ZIPINFO for all other operating systems. as in Unix when globbing is turned on--double quotes around the asterisk would have worked as well). unzip’s diagnostic option (–v with no zipfile name) can be used to check the values of all four possible unzip and zipinfo environment variables. use the environment variable (C shell is assumed here): setenv ZIPINFO ––t zipinfo storage To get the full. Since the environment variable specified no footers and that has a higher precedence than the default behavior of –s. Strictly confidential and proprietary ZIPINFO ( 1L ) The default listing format.32) 4 . however. given that the environment variable is set as in the previous example. since the –t option by itself implies that ONLY the footer line is to be printed: setenv ZIPINFO ––t zipinfo –t storage zipinfo –st storage [only totals line] [full listing] The –s option. The first hyphen is the regular switch character. If both ZIPINFO and ZIPINFOOPT are defined. but it’s reasonably intuitive nonetheless: simply ignore the first hyphen and go from there. override any default listing of member files. as noted above. Note that both the –h and –t options. long-format listing (not verbose). like –m and –l. A user who prefers the long-listing format (–l) can make use of the zipinfo’s environment variable to change this default: ZIPINFO=–l. only the header and/or footer are printed. the user dislikes the trailer line.

it is often useful to know the total compressed and uncompressed size.org/pub/infozip/ . TIPS The author finds it convenient to define an alias ii for zipinfo on systems that allow aliases (or. Please refer to the CONTRIBS file in the UnZip source distribution for a more complete list.info-zip. ZipInfo contains pattern-matching code by Mark Adler and fixes/improvements by many others. and the similarity between the outputs of the two commands was intentional. This is intuitively what one would expect when requesting information about a single file. The ii usage parallels the common ll alias for long listings in Unix. and the +6 option tells it to sort on the sixth field after the first one (i. Inc. in medium format.32) 5 . copy/rename the executable. This assumes the default short-listing format. BUGS As with unzip.info-zip. (This is not to say that it will be. zip(1L). zipinfo should detect the true screen geometry on all systems.) SEE ALSO ls(1).e. use the –T option in conjunction with an external sorting utility such as Unix sort(1) (and tail(1) as well. It is usually wise to pipe the output into a filter such as Unix more(1) if the operating system allows it: zipinfo –v storage | more Finally.Misc. AUTHOR Greg ‘‘Cave Newt’’ Roelofs. For multiple files. to see the most recently modified files in the archive. the seventh field). Strictly confidential and proprietary ZIPINFO ( 1L ) To list information on a single file within the archive. the proper sort(1) option would be +7. funzip(1L). only the single line of information about the requested file will be printed.c The specification of any member file. Reference Manual Pages Property of BladeLogic. it fails to detect the wrapping of long lines and may thereby cause lines at the top of the screen to be scrolled off before being read. In addition. on other systems. use the verbose option. zipsplit(1L) URL The Info-ZIP home page is currently at http://www. unzipsfx(1L).. will override the default header and totals lines. in such cases –t may be specified explicitly: zipinfo –mt storage "∗. as noted above. zipnote(1L).[ch]" Mak\∗ To get maximal information about the ZIP archive. specify the filename explicitly: zipinfo –m storage unshrink. Info-ZIP Last change: 14 January 2001 (v2. This requires knowledge of the screen’s width as well as its height.org/pub/infozip/ or ftp://ftp. as in this example. in this example): zipinfo –T storage | sort -n +6 | tail -15 The –n option to sort(1) tells it to sort numerically rather than in ASCII order. if –m or –l is used. zipinfo should detect and treat each occurrence of line-wrap as one additional line printed. The tail(1) command filters out all but the last 15 lines of the listing. unzip(1L). zipinfo’s listing-format behavior is unnecessarily complex and should be simplified. create a link or create a command file with the name ii). Future releases of zipinfo may incorporate date/time and filename sorting as built-in options. zipcloak(1L). zipinfo’s –M (‘‘more’’) option is overly simplistic in its handling of screen output.

gmd.hu/pub/zsh/ zsh 4.hu instead of the primary site.fu–berlin. Zsh has command line editing.org/pub/zsh/ Australia ftp://ftp.4 Last change: October 26.org/pub/zsh/ ftp://ftp. shell functions (with autoloading). and a host of other features.elte.fr/shells/zsh/ Germany ftp://ftp. AUTHOR Zsh was originally written by Paul Falstad <pf@zsh.de/pub/unix/shell/zsh/ Hungary ftp://ftp.elte. 2001 1 .cs.zsh.cena. The development is currently coordinated by Peter Stephenson <pws@zsh.zsh. Of the standard shells.cenatls.dgac.gov. The coordinator can be contacted at <coordinator@zsh.org/pub/zsh/ http://www.elte.org>.uni–trier.dk>.org>. AVAILABILITY Primary site ftp://ftp. Zsh is available from the following anonymous FTP sites. These mirror sites are kept frequently up to date. The sites marked with (H) may be mirroring ftp.dk/pub/unix/shells/zsh/ Finland ftp://ftp.User Commands Property of BladeLogic. zsh most closely resembles ksh but includes many enhancements.zsh.cs. but matters relating to the code should generally go to the mailing list. Strictly confidential and proprietary ZSHALL ( 1 ) NAME zshall – the Z shell meta–man page SYNOPSIS Because zsh contains many features. the zsh manual has been split into a number of sections.funet.ips.au/pub/packages/zsh/ (H) Denmark ftp://sunsite. builtin spelling correction.de/packages/zsh/ ftp://ftp. a history mechanism.zsh. This manual page includes all the separate manual pages in the following order: zshmisc Anything not fitting into the other sections zshexpn Zsh command and parameter expansion zshparam Zsh parameters zshoptions Zsh options zshbuiltins Zsh built–in functions zshzle Zsh command line editing zshcompwid Zsh completion widgets zshcompsys Zsh completion system zshcompctl Zsh completion control zshmodules Zsh loadable modules zshzftpsys Zsh built–in FTP client DESCRIPTION Zsh is a UNIX command interpreter (shell) usable as an interactive login shell and as a shell script command processor.de/pub/unix/shells/zsh/ (H) ftp://ftp.fi/pub/unix/shells/zsh/ France ftp://ftp. Zsh is now maintained by the members of the zsh–workers mailing list <zsh–workers@sunsite.0. Inc.org>.cs.hu/pub/zsh/ http://www. programmable command completion.org/pub/zsh/ http://www.

se/pub/unix/zsh/ UK ftp://ftp.ro/pub/mirrors/ftp.no/pub/unix/shells/zsh/ Poland ftp://sunsite.dk> Announcements about releases.4 Last change: October 26. (moderated) <zsh–users@sunsite.ac.com/pub/shells/zsh/ ftp://foad. <zsh–announce–subscribe@sunsite.it/pub/Unix/pkgs/shell/zsh/ Japan ftp://ftp. major changes in the shell and the monthly posting of the Zsh FAQ.edu/pub/packages/shells/zsh/ ftp://ftp.net.User Commands Property of BladeLogic.zsh.org/pub/zsh/ http://foad.org/pub/zsh/ ftp://ftp. zsh 4.net/pub/mirrors/ftp.org.uk/zsh/ ftp://sunsite.dk> <zsh–announce–unsubscribe@sunsite.nisiq.dk> Hacking.ac. To subscribe or unsubscribe.unina.dk> User discussions.roedu.kappa.rge.0. development.siol.org/zsh/ MAILING LISTS Zsh has 3 mailing lists: <zsh–announce@sunsite.uiuc.org/pub/zsh/ Slovenia ftp://ftp.ac.dk> <zsh–users–subscribe@sunsite.il/pub/zsh/ Italy ftp://ftp.zsh.pl/pub/unix/shells/zsh/ Romania ftp://ftp. All submissions to zsh–users are automatically forwarded to zsh–workers.lut.dk> <zsh–users–unsubscribe@sunsite.math. 2001 2 .technion.hu/pub/packages/zsh/ Israel ftp://ftp.dk> <zsh–workers–unsubscribe@sunsite.liu. bug reports and patches.icm. All submissions to zsh–announce are automatically forwarded to zsh–users. Inc. send mail to the associated administrative address for the mailing list.ne.dk> YOU ONLY NEED TO JOIN ONE OF THE MAILING LISTS AS THEY ARE NESTED.uk/packages/zsh/ USA ftp://uiarchive.jp/pub/shell/zsh/ Norway ftp://ftp. Strictly confidential and proprietary ZSHALL ( 1 ) ftp://ftp.kfki.math.lysator.il/pub/zsh/ http://www.edu.net/mirrors/zsh/ Sweden ftp://ftp.technion.net/pub/shells/zsh/ (H) ftp://ftp.win.uit. <zsh–workers@sunsite.dk> <zsh–workers–subscribe@sunsite.

rather than being used as a positional parameter. Force shell to be interactive. The mailing lists are maintained by Karsten Thygesen <karthy@kom. Force shell to read commands from the standard input.org/FAQ/. Like other option syntaxes.dk>. Options may be specified by name using the –o option. and thus ignored. ‘zsh – –sh–word–split’ invokes zsh with the SH_WORD_SPLIT option turned on. Inc.unix.org>.zsh. –o acts like a single–letter option. or at http://www. At the time of writing. zsh –x –o shwordsplit scr runs the script scr.org>. available at http://www. If any further arguments are given. It is intended to complement the manual. INVOCATION OPTIONS The following flags are interpreted by the shell when invoked to determine where the shell will read commands from: –c Take the first argument as a command to execute.org>. Strictly confidential and proprietary ZSHALL ( 1 ) If you have problems subscribing/unsubscribing to any of the mailing lists. the word ‘hierographic’ does not exist).org>. If the –s flag is not present and an argument is given.org/mla/.dk/Guide/. the archives can be accessed via the administrative addresses listed above.shell and the zsh–announce mailing list. for example.4 Last change: October 26. For example. the first argument is taken to be the pathname of a script to execute. rather than being treated like ‘–x – –shwordsplit’. maintained by Peter Stephenson <pws@zsh. –o can be stacked up with preceding single–letter options. For further options.User Commands Property of BladeLogic. but takes a following string as the option name.org>. The contact address for FAQ–related matters is <faqmaster@zsh. The contact address for web–related matters is <webmaster@zsh. 2001 3 . setting the XTRACE option by the corresponding letter ‘–x’ and the SH_WORD_SPLIT option by name. with explanations and hints on issues where the manual can be cabbalistic. ‘–’ characters in the option name are permitted: they are translated into ‘_’. so for example ‘–x–shwordsplit’ is an error. THE ZSH WEB PAGE THE ZSH USERGUIDE A userguide is currently in preparation. chapters dealing with startup files and their contents and the new completion system were essentially complete. zsh 4. It can be viewed in its current state at http://zsh. Options may be turned off by name by using +o instead of –o.0. ‘– –option–name’. send mail to <listmaster@zsh. so for example ‘–xo shwordsplit’ or ‘–xoshwordsplit’ is equivalent to ‘–x –o shwordsplit’.zsh. This is maintained by Karsten Thygesen <karthy@zsh. or downright mystifying (for example.zsh. Unlike other option syntaxes. thus ‘+–sh–word–split’ is equivalent to ‘– –no–sh–word–split’. It is regularly posted to the newsgroup comp. THE ZSH FAQ Zsh has a list of Frequently Asked Questions (FAQ). –i –s After the first one or two arguments have been appropriated as described above.sunsite. GNU–style long options cannot be stacked with any other options. see zshoptions(1).org/. The latest version can be found at any of the Zsh FTP sites. Options may also be specified by name in GNU long option style. maintained by Geoff Wing <gcw@zsh.org>. of SunSITE Denmark. There is also a hypertext archive. hierographic. rather than reading commands from a script or standard input. the first one is assigned to $0. When this is done. The mailing lists are archived. the remaining arguments are assigned to the positional parameters. options can be turned off by replacing the initial ‘–’ with a ‘+’. So. Zsh has a web page which is located at http://www. which are common to invocation and the set builtin.auc.

profile. PROMPT_BANG. The following are disabled in restricted mode: • • changing directories with the cd builtin changing or unsetting the PATH. NO_PROMPT_PERCENT. COMPATIBILITY Zsh tries to emulate sh or ksh when it is invoked as sh or ksh respectively. Except when the sh/ksh emulation single–letter options are in effect. then exits successfully. but note the GNU–style option form discussed above. mailpath. fignore. it looks at the first letter of the name by which it was invoked. where ‘– –shwordsplit’ is permitted and does not end option processing. command substitution. Additionally the BSD_ECHO and IGNORE_BRACES options are set if zsh is invoked as sh. UID. argv. a lone ‘–’ (or ‘+’) as an argument by itself ends option processing. NO_EQUALS. the option ‘–b’ (or ‘+b’) ends option processing.0. GLOB_SUBST. SH_FILE_EXPANSION. PROMPT3. RM_STAR_SILENT. psvar. Login shells source /etc/profile followed by $HOME/. Options are not permitted to be stacked after ‘– –’ (so ‘–x–f’ is an error). Note that the PRIVILEGED option also affects the execution of startup files. PROMPT. 2001 4 . NO_BANG_HIST. Firstly. SH_OPTION_LETTERS. RESTRICTED SHELL When the basename of the command used to invoke zsh starts with the letter ‘r’ or the ‘–r’ command line option is supplied at invocation. the shell becomes restricted. KSH_ARRAYS. it sends to standard output a list of options that can be used when invoking the shell. PROMPT_SUBST and SINGLE_LINE_ZLE options are set if zsh is invoked as ksh. Inc. The value of ENV is subjected to parameter expansion. NO_BG_NICE. Also. EUID.4 Last change: October 26. path. NO_NOMATCH. which may be specified on its own (which is the standard POSIX usage) or may be stacked with preceding options (so ‘–x–’ is equivalent to ‘–x – –’). ‘– –help’ is also handled. HISTFILE. the KSH_OPTION_PRINT. MANPATH. except that further single–letter options can be stacked after the ‘–b’ and will take effect as normal. LD_PRELOAD and LD_AOUT_PRELOAD parameters specifying command names containing / specifying command pathnames using hash redirecting output to files using the exec builtin command to replace the shell with another command using jobs –Z to overwrite the shell process’ argument and environment space • • • • • zsh 4. if invoked as su (which happens on certain systems when the shell is executed by the su command). PROMPT2. a special option ‘– –’ (or ‘+–’). PROMPT4. Option processing may be finished. INTERACTIVE_COMMENTS. The usual zsh startup/shutdown scripts are not executed. ‘–b’ is like ‘– –’. NO_NOTIFY. and if that is ‘s’ or ‘k’ it will emulate sh or ksh. manpath. SH_WORD_SPLIT. USERNAME. allowing following arguments that start with ‘–’ or ‘+’ to be treated as normal arguments. The following options are set if the shell is invoked as sh or ksh: NO_BAD_PATTERN. then exits successfully. SHELL. LOCAL_OPTIONS. SH_GLOB. status. fpath. excluding any initial ‘r’ (assumed to stand for ‘restricted’). HISTSIZE. Emulation mode is determined after stripping the letter ‘r’ from the invocation name. EGID. prompt. MODULE_PATH. it sends to standard output the shell’s version information. POSIX_BUILTINS. LD_LIBRARY_PATH. path. NO_HUP. cdpath. HISTCHARS. and arithmetic expansion before being interpreted as a pathname. In sh and ksh compatibility modes the following parameters are not special and not initialized by the shell: ARGC. If the ENV environment variable is set on invocation. Furthermore. Strictly confidential and proprietary ZSHALL ( 1 ) The special GNU–style option ‘– –version’ is handled. $ENV is sourced after the profile scripts. in two ways.User Commands Property of BladeLogic. Secondly. the shell will try to find an alternative name from the SHELL environment variable and perform emulation based on that. watch. NO_MULTIOS. LD_AOUT_LIBRARY_PATH. NO_GLOBAL_EXPORT. GID. NO_FUNCTION_ARGZERO. module_path. more precisely.

It is also possible for a file in $ZDOTDIR to re–enable GLOBAL_RCS. this cannot be overridden.e. commands are read from /etc/zprofile and then $ZDOTDIR/. the files $ZDOTDIR/. Both RCS and GLOBAL_RCS are set by default.zshenv. it is important that it be kept as small as possible. If ZDOTDIR is unset. commands are read from /etc/zshrc and then $ZDOTDIR/. Then. This immediately enables all the restrictions described above even if the shell still has not processed all startup files. Strictly confidential and proprietary ZSHALL ( 1 ) • • using the ARGV0 parameter to override argv[0] for external commands turning off restricted mode with set +r or unsetopt RESTRICTED These restrictions are enforced after processing the startup files.. Restricted mode can also be activated any time by setting the RESTRICTED option. the former affects all startup files.. then . if the shell terminates due to exec’ing another process. In particular. As /etc/zshenv is run for all instances of zsh. depending on the installation. /etc/zlogin and $ZDOTDIR/.User Commands Property of BladeLogic. any subsequent startup file(s) of the corresponding type will not be read.4 Last change: October 26. Note also that the RCS option affects the saving of history files. if RCS is unset when the shell exits.’ so that it will not be executed when zsh is invoked with the ‘–f’ option. i.0. When a login shell exits.zlogin are read. These are also affected by the RCS and GLOBAL_RCS options. it is a good idea to put code that does not need to be run for every single shell behind a test of the form ‘if [[ –o rcs ]]. Subsequent behaviour is modified by the RCS and GLOBAL_RCS options. if the shell is interactive. If a compiled file exists (named for the original file plus the . Commands are then read from $ZDOTDIR/. Inc. If one of the options is unset at any point. Any of these files may be pre–compiled with the zcompile builtin command (see zshbuiltins(1)). the logout files are not read. Those files listed above as being in /etc may be in another directory. or an implicit exit by reading end–of–file from the terminal.zshrc. The startup files should set up PATH to point to a directory of commands which can be safely invoked in the restricted environment. If the shell is a login shell.zprofile. the compiled file will be used instead. no history file will be saved.zwc extension) and it is newer than the original file.zlogout and then /etc/zlogout are read. They may also add further restrictions by disabling selected builtins. Finally. if the shell is a login shell. 2001 5 . However. STARTUP/SHUTDOWN FILES Commands are first read from /etc/zshenv. while the second only affects those in the /etc directory. This happens with either an explicit exit via the exit or logout commands. zsh 4. HOME is used instead.

the shell executes the last pipeline in it in the background. echo foo  sed ’s/foo/bar/’ is a pipeline. and does not wait for it to finish (note the difference from other shells which execute the whole sublist in the background). the parameter assignments modify the environment of the command when it is executed. If a command name is given. If a pipeline is preceded by ‘coproc’. For example. ‘&’. If job control is active. A pipeline is either a simple command. A sublist is either a single pipeline. where the output (‘foo’ plus a newline) of the first command will be passed to the input of the second. which will alter how the command is interpreted. the shell waits for it to finish before executing the next sublist. the value of the sublist is that return value.. The first word is the command to be executed.’. and the remaining words. The shell can read from or write to the coprocess by means of the ‘>&p’ and ‘<&p’ redirection operators or with ‘print –p’ and ‘read –p’. the commands in a shell function form a special sort of list. Strictly confidential and proprietary ZSHMISC ( 1 ) NAME zshmisc – everything and then some SIMPLE COMMANDS & PIPELINES A simple command is a sequence of optional parameter assignments followed by blank–separated words. When a sublist is terminated by ‘. ‘&!’. The value of the sublist is the value of the last pipeline executed. it is executed as a coprocess. A pipeline cannot be preceded by both ‘coproc’ and ‘!’.. Both operators have equal precedence and are left associative. If two pipelines are separated by ‘’. which connects both the standard output and the standard error of the command to the standard input of the next. or a newline. or a sequence of two or more simple commands where each command is separated from the next by ‘’ or ‘&’. dmesg  grep panic && print yes is a sublist consisting of two pipelines.. For example. ‘&’. zsh 4. this is implied wherever the word ‘list’ appears in later descriptions. For example. are arguments to the command. A backgrounded pipeline returns a status of zero. the second pipeline is executed only if the first succeeds (returns a zero value).User Commands Property of BladeLogic. This terminator may optionally be omitted from the last sublist in the list when the list appears as a complex command inside ‘(. or 128 plus the signal number if terminated by a signal. 2001 1 . the coprocess can be treated in other than input and output as an ordinary background job.. else it is the value returned by the print (almost certainly zero). Inc. the second is executed only if the first fails (returns a nonzero value). or a sequence of two or more pipelines separated by ‘&&’ or ‘’.0. in which each sublist is terminated by ‘. a list can be seen as a set of any shell commands whatsoever. A list is a sequence of zero or more sublists. a two–way pipe is established between it and the parent shell. For example. or ‘&!’. ‘&’ is shorthand for ‘2>&1 ’. These modifiers are shell builtin commands with the exception of nocorrect which is a reserved word. If it does not. unless the pipeline is preceded by ‘!’ in which case the value is the logical inverse of the value of the last command.’ or newline. the second just a simple command which will be executed if and only if the grep command returns a zero value. The value of a simple command is its exit status. ‘&’.}’.4 Last change: October 26. Where commands are separated by ‘’.)’ or ‘{. if any. including the complex commands below. echo foo is a simple command with arguments. More generally. If a sublist is terminated by a ‘&’. with optional redirections interspersed. PRECOMMAND MODIFIERS A simple command may be preceded by a precommand modifier. the standard output of the first command is connected to the standard input of the next. If two pipelines are separated by ‘&&’. The value of a pipeline is the value of the last command.

. If this line is empty. term ] do list done where term is one or more newline or . If the in word is omitted. the selection list is printed again. ) list (. nocorrect Spelling correction is not done on any of the words.. This must appear before any other precommand modifier. as it is interpreted immediately.. each preceded by a number. rather than a shell function or builtin.. Otherwise. list is then executed n times. See the section ‘Filename Generation’. [expr2] .& rather than . and if it returns a zero exit status. If each elif list returns nonzero.. the following list is also executed. to terminate the words. noglob Filename generation (globbing) is not performed on any of the words. If the in word is omitted. The form of the patterns is the same as that used for filename generation. case word in [ [(] pattern [  pattern ] . until list do list done Execute the do list as long as until list returns a nonzero exit status. select name [ in word . zsh 4.4 Last change: October 26. use the positional parameters. for name [ in word . the value of the parameter name is set to null. This continues until either a list is terminated with . exec The command is executed in the parent shell without forking.. the then list is executed. or else standard input. which must evaluate to a number n. list is executed for each selection until a break or end–of–file is encountered. term ] do list done where term is at least one newline or .. and set the parameter name to each of them in turn. the then list is executed.. command The command word is taken to be the name of an external command. It has no effect in non–interactive shells. If the list that is executed is terminated with . then it behaves as if it evaluated to 1.. The PROMPT3 prompt is printed and a line is read from the line editor if the shell is interactive and that is active. repeat word do list done word is expanded and treated as an arithmetic expression. esac Execute the list associated with the first pattern that matches word. If this line consists of the number of one of the listed words. the elif list is executed and if its value is zero. Print the set of words.. Expand the list of words. then the parameter name is set to the word corresponding to this number.... COMPLEX COMMANDS A complex command in zsh is one of the following: if list then list [ elif list then list ] . use the positional parameters instead of the words. before any parsing is done. builtin The command word is taken to be the name of a builtin command. Strictly confidential and proprietary ZSHMISC ( 1 ) – The command is executed with a ‘–’ prepended to its argv[0] string. executing list each time. If any expression is omitted.. the else list is executed.&) ] . for (( [expr1] . [expr3] )) do list done The arithmetic expression expr1 is evaluated first (see the section ‘Arithmetic Evaluation’). while list do list done Execute the do list as long as the while list returns a zero exit status. rather than a shell function or external command. list is executed and the arithmetic expression expr3 evaluated. The contents of the line read from standard input is saved in the parameter REPLY. The arithmetic expression expr2 is repeatedly evaluated until it evaluates to zero and when non–zero.User Commands Property of BladeLogic.. if any. [ else list ] fi The if list is executed. or the esac is reached. Otherwise.0. 2001 2 .. Inc.

. [[ exp ]] Evaluates the conditional expression exp and return a zero exit status if it is true. Execute list. if list sublist A short form of the alternate ‘if’. [expr3] )) sublist A short form of the arithmetic for command.. The versions in the previous section should be preferred instead. If the option SH_GLOB is set for compatibility with other shells.. For the for.0.User Commands Property of BladeLogic. term ] sublist where term is at least one newline or . multiple words are usually only useful for setting traps.. else the end of the test will not be recognized. since the test is not suitably delimited. Define a function which is referenced by any one of word. repeat.. for (( [expr1] . otherwise.. See the section ‘Conditional Expressions’ for a description of exp. The rules mean that if [[ –o ignorebraces ]] { print yes } works. Strictly confidential and proprietary ZSHMISC ( 1 ) ( list ) { list } Execute list in a subshell. then whitespace may appear between between the left and right parentheses when there is a single word. These particular versions of complex commands should be considered deprecated and may be removed in the future. such as by ‘[[ .. See the section ‘Functions’. case and select commands no such special form for the arguments is necessary.. If pipeline is omitted. for name ( word .. function word . () [ term ] command where term is one or more newline or .. in both these cases the test part of the loop must also be suitably delimited. The same limitations on the form of list apply as for the previous form... while and until commands. Normally. () [ term ] { list } word . if list { list } [ elif list { list } ] . [ else { list } ] An alternate form of if.. print statistics about the shell process and its children. zsh 4. Inc.. time [ pipeline ] The pipeline is executed. the parentheses will be treated as forming a globbing pattern in that case. and timing statistics are reported on the standard error in the form specified by the TIMEFMT parameter. The body of the function is the list between the { and }.. For the if. Another short form of for. ALTERNATE FORMS FOR COMPLEX COMMANDS Many of zsh’s complex commands have alternate forms. The short versions below only work if sublist is of the form ‘{ list }’ or if the SHORT_LOOPS option is set. 2001 3 . ))’.. only one word is provided. ]]’ or ‘(( . for name [ in word .. but if true { # Does not work! print yes } does not. ) sublist A short form of for.. but the other condition (the special form of sublist or use of the SHORT_LOOPS option) still applies. Traps set by the trap builtin are reset to their default values while executing list. [expr2] . [ () ] [ term ] { list } word .4 Last change: October 26.

a word beginning with the third character of the histchars parameter (‘#’ by default) causes that word and all the following characters up to a newline to be ignored. made to stand for itself) by preceding it with a ‘\’. ‘" ’.&) ] . RESERVED WORDS The following words are recognized as reserved words when used as the first word of a command unless quoted or disabled using disable –r: do done esac then elif else fi for case if while function repeat time until select coproc nocorrect foreach end ! [[ { } Additionally. and ‘\’ quotes the characters ‘\’. or in interactive shells with the INTERACTIVE_COMMENTS option set. ) list end Another form of for.... But there is nothing to prevent an alias being defined for \foo as well. print ’’’’ outputs nothing apart from a newline if RC_QUOTES is not set. If the text ends with a space. \foo. Inc. ‘}’ is recognized in any position if the IGNORE_BRACES option is not set. repeat word sublist This is a short form of repeat. 2001 4 . Strictly confidential and proprietary ZSHMISC ( 1 ) foreach name ( word . ‘‘’. All characters enclosed between a pair of single quotes (’’) that is not preceded by a ‘$’ are quoted. An alias is defined using the alias builtin.. e. A literal ‘’’ character can be included in the string by using the ‘\’’ escape. and ‘$’. it is replaced by the text of the alias if it is in command position (if it could be the first word of a simple command). } An alternative form of case.g. Alias expansion is done on the shell input before any other expansion except history expansion.4 Last change: October 26. QUOTING A character may be quoted (that is. ) list (. ALIASING Every token in the shell input is checked to see if there is an alias defined for it. zsh 4. For example. Therefore.0. select name [ in word term ] sublist where term is at least one newline or . global aliases may be defined using the –g option to that builtin. and the resulting string is considered to be entirely quoted.. parameter and command substitution occur.User Commands Property of BladeLogic. if an alias is defined for the word foo. Note the limitations on the form of list mentioned above. alias expansion may be avoided by quoting part of the word. Note the limitations on the form of list mentioned above. case word { [ [(] pattern [  pattern ] . in which case a pair of single quotes are turned into a single quote.. A string enclosed between ‘$’’ and ‘’’ is processed the same way as the string arguments of the print builtin... but one single quote if it is set.. the next word in the shell input is treated as though it were in command position for purposes of alias expansion. while list { list } An alternative form of while. A single quote cannot appear within single quotes unless the option RC_QUOTES is set. A short form of select. until list { list } An alternative form of until. ‘\’ followed by a newline is ignored. Inside double quotes (" " ). or if the alias is global. If so. COMMENTS In noninteractive shells.

) Redirects both standard output and standard error (file descriptor 2) in the manner of ‘> word’. and the CLOBBER option is unset.User Commands Property of BladeLogic. then the default standard input for the command is the empty file /dev/null. <& number >& number The standard input/output is duplicated from file descriptor number (see dup2(2)). it is truncated to zero length. > word >! word Same as >. If the result of substitution on word produces more than one filename. <<[–] word The shell input is read up to a line that is the same as word. zsh 4. even if CLOBBER is unset. The following may appear anywhere in a simple command or may precede or follow a complex command. called a here–document. If the file does not exist then it is created. ‘$’. Inc. If any character of word is quoted with single or double quotes or a ‘\’. or to an end–of–file. <> word Open file word for reading and writing as standard input. > word Open file word for writing as standard output. no interpretation is placed upon the characters of the document. Strictly confidential and proprietary ZSHMISC ( 1 ) REDIRECTION If a command is followed by & and job control is not active. redirection occurs for each separate filename in turn.4 Last change: October 26. ‘‘’ and the first character of word. The resulting document.0. << < word Perform shell expansion on word and pass the result to standard input. 2001 5 . parameter and command substitution occurs. Expansion occurs before word or digit is used except as noted below. even if CLOBBER is unset. becomes the standard input. < word Open file word for reading as standard input. The input/output from/to the coprocess is moved to the standard input/output. except that the file is truncated to zero length if it exists. <& – >& – <& p >& p Close the standard input/output. No parameter expansion. otherwise. If the file does not exist then it is created. If the file exists. Otherwise. >> word Open file word for writing in append mode as standard output. ‘&>’ can always be used to avoid this ambiguity. This is known as a here–string. command substitution or filename generation is performed on word. If <<– is used. otherwise. If the file does not exist. >& word &> word (Except where ‘>& word’ matches one of the above syntaxes. Otherwise. this causes an error. ‘\’ followed by a newline is removed. then all leading tabs are stripped from word and from the document. the environment for the execution of a command contains the file descriptors of the invoking shell as modified by input/output specifications. and ‘\’ must be used to quote the characters ‘\’. this causes an error. the file is created. except that the file is created if it does not exist. Note that this does not have the same effect as ‘> word 2>&1’ in the presence of multios (see the section below). >> word >>! word Same as >>. and the CLOBBER option is unset.

then the file descriptor referred to is that specified by the digit instead of the default 0 or 1.. 2001 6 . and also pipes it to cat. similar to cat.) echo exit 0 >> ∗ ∗. Thus sort <foo <fubar or even sort <f{oo. MULTIOS If the user tries to open a file descriptor for writing more than once. provided the MULTIOS option is set. Note that a pipe is an implicit redirection. 1>fname 2>&1 first associates file descriptor 1 with file fname. named ‘foo’ and ‘bar’. >>& word >>&! word &>> word &>>! word Redirects both standard output and standard error (file descriptor 2) in the manner of ‘>> word’. as it is by default. For example: .. provided the MULTIOS option is set.4 Last change: October 26. file) association at the time of evaluation.0. the word after a redirection operator is also subjected to filename generation (globbing). Inc. (Without the MULTIOS option. similar to tee. The shell evaluates each redirection in terms of the (file descriptor. If the MULTIOS option is set. The order in which redirections are specified is significant. fname). assuming there’s at least one. it would create an empty file called ‘∗ Similarly. the shell opens the file descriptor as a pipe to a process that copies all the specified inputs to its output in the order specified. the shell opens the file descriptor as a pipe to a process that copies its input to all the specified outputs.User Commands Property of BladeLogic.ubar} is equivalent to ‘cat foo fubar  sort’. If the order of redirections were reversed. Thus :>∗ will truncate all files in the current directory. file descriptor 2 would be associated with the terminal (assuming file descriptor 1 had been) and then file descriptor 1 would be associated with file fname. >>& word &>> word Redirects both standard output and standard error (file descriptor 2) in the manner of ‘>> word’. Thus: date >foo >bar writes the date to two files. you can do ∗’. If one of the above is preceded by a digit.sh If the user tries to open a file descriptor for reading more than once. It then associates file descriptor 2 with the file associated with file descriptor 1 (that is. Note that a pipe is an implicit redirection. thus zsh 4. Strictly confidential and proprietary ZSHMISC ( 1 ) >& word >&! word &> word &>! word Redirects both standard output and standard error (file descriptor 2) in the manner of ‘> word’. thus date >foo  cat writes the date to the file ‘foo’.

each redirection replaces the previous redirection for that file descriptor. If the parameter NULLCMD is not set or the option CSH_NULLCMD is set. If both NULLCMD and READNULLCMD are set. and the file is not a directory.User Commands Property of BladeLogic. Such a function has no body. If the MULTIOS option is unset. AUTOLOADING FUNCTIONS A function can be marked as undefined using the autoload builtin (or ‘functions –u’ or ‘typeset –fu’). A trap on EXIT set inside a function is executed after the function completes in the environment of the caller. REDIRECTIONS WITH NO COMMAND When a simple command consists of one or more redirection operators and zero or more parameter assignments. Functions are executed like commands with the arguments passed as positional parameters. all files redirected to are actually opened. an error is caused. Strictly confidential and proprietary ZSHMISC ( 1 ) cat bar  sort <foo is equivalent to ‘cat bar foo  sort’ (note the order of the inputs). NULLCMD and READNULLCMD may refer to shell functions. The shell will execute the specified interpreter on operating systems that do not handle this executable format in the kernel. and write ‘foo’ into baz. Inc. the shell attempts to locate it. Functions can be undefined with the unfunction builtin. /bin/sh is spawned to execute it. the remainder of the first line specifies an interpreter for the program. the shell prints an error message and returns a nonzero exit status. (See the section ‘Command Execution’. Shell functions are read in and stored internally. However. so echo foo > bar > baz when MULTIOS is unset will truncate bar. Otherwise. FUNCTIONS Shell functions are defined with the function reserved word or the special syntax ‘funcname ()’. This is the csh behavior and CSH_NULLCMD is set by default when emulating csh. but no command name. if the parameter NULLCMD is set. COMMAND EXECUTION If a command name contains no slashes. a typical sequence is: zsh 4. Thus < file shows the contents of file on standard output. Otherwise. If the search is unsuccessful. its value will be used as a command with the given redirections. the shell searches for its definition using the elements of the fpath variable. If the program is a file beginning with ‘#!’. Alias names are resolved when the function is read. When the function is first executed. then the value of the latter will be used instead of that of the former when the redirection is an input. If the option SH_NULLCMD is set. If there exists a shell function by that name.0. the builtin ‘:’ is inserted as a command with the given redirections. the shell searches each element of $path for a directory containing an executable file by that name.) Functions execute in the same process as the caller and share all files and present working directory with the caller. If execution fails because the file is not in executable format. with paging if that is a terminal. If there exists a shell builtin by that name. Thus to define functions for autoloading. The default for NULLCMD is ‘cat’ and for READNULLCMD is ‘more’. 2001 7 . Function identifiers can be listed with the functions builtin. This is the default when emulating sh or ksh. it is assumed to be a shell script. the builtin is invoked. The return builtin is used to return from function calls.4 Last change: October 26. zsh can behave in several ways. the function is invoked as described in the section ‘Functions’.

the function itself is not re–executed. first. but only the message ‘This is func’ on the second and subsequent calls. or the file contains only a simple definition of the function. which is expected to contain the definition for function.. the extension was explicitly given by the user). If the KSH_AUTOLOAD option is set. If element already includes a . the search for a definition proceeds with the other two possibilities described below. as the corresponding information is compiled into the latter. func’ with KSH_AUTOLOAD set will produce both messages on the first call. it will produce the initialization message on the first call. } print func is initialized then ‘func. element/function. and a call to the shell function. if more than one of these contains a definition for the function that is sought. which is executed in the context of the function execution. in the parents of directories in fpath for the newer of either a compiled directory or a directory in fpath. including any arguments. with the disadvantage that functions included must be explicitly recompiled by hand before the shell notices any changes. If processing of the file results in the function being re–defined. To force the shell to perform initialization and then call the function defined. and may therefore define local parameters.e. which is expected to contain the definitions for all functions in the directory named element. the shell looks for three possible files. but may also perform initialization. Thus including an element such as ‘/usr/local/funcs. Note that for functions precompiled with the zcompile builtin command the flag –U must be provided when the . If the definition is not found.zwc A file created with the zcompile builtin command. and third. element is searched for the definition of the function without comparing its age to that of other files. in fact. the newer of either a compiled function or an ordinary function definition is used.. the function body (with no surrounding ‘funcname() {. zsh 4. Strictly confidential and proprietary ZSHMISC ( 1 ) fpath=(˜/myfuncs $fpath) autoload myfunc1 myfunc2 . taken to be the definition for function.zwc’ in fpath will speed up the search for functions. This is recommended for the use of functions supplied with the zsh distribution. For each element in fpath. the newest of which is used to load the definition for the function: element.User Commands Property of BladeLogic.zwc extension (i.zwc file is created. at the end. the file’s contents will be executed. The file is treated in the same manner as a directory containing files for functions and is searched for the definition of the function.}’) is taken to be the complete contents of the file.4 Last change: October 26. It is an error if the function is not defined by loading the file. a file found in this way is searched only for the definition of function. For example. This form allows the file to be used directly as an executable shell script. but those are neither loaded nor executed.. the leftmost in the fpath is chosen. The usual alias expansion during reading will be suppressed if the autoload builtin or its equivalent is given the option –U. and the other message on the second and subsequent calls. Otherwise. second.0. the order of searching is.. Without KSH_AUTOLOAD set. This will normally define the function in question. suppose the autoload file func contains func() { print This is func. within a directory. the file should contain initialization code (which will be executed then discarded) in addition to a complete function definition (which will be retained for subsequent calls to the function). It may include other function definitions as well.zwc A file created with zcompile. element/function A file of zsh command text. In summary. there does not need to be any directory named element without the suffix. 2001 8 . Inc.

or when the current function exits if defined inside a function. Strictly confidential and proprietary ZSHMISC ( 1 ) It is also possible to create a function that is not marked as autoloaded. TRAPNAL If defined and non–null... by using ‘autoload –X’ within a shell function. preexec Executed just after a command has been read and is about to be executed. the shell and processes spawned by it will ignore SIGNAL. just before a prompt. the function is not executed if the command occurred in a sublist followed by ‘&&’ or ‘’. If the history mechanism is active (and the line was not discarded from the history buffer). If a function of this form is defined and null. TRAPEXIT Executed when the shell exits. The signal number will be passed as the first parameter to the function.. A true autoloaded function can be identified by the presence of the comment ‘# undefined’ in the body. the string that the user typed is passed as the first argument. because all comments are discarded from defined functions. the functions command outputs ‘builtin autoload –X’ as the body of an autoloaded function. the third argument contains the full text what what is being executed. However. but which loads its own definition by searching fpath. only the final command in a sublist of this type causes the trap to be executed. have special meaning to the shell: chpwd Executed whenever the current working directory is changed. where NAL is a signal name as specified for the kill builtin. the following are equivalent: myfunc() { autoload –X } myfunc args. TRAPZERR Executed whenever a command has a non–zero exit status. otherwise it is an empty string. In fact. TRAPDEBUG Executed after each command. 2001 9 . and unfunction myfunc # if myfunc was defined autoload myfunc myfunc args. this function will be executed whenever the shell catches a signal SIGNAL. use: autoload +X myfunc SPECIAL FUNCTIONS The following functions. periodic If the parameter PERIOD is set. this function is executed every $PERIOD seconds.User Commands Property of BladeLogic. zsh 4. To load the definition of an autoloaded function myfunc without executing myfunc. The actual command that will be executed (including expanded aliases) is passed in two different forms: the second argument is a single–line. For example. Inc. precmd Executed before each prompt.0.4 Last change: October 26. if defined. size–limited version of the command (with things like function bodies elided).. This is done so that eval " $(functions)" produces a reasonable result.

then that job is immediately disowned. Inc. %string Any job whose command line begins with string. Background jobs are normally allowed to produce output. and is not subject to the job control features described here. It normally informs you whenever a job becomes blocked so that no further progress is possible. the forms TRAPNAL() { # code } and trap ’ # code are equivalent. nor when it is continued with bg. If a job is started with ‘&’ or ‘&!’. zsh restores tty modes that were in effect when it was suspended. If the NOTIFY option is not set. When a job is started asynchronously with ‘&’. putting it in the background with the bg command. When a command is suspended and continued later with the fg or wait builtins. The shell will then normally indicate that the job has been ‘suspended’. but this can be disabled by giving the command ‘stty tostop’. There are several ways to refer to jobs in the shell. and print another prompt. printed by the jobs command. whose process ID was 1234. as they are then run in the environment of the calling process. A job being run in the background will suspend if it tries to read from the terminal. zsh 4. Strictly confidential and proprietary ZSHMISC ( 1 ) The functions beginning ‘TRAP’ may alternatively be defined with the trap builtin: this may be preferable for some uses.User Commands Property of BladeLogic. the shell prints a line which looks like: [1] 1234 indicating that the job which was started asynchronously was job number 1 and had one (top–level) process. The shell learns immediately whenever a process changes state. JOBS If the MONITOR option is set. and assigns them small integer numbers. 2001 10 . This (intentionally) does not apply if the command is continued via ‘kill –CONT’.0. If you are running a job and wish to do something else you may hit the key ∧ (control–Z) which sends a Z TSTP signal to the current job: this key may be redefined by the susp option of the external stty command. %+ Equivalent to ‘%%’. After startup. an interactive shell associates a job with each pipeline. A ∧ takes effect immediately and is like an interrupt in that pending output and unread input are Z discarded when it is typed. If you set this tty option. %% Current job. %– Previous job. A job can be referred to by the process ID of any process of the job or by one of the following: %number The job with the given number. it waits until just before it prints a prompt before it informs you. It keeps a table of current jobs. rather than in their own function environment. or run some other commands and then eventually bring the job back into the foreground with the foreground command fg. Apart from the difference in calling procedure and the fact that the function form appears in lists of functions. then background jobs will suspend when they try to produce output like they do when they try to read input. %?string Any job whose command line contains string. it does not have a place in the job table.4 Last change: October 26. You can then manipulate the state of this job.

Otherwise. the rightmost value in the given output base. and the running jobs will be sent a SIGHUP signal. Floating point arithmetic is always double precision. The let builtin command takes arithmetic expressions as arguments. any base specified in this way will be set as the variable’s output arithmetic base as if the option ‘–i base’ to the typeset builtin had been used. and then ‘8#40 16#20’. For integers. 2001 11 .)). For backwards compatibility the form ‘[base]n’ is also accepted." ’. the precision is at least 8 bytes. If you do this or immediately try to exit again. the following statement (( val = 2 + 1 )) is equivalent to let " val = 2 + 1" both assigning the value 3 to the shell variable var and returning a zero status. for example ‘[#16]’. then no base prefix is output. an appropriate base prefix will be output if necessary. It is also possible to specify a base to be used for output in the form ‘[#base]’. zsh 4. so that the value output is valid syntax for input. either use the nohup command (see nohup(1)) or the disown builtin. Integers can be in bases other than 10. the shell is usually compiled to use 8–byte precision where this is available. an alternative form is provided: for any command which begins with a ‘((’. Since many of the arithmetic operators. the last encountered is used. while x (assuming it does not already exist) is implicitly typed by the arithmetic evaluation. The expression has no precedence and if it occurs more than once in a mathematical expression.. y = 32 )) print $x $y outputs first ‘8#40’... For clarity it is recommended that it appear at the beginning of an expression. you will be warned that ‘You have suspended (running) jobs’. because y has been explicitly declared to have output base 16. for example. More precisely. The base# may also be omitted. as well as spaces. This is used when outputting arithmetical substitutions or when assigning to scalar parameters.. in which case base 10 is used. where it acquires the output base 8. To avoid having the shell terminate the running jobs. all the characters until a matching ‘))’ are treated as a quoted expression and arithmetic expansion performed as for an argument of let. When an output base is specified using the ‘[#base]’ syntax. Inc. Strictly confidential and proprietary ZSHMISC ( 1 ) When the monitor mode is on. When you try to leave the shell while jobs are running or suspended. ‘16#ff’ is 255 in hexadecimal). Integers may also be of the form ‘base#n’. the suspended jobs will be terminated.. For example. each is evaluated separately. ‘((. where base is a decimal number between two and thirty–six representing the arithmetic base and n is a number in that base (for example. ARITHMETIC EVALUATION The shell can perform integer and floating point arithmetic. either using the builtin let. SIGNALS The INT and QUIT signals for an invoked command are ignored if the command is followed by ‘&’ and the MONITOR option is not active. if the HUP option is set. As an example: typeset –i 16 y print $(( [#8] x = 32. or via a substitution of the form $((. This can be tested. for example ‘[##16]’. If the # is doubled.User Commands Property of BladeLogic. A leading ‘0x’ or ‘0X’ denotes hexadecimal.4 Last change: October 26. signals have the values inherited by the shell from its parent (but see the TRAPNAL special functions in the section ‘Functions’). but an explicitly defined integer or floating point parameter will not be affected. You may use the jobs command to see what they are. otherwise precision is 4 bytes. If an integer variable is implicitly defined by an arithmetic expression.. if the number appears unchanged. by giving the command ‘print – $(( 12345678901 ))’.0. require quoting. the shell will not warn you a second time.))’ is equivalent to ‘let " . each background job that completes triggers any trap set for CHLD.

OR. The output format can be bypassed by using arithmetic substitution instead of the parameter substitution. XOR  ∧ ?: ternary operator = += –= ∗ /= %= &= ∧ = <<= >>= &&= = ∧ = ∗ ∗= ∗= = ∧ ∗∗ assignment .e. it will be silently rounded down to the next integer. and XOR operators. ‘&&=’.de}crement << >> bitwise shift left. division. ‘&’. ‘#\’ is accepted instead of ‘##’. Arithmetic evaluation is performed on the value of each assignment to a named parameter declared integer in this manner. The decimal point may be the first character of the constant. Named parameters and subscripted arrays can be referenced by name within an arithmetic expression without using the parameter expansion syntax. a standard parameter substitution which gives the length of the parameter foo. The shell currently defines no mathematical functions by default. comma operator The operators ‘&&’. but its use is deprecated. logical NOT. Likewise. ‘∧ ‘%’.4 Last change: October 26. floating point argument. but the exponent character e or E may not. there are two types. precedence. Note that this is different from the expression ‘$#foo’. ‘∧ or ‘\M–\C–x’ gives the A’. subtraction < > <= >= comparison == != equality and inequality && logical AND ∧ logical OR. where the function decides if the args is used as a string or a comma–separated list of arithmetic expressions. zsh 4. {pre. as described for the typeset builtin.0. and associativity of expressions in C. differing only in their output format.post}{in. but ‘$((float))’ uses a generic floating point format.User Commands Property of BladeLogic. ‘’. An arithmetic expression uses nearly the same syntax. ‘<<’. if any operator which requires an integer (‘˜’. but the module zsh/mathfunc may be loaded with the zmodload builtin to provide standard floating point mathematical functions. as it will be taken for a parameter name. ‘’. An expression of the form ‘##x’ where x is any character sequence such as ‘a’. Assigning a floating point number to an integer results in rounding down to the next integer. ((val2 = val1 ∗ 2)) assigns twice the value of $val1 to the parameter named val2. Mathematical functions can be called with the syntax ‘func(args)’. ‘${float}’ uses the defined format. Promotion of integer to floating point values is performed where necessary. Inc. Strictly confidential and proprietary ZSHMISC ( 1 ) Floating point constants are recognized by the presence of a decimal point or an exponent. modulus (remainder) +– addition. i. and ‘=’ are short–circuiting. complement. ASCII value of this character and an expression of the form ‘#foo’ gives the ASCII value of the first character of the value of the parameter foo. An internal integer representation of a named parameter can be specified with the integer builtin. In addition. Note the precedence of the bitwise AND. floating point numbers can be declared with the float builtin. The following operators are supported (listed in decreasing order of precedence): + – ! ˜ ++ – – unary plus/minus. ‘>>’ and their equivalents with assignment) is given a ’. right & bitwise AND ∧ bitwise XOR bitwise OR  ∗∗ ∗∗ exponentiation ∗ / % multiplication. For example. 2001 12 . and only one of the latter two expressions in a ternary operator is evaluated.

true if file exists and is a block special file. the first assignment will cause it to be created as an integer. Each expression can be constructed from one or more of the following unary or binary expressions: –a file –b file –c file –d file –e file –f file –g file –h file –k file true if file exists. A simple fix would be to turn the initialization into ‘f = 0.1’ will always cause the result to be truncated to zero.) –p file –r file –s file –t fd –u file –x file –z string true if length of string is zero. option may be a single character. For example. it will be implicitly typed as integer or float and retain that type either until the type is explicitly changed or until the end of the scope. true if file exists and is a directory. true if file exists and is a regular file. –w file true if file exists and is writable by current process. –n string true if length of string is non–zero.4 Last change: October 26. true if file exists and has its setgid bit set. zsh 4. (note: fd is not optional) true if file exists and has its setuid bit set. (See the section ‘Specifying Options’. in the loop for (( f = 0.User Commands Property of BladeLogic. true if file exists and has size greater than zero. true if file descriptor number fd is open and associated with a terminal device. –o option true if option named option is on.1 )). and consequently the operation ‘f += 0. If file exists and is a directory. –O file true if file exists and is owned by the effective user ID of this process. f < 1. true if file exists and is readable by current process. true if file exists and has its sticky bit set. Strictly confidential and proprietary ZSHMISC ( 1 ) Scalar variables can hold integer or floating point values at different times.0. Inc.0’. there is no memory of the numeric type in this case. so that the loop will fail. true if file exists. true if file exists and is a character special file. true if file exists and is executable by current process. –L file true if file exists and is a symbolic link. do # use $f done if f has not already been declared. true if file exists and is a symbolic link. It is therefore best to declare numeric variables with explicit types. f += 0. If a variable is first assigned in a numeric context without previously being declared. in which case it is a single letter option name. then the current process has permission to search in the directory. 2001 13 . CONDITIONAL EXPRESSIONS A conditional expression is used with the [[ compound command to test attributes of files and to compare strings. –G file true if file exists and its group matches the effective group ID of this process. This can have unforeseen consequences. true if file exists and is a FIFO special file (named pipe).

zsh 4.4 Last change: October 26. string != pattern true if string does not match pattern. string = pattern string == pattern true if string matches pattern. if file is of the form ‘/dev/fd/n’. and no glob qualifiers are allowed. exp1 && exp2 true if exp1 and exp2 are both true. exp1 –lt exp2 true if exp1 is numerically less than exp2. exp1 –ge exp2 true if exp1 is numerically greater than or equal to exp2. pattern metacharacters are active for the pattern arguments. Inc. However. Strictly confidential and proprietary ZSHMISC ( 1 ) –S file true if file exists and is a socket. –N file true if file exists and its access time is not newer than its modification time. string1 > string2 true if string1 comes after string2 based on ASCII value of their characters. exp1 –eq exp2 true if exp1 is numerically equal to exp2. ( exp ) ! exp true if exp is true. exp1  exp2 true if either exp1 or exp2 is true. string1 < string2 true if string1 comes before string2 based on ASCII value of their characters. see zshexpn(1).User Commands Property of BladeLogic. file1 –nt file2 true if file1 exists and is newer than file2. true if exp is false. similar to the effect of double quotes. 2001 14 . In each of the above expressions. The ‘==’ form is the preferred one. then the test applied to the open file whose descriptor number is n. exp1 –ne exp2 true if exp1 is numerically not equal to exp2. file1 –ef file2 true if file1 and file2 exist and refer to the same file. string and pattern arguments. exp1 –gt exp2 true if exp1 is numerically greater than exp2. but there is no special behaviour of ‘/’ nor initial dots. The ‘=’ form is for backward compatibility and should be considered obsolete.0. file1 –ot file2 true if file1 exists and is older than file2. where n is an integer. Normal shell expansion is performed on the file. but the result of each expansion is constrained to be a single word. exp1 –le exp2 true if exp1 is numerically less than or equal to exp2. the patterns are the same as those used for filename generation. even if the underlying system does not support the /dev/fd directory.

Certain escape sequences may be recognised in the prompt string. with seconds. For example. $USERNAME. If the PROMPT_PERCENT option is set. in 12–hour. Current time of day.4 Last change: October 26. the prompt string is first subjected to parameter expansion. but if $PWD has a named directory as its prefix.e. A negative integer specifies leading components. If an integer follows the ‘%’. Present working directory ($PWD).)). Some escapes take an optional integer argument. Strictly confidential and proprietary ZSHMISC ( 1 ) In the forms which do numeric comparison. zsh 4. This type of expansion is also available using the –P option to the print builtin.0. The following escape sequences are recognized: %% %) %d %/ A ‘%’. i. %–1d specifies the first component. %B (%b) Start (stop) boldface mode. Inc. a ‘!’ in the prompt is replaced by the current history event number. PROMPT EXPANSION Prompt sequences undergo a special form of expansion.. The hostname up to the first ‘. that part is replaced by a ‘˜’.’ is printed.. If it starts with $HOME. 2001 15 . If the PROMPT_SUBST option is set. ∗ tests if either file foo or file bar exists. the following: [[ ( –f foo  –f bar ) && $report = y∗ ]] && print File exists. %˜ %h %! %L %M %m %S (%s) Start (stop) standout mode.User Commands Property of BladeLogic. which should appear between the ‘%’ and the next character of the sequence.’. %U (%u) Start (stop) underline mode. A literal ‘!’ may then be represented as ‘!!’. it specifies a number of trailing components of $PWD to show. zero means the whole path. trailing components of the hostname are shown. the expressions exp undergo arithmetic expansion as if they were enclosed in $((. If the PROMPT_BANG option is set. A ‘)’. that part is replaced by a ‘˜’ followed by the name of the directory. am/pm format. With a negative integer. As %d and %/. The full machine hostname. Current time of day in 24–hour format. Current history event number. command substitution and arithmetic expansion. %t %@ %T %∗ ∗ %n Current time of day. if the complete condition is true. The current value of $SHLVL. certain escape sequences that start with ‘%’ are expanded. the message ‘File exists. See zshexpn(1). An integer may follow the ‘%’ to specify how many components of the hostname are desired. in 24–hour format. if the value of the parameter report begins with ‘y’. and if so.

∗ The return code of the last command executed just before the prompt. If there is none.User Commands Property of BladeLogic. A ‘)’ may appear in the false–text as ‘%)’. the shell constructs (like ‘if’ and ‘for’) that have been started on the command line. zero means the full path. True if the current absolute path has at least n elements. in the latter case it will also work non–interactively. with prefix replacement. A negative integer specifies leading components. It does not treat /dev/tty∗ specially.false–text) Specifies a ternary expression. This is most useful for debugging as part of $PS4. The line number currently being executed in the script..%} Include a string as a literal escape sequence. for these purposes. %E %# %v %{. sourced file. If name starts with /dev/tty this is stripped. The date in yy–mm–dd format. An integer may follow the ‘%’ to specify a number of trailing path components to show. that at least one capability is raised in either the Effective or Inheritable capability vectors. %(x. a ‘%’ if not. %i %w %W %D %D{string} string is formatted using the strftime function.%%)’. like %e but without any preceding space if the day is a single digit.0. the same character is used to separate the text for the ‘true’ result from that for the ‘false’ result. Following the ‘%’ with an integer gives that element of the array. A ‘#’ if the shell is running with privileges. %l %y %? %_ The line (tty) the user is logged in on without /dev/ prefix. or shell function that zsh is currently executing. The value of the first element of the psvar array parameter. Brace pairs can nest. has at least n elements. A negative integer will be multiplied by –1. Equivalent to ‘%(!.true–text. and %K/%L correspond to %k/%l for the hour of the day (24/12 hour clock) in the same way. Three additional codes are available: %f prints the day of the month.#. The status of the parser. whichever was started most recently. The line (tty) the user is logged in on without /dev/ prefix. ˜ / C t True if the current path.e. zero or negative or no integer means print as many as there are. True if the time in minutes is equal to n. this is equivalent to the parameter $0. which defaults to zero. true–text and false–text may both contain arbitrarily–nested escape sequences. is that either the effective user ID is zero. The left parenthesis may be preceded or followed by a positive integer n. The date in day–dd format. zsh 4. if POSIX. The definition of ‘privileged’. including further ternary expressions. Clears to end of line. 2001 16 . except as part of a %–escape sequence. i. Negative integers count from the end of the array. See strftime(3) for more details. The test character x may be any of the following: c . The character following the x is arbitrary. Inc. This is most useful in prompts PS2 for continuation lines and PS4 for debugging with the XTRACE option.4 Last change: October 26. or.. Strictly confidential and proprietary ZSHMISC ( 1 ) %N The name of the script. sourced file. The string within the braces should not change the cursor position.1e capabilities are supported. or shell function given by %N. This separator may not appear in the true–text. The date in mm/dd/yy format. If given an integer number that many strings will be printed.

. The part of the prompt string to be truncated runs to the end of the string. ‘%<<’) marks the end of the range of the string to be truncated while turning off truncation from there on." ’.. note when using print –P. True if at least n characters have already been printed on the current line. True if the SECONDS parameter is at least n. The numeric argument.User Commands Property of BladeLogic. while explicit positive integers have the same effect as for the latter two sequences. deprecated. True if the day of the month is equal to n. zsh 4. True if the day of the week is equal to n (Sunday = 0). which ever comes first. For example. specifies the maximum permitted length of the various strings that can be displayed in the prompt. it will appear in full. True if the exit status of the last command was n. Unless ‘%C’ is used. and the forms with ‘>’ truncate at the right of the string. The third. completely replacing the truncated string.e. True if the month is equal to n (January = 0). tilde contraction is performed first. True if the shell is running with privileges. True if the effective gid of the current process is n. x may be ‘<’ or ‘>’.. if the current directory is ‘/home/pike’.e.0. %<string< %>string> %[xstring] Specifies truncation behaviour for the remainder of the prompt string.. in addition to any backslashes removed by a double quoted string: the worst case is therefore ‘print –P " %<\\\\<<. %c %. Strictly confidential and proprietary ZSHMISC ( 1 ) T d D w ? # g l L S v _ ! True if the time in hours is equal to n. the prompt ’%10<. however. those two characters would be included in the string to be truncated. 2001 17 .e/pike’. followed by a ‘%’ or ‘#’. In particular.g. In this string. the prompt ‘%8<. i.. or to the end of the next enclosing group of the ‘%(’ construct. ‘>’ or ‘]’). followed by a space. a truncation with argument zero (e. the terminating character (‘<’. For example.<%˜%<<%# ’ will print a truncated representation of the current directory. respectively. True if the effective uid of the current process is n. The string will be displayed in place of the truncated portion of any string. note this does not undergo prompt expansion. If the string is longer than the specified truncation length. True if the array psvar has at least n elements. An integer may follow the ‘%’ to get more than one component..4 Last change: October 26. True if at least n shell constructs were started.<%/’ will expand to ‘. which in the third form may appear immediately after the ‘[’. Without the ‘%<<’. %C Trailing component of $PWD. The forms with ‘<’ truncate at the left of the string. may be quoted by a preceding ‘\’. Inc. or to the next truncation encountered at the same grouping level (i. that this must be doubled as the string is also subject to standard print processing. These are deprecated as %c and %C are equivalent to %1˜ and %1/. or in fact any character. truncations inside a ‘%(’ are separate). True if the SHLVL parameter is at least n. form is equivalent to ‘%xstringx’.

then every history reference with no event specification always refers to the previous command. Input lines containing history expansions are echoed after being expanded. but before any other expansions take place and before the command is executed. The ‘!’ can be escaped with ‘\’ or can be enclosed between a pair of single quotes (’’) to suppress its special meaning. each command is saved in the history list. ‘!’ is the event designator for the previous command. the order of expansion is modified for compatibility with sh and ksh. ‘’’ and ‘" ’ are removed. no history expansion occurs. Double quotes will not work for this. 2001 1 . HISTORY EXPANSION History expansion allows you to use words from previous command lines in the command line you are typing. all unquoted occurrences of the characters ‘\’. and may occur anywhere on the command line. so ‘!!:1’ always refers to the first word of the previous command. is always done last. it refers to the previous command. and ‘!!$’ always refers to the last word of the previous command. if CSH_JUNKIE_HISTORY is unset. The history number that you may see in your prompt (see Prompt Expansion in zshmisc(1)) is the number that is to be assigned to the next command. Immediately before execution. then ‘!:1’ and ‘!$’ function in the same manner as ‘!!:1’ and ‘!!$’. Filename Generation This expansion. This simplifies spelling corrections and the repetition of complicated commands or arguments. if it is the only history reference in a command. With CSH_JUNKIE_HISTORY set. Each saved command in the history list is called a history event and is assigned a number. In that case filename expansion is performed immediately after alias expansion. The following sections explain the types of expansion in detail. Alias Expansion Aliases are expanded immediately before the command line is parsed as explained under Aliasing in zshmisc(1). then ‘!:1’ and ‘!$’ refer to the first and last zsh 4. Filename Expansion If the SH_FILE_EXPANSION option is set. the size of which is controlled by the HISTSIZE parameter. It is this expanded form that is recorded as the history event for later references.4 Last change: October 26. By default. Inc. Process Substitution Parameter Expansion Command Substitution Arithmetic Expansion Brace Expansion These five are performed in one step in left–to–right fashion. Conversely. if the option CSH_JUNKIE_HISTORY is set. which is ‘!’ by default. respectively.0. if neither of these designators is present. Overview A history expansion begins with the first character of the histchars parameter. For example. beginning with 1 (one) when the shell starts up. preceding the set of five expansions mentioned above. a history reference with no event designator refers to the same event as any preceding history reference on that command line. However. history expansions do not nest. The one most recent command is always retained in any case. Strictly confidential and proprietary ZSHEXPN ( 1 ) NAME zshexpn – zsh expansion and substitution DESCRIPTION The following types of expansions are performed in the indicated order in five steps: History Expansion This is performed only in interactive shells. After these expansions. commonly referred to as globbing. Following this history character is an optional event designator (see the section ‘Event Designators’) and then an optional word designator (the section ‘Word Designators’).User Commands Property of BladeLogic.

Modifiers After the optional word designator.0. The nth argument. The word matched by (the most recent) ?str search. or a null value if there are none. zsh 4. The first argument. That is. newline. A ‘:’ usually separates the event specification from the word designator. ∗’. A less convenient but more comprehensible form of command history support is provided by the fc builtin.User Commands Property of BladeLogic. Anything else results in an error. ‘=’ or ‘(’. the history mechanism is temporarily disabled until the current list (see zshmisc(1)) is fully parsed. 1. Strictly confidential and proprietary ZSHEXPN ( 1 ) words. this expansion repeats the previous command. each preceded by a ‘:’. and only when used after a !? expansion (possibly in an earlier command). although the error may not be the most obvious one. ∗’ Note that a ‘%’ word designator works only when used in one of ‘!%’. A range of words. The trailing ‘?’ is necessary if this reference is to be followed by a modifier or followed by any text that is not to be considered part of str. respectively. Event Designators An event designator is a reference to a command–line entry in the history list.} Refer to the current command line typed in so far.4 Last change: October 26. Like ‘x∗ but omitting word $. 2001 2 . the sequence ‘∧ bar∧ is foo∧ ’ synonymous with ‘!!:s∧ bar∧ hence other modifiers (see the section ‘Modifiers’) may follow the final foo∧ ’. Word Designators A word designator indicates which word or words of a given command line are to be included in a history reference. These modifiers also work on the result of filename generation and parameter expansion. ! Start a history expansion. Refer to the current command–line minus n. If the shell encounters the character sequence ‘!" ’ in the input. The line is treated as if it were complete up to and including the word before the one with the ‘!#’ reference. The ‘!" ’ is removed from the input. this forms a history reference with no event designator (see the section ‘Overview’). Refer to the most recent command starting with str. Inc. or to the previous command if there is no preceding reference. The last argument. ‘∧ ’. In the list below.. except when followed by a blank. Insulate a history reference from adjacent characters (if necessary). More precisely. 0 n ∧ $ % x–y ∗ x∗ ∗ x– The first input word (command). except where noted. of the same event referenced by the nearest other history reference preceding them on the current command line. remember that the initial ‘!’ in each item may be changed to another character by setting the histchars parameter. x defaults to 0. Refer to the previous command. Refer to command–line n. It may be omitted only if the word designator begins with a ‘∧ ‘$’. Word designators include: ’. you can add a sequence of one or more of the following modifiers. If followed immediately by a word designator (see the section ‘Word Designators’). The character sequence ‘∧ bar’ (where ‘∧ is actually the second character of the histchars parameter) foo∧ ’ repeats the last command.. !! !n !–n !str !?str[?] Refer to the most recent command containing str. By itself. Abbreviates ‘x–$’. replacing the string foo with bar. and any subsequent ‘!’ characters have no special significance. ‘∗ ‘–’ or ‘%’. !# !{. All the arguments. ‘!:%’ or ‘!?str?:%’.

Does not work with parameter expansion. Convert the words to all lowercase. Print the new command but do not execute it. Any character can be used as the delimiter in place of ‘/’. For example. Like s. They are listed here to provide a single point of reference for all modifiers. Works with history expansion and parameter expansion. Remove all but the extension. may be preceded immediately by a g. the substitution is done only for the first string that matches l. leaving the head. or ‘{’ is used as the opening delimiter.0. Inc. is replaced by the text from the left–hand–side l. in the right–hand–side r. The left–hand side of substitutions are not regular expressions. the shell runs process list asynchronously. Unless preceded immediately by a g. though for parameters it is only useful if the resulting text is to be re–evaluated such as by eval. paste <(cut –f1 file1) <(cut –f3 file2)  tee >(process1) >(process2) >/dev/null zsh 4. 2001 3 . Substitute r for l as described below. leaving the root name. w Makes the immediately following modifier work on each word in the string. For arrays and for filename generation. Remove all leading pathname components. Any character can be used instead of the ‘:’. and in filename generation it must be quoted with a backslash. the rightmost ‘?’ in a context scan can similarly be omitted. The following f. ‘]’. In parameter expansion the & must appear inside braces. if ‘(’. Note the same record of the last l and r is maintained across all forms of expansion.User Commands Property of BladeLogic. escaping further substitutions. respectively. opening parentheses are handled specially. Remove one level of quotes from the substituted words. Like q. ‘[’. but character strings. Convert the words to all uppercase. F. F:expr: Like f. This works like ‘basename’.xxx’. Strictly confidential and proprietary ZSHEXPN ( 1 ) h r e t p q Remove a trailing pathname component. If < is used. then the file passed as an argument will be connected to the output of the list process. A null l uses the previous string either from the previous l or from the contextual scan string s from ‘!?s’. You can omit the rightmost delimiter if a newline immediately follows r. or ‘}’. If the form with > is selected then writing on this special file will provide input for list. This works like ‘dirname’. but repeats only n times if the expression expr evaluates to n. PROCESS SUBSTITUTION Each command argument of the form ‘<(list)’. the command argument is the name of the device file corresponding to a file descriptor. Remove a filename extension of the form ‘. leaving the tail. with no colon between. W:sep: Like w but words are considered to be the parts of the string that are separated by sep. A backslash quotes the delimiter character. ‘>(list)’ or ‘=(list)’ is subject to process substitution. The ‘&’ can be quoted with a backslash. if the system supports named pipes (FIFOs). but break into words at whitespace. w and W modifiers work only with parameter expansion and filename generation. the command argument will be a named pipe. Q x l u s/l/r[/] & The s/l/r/ substitution works as follows. In the case of the < or > forms. this applies to each word of the expanded text. Any character can be used instead of the ‘:’. The character ‘&’. Quote the substituted words. see above. f Repeats the immediately (without a colon) following modifier until the resulting word doesn’t change any more. Repeat the previous s substitution. If the system supports the /dev/fd mechanism. the closing delimiter should be ’)’. otherwise.4 Last change: October 26. Only works with history expansion.

then the file passed as an argument will be the name of a temporary file containing the output of the list process. ‘#’ or ‘+’ appearing before ’. ‘˜’. ${i:s/foo/bar/} performs string substitution on the expansion of parameter $i. unconditionally set name to word. and subscript notation to access individual array elements. In the second case. the form of the pattern is the same as that used for filename generation. if any. all of which work with or without braces. In addition to the following operations. some programmes may automatically close the file descriptor in question before examining the file on the command line. ${+name} If name is the name of a set parameter ‘1’ is substituted. so that programmes that expect to lseek (see lseek(2)) on the file will not work. and arithmetic expansion. and sends it to the processes process1 and process2. if the programme does not actually open the file. In the former case. are themselves subject to parameter expansion. one element per word. then the value of each element of name is substituted. command substitution. and the KSH_ARRAYS option is not set. otherwise ‘0’ is substituted. ${name:=word} ${name::=word} In the first form. No field splitting is done on the result unless the SH_WORD_SPLIT option is set. This may be used instead of the < form for a program that expects to lseek (see lseek(2)) on the input file. pastes the results together. Also note that the previous example can be more compactly and efficiently written (provided the MULTIOS option is set) as: paste <(cut –f1 file1) <(cut –f3 file2) \ > >(process1) > >(process2) The shell uses pipes instead of FIFOs to implement the latter two process substitutions in the above example. or any of the characters ‘∧ ‘=’. Note that these patterns. if name is unset or is null then set it to word. ${name:?word} zsh 4. If name is missing.4 Last change: October 26. PARAMETER EXPANSION The character ‘$’ is used to introduce parameter expansions. or underscore that is not to be interpreted as part of name. the subshell attempting to read from or write to the pipe will (in a typical implementation. see the section ‘Filename Generation’. Strictly confidential and proprietary ZSHEXPN ( 1 ) cuts fields 1 and 3 from the files file1 and file2 respectively. ${name:–word} If name is set and is non–null then substitute its value. more complicated forms of substitution usually require the braces to be present. In the expansions discussed below that require a pattern. If name is an array parameter. See zshparam(1) for a description of parameters. of the parameter name is substituted. associative arrays. the value of the parameter is then substituted. otherwise substitute word. which only apply if the option KSH_ARRAYS is not set. The braces are required if the expansion is to be followed by a letter. Inc. In both cases. In addition. different operating systems may have different behaviour) block for ever and have to be killed explicitly. Both the /dev/fd and the named pipe implementation have drawbacks. the shell actually supplies the information using a pipe. in the second form. the name. with KSH_ARRAYS. substitute word.0. along with the replacement text of any substitutions. are a single subscript or any colon modifiers appearing after the name. ${name} The value.User Commands Property of BladeLogic. the colon modifiers described in the section ‘Modifiers’ in the section ‘History Expansion’ can be applied: for example. If = is used. In both forms. the expansion results in one word only. 2001 4 . including arrays. digit. exceptions. this is the first element of an array. particularly if this is necessary for security reasons such as when the programme is running setuid. Otherwise.

then a standard message is printed. but note the usual rule that pattern characters in $opat are not treated specially unless either the option GLOB_SUBST is set. then the shell only checks whether name is set. Strictly confidential and proprietary ZSHEXPN ( 1 ) If name is set and is non–null then substitute its value. then substitute the value of name with the matched portion deleted. If name is an array the matching array elements are removed (use the ‘(M)’ flag to remove the non–matched elements).User Commands Property of BladeLogic.4 Last change: October 26.e. or ‘%’. Note also the effect of the I and S parameter expansion flags below. To quote the final ‘/’ in other cases it should be preceded by two backslashes (i. In the first form.. R. not whether its value is null. the smallest matching pattern is preferred. matching and replacement is performed on each array element separately. otherwise. or if the ‘(@)’ flag or the name[@] syntax is used. Note also that the ‘#’ and ‘%’ are not active if they occur inside a substituted parameter. The first form replaces just the first occurrence. otherwise. in which case the pattern must match at the start of the string. so that expressions like ${name/$opat/$npat} will work. otherwise substitute nothing. Interactive shells instead return to the prompt. then substitute the empty string. a quoted backslash). the ‘˜’ ensures that the text of $sub is treated as a pattern rather than a plain string. however. even at the start. just substitute the value of name. foo=" twinkle twinkle little star" sub=" t∗ rep=" spy" ∗e" print ${foo//${˜sub}/$rep} print ${(S)foo//${˜sub}/$rep} Here. The first ‘/’ may be preceded by a ‘:’. the longest match for t∗ is substituted and the result is ‘spy star’.0. The repl may be an empty string. In the first case. ${name:#pattern} If the pattern matches the value of name. otherwise. in the second form. If the colon is omitted from one of the above expressions containing a colon. the flags M. If word is omitted. in the second form. ${name%pattern} ${name%%pattern} If the pattern matches the end of the value of name. in which case the final ‘/’ may also be omitted. the shortest matches are taken and the result is ‘spy spy lispy star’. in which case it must match at the end of the string. the largest matching pattern is preferred. then substitute the value of name with the matched portion deleted. In the first form. The pattern may begin with a ‘#’. 2001 5 . B. this is not necessary if the ‘/’ occurs inside a substituted parameter. the smallest matching pattern is preferred. just substitute the value of name. the largest matching pattern is preferred. ${name:+word} If name is set and is non–null then substitute word. ${name#pattern} ${name##pattern} If the pattern matches the beginning of the value of name. the second form all occurrences. Both pattern and repl are subject to double–quoted substitution. Inc. ${#spec} zsh 4. E and N are not useful. print word and exit from the shell. ${name/pattern/repl} ${name//pattern/repl} Replace the longest possible match of pattern in the expansion of parameter name by string repl. just substitute the value of name. in which case the match will only succeed if it matches the entire word. otherwise. when name is an array and the substitution is not quoted. or $opat is instead substituted as ${˜opat}. For example. In the following expressions. while in the second ∗e case.

If word splitting is also in effect the $var[N] may themselves be split into different list elements. ${=spec} Perform word splitting using the rules for SH_WORD_SPLIT during the evaluation of spec.) is often useful in combination with the flags described next. Thus it is possible to perform nested operations: ${${foo#head}%tail} substitutes the value of $foo with both ‘head’ and ‘tail’ deleted.... Note that splitting is applied to word in the assignment forms of spec before the assignment to name is performed. ${∧ var} becomes {$var[1].. array expansions of the form foo${xx}bar... ${˜spec} Turn on the GLOB_SUBST option for the evaluation of spec. substitute the number of elements of the result.. turn it off. for example.. If this flag is repeated (as in ‘AA’)..}’.$var[2]. depending on the setting of the PROMPT_PERCENT.... 2001 6 . such as in filename expansion and filename generation and pattern–matching contexts like the right hand side of the ‘=’ and ‘!=’ operators in conditions. Create an array parameter with ‘${.g.}’ or ‘${.) type command substitution is used in place of name above.::=.User Commands Property of BladeLogic. ${(f)" $(foo)" } quotes the result of $(foo). This affects the result of array assignments with the A flag. if the ‘˜’ is doubled. in which case only the part inside is treated as quoted. if the ‘=’ is doubled. and is processed as described in the section ‘Brace Expansion’ below. If this flag is given twice. ‘(q%q%q)’ means the same thing as the more readable ‘(%%qqq)’. must appear to the left of ‘#’ when these forms are combined. the string up to the matching closing parenthesis will be taken as a list of flags. but the flag ‘(f)’ (see below) is applied using the rules for unquoted expansions. E. one surrounding the whole expression. array elements are put into separate words.} in a parameter expansion may also be followed by a subscript expression as described in Array Parameters in zshparam(1). The form with $(.:=. Note further that quotes are themselves nested in this context. but regardless of whether the parameter appears in double quotes. turn it ’ off. see the examples below. create an associative array parameter. full prompt expansion is done on the resulting words.4 Last change: October 26. ’. substitute the length in characters of the result instead of the result itself. When this option is set.. Strictly confidential and proprietary ZSHEXPN ( 1 ) If spec is one of the above substitutions. Assignment is made before sorting or padding. if the ‘∧ is doubled. there are two sets of quotes.0.=. each such expansion is converted into the equivalent list for brace expansion. ‘${. If spec is an array expression. Inc. ${∧ spec} Turn on the RC_EXPAND_PARAM option for the evaluation of spec..g. This is distinct from field splitting by the the f.2]}" ’ is the same as ‘" $foo[1]" " $foo[2]" ’. In cases where repeating a flag is meaningful.. where the parameter xx is set to (a b c). E.} type parameter expression or a $(. and ‘˜’... turn it off... The name part may be a subscripted range for ordinary arrays. When this option is set. ‘" ${(@)foo}" ’ is equivalent to ‘" ${foo[@]}" ’ and ‘" ${(@)foo[1. Note that double quotes may appear around nested expressions. Note that ‘∧ ‘=’.. The following flags are supported: % Expand all % escapes in the resulting words in the same way as in in prompts (see the section ‘Prompt Expansion’). Parameter Expansion Flags If the opening brace is directly followed by an opening parenthesis. Internally. it is expanded first and the result is used as if it were the value of name. the word part must be converted to an @ A zsh 4.. below. If a ${. s or z flags... for example. using IFS as a delimiter. which still applies within each array element. for example. This is done by default in most other shells.}. Each name or nested ${. the repetitions need not be consecutive. the string resulting from the expansion will be interpreted as a pattern anywhere that is possible. are substituted with ‘fooabar foobbar foocbar’ instead of the default ‘fooa b cbar’...}’. in " ${(@f)" $(foo)" }" . the other (redundant) surrounding the $(foo) as before. In double quotes. This forces parameter expansions to be split into separate words before substitution. PROMPT_SUBST and PROMPT_BANG options.

If it is given four times. The other keywords describe the type in more detail: local left for local parameters for left justified parameters L o O P q Q t right_blanks for right justified parameters with leading blanks right_zeros for right justified parameters with leading zeros lower upper for parameters whose value is converted to all lower case when it is expanded for parameters whose value is converted to all upper case when it is expanded readonly for readonly parameters tag for tagged parameters export for exported parameters unique for arrays which keep only the first occurrence of duplicated values zsh 4. c C e f F i k With ${#name}.. ${(P)${foo}}. if you have ‘foo=bar’ and ‘bar=baz’. Split the result of the expansion to lines.0. force indices or keys to be substituted even if the subscript form refers to values. If this flag is given twice. for example by using ‘${(AA)=name=. whose value will be used where appropriate. the result of that will be taken as a parameter name in the same way. the words are quoted in double quotes. Capitalize the resulting words.. ‘float’ or ‘association’. and ${(P)$(echo bar)} will be expanded to ‘baz’.4 Last change: October 26. this flag may not be combined with subscript ranges. Sort the resulting words in descending order. This string consists of keywords separated by hyphens (‘–’). sort case–independently. For example. when creating an associative array. Such expansions can be nested but too deep recursion may have unpredictable effects. With o or O. substitute the keys (element names) rather than the values of the elements. ‘integer’. This forces the value of the parameter name to be interpreted as a further parameter name. the strings ${(P)foo}. Use a string describing the type of the parameter where the value of the parameter would usually appear. 2001 7 . Remove one level of quotes from the resulting words. not to words that result from field splitting. Inc. Used with subscripts (including ordinary arrays). ‘Words’ in this case refers to sequences of alphanumeric characters separated by non–alphanumerics. The first keyword in the string describes the main type. This is a shorthand for ‘ps:\n:’.User Commands Property of BladeLogic. If name refers to an associative array. Convert all letters in the result to lower case. as if the elements were concatenated with spaces between them. it can be one of ‘scalar’. ‘array’. Perform parameter expansion. the resulting words are quoted in single quotes and if it is given three times. This is a shorthand for ‘pj:\n:’. If used with a nested parameter or command substitution. Sort the resulting words in ascending order. count the total number of characters in an array. Join the words of arrays together using newline as a separator. the words are quoted in single quotes preceded by a $.}’ to activate field splitting. However. Strictly confidential and proprietary ZSHEXPN ( 1 ) array. Quote the resulting words with backslashes. command substitution and arithmetic expansion on the result.

} or ${. The following flags (except p) are followed by one or more arguments as shown. Similar to w with the difference that empty words between repeated delimiters are also counted..%.. Note that this occurs before field splitting by the SH_WORD_SPLIT option.#...} forms.. as for the ‘(s)’ flag.. With this flag parsing errors occurring with the Q and e flags or the pattern matching forms such as ‘${name#pattern}’ are reported.. Strictly confidential and proprietary ZSHEXPN ( 1 ) hide U v for parameters with the ‘hide’ flag special for special parameters defined by the shell Convert all letters in the result to upper case... Any character.User Commands Property of BladeLogic.>’. The space to the left will be filled with string1 (concatenated as often as needed) or spaces if string1 is not given. The exprth match is counted such that there is either one or zero matches from each starting position in the string.. specifies non–greedy matching.. s:string: Force field splitting (see the option SH_WORD_SPLIT) at the separator string.... ‘[... S Search substrings as well as beginnings or ends..}. i. Note that a string of two or more characters means all must all match in sequence...} and ${. to remove the quotes in the resulting words one would do: ‘${(Q)${(z)foo}}’.. Likewise. substitute (as two consecutive words) both the key and the value of each associative array element... this string is inserted once directly to the left of each word. ‘{. Make any special characters in the resulting words visible...)’.%. Note that this is done very late.} forms.e. V w W X z I:expr: Search the exprth match (where expr evaluates to a number).} or ${. or ‘<.. a matched pair of delimiters must surround each argument..//. The default is to take the first match.}’. l:expr::string1::string2: Pad the resulting words on the left.} forms. 2001 8 ...0... Each word will be truncated if required and placed in a field expr characters wide. the s flag may be used to set a word delimiter. So to access single words in the result. If both string1 and string2 are given. count words in arrays or strings.4 Last change: October 26.} (all matches from the exprth on are substituted). force values to be substituted even if the subscript form refers to indices or keys. Used with subscripts. Recognize the same escape sequences as the print builtin in string arguments to any of the flags described below./. that the shortest instead of the longest match should be replaced... with # start from the beginning and with % start from the end of the string../. or with ${. Used with k.//. this differs from the treatment of two or more characters in the IFS parameter. may be used in place of a colon as delimiters.. one has to use nested expansions as in ‘${${(z)foo}[2]}’.} (only the exprth match is substituted) or ${. Inc. With substitution via ${../. This only applies when searching for substrings.%%. the starting position for the match moves zsh 4. p j:string: Join the words of arrays together using string as a separator. Split the result of the expansion into words using shell parsing to find the words. i.]’. With the ${. or the matching pairs ‘(.... With ${#name}.e. but pad the words on the right and insert string2 on the right.. before padding.. Without the flag they are silently ignored.. The following flags are meaningful with the ${. The S and I flags may also be used with the ${. r:expr::string1::string2: As l. although for global substitution matches overlapping previous replacements are ignored.. but note that when a flag takes more than one argument.. taking into account any quoting in the value.. either with the S flag.

e. that is used for joining instead of $IFS. the nested substitution will return either a scalar or an array as determined by the flags. The form using ‘%’ will remove the same matches as for ‘#’. is applied. Strictly confidential and proprietary ZSHEXPN ( 1 ) backwards from the end as the index increases. Include the unmatched portion in the result (the Rest). 4. As with 2.4]}[2]} and also to " ${${(@)foo[2. and no (@) flag is present at the current level. between each word (single word arrays are not modified). Note that the Zsh Development Group accepts no responsibility for any brain damage which may occur during the reading of the following rules.. possibly adjusted for quoting.e. and the form using ‘%%’ will remove the same matches as for ‘##’ in reverse order. The flags are not propagated up to enclosing substitutions. ‘witch’ and ‘wich’. just as if the nested substitution were the outermost. zsh 4. Parameter Name Replacement The effect of any (P) flag. this assumes that braces are present around the substitution. and what flags are supplied to the current level of substitution. ‘witch for Ipswich’ and ‘wich’. of a nested substitution) are evaluated at this point. while with the other forms it moves forward from the start. Include the length of the match in the result. Subscripts are evaluated left to right.4][2]} is the entire third word (the second word of the range of words two through four of the original array). 5. ${. i. subsequent subscripts apply to the scalar or array value yielded by the previous subscript. the flags and any subscripts apply directly to the value of the nested substitution. Nested Substitution If multiple nested ${. 1. If the (j) flag is present.4 Last change: October 26.4]}[2]}" (the nested substitution returns a scalar because of the quotes). At each level.4]}[2]}" (the nested substitution returns an array in both cases). the form using ‘##’ will match and remove ‘which switch is the right switch for Ipswich’. ‘witch’. by default a space. Any number of subscripts may appear.4][2]} is thus equivalent to ${${foo[2. multiple subscripts can appear. and the substitution appears in double quotes. Note that. 3. such as ${var[3]}. but in reverse order. 2. Hence with the string which switch is the right switch for Ipswich? substitutions of the form ${(SI:N:)string#w∗ ∗ch} as N increases from 1 will match and remove ‘which’. Include the index of the end of the match in the result. B E M N R Rules Include the index of the beginning of the match in the result.User Commands Property of BladeLogic.. unless the ‘(P)’ flag is present.} forms are present. Include the matched portion in the result. the words of the value are joined with the first character of the parameter $IFS. the effect of subscripting is applied directly to the parameter. ${var[1][2]} is the second character of the first word.. for example. Thus if var is an array. which treats the value so far as a parameter name and replaces it with the corresponding value. All the following steps take place where applicable at all levels of substitution. Note that ${foo[2. Double–Quoted Joining If the value after this process is an array.. but not to " ${${foo[2. Some particular examples are given below. Inc. substitution is performed from the inside outwards. based on whether the value is an array or a scalar.}. ‘witch is the right switch for Ipswich’. but ${var[2. Here is a summary of the rules for substitution. Parameter Subscripting If the value is a raw parameter reference with a subscript. Nested Subscripting Any remaining subscripts (i. whether the whole substitution is in double quotes. the substitution takes account of whether the current value is a scalar or an array. the expansion ${${foo}} behaves exactly the same as ${foo}..0. 2001 9 .

The outer substitution " ${(@).. or the same inside double quotes. For example. 9.. all words are rejoined with the first character of IFS between. or no ‘(j)’ flag is present but the string is to be split as given by rules 8. produces a single word result " bar baz" . 11. but then must be joined again before the P flag can be applied. 7. The following illustrates the rules for nested parameter expansions. Padding Any padding of the value by the ‘(l..[1]}" detects that this is an array and picks the first word. but also for command and arithmetic substitutions.4 Last change: October 26. Re–Evaluation Any ‘(e)’ flag is applied to the value. any words in the value are joined together using the given string or the first character of $IFS if none. the word is split on occurrences of any of the characters in $IFS.fill. are applied to the words of the value at this level. takes place at all levels of a nested substitution.. Compare this with the effect of $(<file) alone.. the inner substitution " ${(@)foo}" produces the array ‘(bar baz)’. ‘/’ (possibly doubled) or by a set of modifiers of the form :. which divides the file up by words. This is similar to the simple case " ${foo[1]}" . ${(j/x/s/x/)foo} produces ‘a’. the inner substitution " ${foo}" .)’ or ‘(r. zsh 4.. Note that the ‘(F)’ flag implicitly supplies a string for joining in this manner. So in ‘${(P)${(f)lines}}’ the value of ${lines} is split at newlines. ‘%’. which makes the entire content of the file a single string. Suppose that $foo contains the array (bar baz): " ${(@)${foo}[1]}" This produces the result b.. so that (despite the ‘(@)’ flag) the subscript picks the first character. and joining did not take place at step 4. Shell Word Splitting If no ‘(s)’. The outer substitution " ${. ‘1’. Note this step. ‘1 b’ and ‘1’. Forced Joining If the ‘(j)’ flag is present.fill. Strictly confidential and proprietary ZSHEXPN ( 1 ) 6. Semantic Joining In contexts where expansion semantics requires a single word to result. forcing it to be re–examined for new parameter substitutions. (see the section ‘Modifiers’ in the section ‘History Expansion’). 8. ${=var}). ‘(f)’ or ‘=’ was given. this rule is skipped.. ‘(f)’ or ‘(z)’ flags are present. 2001 10 . suppose $foo contains the array ‘(ax1 bx1)’. " ${${(@)foo}[1]}" This produces the result ‘bar’. or (for = with neither of the two flags present) any of the characters in $IFS. Inc. which has no array (@) flag.[1]}" detects that this is a scalar. or 9. 12.g. the word is split on occurrences of the specified string. If a single word is not required.User Commands Property of BladeLogic. as specified by a trailing ‘#’. Examples The flag f is useful to split a double–quoted substitution line by line. In this case.)’ flags is applied.0. First. Forced Splitting If one of the ‘(s)’. or the ‘=’ specifier was present (e. As an example of the rules for word splitting and joining. ${(f)" $(<file)" } substitutes the contents of file divided so that each line is an element of the resulting array. too. Modifiers Any modifiers. Then ${(s/x/)foo} produces the words ‘a’. 10. ‘b’ and ‘1’. but the word is not quoted and the option SH_WORD_SPLIT is set.

or the end of the word if there is no ‘/’.yy. but ‘∧ or ‘!’ as the first character is ’ treated normally. They may also be defined if the text after the ‘˜’ is the name of a string shell parameter whose value begins with a ‘/’. The final empty string will then be elided. command substitution and arithmetic expansion before it is evaluated. COMMAND SUBSTITUTION A command enclosed in parentheses preceded by a dollar sign. zsh 4.. and then split to give ‘a’. respectively. or quoted with grave accents.. ‘˜+’ followed by a number is replaced by the directory at that position in the directory stack. FILENAME EXPANSION Each word is checked to see if it begins with an unquoted ‘˜’. It is also possible to define directory names using the –d option to the hash builtin.)’. then the word up to a ‘/’. with any trailing newlines deleted. ‘˜0’ is equivalent to ‘˜+’. This construct may be nested. If it does. ‘ b’ and ‘’. Note that brace expansion is not part of filename generation (globbing). The PUSHD_MINUS option exchanges the effects of ‘˜+’ and ‘˜–’ where they are followed by a number. it is expanded to a sorted list of the individual characters between the braces. 2001 11 .4 Last change: October 26. Left–to–right order is preserved.‘’. it is left unchanged. unless the BRACE_CCL option is set. BRACE EXPANSION A string of the form ‘foo{xx. ‘˜+0’ is equivalent to ‘˜+’. then the ‘˜’ and the checked portion are replaced with the appropriate substitute value. and replaced by the value of that named directory if found. all the resulting numbers will be padded with leading zeroes to that minimum width. As substitution occurs before either joining or splitting.n2}’. ‘˜–0’ is the bottom of the stack.. where n1 and n2 are integers. A ‘˜’ followed by a number is replaced by the directory at that position in the directory stack. exp is subjected to parameter expansion. In either case. See the section ‘Arithmetic Evaluation’. An expression of the form ‘{n1. A ‘˜’ followed by a ‘+’ or a ‘–’ is replaced by the value of $PWD or $OLDPWD. If the numbers are in decreasing order the resulting sequence will also be in decreasing order. an expression such as ∗ ∗/{foo. If either number begins with a zero. If the substitution is not enclosed in double quotes. ‘fooyybar’ and ‘foozzbar’. In that case. and ‘˜+1’ is the top of the stack.zz}bar’ is expanded to the individual words ‘fooxxbar’. Inc. the output is eligible for filename generation..User Commands Property of BladeLogic. like ‘‘. if the option GLOB_SUBST is set. as it is not in double quotes. is checked to see if it can be substituted in one of the ways described here. the output is broken into words using the IFS parameter. ‘–’ is treated specially as in a search set. the operation first generates the modified array (ax bx). If a brace expression matches none of the above forms.. is expanded to every number between n1 and n2 inclusive. Strictly confidential and proprietary ZSHEXPN ( 1 ) ${(s/x/)foo%%1∗ ∗} produces ‘a’ and ‘ b’ (note the extra space).bar} is split into two separate words ∗ ∗/foo and ∗ ∗/bar before filename generation takes place. ‘˜–’ followed by a number is replaced by the directory that many positions from the bottom of the stack. which is treated as a single pattern but otherwise has similar effects. A ‘˜’ by itself is replaced by the value of $HOME. this is to be contrasted with ∗ ∗/(foobar). ARITHMETIC EXPANSION A string of the form ‘$[exp]’ or ‘$((exp))’ is substituted with the value of the arithmetic expression exp. note that this is liable to produce a ‘no match’ error if either of the two expressions does not match. is replaced with its standard output. which is joined to give " ax bx" . Named directories are typically home directories for users on the system. like ‘$(.0. in the manner of a search set. In particular. The substitution ‘$(cat foo)’ may be replaced by the equivalent but faster ‘$(<foo)’. If so. A ‘˜’ followed by anything not already covered is looked up as a named directory. Commas may be quoted in order to include them literally in a word. and ‘˜1’ is the top of the stack.

the word is replaced by the full pathname of the command.. These use the macros provided by the operating system to test for the given character combinations. the ‘∧ and ‘#’ characters also denote a pattern. If the EXTENDED_GLOB option is set. it is regarded as ∗’. so to test for a single alphanumeric character you need ‘[[:alnum:]]’. then the prefix portion is replaced with a ‘˜’ followed by the name of the directory. ‘[:graph:]’ printable character except whitespace. In other instances of pattern matching. If the option MAGIC_EQUAL_SUBST is set. ‘<’. hence ‘<–>’ matches any number. or unless the NOMATCH option is unset. a pattern for filename generation.’ must be matched explicitly at the beginning of a pattern or after a ‘/’. the path is checked to see if it has a named directory as its prefix. otherwise they are not treated specially by the shell. inclusive. or the whole expression (but not simply the colon).. Strictly confidential and proprietary ZSHEXPN ( 1 ) In certain circumstances (in prompts. ‘[:blank:]’ space or tab.0. If no matching pattern is found. unless the GLOB option is unset.. the right hand side will be treated as a colon–separated list in the manner of the PATH parameter. ’ The word is replaced with a list of sorted filenames that match the pattern. If an alias exists by that name. including any modifications due to local language settings: see ctype(3). any unquoted shell argument in the form ‘identifier=expression’ becomes eligible for file expansion as described in the previous paragraph. ‘[:cntrl:]’ control character. Inc. unless the GLOB_DOTS option is set. with ties broken in favour of using a named directory.. ‘[:print:]’ printable character. ‘’. Matches any of the enclosed characters. ‘[:digit:]’ decimal digit.g. Quoting the first ‘=’ also inhibits this. Glob Operators ∗ ? Matches any string. [.. so that a ‘˜’ or an ‘=’ following a ‘:’ is eligible for expansion. the remainder of the word is taken as the name of a command or alias. unless the NULL_GLOB option is set. Named character sets can be used alongside other types.]. for instance).. zsh 4. including those appearing after commands of the typeset family. except that it matches any character which is not in the given set. including the null string. In filename generation. There are also several named classes of characters. In this case. ‘[:lower:]’ lowercase letter. the character ‘/’ must be matched explicitly. Either of the numbers may be omitted to make the range open–ended. If a word begins with an unquoted ‘=’ and the EQUALS option is set. A ‘–’ or ‘]’ may be matched by including it as the first character in the list. when the shell prints a path. except when the directory is / itself. a ‘. Like [.User Commands Property of BladeLogic. The shortest way of referring to the directory is used.. ‘[[:alpha:]0–9]’. ‘[:space:]’ whitespace character.4 Last change: October 26. 2001 12 .’. Filename expansion is performed on the right hand side of a parameter assignment.] [!.’ are not treated specially. Ranges of characters can be specified by separating two characters by a ‘–’.] form is more efficient. ‘[:alpha:]’ alphabetic. in which case the word is left unchanged.’ or ‘. in which case the word is deleted. If a command exists by that name. the [. the word is replaced with the text of the alias. FILENAME GENERATION If a word contains an unquoted instance of one of the characters ‘∗ ‘(’. To match individual digits. the shell gives an error message.. ‘[’. also. No filename generation pattern matches the files ‘. Matches any character. ‘[:upper:]’ uppercase letter. ‘[:punct:]’ printable character neither alphanumeric nor whitespace.. The parameters $PWD and $OLDPWD are never abbreviated in this fashion. ‘[:xdigit:]’ hexadecimal digit. e.] <[x]–[y]> Matches any number in the range x to y. All such behaviour can be disabled by quoting the ‘˜’. the EQUALS option is also respected. the ‘/’ and ‘.] [∧ .. Note that the square brackets are additional to those enclosing the whole set of characters. in the form ‘[:name:]’ with the following meanings: ‘[:alnum:]’ alphanumeric. or ‘?’.. If so. the ‘=’.

This has a higher precedence than ‘/’.e..)#’.) Match anything but the expression in parentheses.) Matches zero or more occurrences of the pattern x. as detailed below. then a ‘@’. ∗’ (. but is in fact an inevit∗’ able consequence of the rule that the longest possible match always succeeds... a ‘/’ is not special. Note that grouping cannot extend over multiple directories: it is an error to have a ‘/’ within a group (this only applies for patterns used in filename generation).4 Last change: October 26. so ‘∗ ∗˜foo/bar’ will search ∗/∗ for all files in all directories in ‘. This is a trap for the unwary. This operator has high precedence. with ‘#’ and ‘##’ applying to the shortest possible preceding unit (i. ‘?’ or ‘!’ immediately preceding the ‘(’ is treated specially. in patterns used in other contexts than filename generation (for example.. There is one exception: a group of the form (pat/)# appearing as a complete path segment can match a sequence of directories. or parentheses when part of a KSH_GLOB pattern (for example..) Precedence The precedence of the operators given above is (highest) ‘∧ ‘/’...) ∗ ∗(. Inc. ‘?’.)’.User Commands Property of BladeLogic. while a ‘’ must do so. Multiple patterns can be excluded by ‘foo˜bar˜baz’. or a parenthesised expression). in case statements and tests within ‘[[. foo/any/anyother/bar.]]’). ‘˜’.0. <0–9>∗ will ∗ actually match any number whatsoever at the start of the string. ‘/’ and ‘.. or ‘!’. Expressions such as ‘<0–9>[∧ [:digit:]]∗ can be used instead. so ‘∧ foo/bar’ will search directories in ‘. a pattern already followed by ‘##’. @(.)’. ‘[. rather than ‘(12)#’...’ and then exclude ‘foo/bar’ if there was such a match. (Requires EXTENDED_GLOB to be set. (Like ‘(.. though the KSH_GLOB option is still available.. the effects of parentheses can be modified by a preceding ‘@’. (Requires EXTENDED_GLOB to be set. (Like ‘(. to avoid interpretation as a pipeline. This character need not be unquoted to have special effects. (Like ‘(. If the KSH_GLOB option is set. (Like ‘(∧ (.>’.) Matches one or more occurrences of the pattern x..) Matches the enclosed pattern. ‘∗ ‘+’. zsh 4. The ∗’. In the exclusion pattern (y). rather than ‘(12)##’. (Like ‘(. option SH_GLOB prevents bare parentheses from being used in this way. This operator has high precedence. This has lower precedence than any operator except ‘’./foo’ for a file named ‘bar’. for example. For example. the remaining operators are ’. foo/any/bar. ‘∗ ‘+’. No more than two active ‘#’ characters may appear together. xy ∧ x Matches either x or y. ‘!(foo)#’ is invalid and must be replaced by ‘∗ ∗(!(foo))’)....))’..) Matches anything except the pattern x. ‘?’ ∗’.) Match at least one occurrence..) Match any number of occurrences. Strictly confidential and proprietary ZSHEXPN ( 1 ) Be careful when using other wildcards adjacent to patterns of this form.)##’. This operator has lower precedence than any other.) Match the pattern in the parentheses. (Requires EXTENDED_GLOB to be set. ‘12#’ is equivalent to ‘1(2#)’.’ are not treated specially the way they usually are in globbing. As mentioned above. (Requires EXTENDED_GLOB to be set.) Match anything that matches the pattern x but does not match y.) !(. This is used for grouping. It is an error for an unquoted ‘#’ to follow something which cannot be repeated. x˜y x# x## ksh–like Glob Operators If the KSH_GLOB option is set.. but the ‘(’ must be... simply treated from left to right as part of a string.... and the ‘∗ will match any others.. ‘’ (lowest). a ‘/’ used as a directory separator may not appear inside parentheses.. foo/(a∗ ∗/)#bar matches foo/bar..]’.’ except ‘.) ?(. and so on. since the ‘<0–9>’ will match the first digit. and ‘/’ is also not special after a ‘˜’ appearing outside parentheses in a filename pattern.) +(. ‘<. this includes an empty string. 2001 13 . ‘12##’ is equivalent to ‘1(2##)’.) Match zero or one occurrence. The ‘’ character must be within parentheses.. a character.

the KSH_ARRAYS option is respected. Backreferences work with all forms of pattern matching other than filename generation. See the example for the m flag below. negating the effect of the b flag from that point on. such as ${array#pattern}. The numbering of backreferences strictly follows the order of the opening parentheses from left to right in the pattern string. only the first nine active parentheses can be referenced. If some of the backreferences fail to match – – – which happens if they are in an alternate branch which fails to match. Activate backreferences for parenthesised groups in the pattern. only the final ‘b’ is stored in match[1]. such as ${param//pat/repl}. Thus extra parentheses may be necessary to match the complete segment: for example. zsh 4. upper case characters in the pattern still only match upper case characters. Note that the first parenthesis is before the (#b) and does not create a backreference. and so on. The indices use the same convention as does parameter substitution. the indices of the beginning of the matched parentheses in the array $mbegin. This is most useful in parameter substitutions. in ‘[[ abab = (#b)([ab])# ]]’. When a pattern with a set of active parentheses is matched. 2001 14 . In the case of global replacements this may still be useful. using the value of $match[1] rather than $match[2]. Lower case characters in the pattern match upper or lower case characters. Inc. foo=" a string with a message" if [[ $foo = (aan)’ ’(#b)(∗ ’∗ ]].0. then ∗)’ ∗ print ${foo[$mbegin[1]. For example. All take the form (#X) where X may have one of the following forms: i l I b Case insensitive: upper or lower case characters in the pattern match upper or lower case characters. If the match fails none of the parameters is altered. as otherwise the string matched is obvious.$mend[1]]} fi prints ‘string with a’. they require the EXTENDED_GLOB option. Strictly confidential and proprietary ZSHEXPN ( 1 ) Globbing Flags There are various flags which affect any text to their right up to the end of the enclosing group or to the end of the pattern. this does not work in filename generation. so that elements of $mend and $mbegin may be used in subscripts.4 Last change: October 26. Set references to the match data for the entire string matched. use ‘X((abcd)#)Y’ to match a whole string of either ‘ab’ or ‘cd’ between ‘X’ and ‘Y’. $MBEGIN and $MEND will be set to the string matched and to the indices of the beginning and end of the string. The flag must be in effect at the end of the pattern. Sets of globbing flags are not considered parenthesised groups. so in some cases it may be necessary to initialise them beforehand. this is similar to backreferencing and does not work in filename generation. B m Deactivate backreferences.User Commands Property of BladeLogic. respectively. The parameters $MATCH. and the start and end indices are set to –1. These arrays are not otherwise special to the shell. Pattern matching with backreferences is slightly slower than without. not local to a group. i. although sets of parentheses may be nested. or if they are followed by # and matched zero times – – – then the matched string is set to the empty string. only the data for the last match remains available. with the first element of each array corresponding to the first parenthesised group. or a global substitution. There are special rules for parentheses followed by ‘#’ or ‘##’. and the indices of the end in the array $mend. but note that when performing matches on an entire array. Case sensitive: locally negates the effect of i or l from that point on. Only the last match of the parenthesis is remembered: for example.e. the strings matched by the groups are stored in the array $match.

as with the pattern road and target string rod. match anywhere except at the start of the string. Inc. 2001 15 . for example ‘${array/(#s)A∗ ∗Z(#e)}’ will remove only elements of an array which match the complete pattern ‘A∗ ∗Z’. the test string fooxx can be matched by the pattern (#i)FOOXX. 3. is potentially slow. and the ‘(#e)’ flag succeeds only at the end of the test string. at/end/test.. and all slashes in filenames. as in banana and abnana. errors are counted separately for non–contiguous strings in the pattern. Approximate matching: num errors are allowed in the string matched by the pattern. An extra character appearing in the target string. the pattern (#a3)abcd matches dcba. Finally. in other words (#i)[a–z] still matches only lowercase letters. arr=(veldt jynx grimps waqf zho buck) print ${arr//(#m)[aeiou]/${(U)MATCH}} forces all the matches (i.4 Last change: October 26. A character missing in the target string.. 2. so that (abcd)ef is two errors from aebf. e Deactivate the m flag. including characters in character ranges: hence (#a1)??? matches strings of length four.] groups. but not strings of length two. i. these have only a local effect. and each must appear on its own: ‘(#s)’ and ‘(#e)’ are the only valid forms. which cannot exceed the number specified in the (#anum) flags. the shell keeps a count of the errors found. Different characters. Non–literal parts of the pattern must match exactly. note that when examining whole paths case–insensitively every directory must be searched for all files which match.0. The rules for this are described in the next subsection. The string (#ia2)readme specifies case–insensitive matching of readme with up to two errors. Other characters which must match exactly are initial dots in filenames (unless the GLOB_DOTS option is set).e. Strictly confidential and proprietary ZSHEXPN ( 1 ) For example. There are other ways of performing many operations of this type. Note also that the flags do not affect letters inside [.. hence no references to match data will be created.e. in/test/middle. you need to use ‘(" " ˜(#s))’ to match a zero–length portion of the string not at the start. Note that assertions of the form ‘(∧ (#s))’ also work. Approximate Matching When matching approximately. there is no speed penalty for using match references. Four types of error are recognised: 1. by applying rule 4 to an empty part of the pattern.. The ‘(#s)’ flag succeeds only at the start of the test string. as in fooxbar and fooybar. Unlike backreferences. since all the ? must match. so that a/bc is two errors from ab/c (the slash cannot be transposed with another character). zsh 4. Similarly. with the errors occurring by using the first rule twice and the second once. Thus. so that a pattern of the form (#i)/foo/bar/. For example. When using the ksh syntax for grouping both KSH_GLOB and EXTENDED_GLOB must be set and the left parenthesis should be preceded by @. grouping the string as [d][cb][a] and [a][bc][d]. ‘∗ ∗((#s)/)test((#e)/)∗ matches a path segment ‘test’ in any of the following strings: test.User Commands Property of BladeLogic. although this actually means ‘anything except a zero–length portion at the start of the string’. M anum s. 4. other than the extra substitutions required for the replacement strings in cases such as the example shown. they correspond to ‘∧ and ‘$’ in standard reg’ ular expressions. They are useful for matching path segments in patterns other than those in filename generation (where path segments are in any case treated separately). all vowels) into uppercase. Transposition of characters. ∗’ test/at/start. but not by (#l)FOOXX. (#i)FOO(#I)XX or ((#i)FOOX)X. however the combination of the substitution operations ‘/’ and ‘//’ with the ‘(#s)’ and ‘(#e)’ flags provides a single simple and memorable method. printing ‘vEldt jynx grImps wAqf zhO bUck’. Another use is in parameter substitution. For example. Unlike the other flags. as with stove and strove.

for example ‘(∧ can be forced to be treated as part of the glob pattern by doux)’. where approximation is turned off. This form does not follow symbolic links. For example. A glob subexpression that would normally be taken as glob qualifiers. 2001 16 . the ‘∗ operators revert to their usual effect. This is much less efficient than without the (#a1). and the pattern (#a1)cat(#a0)dog(#a1)fox is equivalent. Strictly confidential and proprietary ZSHEXPN ( 1 ) When using exclusion via the ˜ operator. in that case. however. (#a1)README˜READ_ME matches READ. for example. Inc. since every directory in the path must be scanned for a possible approximate match. in this case producing ‘((∧ x))’. Entire path segments may be matched approximately. approximate matching is treated entirely separately for the excluded part and must be activated separately. (#a1)README˜(#a1)READ_ME does not match any pattern of the form READ?ME as all such forms are now excluded.4 Last change: October 26. the maximum errors allowed may be altered locally. note that this therefore matches files in the current directory as well as subdirectories. and this can be delimited by grouping. If the option BARE_GLOB_QUAL is set. Thus: ls (∗ ∗/)#bar or ls ∗ ∗/bar ∗∗ does a recursive directory search for files named ‘bar’ (potentially including the file ‘bar’ in the current directory). The qualifiers specify which filenames that otherwise match the given pattern will be inserted in the argument list.ME but not READ_ME. It is best to place the (#a1) after any path segments which are known to be correct.0. which may not occur in the dog section. ∗’ Glob Qualifiers Patterns used for filename generation may end in a list of qualifiers enclosed in parentheses. As a shorthand. the alternative form ‘∗ ∗∗ does. there is only one overall error count. However. Apart from exclusions.User Commands Property of BladeLogic. Recursive Globbing A pathname component of the form ‘(foo/)#’ matches a path consisting of zero or more directories matching the pattern foo. (#a1)cat((#a0)dog)fox allows one error in total. (#a1)abc(#a0)xyz will not match abcdxyz. because the error occurs at the ‘x’. Thus. Neither of these can be combined with other forms of globbing within the same path segment. as the trailing READ_ME is matched without approximation. Note that the point at which an error is first found is the crucial one for establishing whether to use approximation. then a trailing set of parentheses containing no ‘’ or ‘(’ characters (or ‘˜’ if it is special) is taken as a set of glob qualifiers. ‘∗ ∗/’ is equivalent to ‘(∗ ∗∗ ∗/)#’. so that ‘(#a1)/foo/d/is/available/at/the/bar’ allows one error in any path segment. however. @ = p ∗ % %b %c r directories plain files symbolic links sockets named pipes (FIFOs) executable plain files (0100) device files (character or block special) block special files character special files owner–readable files (0400) zsh 4. A qualifier may be any one of the following: / . but is otherwise ∗∗ ∗/’ identical. bling the parentheses.

Strictly confidential and proprietary ZSHEXPN ( 1 ) w x A I E R W X s S t fspec owner–writable files (0200) owner–executable files (0100) group–readable files (0040) group–writable files (0020) group–executable files (0010) world–readable files (0004) world–writable files (0002) world–executable files (0001) setuid files (04000) setgid files (02000) files with the sticky bit (01000) files with access rights matching spec. independent of the permissions for other users. or a ‘–’. The pattern ‘∗ ∗(f–100)’ gives all files for which the owner does not have execute permission. or a octal digit.o–rx:)’ gives the files for which the owner and the other members of the group have at least write permission. the bits in the number must not be set. The first character after the ‘e’ will be used as a separator and anything up to the next matching separator will be taken as the string. and for which other users don’t have read or execute permission. Giving a ‘?’ instead of a octal digit anywhere in the number ensures that the corresponding bits in the file–modes are not checked. The first list of characters specify which access rights are to be checked. and for which other group members have no rights. ‘w’ for write access. ‘o’. this is only useful in combination with ‘=’. Note that expansions must be quoted in the string to prevent them from being expanded before globbing is done. and the ‘a’ says to test all three groups. the latter is inserted into the command line word by word. ‘}’. respectively. with a ‘+’.User Commands Property of BladeLogic.4 Last change: October 26. and ‘a’. ‘{’. the parameter may be altered to a string to be inserted into the list instead of the original filename. The filename will be included in the list if and only if the code returns a zero status (usually the status of the last command). which overrides the value of REPLY. and ‘>’. Inc.0. followed by a list of any of the characters ‘r’. 2001 17 . The octal number describes the mode bits to be expected. the value given must match the file–modes exactly. If the qualifier ‘f’ is followed by any other character anything up to the next matching character (‘[’. ‘+’. ‘}’. Thus. and ‘<’ match ‘]’. ‘{’. The ‘=’. a ‘+’. and ‘>’ respectively. if combined with a ‘=’. During the execution of string the filename currently being tested is available in the parameter REPLY. and ‘∗ ∗(f:gu+w. and execute permission. and ‘t’ for the sticky bit. zsh 4. If set to an array. and ‘–’ again says how the modes are to be checked and have the same meaning as described for the first form above. If a ‘u’ is given. and ‘t’. those for the owner of the file are used. while any other character matches itself. ‘∗ ∗(f70?)’ gives the files for which the owner has read. those of the group are checked. ‘s’. the parameter reply may be set to an array or a string. or a ‘–’. estring The string will be executed as shell code. Each sub–spec may be either a octal number as described above or a list of any of the characters ‘u’. In addition. ‘x’ for the right to execute the file (or to search a directory). ‘g’. If none of these characters is given. The second list of characters finally says which access rights are to be expected: ‘r’ for read access. any other character matches itself) is taken as a list of comma–separated sub–specs. This spec may be a octal number optionally preceded by a ‘=’. ‘s’ for the setuid and setgid bits. followed by a ‘=’. at least the bits in the given number must be set in the file–modes. ‘[’. ‘x’. if a ‘g’ is given. a ‘+’. a ‘o’ means to test those of other users. the behavior is the same as for ‘=’. write. and with a ‘–’. ‘w’. and ‘<’ match ‘]’.

or exactly n bytes in length. ‘w’. or c they are sorted by the time of the last access. analogous to the LIST_TYPES option. or blocks (of 512 bytes) instead. m[Mwhms][–+]n like the file access qualifier. so ‘∗ –oL)’ gives a list of all files sorted by file size in descending order. c[Mwhms][–+]n like the file access qualifier. hence the first name in the list is the youngest file. files in subdirectories appear before those in the current directory at each level of the search – – – this is best combined with other criteria. ‘u:foo:’ or ‘u[foo]’ for user ‘foo’) like uid but with group IDs or names l[–+]ct files having a link count less than ct (–). ‘m’ (‘M’). hours. like ‘o’. m. ‘Od’ puts files in the current directory before those in subdirectories at each level of the search. for example ‘odon’ to sort on names for files within the same directory. than the character after the ‘u’ will be used as a separator and the string between it and the next matching separator (‘[’. If c is n they are sorted by name (the default). for the current pattern (overrides M) sets the NULL_GLOB option for the current pattern sets the GLOB_DOTS option for the current pattern sets the NUMERIC_GLOB_SORT option for the current pattern specifies how the names of the files should be sorted. ‘echo ∗ ∗(ah–5)’ would echo files accessed within the last five hours. or inode change respectively. Files accessed within the last n days are selected using a negative value for n (–n). following ∗(∧ any symbolic links. ‘m’ or ‘s’ (e. ‘h’. Inc. Strictly confidential and proprietary ZSHEXPN ( 1 ) For example. if it is L they are sorted depending on the size (length) of the files. megabytes. but sorts in descending order. ‘{’. respectively. and ‘>’ respectively. i. Note the quotation marks.2})’:)’ will cause the words ‘lonely1 lonely2’ to be inserted into the command line.g. and c compare the age against the current time. Then the expression ‘∗ ∗(e:’reply=(${REPLY}{1. modification.e. If this flag is directly followed by a ‘k’ (‘K’).g. and ‘<’ match ‘]’. and the user ID of this user will be taken (e. Also note that the modifiers ∧and – are used. Note that a. if l they are sorted by the number of links. except that it uses the file inode change time. if d. Optional unit specifiers ‘M’.4 Last change: October 26. ∧ – M T N D n oc negates all qualifiers following it toggles between making the qualifiers work on symbolic links (the default) and the files they point to sets the MARK_DIRS option for the current pattern appends a trailing qualifier mark to the filenames. more than n bytes (+). For instance. ‘ah5’) cause the check to be performed with months (of 30 days). Oc zsh 4. ‘∗ oc)’ is the same as ‘∗ ∗(∧ ∗(Oc)’ and ‘∗ Oc)’ is the same ∗(∧ as ‘∗ ∗(oc)’. greater than ct (+). suppose a directory contains a single file ‘lonely’. ddev U G uid files on the device dev files owned by the effective user ID files owned by the effective group ID files owned by user ID id if it is a number. minutes or seconds instead of days. Files accessed more than n days ago are selected by a positive n value (+n). any other character matches itself) will be taken as a user name. or equal to ct gid a[Mwhms][–+]n files accessed exactly n days ago. if a. m. 2001 18 . ‘}’. if not.User Commands Property of BladeLogic. ‘Lk–50’) the check is performed with kilobytes. weeks.0.g. L[+–]n files less than n bytes (–). or ‘p’ (‘P’) (e. except that it uses the file modification time.

The name of any existing file can be followed by a modifier of the form ‘(:. As in parameter subscripting they may be negative to make them count from the last match backward. the qualifiers in the sublists are ‘and’ed). ‘N’. ‘o’. ‘T’.. ‘D’. Strictly confidential and proprietary ZSHEXPN ( 1 ) [beg[. More than one of these lists can be combined.: ‘∗ ∗(–OL[1.4 Last change: October 26.h. independent of the sublist in which they are given. lex.. Note also that the result after modification does not have to be an existing file. and ls ∗ ∗(%W) lists all world–writable device files in the current directory. If a ‘:’ appears in a qualifier list.)’ even if no actual filename generation is performed.∗ D∧ lists all files having a link count of one whose names contain a dot (but not those starting with a dot.[ch](∧ l1) ∗.0.g.c. ignoring symlinks. E. the remainder of the expression in parenthesis is interpreted as a modifier (see the section ‘Modifiers’ in the section ‘History Expansion’). 2001 19 .User Commands Property of BladeLogic.end]] specifies which of the matched filenames should be included in the returned list.]’). Inc. parse. however. These are the qualifiers ‘M’. and ls ∗ ∗(W.3])’ gives a list of the names of the three largest files.h. zsh 4. and ls ∗ ∗˜(lexparse). The whole list matches if at least one of the sublists matches (they are ‘or’ed. since GLOB_DOTS is explicitly switched off) except for lex. beg and the optional end may be mathematical expressions. Some qualifiers. Thus: ls ∗ ∗(–/) lists all directories and symbolic links that point to directories. ‘O’ and the subscripts given in brackets (‘[. Note that each modifier must be introduced by a separate ‘:’. affect all matches generated. separated by commas.c and parse. ‘n’..X) lists all files in the current directory that are world–writable or world–executable. The syntax is the same as for array subscripts. and echo /tmp/foo∗ ∗(u0∧ @:t) outputs the basename of all root–owned files beginning with the string ‘foo’ in /tmp.

Special parameters cannot have their type changed. write ‘$name’ or ‘${name}’. The elements are numbered beginning with 1. ‘<Z>’ indicates that the parameter does not exist when the shell initializes in sh or ksh emulation mode. In the parameter lists that follow. an integer. 2001 1 . is set for name. use one of: set –A name name=() Array Subscripts Individual elements of an array may be selected using a subscript. an array (indexed numerically). deleting any elements that do not appear in the list. If the parameter name exists and is a scalar. Ordinary array parameters may also be explicitly declared with: typeset –a name Associative arrays must be declared before assignment. The ∗’. use the typeset builtin.4 Last change: October 26.) If no parameter name exists. where exp is an arithmetic expression which will be subject to arithmetic expansion as if it were surrounded by ‘$((. unless the KSH_ARRAYS option is set in which case they are numbered from zero. the braced form is the only one that works.. name=(value . name=(key value . the value is subject to arithmetic evaluation. See the section ‘Array Parameters’ for additional forms of assignment.. If the KSH_ARRAYS option is set. or ‘!’.User Commands Property of BladeLogic. the mark ‘<S>’ indicates that the parameter is special. except that no arithmetic expansion is applied to exp. ARRAY PARAMETERS To assign an array value. and they stay special even if unset.... or an associative array (an unordered set of name–value pairs. or the single characters ‘∗ ‘@’. as bracketed expressions otherwise are not treated as subscripts. Subscripts may be used inside braces used to delimit a parameter name. Note that this assigns to the entire array. The value of a scalar or integer parameter may also be assigned by writing: name=value If the integer attribute. the parsing rules for arithmetic expressions still apply.0.. write one of: set –A name value .. an ordinary array parameter is created. To declare the type of a parameter. See Parameter Expansion in zshexpn(1) for complete details. To refer to the value of a parameter. a value. indexed by name). Strictly confidential and proprietary ZSHPARAM ( 1 ) NAME zshparam – zsh parameters DESCRIPTION A parameter has a name. which affects the way that certain zsh 4.) Every key must have a value in this case. A name may be any sequence of alphanumeric characters and underscores. ‘–’.))’. ‘?’.. value may be a scalar (a string). it is replaced by a new array. thus ‘${foo[2]}’ is equivalent to ‘$foo[2]’. –i. the list in an assignment is interpreted as alternating keys and values: set –A name key value . To create an empty array (including associative arrays).. A subscript of the form ‘[exp]’ selects the single element exp. ‘$’. The same subscripting syntax is used for associative arrays. Inc. by using: typeset –A name When name refers to an associative array. and a number of attributes. or to assign a scalar or integer value to a parameter. ‘#’.. However.

The flags currently understood are: w s:string: This gives the string that separates words (for use with the w flag)." ’.’. assign ‘()’ to that element. An array (but not an associative array) may be created by assignment to a range or element. When an array parameter is referenced as ‘$name’ (with no subscript) it evaluates to ‘$name[∗ ∗]’.–1]’ is the same as ‘$foo[∗ ∗]’. in no particular order. and ‘$foo[1.4 Last change: October 26.. then ‘echo $FOO[2. To delete an element of an ordinary array. shifting the other elements to accommodate the new values.) If one of the subscripts evaluates to a negative number. If the parameter subscripted is a scalar than this flag makes subscripting work on lines instead of characters. For example. if FOO is set to ‘foobar’. zsh 4. (This is not supported for associative arrays. this means the value of the key ‘0’. say –n. The default word separator is whitespace. Array Element Assignment A subscript may be used on the left side of an assignment like so: name[exp]=value In this form of assignment the element or range specified by exp is replaced by the expression on the right side. the string up to the matching closing one is considered to be a list of flags. 2001 2 . A subscript of the form ‘[exp1. use the unset command: unset " name[exp]" Subscript Flags If the opening bracket. Subscripting may also be performed on non–array values. See Subscript Parsing below for details. The noglob precommand modifier could be used instead. which may not exist even if there are values for other keys).5]’ prints ‘ooba’. ‘[∗ or ‘[@]’ evaluate ∗]’ to all the values (not the keys.3]’ and ‘$foo[(r)??.exp2]’ selects all elements in the range exp1 to exp2. i. respectively). or the comma in a range. there is no difference between ∗]’ the two except when they appear within double quotes. Thus ‘$foo[–3]’ is the third element from the end of the array foo..e. so assigning a parenthesized list of values to an element or range changes the number of elements in the array. This is a shorthand for ‘pws:\n:’. (Associative arrays are unordered. as in ‘name[(flags)exp]’. Inc. For associative arrays. Note that quotes are necessary in this case to prevent the brackets from being interpreted as filename generation operators.. inclusive. only single–element assignments may be made with typeset.(r)f∗ are possible. Strictly confidential and proprietary ZSHPARAM ( 1 ) special characters must be protected from interpretation. A subscript of the form ‘[∗ or ‘[@]’ evaluates to all elements of an array.) This syntax also works as an argument to the typeset command: typeset " name[exp]" =value The value may not be a parenthesized list in this case. in any subscript expression is directly followed by an opening parenthesis. Arrays do not nest. if it is a scalar. but see Subscript Flags below). Reverse subscripting: if this flag is given. If the parameter subscripted is a scalar than this flag makes subscripting work on words instead of characters. and so do not support ranges. only the value part of each pair is compared to the pattern. ∗]" whereas ‘" $foo[@]" ’ evaluates to ‘" $foo[1]" " $foo[2]" . so that pairs of subscripts such as ‘$foo[(r)??. unless the KSH_ARRAYS option is set in which case it evaluates to ‘${name[0]}’ (for an associative array. in which case the subscripts specify a substring to be extracted. To delete an element of an associative array.. with elements separated by newlines. the exp is taken as a pattern and the result is the first matching array element.User Commands Property of BladeLogic. If ∗]’ the parameter is an associative array. or if it is a scalar and the ‘w’ flag is given. p f r Recognize the same escape sequences as the print builtin in the string argument of a subsequent ‘s’ flag.0. then the nth element from the end of the array is used. ‘" $foo[∗ ’ evaluates to ‘" $foo[1] $foo[2] . The subscript used is the number of the matching element. substring or word (if the parameter is an array.

‘R’. word. but gives the index of the match instead. The basic rule to remember when writing a subscript expression is that all text between the opening ‘[’ and the closing ‘]’ is interpreted as if it were in double quotes (see zshmisc(1)). If used in a subscript on an associative array. This makes it more difficult to write a subscript expression that contains an odd number of double–quote characters. R i Like ‘r’. unlike double quotes which normally cannot nest. 2001 3 .User Commands Property of BladeLogic. makes them give the nth or nth last match (if expr evaluates to n). e This flag has no effect and for ordinary arrays is retained for backward compatibility only. but it may also affect parameter substitutions that appear as part of an arithmetic expression in an ordinary subscript. gives all possible matches. Subscript Parsing This discussion applies mainly to associative array key strings and to patterns used for reverse subscripting (the ‘r’. and subscript flags are introduced by balanced parenthesis. this behaves like ‘r’. Reverse subscripts may be used for assigning to ordinary array elements. This flag does not work on the left side of an assignment to an associative array element. behaves like ‘r’. However. This flag is ignored when the array is associative. If used on another type of parameter. makes them begin at the nth or nth last element. so the rules have two important differences. the key part of each pair is compared to the pattern. and therefore that the two characters ‘\" ’ remain as two characters in the subscript (in true double–quoting. this may not be combined with a second argument. For associative arrays. ‘i’. On an associative array this is like ‘k’ but returns all values where exp is matched by the keys. This flag may be used on the left side of an assignment. However. within a subscript expression (and unlike true double–quoting) the sequence ‘\[’ becomes ‘[’. or character (if expr evaluates to n). I k K n:expr: If combined with ‘r’. However. but the reason for this difference is so that when a subscript expression appears inside true double–quotes. and returns the value for the first key found where exp is matched by the key. Like ‘r’. because of the standard shell quoting rules. this flag can be used to force ∗ or @ to be interpreted as a single key rather than as a reference to all values. This is because parameter expansions may be surrounded balanced braces. subscript expressions may appear inside double–quoted strings or inside other subscript expressions (or both!). On other types of parameters this has the same effect as ‘R’. and similarly ‘\]’ becomes ‘]’. See Parameter Expansion Flags (zshexpn(1)) for additional ways to manipulate the results of array subscripting. but not for assigning to associative arrays. note that ‘\[∧ \[]’ \[\]’ and even ‘\[∧ mean the same thing. or all possible matching keys in an associative array. because backslashes are always stripped when they appear before []’ brackets! The same rule applies to parentheses (‘(’ and ‘)’) and braces (‘{’ and ‘}’): they must appear either in balanced pairs or preceded by a backslash. b:expr: If combined with ‘r’. Strictly confidential and proprietary ZSHPARAM ( 1 ) and the result is that value. The first difference is that brackets (‘[’ and ‘]’) must appear as balanced pairs in a subscript expression unless they are preceded by a backslash (‘\’). This applies even in cases where a backslash is not normally required. etc. for example. the pattern ‘[∧ (to match any character other []’ than an open bracket) should be written ‘[∧ in a reverse–subscript pattern. Therefore. ‘R’. but gives the last match. and backslashes that protect parentheses or braces are removed during parsing.4 Last change: October 26. ‘i’ or ‘I’. The second difference is that a double–quote (‘" ’) may appear as part of a subscript expression without being preceded by a backslash. ‘\" ’ becomes ‘" ’). For associative arrays. flags). This flag is ignored when the array is associative. and the first matching key found is the result. one can still write ‘\" ’ (rather than ‘\\\" ’) for ‘" ’. Like ‘i’. ‘i’ or ‘I’. Inc. zsh 4. any double–quotes that appear must occur in balanced pairs unless preceded by a backslash. On the left side of an assignment.0. this flag causes the keys to be interpreted as patterns. ‘R’. For associative arrays. but gives the index of the last match.

so for example ‘$2foo’ is equivalent to ‘${2}foo’.. not directly related to subscripting: the numeric names of positional parameters (described below) are parsed specially. parentheses. but ‘$2[3.0. can be used to declare a parameter as being local to the innermost scope. or by direct assignment of the form ‘n=value’ where n is the number of the positional parameter to be changed. where n is a number. it’s necessary to use four backslashes to cause a single backslash to match literally in the pattern. LOCAL PARAMETERS Shell function executions delimit scopes for shell parameters. Inc. Note that. ‘${2[3. 2001 4 .) The typeset builtin. (Parameters are dynamically scoped. use the typeset builtin and an enclosing pair of double quotes.)’ is allowed. Note that the ‘k’ and ‘K’ flags are reverse subscripting for an ordinary array. Therefore. That is. brackets. Parameters appearing in the subscript expression are first expanded and then the complete expression is interpreted as a pattern. zsh 4. rather than as a pattern. For complex patterns. the keys in the array itself are interpreted as patterns by those flags. as each expansion is encountered left to right in the outer expression.5]’.User Commands Property of BladeLogic. is equivalent to simply ‘$n’. but are not reverse subscripting for an associative array! (For an associative array. and its alternative forms declare. The parameter n. from the innermost subscript outwards.. or the shell itself. they are removed only once. the subscript is a plain string in that case. POSITIONAL PARAMETERS The positional parameters provide access to the command–line arguments of a shell function. positional parameters. because then the backslashes. thus ‘$argv[n]’. To use a literal ‘∗ or ‘@’ as an associative array key. etc. Parameters are also expanded from the innermost subscript first. it is not necessary to use additional backslashes within the inner subscript expression. it is often easiest to assign the desired pattern to a parameter and then refer to that parameter in the subscript. Positional parameters may be changed after the shell or function starts by using the set builtin. In a reverse subscript. because the positional parameters form an array. by assigning to the argv array. use ‘${(q)name}’ (see zshexpn(1)) to quote the expanded value. This also creates (with empty values) any of the positions from 1 to n that do not already have values.. again use double quotes: typeset –A aa typeset " aa[one\" two\" three\" quotes]" =QQQ print " $aa[one\" two\" three\" quotes]" It is important to note that the quoting rules do not change when a parameter expansion with a subscript is nested inside another subscript expression. the sequences ‘\∗ and ‘\@’ remain as two characters when they appear in ∗’.4 Last change: October 26. an array assignment of the form ‘n=(value . for example. backslashes are interpreted twice. As in true double–quoting. are seen only when the complete expression is converted to a pattern. see the section ‘Invocation’. the expansion must be surrounded by braces. parameters behave as if GLOB_SUBST were on (and it cannot be turned off).. and also the section ‘Functions’. This has two effects: first.5]’ is the entire second parameter concatenated with the filename generation pattern ‘[3. second. integer. To match the value of a parameter literally in a reverse subscript.5]}’ evaluates to the third through fifth characters of the second positional parameter. to refer to the value of that key. a subscript expression. Strictly confidential and proprietary ZSHPARAM ( 1 ) To use an odd number of double quotes as a key in an assignment. The parameters ∗ @ and argv are arrays containing all the ∗. etc.) One final note. local and readonly (but not export). A further complication arises from a way in which subscript parsing is not different from double quote parsing. the ‘e’ flag must be used: ∗’ typeset –A aa aa[(e)∗ ∗]=star print $aa[(e)∗ ∗] A last detail must be considered when reverse subscripting is performed. once when parsing the array subscript and again when parsing the pattern. shell script. to use subscript syntax to extract a substring from a positional parameter. is the nth positional parameter. and has the effect of shifting all the values at positions greater than n by as many positions as necessary to accommodate the new values.

but argv is not itself a local ∗.. the sequence ‘$#–. Use ${#} to resolve ambiguities.4 Last change: October 26. In particular. q. 2001 5 . Note that some confusion may occur with the syntax $#param which substitutes the length of param. ? <S> 0 <S> The exit value returned by the last command. The following: typeset PATH=/new/directory:$PATH is valid for temporarily allowing the shell or programmes called from it to find the programs in /new/directory inside a function. causes it to be created in the outermost scope. Flags supplied to the shell on invocation or by the set or setopt commands.. the innermost existing parameter of that name is used. CPUTYPE The machine type (microprocessor class or machine model). The number of positional parameters in decimal. EGID <S> The effective group ID of the shell process. This may have unexpected effects: there is no default value. even when argv is not set. $ <S> – <S> ∗ <S> The process ID of this shell. If the FUNCTION_ARGZERO option is set. unset can be used to delete a parameter while it is still in scope. ARGC <S> <Z> Same as #. (That is. argv <S> <Z> Same as ∗ Assigning to argv changes the local positional parameters. An array containing the positional parameters. and within a sourced script to the name of the script. you may change the zsh 4. assigning to a non–existent parameter.) However. as determined at run time. although only the innermost positional parameter array is deleted (so ∗ and @ in other scopes are not affected).v. Inc. Also. parameter. The name used to invoke the current shell.User Commands Property of BladeLogic.0. status <S> <Z> Same as ?. _ <S> The last argument of the previous command. it will be set to an empty value (or zero in the case of integers). any outer parameter of the same name remains hidden. PARAMETERS SET BY THE SHELL The following parameters are automatically set by the shell: ! <S> # <S> The process ID of the last background command invoked. Special parameters may also be made local. If you have sufficient privileges. Strictly confidential and proprietary ZSHPARAM ( 1 ) When a parameter is read or assigned to. @ <S> Same as argv[@]. this parameter is set in the environment of every command executed to the full pathname of the command. Local parameters disappear when their scope ends. so if there is no assignment at the point the variable is made local. the local parameter hides any less–local parameter. Deleting argv with unset in any function deletes it everywhere. Note that the restriction in older versions of zsh that local parameters were never exported has been removed.’ in an arithmetic expression is interpreted as the length of the parameter –. or declaring a new parameter with export. this is set temporarily within a shell function to the name of the function. pipestatus <S> <Z> An array containing the exit values returned by all commands in the last pipeline. they retain their special attributes unless either the existing or the newly–created parameter has the –h (hide) attribute.

then the value returned upon reference will be the value that was assigned plus the number of seconds since the assignment. zsh 4. Also (assuming sufficient privileges). OPTARG <S> The value of the last option argument processed by the getopts command. you may change the effective user ID of the shell process by assigning to this parameter. This is set when the shell initializes and whenever the directory changes. 2001 6 . RANDOM <S> A random integer from 0 to 32767. not necessarily as displayed by the functions builtin. as determined at compile time. as determined at compile time. The random number generator can be seeded by assigning a numeric value to RANDOM. PPID <S> The process ID of the parent of the shell. Inc. OPTIND <S> The index of the last option argument processed by the getopts command. command)’ ERRNO <S> The value of errno (see errno(3)) as set by the most recently failed system call. whichever was started most recently. you may start a single command with a different effective user ID by ‘(EUID=uid. sourced file. PWD The present working directory. MACHTYPE The machine type (microprocessor class or machine model).4 Last change: October 26. OLDPWD The previous working directory. If you have sufficient privileges. Also (assuming sufficient privileges). Note that in the case of shell functions the line number refers to the function as it appeared in the original definition. This parameter is exported by default but this can be disabled using the typeset builtin. it is initialized to the login name corresponding to the current login session. If this parameter is assigned a value. Also (assuming sufficient privileges). command)’ HOST The current hostname. LOGNAME If the corresponding variable is not set in the environment of the shell. or shell function being executed. newly generated each time this parameter is referenced. you may start a single command with a different effective group ID by ‘(EGID=gid. command)’ EUID <S> The effective user ID of the shell process. Strictly confidential and proprietary ZSHPARAM ( 1 ) effective group ID of the shell process by assigning to this parameter. you may change the group ID of the shell process by assigning to this parameter. LINENO <S> The line number of the current line within the current script. This value is system dependent and is intended for debugging purposes.0.User Commands Property of BladeLogic. OSTYPE The operating system. GID <S> The real group ID of the shell process. you may start a single command under a different group ID by ‘(GID=gid. If you have sufficient privileges. This is set when the shell initializes and whenever the directory changes. SECONDS <S> The number of seconds since shell invocation.

PARAMETERS USED BY THE SHELL The following parameters are used by the shell. If you have sufficient privileges. ZSH_VERSION The version number of this zsh. Inc. signals An array containing the names of the signals. such as path and PATH.g. ARGV0 If exported. e. DIRSTACKSIZE The maximum size of the directory stack. Used by the line editor update mechanism to compensate for a slow terminal by delaying updates until necessary. Note that unsetting either of the pair will unset the other. These are similar to tied parameters created via ‘typeset –T’. as determined at compile time. command)’ VENDOR The vendor. while the array form is easier to manipulate within the shell. in this case. Also (assuming sufficient privileges). 2001 7 .User Commands Property of BladeLogic. you may start a single command under a different username (and user ID and group ID) by ‘(USERNAME=username. If you have sufficient privileges. COLUMNS <S> The number of columns for this terminal session. its value is used as the argv[0] of external commands. you may change the user ID of the shell by assigning to this parameter.0. BAUD The baud rate of the current connection. TTY The name of the tty associated with the shell. Also (assuming sufficient privileges). TTYIDLE <S> The idle time of the tty associated with the shell in seconds or –1 if there is no such tty. The compensation mechanism can be turned off by setting the variable to zero. cdpath <S> <Z> (CDPATH <S>) An array (colon–separated list) of directories specifying the search path for the cd command. UID <S> The real user ID of the shell process. The normal use for the colon–separated form is for exporting to the environment. and not the modem. command)’ USERNAME <S> The username corresponding to the real user ID of the shell process. This may be profitably set to a lower value in some circumstances. the lowercase form is an array and the uppercase form is a scalar with the elements of the array joined together by colons. they retain their special properties when recreated. If the stack gets larger than this. and recreating one of the pair will recreate the other. Used for printing select lists and for the line editor. Strictly confidential and proprietary ZSHPARAM ( 1 ) SHLVL <S> Incremented by one each time a new shell is started. if any. Usually used in constructs like ‘ARGV0=emacs nethack’. you may start a single command under a different user ID by ‘(UID=uid. ZSH_NAME Expands to the basename of the command used to invoke this instance of zsh. In cases where there are two parameters with an upper– and lowercase form of the same name. you may change the username (and also the user ID and group ID) of the shell by assigning to this parameter.4 Last change: October 26. This parameter should be set to the baud rate of the slowest part of the link for best performance. for slow modems dialing into a communications server which is connected to a host via a fast link. this variable would be set by default to the speed of the fast link. it will be truncated zsh 4.

setting this value larger than the SAVEHIST size will give you the difference as a cushion for saving duplicated history events. If unset. this character is treated as if it were not an IFS white space character. tab and newline that appear in the IFS are called IFS white space. This path is searched when a function with the –u attribute is referenced. If an executable file is found. FCEDIT The default editor for the fc builtin.User Commands Property of BladeLogic. histchars <S> Three characters used by the shell’s history and lexical analysis mechanism. LANG <S> This variable determines the locale category for any category not specifically selected via a variable starting with ‘LC_’. fpath <S> <Z> (FPATH <S>) An array (colon separated list) of directories specifying the search path for function definitions. then it is read and executed in the current environment. This is useful with the AUTO_PUSHD option. One or more IFS white space characters or one non–IFS white space character together with any adjacent IFS white space character delimit a field. ’).0. HISTCHARS <S> <Z> Same as histchars. fignore <S> <Z> (FIGNORE <S>) An array (colon separated list) containing the suffixes of files to be ignored during filename completion. newline and NUL). LC_CTYPE <S> This variable determines the locale category for character handling functions. (Deprecated. in hundredths of seconds.4 Last change: October 26. KEYTIMEOUT The time the shell waits. LC_MESSAGES <S> zsh 4. if the completion generates only files which would match if this variable would be ignored. The first character signals the start of a history expansion (default ‘!’). the history is not saved. HISTSIZE <S> The maximum number of events stored in the internal history list. If an IFS white space character appears twice consecutively in the IFS. that are used to separate words which result from command or parameter expansion and words read by the read builtin. LC_ALL <S> This variable overrides the value of the ‘LANG’ variable and the value of any of the other variables starting with ‘LC_’. Strictly confidential and proprietary ZSHPARAM ( 1 ) automatically. 2001 8 . for another key to be pressed when reading bound multi–character sequences. IFS <S> Internal field separators (by default space. Inc. HOME <S> The default argument for the cd command.) HISTFILE The file to save the history in when an interactive shell exits. However. Any characters from the set space. tab. LC_COLLATE <S> This variable determines the locale category for character collation information within ranges in glob brackets and for sorting. If you use the HIST_EXPIRE_DUPS_FIRST option. The second character signals the start of a quick history substitution (default ‘∧ The third character is the comment character (default ‘#’). than these files are completed anyway.

the list will be shown if it spans at most as many lines as given by the absolute value. Note that zsh does not use message catalogs. Used for printing select lists and for the line editor. unset this parameter. PROMPT <S> <Z> zsh 4. usually ‘/usr/local/lib/zsh/$ZSH_VERSION’. These parameters only exist if the installation supports dynamic module loading. It usually contains termcap strings to reset the terminal. If set to zero. If an element is a directory instead of a file the shell will recursively check every file in every subdirectory of the element. module_path <S> <Z> (MODULE_PATH <S>) An array (colon–separated list) of directories that zmodload searches for dynamically loadable modules. change this to :. LOGCHECK The interval in seconds between checks for login/logout activity using the watch parameter. and vice versa. the shell looks for mail in the specified file. Strictly confidential and proprietary ZSHPARAM ( 1 ) This variable determines the language in which messages should be written. The message will undergo parameter expansion. command substitution and arithmetic expansion with the variable $_ defined as the name of the file that has changed. LISTMAX In the line editor. Defaults to cat. Each filename can be followed by a ‘?’ and a message that will be printed. path <S> <Z> (PATH <S>) An array (colon–separated list) of directories to search for commands. Note that zsh ignores this setting when parsing floating point mathematical expressions. manpath <S> <Z> (MANPATH <S> <Z>) An array (colon–separated list) whose value is not used by the shell. the shell asks only if the top of the listing would scroll off the screen. (The ‘/usr/local/lib’ part varies from installation to installation. any value set in the environment when the shell is started will be ignored. The default message is ‘You have new mail’. This is initialized to a standard pathname.0. When this parameter is set. 2001 9 . the shell will print an error message if null commands are entered. since setting it also sets MANPATH. For csh–like behavior. LC_NUMERIC <S> This variable affects the decimal point character and thousands separator character for the formatted input/output functions and string conversion functions. each directory is scanned and all files found are put in a hash table. mailpath <S> <Z> (MAILPATH <S>) An array (colon–separated list) of filenames to check for new mail. the number of matches to list without asking first.User Commands Property of BladeLogic. MAILCHECK The interval in seconds between checks for new mail. POSTEDIT <S> This string is output whenever the line editor exits. The manpath array can be useful. NULLCMD <S> The command name to assume if a redirection is specified with no command.) For security reasons. For sh/ksh behavior. however.4 Last change: October 26. LINES <S> The number of lines for this terminal session. Inc. MAIL If this parameter is set and mailpath is not set. LC_TIME <S> This variable determines the locale category for date and time formatting in prompt escape sequences. If the value is negative.

the default is ‘+ ’. STTY If this parameter is set in a command’s environment. and filename generation both sets and examines its value when evaluating certain expressions. In sh or ksh emulation. It is expanded in the same way as PS1. SAVEHIST The maximum number of history events to save in the history file. It is expanded in the same way as PS1. printed before a command is read. READNULLCMD <S> The command name to assume if a single input redirection is specified with no command. PS4 <S> The execution trace prompt. PS3 and PS4. and ‘%r’ expands to the proposed correction. 2001 10 . prompt <S> <Z> Same as PS1. RPROMPT <S> RPS1 <S> This prompt is displayed on the right–hand side of the screen when the primary prompt is being displayed on the left. the shell runs the stty command with the value of this parameter as arguments in order to set up the terminal before executing the command. the default is ‘%m%# ’. PS2 <S> The secondary prompt. printed when the shell needs more information to complete a command. PS2. which displays the name of the current shell structure and the line number within it. and vice versa.0. Some modules also employ REPLY for similar purposes. which displays any shell constructs or quotation marks which are currently being processed. Inc. PS3 <S> Selection prompt used within a select loop. Defaults to more. The default is ‘?# ’. PS1 <S> The primary prompt string. Default is ‘+%N:%i> ’.User Commands Property of BladeLogic. This does not work if the SINGLELINEZLE option is set. All other prompt escapes are also allowed. commands whose combined user and system execution times (measured in seconds) are greater than this value have timing statistics printed for them. respectively. see the section ‘Prompt Expansion’. SPROMPT <S> The prompt used for spelling correction. It undergoes a special form of expansion before being displayed. The sequence ‘%R’ expands to the string which presumably needs spelling correction. REPLY This parameter is reserved by convention to pass string values between shell scripts and shell builtins in situations where a function call or redirection are impossible or undesirable. Strictly confidential and proprietary ZSHPARAM ( 1 ) PROMPT2 <S> <Z> PROMPT3 <S> <Z> PROMPT4 <S> <Z> Same as PS1. It is expanded in the same way as PS1.4 Last change: October 26. but for array values rather than strings. psvar <S> <Z> (PSVAR <S>) An array (colon–separated list) whose first nine values can be used in PROMPT strings. Setting psvar also sets PSVAR. The default is ‘%_> ’. The read builtin and the select complex command may set REPLY. REPORTTIME If nonnegative. zsh 4. reply As REPLY.

The name of this job. it is reported. STTY is ignored if the command is run in the background. This (intentionally) does not apply if the command is continued via ‘kill –CONT’. If the command is suspended and continued later with the fg or wait builtins it will see the modes specified by STTY. then all events are reported as with ‘all’ except $USERNAME. The full hostname of the remote host. This avoids running stty at every external command by accidentally exporting it. an ‘@’ followed by a remote hostname.’. The default is ‘%E real %U user %S system %P %J’. and are reset when it finishes or is suspended. If it contains the single word ‘all’.ttt’ format (hours and minutes are only printed if they are not zero). "logged on" or "logged off".g. the shell will receive an ALRM signal if a command is not entered within the specified number of seconds after issuing a prompt. 2001 11 . and a ‘%’ followed by a line (tty). zsh terminates. i. computed as (%U+%S)/%E. it will be executed and a new alarm is scheduled using the value of the TMOUT parameter after executing the trap. The default is ‘/tmp/zsh’. then all login/logout events are reported.4 Last change: October 26.e. CPU seconds spent in kernel mode. An assignment to TERM causes zsh to re–initialize the terminal. Any or all of these components may be present in an entry. TMOUT If this parameter is nonzero.0. and the idle time of the terminal is not less than the value of the TMOUT parameter. If no trap is set. A star may be inserted between the percent sign and flags printing time. if a login/logout event matches all of them. Note that this should include an initial part for the file name as well as any directory names. CPU seconds spent in user mode. zsh 4. If there is a trap on SIGALRM. Inc. Strictly confidential and proprietary ZSHPARAM ( 1 ) The modes apply only to the command. Also note that STTY should not be used for window size specifications. WATCHFMT The format of login/logout reports if the watch parameter is set. TERM <S> The type of terminal in use. The hostname up to the first ‘. Default is ‘%n has %a %l from %m’. Recognizes the following escape sequences: %n %a %l %M %m The name of the user that logged in/out. Elapsed time in seconds. An entry in this list may consist of a username. watch <S> <Z> (WATCH <S>) An array (colon–separated list) of login/logout events to report. The observed action. the whole name is printed. Recognizes the following escape sequences: %% %U %S %E %P %J A ‘%’. It is necessary to make such an assignment upon any change to the terminal definition database or terminal type in order for the new settings to take effect. This is used when looking up termcap sequences. or if it is in the environment of the shell but not explicitly assigned to in the input line. ‘TERM=$TERM’). these will not be local to the command. even if the value does not change (e. TMPPREFIX A pathname prefix which the shell will use for all temporary files. Otherwise a new alarm is scheduled to TMOUT seconds after the last keypress. TIMEFMT The format of process time reports with the time keyword. If it contains the single word ‘notme’. The line (tty) the user is logged in on. This cause the time to be printed in ‘hh:mm:ss. The CPU percentage.. as if it were not suspended. If only the IP address is available or the utmp field contains the name of an X–windows display.User Commands Property of BladeLogic.

The date in ‘yy–mm–dd’ format. WORDCHARS <S> A list of non–alphanumeric characters considered part of a word by the line editor. which can use all the same codes as the bindkey command as described in the zsh/zle module entry in zshmodules(1). the entire expression is omitted in this case. If the result is ‘true’. in 12–hour. zsh 4. %t %@ %T %w %W %D The time. The test character x may be any one of ‘l’. This may have a visible instead of an audible effect. or ‘false’ if he has logged out. the string ‘\e[?5h\e[?5l’ on a vt100 or xterm will have the effect of flashing reverse video on and off (if you usually use reverse video. the same character is used to separate the text for the "true" result from that for the "false" result. which indicates a ‘true’ result if the watched user has logged in. The time. but both separators must be present in any case.4 Last change: October 26. etc). or it may be ‘a’. Strictly confidential and proprietary ZSHPARAM ( 1 ) NOTE: The ‘%m’ and ‘%M’ escapes will work only if there is a host name field in the utmp on your machine. Either or both of the branches may be empty. ‘m’ or ‘M’. Otherwise they are treated as ordinary strings. if not $HOME. The date in ‘day–dd’ format. %(x:true–text:false–text) Specifies a ternary expression.User Commands Property of BladeLogic. which indicate a ‘true’ result if the corresponding escape sequence would return a non–empty value. in 24–hour format. If ‘false’. This takes precedence over the NOBEEP option. ZBEEP If set. Ternary expressions may be nested.zshrc. am/pm format. Both the separator and the right parenthesis may be escaped with a backslash. ‘n’. and the false–text is skipped. that will be output to the terminal instead of beeping. Inc. for example. the true–text is skipped and the false–text is formatted and printed.0. %U (%u) Start (stop) underline mode. The date in ‘mm/dd/yy’ format. 2001 12 . you should use the string ‘\e[?5l\e[?5h’ instead). ZDOTDIR The directory to search for shell startup files (. Other characters evaluate to neither true nor false. then the true–text is formatted according to the rules above and printed. this gives a string of characters. %S (%s) Start (stop) standout mode. %B (%b) Start (stop) boldface mode. The character following the x is arbitrary.

and the command is the name of a directory.0. ‘allexport’ is equivalent to ‘A__lleXP_ort’. and another used to emulate sh/ksh (used when the SH_OPTION_LETTERS option is set). ‘noexec’. Thus. and a full completion is inserted. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) NAME zshoptions – zsh options SPECIFYING OPTIONS Options are primarily referred to by name. ALIASES <D> Expand aliases. zsh 4. <S>. those turned on by default appear in the list prefixed with ‘no’. multiple parallel zsh sessions will all have their history lists added to the history file.User Commands Property of BladeLogic. those set by default only in csh.4 Last change: October 26. or with the set. ksh: –a) All parameters subsequently defined are automatically exported. in the order they are killed. There are two sets of single letter options: one used by default. trailing whitespace will be ignored. rather than overwrite it. In strings of single letter options supplied to the shell at startup. Some of the single letter option names refer to an option being off. 2001 1 . The sense of the single letter options may be inverted by using ‘+’ instead of ‘–’. the cursor is moved to the end of the word. <Z> as appropriate. This is because many systems which implement the ‘#!’ mechanism for calling scripts do not strip trailing whitespace. ALWAYS_TO_END If a completion is performed with the cursor within a word. zsh sessions will append their history list to the history file. ksh. These names are case insensitive and underscores are ignored. APPEND_HISTORY <D> If this is set. but the string ‘–f i’ is an error. for example the string ‘–f ’ will be treated just as ‘–f’. so ‘setopt No_Beep’ is equivalent to ‘unsetopt beep’. AUTO_MENU <D> Automatically use menu completion after the second consecutive request for completion. AUTO_LIST (–9) <D> Automatically list choices on an ambiguous completion. ALL_EXPORT (–a. ‘tify’ is not a synonym for ‘nonotify’ (the inversion of ‘notify’). If set these functions try to return to the last prompt if given no numeric argument. For example. Similarly. Hence (unless KSH_OPTION_PRINT is set). ‘set –o’ or ‘set +o’). so ‘nonobeep’ is not a synonym for ‘beep’. The single letter options can be used on the shell command line. DESCRIPTION OF OPTIONS In the following list. ‘unsetopt’. AUTO_CD (–J) If a command is issued that can’t be executed as a normal command. That is. Inc. This option is overridden by MENU_COMPLETE. Some options also have one or more single letter names. The sense of an option name may be inverted by preceding it with ‘no’. sh. ‘setopt’ shows all options whose settings are changed from the default. <K>. in which case the inversion of that name refers to the option being on. and ‘–n’ is the short name of its inversion. as normal Unix options preceded by ‘–’. perform the cd command to that directory. ALWAYS_LAST_PROMPT <D> If unset. for example by pressing the tab key repeatedly. or zsh emulations are marked <C>. When listing options (by ‘setopt’. key functions that list completions try to return to the last prompt if given a numeric argument. the cursor is moved to the end of the word if either a single match is inserted or menu completion is performed. For example. options set by default in all emulations are marked <D>. ‘+n’ is the short name of ‘exec’. This inversion can only be done once. setopt and unsetopt builtins.

Note that this will not work with MENU_COMPLETE. AUTO_REMOVE_SLASH <D> When the last character resulting from a completion is a slash and the next character typed is a word delimiter. BEEP (+B) <D> Beep on error in ZLE. ‘:’. etc. ‘(’ or (if special) ‘˜’ characters. automatically list choices when the completion function is called twice in succession. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) AUTO_NAME_DIRS Any parameter that is set to the absolute name of a directory immediately becomes a name for that directory. which will be removed if ‘}’ is typed next. the automatically added character is deleted.). treating the character ‘!’ specially. (Otherwise. and the next character typed is one of those that have to come directly after the name (like ‘}’. C_BASES zsh 4. See the section ‘Brace Expansion’.0. that will be used by the ‘%˜’ and related prompt sequences. AUTO_PUSHD (–N) Make cd push the old directory onto the directory stack. Completion in a brace expansion is affected similarly: the added character is a ‘. the menu behaviour will then start with the third press. 2001 2 .4 Last change: October 26. then add a trailing slash instead of a space. If AUTO_MENU is set. Inc. so that the character typed comes immediately after the parameter name. AUTO_RESUME (–W) Treat single word simple commands without redirection as candidates for resumption of an existing job. the pattern will be left unchanged. or a character that ends a command (such as a semicolon or an ampersand). if it contains no ‘’. print an error message. BAD_PATTERN (+2) <C> <Z> If a pattern for filename generation is badly formed. (If this option is unset.’. BG_NICE (–6) <C> <Z> Run all background jobs at a lower priority. the parameter must be used in the form ‘˜param’ first. AUTO_PARAM_SLASH <D> If a parameter is completed whose content is the name of a directory. BRACE_CCL Expand expressions in braces which would not otherwise undergo brace expansion to a lexically ordered list of all the characters. BARE_GLOB_QUAL <Z> In a glob pattern. a slash. The setting of LIST_AMBIGUOUS is respected. See the section ‘Filename Generation’. This takes precedence over AUTO_LIST. This option is set by default. and will be available when completion is performed on a word starting with ‘˜’.) BANG_HIST (+K) <C> <Z> Perform textual history expansion. BSD_ECHO <S> Make the echo builtin compatible with the BSD echo(1) command. since repeated completion calls immediately cycle through the list in that case. BASH_AUTO_LIST On an ambiguous completion. treat a trailing set of parentheses as a qualifier list. csh–style.User Commands Property of BladeLogic. This disables backslashed escape sequences in echo strings unless the –e option is specified.) AUTO_PARAM_KEYS <D> If a parameter name was completed and a following character (normally a space) automatically inserted. remove the slash.

Inc. This option has no effect on the choice of the output base. CDABLE_VARS (–T) If the argument to a cd command (or an implied cd with the AUTO_CD option set) is not a directory. Without this option set.’ is the first part of the path. end’ instead of ‘do list. CSH_JUNKIE_LOOPS <C> Allow loop bodies to take the form ‘list. CSH_JUNKIE_QUOTES <C> zsh 4..e. suppose /foo/bar is a link to the directory /alt/rod. else such jobs will be killed automatically. try to expand the expression as if it were preceded by a ‘˜’ (see the section ‘Filename Expansion’). ‘cd /foo/bar/. CSH_JUNKIE_HISTORY <C> A history reference without an event specifier will always refer to the previous command. Without this option. or if ‘. CLOBBER (+C.. If the option OCTAL_ZEROES is also set (it is not by default).’ changes to /foo. defaulting to the previous command. Otherwise ‘>!’ or ‘>’ must be used to truncate a file. such a history reference refers to the same event as the previous history reference.’ which would otherwise be treated as canceling the previous segment in the path (in other words. the cursor is set to the end of the word if completion is started. the last part of $PWD would be deleted).’ would be removed from the path. done’. CORRECT_ALL (–O) Try to correct the spelling of all arguments in a line. Note that all other symbolic links in the path will also be resolved. The check is omitted if the commands run from the previous command line included a ‘jobs’ command. CORRECT (–0) Try to correct the spelling of commands. ‘foo/. This option is overridden by CHASE_LINKS. instead resolve the path to the physical directory. octal numbers will be treated similarly and hence appear as ‘077’ instead of ‘8#77’. CHECK_JOBS <Z> Report the status of background and suspended jobs before exiting a shell with job control. and does not begin with a slash.4 Last change: October 26.. since it is assumed the user is aware that there are background or suspended jobs. a ‘.. it changes to /alt..’ is used. ksh: +C) <D> Allows ‘>’ redirection to truncate existing files. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) Output hexadecimal numbers in the standard C format.User Commands Property of BladeLogic.. for example ‘0xFF’ instead of the usual ‘16#FF’.0. Otherwise it stays there and completion is done from both ends. i. nor on the output of bases other than hexadecimal and octal. 2001 3 . The same applies if the current directory is /foo/bar and ‘cd . For example. even if the preceding path segment is a symbolic link.’ path segment will be treated as referring to the physical parent. a second attempt to exit the shell will succeed. with it set. and ‘>>!’ or ‘>>’ to create a file. NO_CHECK_JOBS is best used only in combination with NO_HUP. This also has the effect of CHASE_DOTS. A ‘jobs’ command run from the precmd function is not counted for this purpose. COMPLETE_IN_WORD If unset. The effect is to make the alias a distinct command for completion purposes. and ‘>>’ to create files. CHASE_LINKS (–w) Resolve symbolic links to their true values when changing directory. CHASE_DOTS When changing to a directory containing a path segment ‘. COMPLETE_ALIASES Prevents aliases on the command line from being internally substituted before completion is attempted. Note that these formats will be understood on input irrespective of the setting of C_BASES.

passing the –x flag to the builtins declare. etc. but not executed. zsh 4. do not report an error unless all the patterns in a command have no matches. Inc.) GLOBAL_EXPORT (<Z>) If this option is set. ‘˜’ and ‘∧ characters as part of patterns for filename generation. In double–quoted strings. Without this option. and exit. (See the section ‘Filename Generation’. This is disabled while running initialization scripts. (An initial ’ unquoted ‘˜’ always produces named directory expansion. this is the most portable way to achieve this behaviour. Note that the builtin export always sets both the –x and –g flags. FLOW_CONTROL <D> If this option is unset. The format of this prefixed data is: ‘:< beginning time> :< elapsed seconds> :< command> ’. it is made impossible to escape ‘$’. 2001 4 . EXTENDED_GLOB Treat the ‘#’. If the option is unset. except when ‘–n’ is supplied to the shell at startup. output flow control via start/stop characters (usually assigned to ∧ Q) is S/∧ disabled in the shell’s editor. hence parameters exported to the environment will not be made local to the enclosing function. ‘‘’ or ‘" ’ (and ‘\’ itself no longer needs escaping). integer.User Commands Property of BladeLogic. This make such redirections fail (see the section ‘Redirection’). EQUALS <Z> Perform = filename expansion. readonly and typeset (but not local) will also set the –g flag.) ERR_EXIT (–e. These require that embedded newlines be preceded by a backslash. if set. CSH_NULLCMD <C> Do not use the values of NULLCMD and READNULLCMD when running redirections with no command. DVORAK Use the Dvorak keyboard instead of the standard qwerty keyboard as a basis for examining spelling mistakes for the CORRECT and CORRECT_ALL options and the spell–word editor command. Overrides NOMATCH. commands are read and checked for syntax errors. and cannot be nested. it is not recommended that its behaviour be relied upon. set $0 temporarily to the name of the function/script. and hence its effect extends beyond the scope of the enclosing function. unescaped newlines will cause an error message. (See the section ‘Filename Expansion’.) EXTENDED_HISTORY <C> Save each command’s beginning timestamp (in seconds since the epoch) and the duration (in seconds) to the history file. exported parameters will be made local in just the same way as any other parameter. ksh: +f) <D> Perform filename generation (globbing). GLOB (+F. execute the ZERR trap. ksh: –e) If a command has a non–zero exit status. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) Changes the rules for single– and double–quoted text to match that of csh. This option cannot be turned off in an interactive shell. CSH_NULL_GLOB <C> If a pattern for filename generation has no matches. unless they were already or the flag +g is given explicitly. delete the pattern from the argument list. float. EXEC (+n. This option is set by default for backward compatibility.4 Last change: October 26. FUNCTION_ARGZERO <C> <Z> When executing a shell function or sourcing a script. Command substitutions are only expanded once. ksh: +n) <D> Do execute commands.0.

avoiding a path search. Subsequent invocations of the same command will use the saved location. You should be sure to set the value of HISTSIZE to a larger number than SAVEHIST in order to give you some room for the duplicated events. GLOB_DOTS (–4) Do not require a leading ‘. GLOB_COMPLETE When the current word has a glob pattern. However. ‘foo=∗ If the result has more than one ∗’). or inserted at the cursor when ∗’ COMPLETE_IN_WORD is set. This actually uses pattern matching. HIST_EXPIRE_DUPS_FIRST If the internal history needs to be trimmed to add the current command line. 2001 5 . including inside local startup files (.). HIST_ALLOW_CLOBBER Add ‘’ to output redirections in the history. This allows history references to clobber files even when CLOBBER is unset. hash the directory containing it. HIST_FIND_NO_DUPS When searching for history entries in the line editor. the startup files /etc/zprofile. etc. as well as all directories that occur earlier in the path. Inc. It can be disabled and re–enabled at any time. HASH_CMDS <D> Note the location of each command the first time it is executed. setting this option will cause the oldest history event that has a duplicate to be lost before losing a unique event from the list. so it works not only for files but for any completion. The matches are generated as if a ‘∗ was added to the end of the word. do not insert all the words resulting from the expansion but generate matches as for completion and cycle through them like MENU_COMPLETE. HASH_DIRS <D> Whenever a command name is hashed. zsh 4. and any characters resulting from command substitution as being eligible for filename generation.g. make sure the entire command path is hashed first. etc. If this option is unset. not globbing.g. no path hashing is done at all. otherwise this option will behave just like HIST_IGNORE_ALL_DUPS once the history fills up with unique events. GLOB_ASSIGN <C> If this option is set.4 Last change: October 26. commands whose names do not appear in the functions or aliases hash tables are hashed in order to avoid reporting them as spelling errors. such as options. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) GLOBAL_RCS (–d) <D> If this option is unset. it is not possible to predict whether the result will be an array or a scalar. HASH_LIST_ALL <D> Whenever a command completion is attempted.User Commands Property of BladeLogic. when CORRECT is set. do not display duplicates of a line previously found.’ in a filename to be matched explicitly. ∗)’) with this option set. even if the duplicates are not contiguous.0. This makes the first completion slower. This option is provided for backwards compatibility only: globbing is always performed on the right hand side of array assignments of the form ‘name=(value)’ (e. ‘foo=(∗ and this form is recommended for clarity. /etc/zlogin and /etc/zlogout will not be run. /etc/zshrc. Braces (and commas in between) do not become eligible for expansion. filename generation (globbing) is performed on the right hand side of scalar parameter assignments of the form ‘name=pattern (e. user names. GLOB_SUBST <C> <K> <S> Treat any characters resulting from parameter expansion as being eligible for file expansion and filename generation. HIST_BEEP <D> Beep when an attempt is made to access a history entry which isn’t there. Has no effect if neither HASH_CMDS nor CORRECT is set.zshrc. word the parameter will become an array with those words as arguments.

Note that the function lingers in the internal history until the next command is entered before it vanishes. (See the discussion of SHIN_STDIN. HIST_IGNORE_SPACE (–g) Remove command lines from the history list when the first character on the line is a space. Also. ten consecutive EOFs will cause the shell to exit anyway. IGNORE_EOF (–7) Do not exit on end–of–file. This option is set upon initialisation if the standard input is a tty and commands are being read from standard input. HIST_REDUCE_BLANKS Remove superfluous blanks from each command line being added to the history list. Inc. HIST_NO_FUNCTIONS Remove function definitions from the history list. IGNORE_BRACES (–I) <S> Do not perform brace expansion. The file is periodically trimmed to the number of lines specified by $SAVEHIST. Require the use of exit or logout instead.) This heuristic may be overridden by specifying a state for this option on the command line. to avoid the shell hanging if its tty goes away. older commands that duplicate newer ones are omitted. HIST_NO_STORE Remove the history (fc –l) command from the history list when invoked. if this option is set and the Zsh Line Editor is used. or when one of the expanded aliases contains a leading space. type a space and press return. HIST_IGNORE_DUPS (–h) Do not enter command lines into the history list if they are duplicates of the previous event. allowing you to briefly reuse or edit the line. HIST_SAVE_NO_DUPS When writing out the history file. INC_APPEND_HISTORY This options works like APPEND_HISTORY except that new history lines are added to the $HISTFILE incrementally (as soon as they are entered). Note that the command lingers in the internal history until the next command is entered before it vanishes. HIST_VERIFY Whenever the user enters a line with history expansion. but can exceed this value between trimmings. not for completion widgets. 2001 6 . instead. However. zsh 4. INTERACTIVE (–i. HUP <Z> Send the HUP signal to running jobs when the shell exits.0.User Commands Property of BladeLogic. don’t execute the line directly. widgets implemented by shell functions can be bound to EOF (normally Control–D) without printing the normal warning message. ksh: –i) This is an interactive shell. Note that the command lingers in the internal history until the next command is entered before it vanishes. allowing you to briefly reuse or edit the definition. rather than waiting until the shell is killed. This works only for normal widgets. If you want to make it vanish right away without entering another command. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) HIST_IGNORE_ALL_DUPS If a new command line being added to the history list duplicates an older one.4 Last change: October 26. the older command is removed from the list (even if it is not the previous event). The value of this option cannot be changed anywhere other than the command line. perform history expansion and reload the line into the editing buffer. INTERACTIVE_COMMENTS (–k) <K> <S> Allow comments even in interactive shells. allowing you to briefly reuse or edit the line.

which causes the shell to beep if the option BEEP is also set. all options are shown. KSH_OPTION_PRINT <K> Alters the way options settings are printed: instead of separate lists of set and unset options. Otherwise. in other words. only this option and the XTRACE and PRINT_EXIT_VALUE options are restored. show the type of each file with a trailing identifying mark.User Commands Property of BladeLogic. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) KSH_ARRAYS <K> <S> Emulate ksh array handling as closely as possible. Without this option. See the section ‘Filename Generation’. However. the –L activates LOCAL_OPTIONS. auto–listing behaviour only takes place when nothing would be inserted. KSH_AUTOLOAD <K> <S> Emulate ksh function autoloading. Inc. LOCAL_OPTIONS <K> If this option is set at the point of return from a shell function. not under it as usual. LOCAL_TRAPS <K> zsh 4. and must define the function itself. In the case of BASH_AUTO_LIST. LIST_TYPES (–X) <D> When listing files that are possible completions. marked ‘on’ if they are in the non–default state. integer. the most common ksh–style case – of the file containing only a simple definition of the function – is always handled in the ksh–compatible manner. all the options (including this one) which were in force upon entry to the function are restored. the interpretation of parentheses is affected by a preceding ‘@’. More accurately. LIST_AMBIGUOUS <D> This option works when AUTO_LIST or BASH_AUTO_LIST is also set. are processed. word splitting does not take place in those cases.0. ‘?’ or ∗’. 2001 7 . LIST_PACKED Try to make the completion list smaller (occupying less lines) by printing the matches in columns with different widths. ‘∗ ‘+’. local and readonly. that is. export. this forces the completion widgets to return status 1 on an ambiguous completion. KSH_TYPESET <K> Alters the way arguments to the typeset family of commands. LIST_ROWS_FIRST Lay out the matches in completion lists sorted horizontally. with it. LIST_BEEP <D> Beep on an ambiguous completion. If this option is set. that is done without a completion list being displayed.4 Last change: October 26. (By default. A shell function can also guarantee itself a known shell configuration with a formulation like ‘emulate –L zsh’. ‘off’ otherwise. this may be modified if completion is called from a user–defined widget. ‘!’. If there is an unambiguous prefix to insert on the command line. This means that when a function is autoloaded. including declare. the second match is to the right of the first one.) KSH_GLOB <K> In pattern matching. Hence if this is explicitly unset by a shell function the other options in force at the point of return will remain so. array elements are numbered from zero. the function is defined to the contents of the file. zsh will perform normal word splitting after command and parameter expansion in arguments of an assignment. an array parameter without subscript refers to the first element instead of the whole array. the corresponding file is merely executed. and braces are required to delimit a subscript (‘${path[2]}’ rather than just ‘$path[2]’). this means that the list will be delayed to the third call of the function. float.

MAGIC_EQUAL_SUBST All unquoted arguments of the form ‘anything=expression’ appearing after the command name have filename expansion (that is. When there are no more matches. However. zsh 4. insert the first match immediately. Inc. In other words. trap ’’ INT. where expression has a leading ‘˜’ or ‘=’) performed on expression as if it were a parameter assignment. Note that this option must be set prior to altering the trap behaviour in a function. LONG_LIST_JOBS (–R) List jobs in the long format by default. This also applies to file expansion of an initial ‘˜’ or ‘=’. etc. it is passed to the command as a single argument. sleep 3. Note that this happens anyway with typeset and similar statements. MAIL_WARNING (–U) Print a warning message if a mail file has been accessed since the shell last checked.4 Last change: October 26. ksh: –l) This is a login shell. Then when completion is requested again. unsetopt localtraps trap – INT fn() { setopt localtraps. NOTIFY (–5. This option respects the setting of the KSH_TYPESET option. ksh: –m) Allow job control. unlike LOCAL_OPTIONS. ksh: –b) <Z> Report the status of background jobs immediately. in echo foo=˜/bar:˜/rod. arguments looking like assignments will not undergo wordsplitting. if both options are in effect. Overrides NOMATCH. then the previous status of the trap for that signal will be restored when the function exits. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) If this option is set when a signal trap is set inside a function. print an error. MENU_COMPLETE (–Y) On an ambiguous completion. Set by default in interactive shells. For example. } will restore normally handling of SIGINT after the function exits. MONITOR (–m. both occurrences of ˜ would be replaced. For example. rather than waiting until just before printing a prompt.User Commands Property of BladeLogic. LOGIN (–l. NULL_GLOB (–G) If a pattern for filename generation has no matches. remove the first match and insert the second match. it does not need to be set before any global trap for that to be correctly restored by a function. If this option is not explicitly set. delete the pattern from the argument list instead of reporting an error. the shell is a login shell if the first character of the argv[0] passed to the shell is a ‘–’. NOMATCH (+3) <C> <Z> If a pattern for filename generation has no matches. The argument is not otherwise treated specially. instead of listing possibilities or beeping. instead of leaving it unchanged in the argument list. go back to the first one again.0. This option overrides AUTO_MENU. MARK_DIRS (–8. and not used as an actual parameter assignment. MULTIOS <Z> Perform implicit tees or cats when multiple redirections are attempted (see the section ‘Redirection’). reverse–menu–complete may be used to loop through the list in the other direction. the value on exit from the function is irrelevant. ksh: –X) Append a trailing ‘/’ to all directory names resulting from filename generation (globbing). 2001 8 .

etc.User Commands Property of BladeLogic. and regardless of whether ‘. Thus if ‘/usr/local/bin’ is in the user’s path. This option cannot be changed using the –m option of setopt and unsetopt. Turning this option off causes the effective user and group IDs to be set to the real user and group IDs. the command ‘/usr/local/bin/X11/xinit’ will be executed (assuming it exists). This takes place before any search indicated by this option. declare. This is not enabled by default as it causes problems with parsing of. POSIX_BUILTINS <K> <S> When this option is set the command builtin can be used to execute shell builtin commands. date and time strings with leading zeroes. continue. source. PRINT_EXIT_VALUE (–1) Print the exit value of programs with non–zero exit status. OCTAL_ZEROES <S> Interpret any integer constant beginning with a 0 as octal. local. PRINT_EIGHT_BIT Print eight bit characters literally in completion lists. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) NUMERIC_GLOB_SORT If numeric filenames are matched by a filename generation pattern. ‘./’ or ‘. PROMPT_PERCENT <C> <Z> If set. ksh: –p) Turn on privileged mode. trap and unset. PROMPT_CR (+V) <D> Print a carriage return just before printing a prompt in the line editor. zsh 4. Special builtins are . parameter expansion. This option disables sourcing user startup files. Sourcing ˜/.2–1992 (ISO 9945–2:1993). per IEEE Std 1003. sort the filenames numerically rather than lexicographically. PRIVILEGED (–p. :. /etc/suid_profile is sourced (after /etc/profile on interactive shells). OVERSTRIKE Start up the line editor in overstrike mode. Parameter assignments specified before shell functions and special builtins are kept after the command completes unless the special builtin is prefixed with the command builtin. and he or she types ‘X11/xinit’. This is enabled automatically on startup if the effective user (group) ID is not equal to the real user (group) ID.0. PROMPT_SUBST <K> If set. for example. set. See the section ‘Prompt Expansion’. shift.4 Last change: October 26. ‘!’ is treated specially in prompt expansion. 2001 9 . See the section ‘Prompt Expansion’. builtin. ‘%’ is treated specially in prompt expansion. integer. If zsh is invoked as ‘sh’ or ‘ksh’ with this option set. Note that subdirectories of the current directory are always searched for executables specified in this form./’ are not subject to the path search. and changing it inside a function always changes it globally regardless of the LOCAL_OPTIONS option.profile is disabled and the contents of the ENV variable is ignored. readonly. PUSHD_IGNORE_DUPS Don’t push multiple copies of the same directory onto the directory stack. Inc.. This option is not necessary if your system correctly returns the printability of eight bit characters (see ctype(3)).. export. break. return.’ or the current directory appear in the command search path. PATH_DIRS (–Q) Perform a path search even on command names with slashes in them. PROMPT_BANG <K> If set. Commands explicitly beginning with ‘/’. times. This also applies to the . command substitution and arithmetic expansion are performed in prompts. eval. This is on by default as multi–line editing is only possible if the editor knows where the start of the line appears. exit.

. SH_FILE_EXPANSION <K> <S> Perform filename expansion (e. PUSHD_SILENT (–E) Do not print the directory stack after pushd or popd.4 Last change: October 26. If this option is unset. RC_QUOTES Allow the character sequence ‘’’’ to signify a single quote within singly quoted strings.0. By default. . it is performed after brace expansion. source the . . thing typed in that time. /etc/zprofile.zprofile.rc}’ will work. and then manually import commands whenever you need them using ‘fc –RI’. but you can toggle this on and off with the set–local–history zle binding. the /etc/zshenv file is still sourced. are substituted with ‘fooabar foobbar foocbar’ instead of the default ‘fooa b cbar’. as described in the section ‘Files’.. . history movement commands visit the imported lines as well as the local lines. and some include them. so things like ‘˜$USERNAME’ and ‘˜{pfalstad.zlogout files. PUSHD_TO_HOME (–D) Have pushd with no arguments act like ‘pushd $HOME’. Note this does not apply in quoted strings using the format $’. arithmetic expansion and brace expansion. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) PUSHD_MINUS Exchanges the meanings of ‘+’ and ‘–’ when used with a number to specify a directory in the stack. If you find that you want more control over when commands get imported. SHARE_HISTORY <K> This option both imports new commands from the history file. RM_STAR_SILENT (–H) <K> <S> Do not query the user before executing ‘rm ∗ or ‘rm path/∗ ∗’ ∗’. It is also possible to create a zle widget that will make some commands ignore imported commands.User Commands Property of BladeLogic. and . See the section ‘Restricted Shell’. This option cannot be changed using unsetopt. This avoids the problem of reflexively answering ‘yes’ to the query when one didn’t really mean it.zlogin. /etc/zshrc.. and setting it inside a function always changes it globally regardless of the LOCAL_OPTIONS option.g. recognize exact matches even if they are ambiguous. 2001 10 . command substitution. where a backslashed single quote can be used. The history lines are also output with timestamps ala EXTENDED_HISTORY (which makes it easier to find the spot where we left off reading the file after it gets re–written). RESTRICTED (–r) Enables restricted mode. If this option is unset. RC_EXPAND_PARAM (–P) Array expansions of the form ‘foo${xx}bar’. Inc. and also causes your typed commands to be appended to the history file (the latter is like specifying INC_APPEND_HISTORY). it can be set at any time to prevent the remaining startup files after the currently executing one from being sourced.zshenv.zshrc. RM_STAR_WAIT If querying the user before executing ‘rm ∗ or ‘rm path/∗ first wait ten seconds and ignore any∗’ ∗’. REC_EXACT (–S) In completion. /etc/zlogin. INC_APPEND_HISTORY on. zsh 4. The wait and query can always be avoided by expanding the ‘∗ in ZLE ∗’ (with tab). you may wish to turn SHARE_HISTORY off. but any of the others will not be.’. where the parameter xx is set to (a b c). ˜ expansion) before parameter expansion. RCS (+f) <D> After /etc/zshenv is sourced on startup.

Note that this option has nothing to do with word splitting. any argument that would otherwise have been taken as a file to run will instead be treated as a normal positional parameter. Otherwise they are treated as an error. unless the INTERACTIVE option is explicitly set on the command line. UNSET (+u. Commands are read from standard input if no command is specified with –c and no file of commands is specified. and there are an odd number of backquotes on the line. SHIN_STDIN (–s. 2001 11 . but can be used just like normal option names when specifying options to the shell. and function constructs. SUN_KEYBOARD_HACK (–L) If a line ends with a backquote. The value of this option cannot be changed anywhere other than the command line. ksh: –x) Print commands and their arguments as they are executed. and in some other places where the shell accepts patterns. Inc. The value of this option cannot be changed anywhere other than the command line. Note that setting or unsetting this option on the command line does not necessarily affect the state the option will have while the shell is running – that is purely an indicator of whether on not commands are actually being read from standard input. ZLE (–Z) Use the zsh line editor.User Commands Property of BladeLogic. use ‘:’ instead (see the section ‘Redirection’). SH_WORD_SPLIT (–y) <K> <S> Causes field splitting to be performed on unquoted parameter expansions. XTRACE (–x. ‘’. SINGLE_LINE_ZLE (–M) <K> Use single–line command line editing instead of multi–line. if. SH_NULLCMD <K> <S> Do not use the values of NULLCMD and READNULLCMD when doing redirections. ksh: –v) Print shell input lines as they are read. zsh 4. SH_OPTION_LETTERS <K> <S> If this option is set the shell tries to interpret single letter options (which are used with set and setopt) like ksh does. SHORT_LOOPS <C> <Z> Allow the short forms of for. ksh: +u) <K> <S> <Z> Treat unset parameters as if they were empty when substituting. ksh: –t) If the shell is reading from standard input. This option is set by default if zsh is invoked as sh or ksh. ignore the trailing backquote. These aliases are never used for output.) SINGLE_COMMAND (–t. This is useful on some keyboards where the return key is too small. select. OPTION ALIASES Some options have alternative names. Strictly confidential and proprietary ZSHOPTIONS ( 1 ) SH_GLOB <K> <S> Disables the special meaning of ‘(’.4 Last change: October 26. (See the section ‘Parameter Expansion’. ‘)’ and ’<’ for globbing the result of parameter and command substitutions. and the backquote key lies annoyingly close to it. Set by default in interactive shells connected to a terminal. VERBOSE (–v.0. This also affects the value of the – special parameter. it exits after a single command has been executed. ksh: –s) Commands are being read from the standard input. If SHIN_STDIN is set explicitly on the command line. This also makes the shell non–interactive.

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHOPTIONS ( 1 )

BRACE_EXPAND NO_IGNORE_BRACES (ksh and bash compatibility) DOT_GLOB GLOB_DOTS (bash compatibility) HASH_ALL HASH_CMDS (bash compatibility) HIST_APPEND APPEND_HISTORY (bash compatibility) HIST_EXPAND BANG_HIST (bash compatibility) LOG NO_HIST_NO_FUNCTIONS (ksh compatibility) MAIL_WARN MAIL_WARNING (bash compatibility) ONE_CMD SINGLE_COMMAND (bash compatibility) PHYSICAL CHASE_LINKS (ksh and bash compatibility) PROMPT_VARS PROMPT_SUBST (bash compatibility) STDIN SHIN_STDIN (ksh compatibility) TRACK_ALL HASH_CMDS (ksh compatibility)
SINGLE LETTER OPTIONS Default set

–0 –1 –2 –3 –4 –5 –6 –7 –8 –9 –B –C –D –E –F –G –H –I –J –K –L –M –N –O –P

CORRECT PRINT_EXIT_VALUE NO_BAD_PATTERN NO_NOMATCH GLOB_DOTS NOTIFY BG_NICE IGNORE_EOF MARK_DIRS AUTO_LIST NO_BEEP NO_CLOBBER PUSHD_TO_HOME PUSHD_SILENT NO_GLOB NULL_GLOB RM_STAR_SILENT IGNORE_BRACES AUTO_CD NO_BANG_HIST SUN_KEYBOARD_HACK SINGLE_LINE_ZLE AUTO_PUSHD CORRECT_ALL RC_EXPAND_PARAM

zsh 4.0.4

Last change: October 26, 2001

12

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHOPTIONS ( 1 )

–Q –R –S –T –U –V –W –X –Y –Z –a –e –f –g –h –i –k –l –m –n –p –r –s –t –u –v –w –x –y –C –X –a –b –e –f –i –l –m –n –p –r –s –t –u –v –x
Also note

PATH_DIRS LONG_LIST_JOBS REC_EXACT CDABLE_VARS MAIL_WARNING NO_PROMPT_CR AUTO_RESUME LIST_TYPES MENU_COMPLETE ZLE ALL_EXPORT ERR_EXIT NO_RCS HIST_IGNORE_SPACE HIST_IGNORE_DUPS INTERACTIVE INTERACTIVE_COMMENTS LOGIN MONITOR NO_EXEC PRIVILEGED RESTRICTED SHIN_STDIN SINGLE_COMMAND NO_UNSET VERBOSE CHASE_LINKS XTRACE SH_WORD_SPLIT NO_CLOBBER MARK_DIRS ALL_EXPORT NOTIFY ERR_EXIT NO_GLOB INTERACTIVE LOGIN MONITOR NO_EXEC PRIVILEGED RESTRICTED SHIN_STDIN SINGLE_COMMAND NO_UNSET VERBOSE XTRACE Used by set for setting arrays Used on the command line to specify end of option processing Used on the command line to specify a single command Used by setopt for pattern–matching option setting Used in all places to allow use of long option names

sh/ksh emulation set

–A –b –c –m –o

zsh 4.0.4

Last change: October 26, 2001

13

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHOPTIONS ( 1 )

–s

Used by set to sort positional parameters

zsh 4.0.4

Last change: October 26, 2001

14

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

NAME

zshbuiltins – zsh built–in commands
SHELL BUILTIN COMMANDS

– simple command See the section ‘Precommand Modifiers’. . file [ arg ... ] Read commands from file and execute them in the current shell environment. If file does not contain a slash, or if PATH_DIRS is set, the shell looks in the components of $path to find the directory containing file. Files in the current directory are not read unless ‘.’ appears somewhere in $path. If a file named ‘file.zwc’ is found, is newer than file, and is the compiled form (created with the zcompile builtin) of file, then commands are read from that file instead of file. If any arguments arg are given, they become the positional parameters; the old positional parameters are restored when the file is done executing. The exit status is the exit status of the last command executed. : [ arg ... ] This command does nothing, although normal argument expansions is performed which may have effects on shell parameters. A zero exit code is returned. alias [ {+–}gmrL ] [ name[=value] ... ] For each name with a corresponding value, define an alias with that value. A trailing space in value causes the next word to be checked for alias expansion. If the –g flag is present, define a global alias; global aliases are expanded even if they do not occur in command position. For each name with no value, print the value of name, if any. With no arguments, print all currently defined aliases. If the –m flag is given the arguments are taken as patterns (they should be quoted to preserve them from being interpreted as glob patterns), and the aliases matching these patterns are printed. When printing aliases and the –g or –r flags are present, then restrict the printing to global or regular aliases, respectively. Using ‘+’ instead of ‘–’, or ending the option list with a single ‘+’, prevents the values of the aliases from being printed. If the –L flag is present, then print each alias in a manner suitable for putting in a startup script. The exit status is nonzero if a name (with no value) is given for which no alias has been defined. autoload [ {+–}UXmt ] [ –wkz ] [ name ... ] Equivalent to functions –u, with the exception of –X/+X, –w, –k and –z. The flag –X may be used only inside a shell function, and may not be followed by a name. It causes the calling function to be marked for autoloading and then immediately loaded and executed, with the current array of positional parameters as arguments. This replaces the previous definition of the function. If no function definition is found, an error is printed and the function remains undefined and marked for autoloading. The flag +X attempts to load each name as an autoloaded function, but does not execute it. The exit status is zero (success) if the function was not previously defined and a definition for it was found. This does not replace any existing definition of the function. The exit status is nonzero (failure) if the function was already defined or when no definition was found. In the latter case the function remains undefined and marked for autoloading. The flag +X may be combined with either –k or –z to make the function be loaded using ksh–style or zsh–style autoloading, respectively. If neither is given, the current setting of the KSH_AUTOLOAD options determines how the function is loaded. With ksh–style autoloading, the contents of the file will not be executed immediately. Instead, the function created will contain the contents of the file plus a call to the function itself appended to it, thus given normal ksh autoloading behaviour on the first call to the function.

zsh 4.0.4

Last change: October 26, 2001

1

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

With the –w flag, the names are taken as names of files compiled with the zcompile builtin, and all functions defined in them are marked for autoloading. bg [ job ... ] job ... & Put each specified job in the background, or the current job if none is specified. bindkey See the section ‘Zle Builtins’ in zshzle(1). break [ n ] Exit from an enclosing for, while, until, select or repeat loop. If n is specified, then break n levels instead of just one. builtin name [ args ... ] Executes the builtin name, with the given args. bye cap Same as exit. See the section ‘The zsh/cap Module’ in zshmodules(1).

cd [ –sLP ] [ arg ] cd [ –sLP ] old new cd [ –sLP ] {+–}n Change the current directory. In the first form, change the current directory to arg, or to the value of $HOME if arg is not specified. If arg is ‘–’, change to the value of $OLDPWD, the previous directory. Otherwise, if a directory named arg is not found in the current directory and arg does not begin with a slash, search each component of the shell parameter cdpath. If no directory is found and the option CDABLE_VARS is set, and a parameter named arg exists whose value begins with a slash, treat its value as the directory. In that case, the parameter is added to the named directory hash table. The second form of cd substitutes the string new for the string old in the name of the current directory, and tries to change to this new directory. The third form of cd extracts an entry from the directory stack, and changes to that directory. An argument of the form ‘+n’ identifies a stack entry by counting from the left of the list shown by the dirs command, starting with zero. An argument of the form ‘–n’ counts from the right. If the PUSHD_MINUS option is set, the meanings of ‘+’ and ‘–’ in this context are swapped. If the –s option is specified, cd refuses to change the current directory if the given pathname contains symlinks. If the –P option is given or the CHASE_LINKS option is set, symbolic links are resolved to their true values. If the –L option is given symbolic links are followed regardless of the state of the CHASE_LINKS option. chdir clone Same as cd. See the section ‘The zsh/clone Module’ in zshmodules(1).

command simple command See the section ‘Precommand Modifiers’. comparguments See the section ‘The zsh/computil Module’ in zshmodules(1). compcall See the section ‘The zsh/compctl Module’ in zshmodules(1). compctl See the section ‘The zsh/compctl Module’ in zshmodules(1). compdescribe See the section ‘The zsh/computil Module’ in zshmodules(1).

zsh 4.0.4

Last change: October 26, 2001

2

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

compfiles See the section ‘The zsh/computil Module’ in zshmodules(1). compgroups See the section ‘The zsh/computil Module’ in zshmodules(1). compquote See the section ‘The zsh/computil Module’ in zshmodules(1). comptags See the section ‘The zsh/computil Module’ in zshmodules(1). comptry See the section ‘The zsh/computil Module’ in zshmodules(1). compvalues See the section ‘The zsh/computil Module’ in zshmodules(1). continue [ n ] Resume the next iteration of the enclosing for, while, until, select or repeat loop. If n is specified, break out of n–1 loops and resume at the nth enclosing loop. declare Same as typeset. dirs [ –v ] [ arg ... ] With no arguments, print the contents of the directory stack. If the –v option is given, number the directories in the stack when printing. Directories are added to this stack with the pushd command, and removed with the cd or popd commands. If arguments are specified, load them onto the directory stack, replacing anything that was there, and push the current directory onto the stack. disable [ –afmr ] name ... Temporarily disable the named hash table elements. The default is to disable builtin commands. This allows you to use an external command with the same name as a builtin command. The –a option causes disable to act on aliases. The –f option causes disable to act on shell functions. The –r options causes disable to act on reserved words. Without arguments all disabled hash table elements from the corresponding hash table are printed. With the –m flag the arguments are taken as patterns (which should be quoted to prevent them from undergoing filename expansion), and all hash table elements from the corresponding hash table matching these patterns are disabled. Disabled objects can be enabled with the enable command. disown [ job ... ] job ... & job ... &! Remove the specified jobs from the job table; the shell will no longer report their status, and will not complain if you try to exit an interactive shell with them running or stopped. If no job is specified, disown the current job. echo [ –neE ] [ arg ... ] Write each arg on the standard output, with a space separating each one. If the –n flag is not present, print a newline at the end. echo recognizes the following escape sequences: \a \b \c \e \f \n \r \t \v bell character backspace suppress final newline escape form feed linefeed (newline) carriage return horizontal tab vertical tab

zsh 4.0.4

Last change: October 26, 2001

3

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

\\ backslash \0NNN character code in octal \xNN character code in hexadecimal The –E flag, or the BSD_ECHO option, can be used to disable these escape sequences. In the latter case, –e flag can be used to enable them. echotc See the section ‘The zsh/termcap Module’ in zshmodules(1). echoti See the section ‘The zsh/terminfo Module’ in zshmodules(1). emulate [ –LR ] {zshshkshcsh} Set up zsh options to emulate the specified shell as much as possible. csh will never be fully emulated. If the argument is not one of the shells listed above, zsh will be used as a default; more precisely, the tests performed on the argument are the same as those used to determine the emulation at startup based on the shell name, see the section ‘Compatibility’ in zshmisc(1) . If the –R option is given, all options are reset to their default value corresponding to the specified emulation mode, except for certain options describing the interactive environment; otherwise, only those options likely to cause portability problems in scripts and functions are altered. If the –L option is given, the options LOCAL_OPTIONS and LOCAL_TRAPS will be set as well, causing the effects of the emulate command and any setopt and trap commands to be local to the immediately surrounding shell function, if any; normally these options are turned off in all emulation modes except ksh. enable [ –afmr ] name ... Enable the named hash table elements, presumably disabled earlier with disable. The default is to enable builtin commands. The –a option causes enable to act on aliases. The –f option causes enable to act on shell functions. The –r option causes enable to act on reserved words. Without arguments all enabled hash table elements from the corresponding hash table are printed. With the –m flag the arguments are taken as patterns (should be quoted) and all hash table elements from the corresponding hash table matching these patterns are enabled. Enabled objects can be disabled with the disable builtin command. eval [ arg ... ] Read the arguments as input to the shell and execute the resulting command in the current shell process. exec simple command See the section ‘Precommand Modifiers’. exit [ n ] Exit the shell with the exit code specified by n; if none is specified, use the exit code from the last command executed. An EOF condition will also cause the shell to exit, unless the IGNORE_EOF option is set. export [ name[=value] ... ] The specified names are marked for automatic export to the environment of subsequently executed commands. Equivalent to typeset –gx. If a parameter specified does not already exist, it is created in the global scope. false [ arg ... ] Do nothing and return an exit code of 1. fc [ –e ename ] [ –nlrdDfEim ] [ old=new ... ] [ first [ last ] ] fc –ARWI [ filename ] Select a range of commands from first to last from the history list. The arguments first and last may be specified as a number or as a string. A negative number is used as an offset to the current history event number. A string specifies the most recent event beginning with the given string. All substitutions old=new, if any, are then performed on the commands.

zsh 4.0.4

Last change: October 26, 2001

4

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

If the –l flag is given, the resulting commands are listed on standard output. If the –m flag is also given the first argument is taken as a pattern (should be quoted) and only the history events matching this pattern will be shown. Otherwise the editor program ename is invoked on a file containing these history events. If ename is not given, the value of the parameter FCEDIT is used. If ename is ‘–’, no editor is invoked. When editing is complete, the edited command is executed. If first is not specified, it will be set to –1 (the most recent event), or to –16 if the –l flag is given. If last is not specified, it will be set to first, or to –1 if the –l flag is given. The flag –r reverses the order of the commands and the flag –n suppresses command numbers when listing. Also when listing, –d prints timestamps for each command, and –f prints full time–date stamps. Adding the –E flag causes the dates to be printed as ‘dd.mm.yyyy’, instead of the default ‘mm/dd/yyyy’. Adding the –i flag causes the dates to be printed in ISO8601 ‘yyyy–mm–dd’ format. With the –D flag, fc prints elapsed times. ‘fc –R’ reads the history from the given file, ‘fc –W’ writes the history out to the given file, and ‘fc –A’ appends the history out to the given file. If no filename is specified, the $HISTFILE is assumed. If the –I option is added to –R, only those events that are not already contained within the internal history list are added. If the –I option is added to –A or –W, only those events that are new since last incremental append/write to the history file are appended/written. In any case, the created file will have no more than $SAVEHIST entries. fg [ job ... ] job ... Bring each specified job in turn to the foreground. If no job is specified, resume the current job. float [ {+–}EFghlrtux ] [ name[=value] ... ] Equivalent to typeset –E, except that options irrelevant to floating point numbers are not permitted. functions [ {+–}UXmtu ] [ name ... ] Equivalent to typeset –f. getcap See the section ‘The zsh/cap Module’ in zshmodules(1). getln [ –AclneE ] name ... Read the top value from the buffer stack and put it in the shell parameter name. Equivalent to read –zr. getopts optstring name [ arg ... ] Checks the args for legal options. If the args are omitted, use the positional parameters. A valid option argument begins with a ‘+’ or a ‘–’. An argument not beginning with a ‘+’ or a ‘–’, or the argument ‘– –’, ends the options. optstring contains the letters that getopts recognizes. If a letter is followed by a ‘:’, that option is expected to have an argument. The options can be separated from the argument by blanks. Each time it is invoked, getopts places the option letter it finds in the shell parameter name, prepended with a ‘+’ when arg begins with a ‘+’. The index of the next arg is stored in OPTIND. The option argument, if any, is stored in OPTARG. The first option to be examined may be changed by explicitly assigning to OPTIND. OPTIND has an initial value of 1, and is normally reset to 1 upon exit from a shell function. OPTARG is not reset and retains its value from the most recent call to getopts. If either of OPTIND or OPTARG is explicitly unset, it remains unset, and the index or option argument is not stored. The option itself is still stored in name in this case. A leading ‘:’ in optstring causes getopts to store the letter of any invalid option in OPTARG, and to set name to ‘?’ for an unknown option and to ‘:’ when a required option is missing. Otherwise, getopts sets name to ‘?’ and prints an error message when an option is invalid. The exit status is nonzero when there are no more options. hash [ –Ldfmrv ] [ name[=value] ] ...

zsh 4.0.4

Last change: October 26, 2001

5

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

hash can be used to directly modify the contents of the command hash table, and the named directory hash table. Normally one would modify these tables by modifying one’s PATH (for the command hash table) or by creating appropriate shell parameters (for the named directory hash table). The choice of hash table to work on is determined by the –d option; without the option the command hash table is used, and with the option the named directory hash table is used. Given no arguments, and neither the –r or –f options, the selected hash table will be listed in full. The –r option causes the selected hash table to be emptied. It will be subsequently rebuilt in the normal fashion. The –f option causes the selected hash table to be fully rebuilt immediately. For the command hash table this hashes all the absolute directories in the PATH, and for the named directory hash table this adds all users’ home directories. These two options cannot be used with any arguments. The –m option causes the arguments to be taken as patterns (which should be quoted) and the elements of the hash table matching those patterns are printed. This is the only way to display a limited selection of hash table elements. For each name with a corresponding value, put ‘name’ in the selected hash table, associating it with the pathname ‘value’. In the command hash table, this means that whenever ‘name’ is used as a command argument, the shell will try to execute the file given by ‘value’. In the named directory hash table, this means that ‘value’ may be referred to as ‘˜name’. For each name with no corresponding value, attempt to add name to the hash table, checking what the appropriate value is in the normal manner for that hash table. If an appropriate value can’t be found, then the hash table will be unchanged. The –v option causes hash table entries to be listed as they are added by explicit specification. If has no effect if used with –f. If the –L flag is present, then each hash table entry is printed in the form of a call to hash. history Same as fc –l. integer [ {+–}ghilrtux ] [ name[=value] ... ] Equivalent to typeset –i, except that options irrelevant to integers are not permitted. jobs [ –dlprs ] [ job ... ] jobs –Z string Lists information about each given job, or all jobs if job is omitted. The –l flag lists process IDs, and the –p flag lists process groups. If the –r flag is specified only running jobs will be listed and if the –s flag is given only stopped jobs are shown. If the –d flag is given, the directory from which the job was started (which may not be the current directory of the job) will also be shown. The –Z option replaces the shell’s argument and environment space with the given string, truncated if necessary to fit. This will normally be visible in ps (ps(1)) listings. This feature is typically used by daemons, to indicate their state. kill [ –s signal_name ] job ... kill [ –sig ] job ... kill –l [ sig ... ] Sends either SIGTERM or the specified signal to the given jobs or processes. Signals are given by number or by names, without the ‘SIG’ prefix. If the signal being sent is not ‘KILL’ or ‘CONT’, then the job will be sent a ‘CONT’ signal if it is stopped. The argument job can be the process ID of a job not in the job list. In the third form, kill –l, if sig is not specified the signal names are listed. Otherwise, for each sig that is a name, the corresponding signal number is listed. For each sig that is a signal number or a number representing the exit status of a process which was terminated or stopped by a signal the name of the signal is printed. let arg ... Evaluate each arg as an arithmetic expression. See the section ‘Arithmetic Evaluation’ for a

zsh 4.0.4

Last change: October 26, 2001

6

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

description of arithmetic expressions. The exit status is 0 if the value of the last expression is nonzero, and 1 otherwise. limit [ –hs ] [ resource [ limit ] ] ... Set or display resource limits. Unless the –s flag is given, the limit applies only the children of the shell. If –s is given without other arguments, the resource limits of the current shell is set to the previously set resource limits of the children. If limit is not specified, print the current limit placed on resource, otherwise set the limit to the specified value. If the –h flag is given, use hard limits instead of soft limits. If no resource is given, print all limits. resource can be one of: addressspace Maximum amount of address space used. aiomemorylocked Maximum amount of memory locked in RAM for AIO operations. aiooperations Maximum number of AIO operations. cachedthreads Maximum number of cached threads. coredumpsize Maximum size of a core dump. cputime Maximum CPU seconds per process. datasize Maximum data size (including stack) for each process. descriptors Maximum value for a file descriptor. filesize Largest single file allowed. maxproc Maximum number of processes. maxpthreads Maximum number of threads per process. memorylocked Maximum amount of memory locked in RAM. memoryuse Maximum resident set size. resident Maximum resident set size. sockbufsize Maximum size of all socket buffers. stacksize Maximum stack size for each process. vmemorysize Maximum amount of virtual memory. Which of these resource limits are available depends on the system. resource can be abbreviated to any unambiguous prefix. limit is a number, with an optional scaling factor, as follows: nh nk nm [mm:]ss hours kilobytes (default) megabytes or minutes minutes and seconds

zsh 4.0.4

Last change: October 26, 2001

7

User Commands

Property of BladeLogic, Inc. Strictly confidential and proprietary

ZSHBUILTINS ( 1 )

local [ {+–}AEFLRUZahilrtux [n]] [ name[=value] ] ... Same as typeset, except that the options –g, and –f are not permitted. In this case the –x option does not force the use of –g, i.e. exported variables will be local to functions. log List all users currently logged in who are affected by the current setting of the watch parameter. logout [ n ] Same as exit, except that it only works in a login shell. noglob simple command See the section ‘Precommand Modifiers’. popd [ {+–}n ] Remove an entry from the directory stack, and perform a cd to the new top directory. With no argument, the current top entry is removed. An argument of the form ‘+n’ identifies a stack entry by counting from the left of the list shown by the dirs command, starting with zero. An argument of the form –n counts from the right. If the PUSHD_MINUS option is set, the meanings of ‘+’ and ‘–’ in this context are swapped. print [ –bnrslzpNDPoOicm ] [ –un ] [ –R [ –en ]] [ arg ... ] With no flags or with flag ‘–’, the arguments are printed on the standard output as described by echo, with the following differences: the escape sequence ‘\M–x’ metafies the character x (sets the highest bit), ‘\C–x’ produces a control character (‘\C–@’ and ‘\C–?’ give the characters NUL and delete), and ‘\E’ is a synonym for ‘\e’. Finally, if not in an escape sequence, ‘\’ escapes the following character and is not printed. –r –R Ignore the escape conventions of echo. Emulate the BSD echo command, which does not process escape sequences unless the –e flag is given. The –n flag suppresses the trailing newline. Only the –e and –n flags are recognized after –R; all other arguments and options are printed. Recognize all the escape sequences defined for the bindkey command, see zshzle(1). Take the first argument as a pattern (should be quoted), and remove it from the argument list together with subsequent arguments that do not match this pattern. Place the results in the history list instead of on the standard output. Do not add a newline to the output. Print the arguments separated by newlines instead of spaces. Print the arguments separated and terminated by nulls. Print the arguments sorted in ascending order. Print the arguments sorted in descending order. If given together with –o or –O, sorting is performed case–independently. Print the arguments in columns. Print the arguments to file descriptor n. Print the arguments to the input of the coprocess. Push the arguments onto the editing buffer stack, separated by spaces. Treat the arguments as directory names, replacing prefixes with ˜ expressions, as appropriate. Perform prompt expansion (see zshmisc(1)).

–b –m –s –n –l –N –o –O –i –c –un –p –z –D –P pushd [ arg ] pushd old new pushd {+–}n

zsh 4.0.4

Last change: October 26, 2001

8

This flag is ignored when the –k or –q flags are present. exchange the top two entries).. If both flags are –e –E –A –c –l zsh 4. without word splitting. the meanings of ‘+’ and ‘–’ in this context are swapped. Inc. If name is omitted then REPLY is used for scalars and reply for arrays. An argument of the form ‘+n’ identifies a stack entry by counting from the left of the list shown by the dirs command. arg is interpreted as it would be by cd. An argument of the form ‘–n’ counts from the right. Input is read from the terminal unless one of –u or –p is present. The third form of pushd changes directory by rotating the directory list. The meaning of old and new in the second form is also the same as for cd.0. ] Read one line and break it into fields using the characters in $IFS as separators. Note that this always reads from the terminal. Otherwise. In the first form. If the –c flag is given. Strictly confidential and proprietary ZSHBUILTINS ( 1 ) Change the current directory. without word splitting. If the –e flag is used. This flag is ignored when –q is present. except as noted below. –r –q Raw mode: a ‘\’ at the end of a line does not signify line continuation and backslashes in the line don’t quote the following character and are not removed.. If the –l flag is given. no input is assigned to the parameters. pwd [ –rLP ] Print the absolute pathname of the current working directory. change the current directory to arg. If arg is not specified. –k [ num ] Read only one (or num) characters. or change to $HOME if the PUSHD_TO_HOME option is set or if there is only one entry on the stack. and push the old current directory onto the directory stack.. With this flag set the return value is zero only if the character was ‘y’ or ‘Y’. These flags are allowed only if called inside a function used for completion (specified with the –K flag to compctl). If the PUSHD_MINUS option is set. not in the same word. The input read is printed (echoed) to the standard output. r Same as fc –e –. change to the second directory on the stack (that is.User Commands Property of BladeLogic. Text is pushed onto the stack with ‘print –z’ or with push–line from the line editor (see zshzle(1)). The first name is taken as the name of an array and all words are assigned to it. the words of the current command are read. Read only one character from the terminal and set name to ‘y’ if this character was ‘y’ or ‘Y’ and to ‘n’ otherwise. The first field is assigned to the first name. This option may also be used within zle widgets. even if used with the –p or –u or –z flags or with redirected input.. with leftover fields assigned to the last name. the second field to the second name. –z Read one entry from the editor buffer stack and assign it to the first name.. pushln [ arg . or the CHASE_LINKS option is set and the –L flag is not given. the directory stack will be printed after a pushd is performed. If the option PUSHD_SILENT is not set. If the –r or the –P flag is specified. the printed path will not contain symbolic links. All are assigned to the first name. etc. the whole line is assigned as a scalar. read [ –rzpqAclneEt ] [ –k [ num ] ] [ –un ] [ name[?prompt] ] [ name . See –u. This option may also be used within zle widgets. starting with zero. 2001 9 . ] Equivalent to print –nz. Note that num must be in the argument word that follows –k.4 Last change: October 26.

or when –c or –l is present and the command is not called from a compctl function. [ {+–}A [ name ] ] [ arg . so usually ‘read –t’ will not read anything until an entire line has been typed. With +s sort arguments in descending order. –q.. note that only availability of the first character is tested. the remainder of this word is used as a prompt on standard error when the shell is interactive. Otherwise the positional parameters are set. –n Together with –c. Note that the numeric value of the signal which caused the trap is passed as the first argument. so that e. ‘read –t –k 2’ can still block on the second character. return [ n ] Causes a shell function or . If the first argument contains a ‘?’. script to return to the invoking script with the return status specified by n. the given arguments will replace the initial elements of that array. With –l. the shell will behave as interrupted except that the return status of the trap is retained. Strictly confidential and proprietary ZSHBUILTINS ( 1 ) present. If return was executed from a trap in a TRAPNAL function.. the return status is that of the last command executed. Flags may be specified by name using the –o option. Input is read from file descriptor n. readonly Same as typeset –r. its character index is the length of the line plus one.g. Test if input is available before attempting to read. in which an entire line is read at a time. Inc. if no name is specified. –u and –z flags is undefined. If the –s option is given. The –c or –l flags cancel any and all of –kpquz. the number of the word the cursor is on is read. when called from within completion with –c or –l. However. name is set to an array containing the given args. if none is. all arrays are printed. with a non–zero status. With zero status (or after an implicit return at the end of the trap). not word 0. ] Set the options for the shell and/or set the positional parameters. Presently –q cancels all the others. 2001 10 . see zshoptions(1). If no arguments are –un –p –t zsh 4. set [ {+–}options  {+–}o option_name ] . rehash Same as hash –r. and that when the cursor is at the end of the line. it causes the specified arguments to be sorted before assigning them to the positional parameters (or to the array name if –A is used). sched See the section ‘The zsh/sched Module’ in zshmodules(1).0. Note that the command name is word number 1. If n is omitted. when reading from the terminal with –k this is automatically handled. or as described for –q.. so the statement ‘return $((128+$1))’ will return the same status as if the signal had not been trapped. return status 1 and do not set any variables. or within zle where other mechanisms should be used to test for input. the index of the character the cursor is on is read. This is not available when reading from the editor buffer with –z.. –p cancels –u. with –q which clears the input queue before reading. the effect is different for zero and non–zero return status. Note that read does not attempt to alter the input processing mode. if +A is used and name is an array. The behavior of some combinations of the –k. For the meaning of the other flags. –k cancels –z. –l is used and –c is ignored. the shell will return to whatever it was previously processing.User Commands Property of BladeLogic. If the –A flag is specified. The default mode is canonical input. –p. The value (exit status) of read is 1 when an end–of–file is encountered. Input is read from the coprocess. and otherwise –z cancels both –p and –u. or declare and set an array.4 Last change: October 26. Otherwise the value is 0. where n is a single digit and must not be separated from –u by any whitespace.

If no arguments are supplied. If sig is ZERR then arg will be executed after each command with a nonzero exit status. trap [ arg [ sig . while TRAPDEBUG() { print $LINENO. Strictly confidential and proprietary ZSHBUILTINS ( 1 ) given. then the command arg is executed when the shell terminates. If sig is 0 or EXIT and the trap statement is executed inside the body of a function.. The trap command with no arguments prints a list of commands associated with each signal.. and all options with names matching these patterns are set... ] Do nothing and return an exit code of 0. where n is an arithmetic expression that defaults to 1. If arg is the empty string. the names of all options currently set are printed. setopt [ {+–}options  {+–}o option_name ] [ name . If sig is 0 or EXIT and the trap statement is not executed inside the body of a function. ] Same as . before directories in $path..User Commands Property of BladeLogic... source file [ arg .. suspend [ –f ] Suspend the execution of the shell (send it a SIGTSTP) until it receives a SIGCONT... }’.. If any names are given then the arrays with these names are shifted instead of the positional parameters. If arg is ‘–’. ] Set the options for the shell... Inc. If the only argument is ‘+’. trap ’print $LINENO’ DEBUG will print the line number of a command executed after it has run. then the command arg is executed after the function completes. All options specified either with flags or by name are set. setcap See the section ‘The zsh/cap Module’ in zshmodules(1). as the latter have their own function environment (line numbers. times Print the accumulated user and system times for the shell and for processes run from the shell... then the names and values of all parameters are printed on the standard output.. this will refuse to suspend a login shell. the names of all parameters are printed. ] ] Like the system version of test. test [ arg .. shift [ n ] [ name . true [ arg . If the –m flag is given the arguments are taken as patterns (which should be quoted to protect them from filename expansion). use conditional expressions instead (see the section ‘Conditional Expressions’). Added for compatibility. Unless the –f option is given. stat See the section ‘The zsh/stat Module’ in zshmodules(1).4 Last change: October 26.. For example. Note that traps defined with the trap builtin are slightly different from those defined as ‘TRAPNAL () { . } will always print the number zero. ] The positional parameters ${n+1} . ] [ [ arg .0. etc. 2001 11 . then this signal is ignored by the shell and by the commands it invokes. If sig is DEBUG then arg will be executed after each command. local variables.. ] ] arg is a series of commands (usually quoted to protect it from immediate evaluation by the shell) to be read and executed when the shell receives sig. then all traps sig are reset to their default values. ttyctl –fu zsh 4... Each sig can be given as a number or as the name of a signal. are renamed to $1 .) while the former use the environment of the command in which they were called. except that the current directory is always searched and is always searched first..

the parameter name is set to value. +T does not work. exactly two (or zero) name arguments must be present. Except when assignments are made with name=value..’ work. If the +g flag is combined with –m. If +m is used with attribute flags. Nothing is printed for newly–created parameters.4 Last change: October 26. When inside a function. For each remaining