This document describes the features and functionality provided with the OpenVMS GNV software. It explains how to install, setup, and use the software on your OpenVMS system.
Revision/Update Information: This is an updated document.
OpenVMS Alpha Version 8.3 or later
OpenVMS Integrity servers Version 8.3-1H1 or later
OpenVMS Alpha GNV Version 3.0-1,
OpenVMS Integrity servers GNV Version 3.0-1
Hewlett-Packard Development Company, L.P.
Palo Alto, California
© Copyright 2011 Hewlett-Packard Development Company, L.P.
The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.
Linux is a U.S. registered trademark of Linus Torvalds.
UNIX is a registered trademark of The Open Group.
© Copyright 1989, 1991 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
This document includes information about the GNU's Not VMS (GNV) software, including:
OpenVMS utilities, commands, file names, and directory names are shown in uppercase text, while UNIX utilities, commands, file names, and directory names are shown in lowercase text. If you are reading this documentation in an output format other than text (.TXT) --- such as in PostScript or HTML output --- UNIX utilities, commands, file names, and directory names are shown in monospace text.
The following additional conventions are used in this document.
Italic typeface indicates a place holder for information or parameters
that you must provide. For example, if the procedure asks you to type
file name, you must type the actual name of a file.
Italic type also indicates titles of other documentation referenced.
|monospace 1||Monospace typeface indicates code examples, command examples, and interactive or system screen displays. In text, this type face indicates UNIX commands that you enter.|
|Ctrl/ x||While you hold down the Ctrl key, press another key or a pointing device button.|
HP welcomes your comments on this manual. Please send comments to:
The software requirements for GNV are:
GNV must be installed only on ODS-5 disks. It requires approximately
400 MB disk space for installation on both OpenVMS Alpha and OpenVMS
2 New Features in GNV Version 3.0-1
This release retains gnutar binary compbatibility with any scripts that currently uses gnutar .
No new features have been added to GNV for Version 2.1-3.
4 New Features in GNV Version 2.1-2
The main change in Version 2.1-2 is removal of several installation problems.
The main change in Version 2.1 is support of the symlink capability that has been added to RMS in OpenVMS. Other minor bugs have been fixed as well.
Several new UNIX utilities have been added in GNV Version 1.6.
On an OpenVMS system, the size displayed by du represents only the highest generation of each of the files in the directory.
bash$ du --help
bash$ man du
bash$ printenv --help
bash$ man printenv
bash$ env --help
bash$ man env
bash$ which --help
bash$ man which
bash$ gnutar -xzf gnutar.tar.gz
HP recommends using tar (either tar (VMSTAR) or gnutar (GNU tar )) for reading OpenSource tarballs. You can also use tar to save files on your OpenVMS system to a tarball. However, this works well only for UNIX-style files. The tar utility works especially well for stream_LF files, either copied from UNIX or GNU systems, or created by UNIX programs with C Run-Time Library functions.
The tar utility does not work well on some other OpenVMS file types. It can successfully copy variable-length text files; however, it corrupts other types of variable-length files. tar corrupts object files generated by compilers.
When a variable-length text file is written to a tarball and then restored to a directory on OpenVMS, the result is a stream_LF file with the same text contents as the original. This might not be suitable for some applications.
Be very careful when using tar to back up non-stream_LF files. This warning applies especially to GNU tar , but can also apply to VMSTAR.
In this release of GNV, the new GNU tar utility is invoked by typing gnutar in the command line. Typing tar in the command line invokes VMSTAR.
For more information, type:
The GNV software provides an open source, GNU-based, UNIX environment for OpenVMS. It provides UNIX application developers, system managers, and users a UNIX-style environment so that they can easily develop and port UNIX software to OpenVMS. (GNU is a UNIX-like operating system that is free software. Linux is basically a GNU system: the system is GNU, while the kernel is Linux.)
GNV provides a UNIX-like shell (command-line interpreter) environment and a C Run-Time Library (CRTL) supplemental library to provide utilities typically found on UNIX systems. The shell used by GNV is bash (Bourne-Again SHell, from GNU, using the POSIX.2 specification).
To the normal user, bash performs like a command-line interpreter; however, it is not a replacement for the OpenVMS DCL (DIGITAL command language) command-line interpreter.
GNV for OpenVMS is a port of a series of GNU software intended for UNIX-like systems to OpenVMS. It is offered for your use under the terms and conditions of a GNU General Public License (GPL). You can see the latest GPL at the following location:
Several copies of the GPL are also included with the GNV kit. After you install the kit, you can find these copies in any of several directories, in a file named COPYING.; as in the following example, in OpenVMS terminology:
Or, in UNIX terminology:
OpenVMS engineering is very interested in your experiences using the port of the GNU software to OpenVMS and encourages all customers to report problems and issues. Your feedback can help us enhance future versions of the GNV software for OpenVMS. For information on reporting problems, see Section 15.
It has come to our attention that some users like to run GNV utilities from the DCL prompt rather than from within bash . While this may work in many cases, HP does not support this method and does not guarantee that the utilities will work as expected. Most noticeably effected will be use of wildcards, which must be processed by bash . They will not work when a GNV utility is run from DCL. The following example illustrates the inconsistency of results obtained when running ls from the DCL prompt:
$ ls A PRINT_ENV.C T.C TEST.H TEST_FWRITE.C test HELLO.C SLEEP.C TEST.C TEST.H-GZ t.t.t.t.t $ ls *.c /VMS$COMMON/GNV/bin/LS.EXE: *.c: no such file or directory $ ls *.C /VMS$COMMON/GNV/bin/LS.EXE: *.c: no such file or directory $
ODS-5 disks allow use of files with extended file names, including most UNIX style filenames. Such file names are common in Open Source software. GNV includes mostly ported Open Source (or free software) code, and as such contains numerous files with UNIX style file names.
While it may be possible to install GNV (or at least portions of GNV) on ODS-2 disks, HP recommends that you install GNV on an ODS-5 disk. Installing GNV on an ODS-2 disk is likely to result in numerous installation warning and error messages. GNV has been tested primarily on an ODS-5 disk. HP does not guarantee the functionality of GNV on an ODS-2 disk.
Likewise, you can operate GNV on an ODS-2 disk, but some file naming
features will not be usable on such a disk. You will not be able to
make use of case-senstive file names or file names with special
characters, such as multiple dots, which are so common in UNIX
8 Utilities Provided with GNV
This section lists the UNIX utilities provided with GNV and describes
any differences observed between the utilities as used on OpenVMS
systems and the counterparts as used on UNIX systems.
8.1 UNIX Utilities Provided for OpenVMS
Table 1 lists the utilities provided with GNV on OpenVMS. Included for some of the listed utilities are OpenVMS command equivalents as well as behaviors that vary from expected behavior on a UNIX system. HP does not guarantee that all variances have been observed and documented.
|General Purpose Utilities|
|basename||Returns actual base file name when given a path.|
|bash||Invokes bash shell.|
|bind||Equates a key sequence to a function.|
|cd||Changes the current working directory.||OpenVMS DCL SET DEFAULT|
|date||Displays current date and time.||OpenVMS DCL SHOW TIME|
|dirs||Displays a list of currently remembered directories.|
|env||Run program with modified environment.|
|exit||Terminates the shell.|
|help||Provides explanatory text about bash internal commands and features.|
|history||Displays the list of previously executed commands.||OpenVMS DCL RECALL|
|hostname||Sets or displays name of current host system.|
|id||Displays the current user and group IDs and names.|
|logout||Logs out of the shell.|
|popd||Modifies the current directory stack.|
|printenv||Displays environment variables||OpenVMS DCL SHOW SYMBOL or SHOW LOGICAL|
|ps||Displays status of system processes.||OpenVMS DCL SHOW SYSTEM or SHOW PROCESS/SUBPROCESS|
|pushd||Modifies the current directory stack.|
|pwd||Displays the current working directory.||OpenVMS DCL SHOW DEFAULT|
|sh||Invokes a shell.|
|sleep||Pauses for a specified time.||OpenVMS WAIT|
|tee||Sends output to multiple destinations.|
|times||Displays user and system times.|
|uname||Displays the name of the system.|
|wait||Waits for background processes to complete.|
|which||Displays path of a command executable or utility.|
|alias||Provides command name translation.||
Similar to the OpenVMS DCL line:
$ symbol =[=] "string"
|break||Terminates a loop in the shell.|
|builtin||Runs a shell built-in.|
|case||Executes commands selectively.|
|command||Executes a simple command.|
|continue||Resumes execution at the top of a loop.|
|declare||Declares variables and their attributes.|
|echo||Echoes input to standard output.||Similar to OpenVMS DCL line: $ WRITE SYS$OUTPUT|
|enable||Enables or disables built-in shell commands.|
|eval||Constructs a command.|
|exec||Executes commands outside of the current shell.|
|export||Sets the export attributes.|
|expr||Reads an expression, evaluates it, and writes the result to standard output.|
|false||Returns a nonzero exit value.||See true|
|for||Executes a command in a loop.|
|function||Creates a simple command.|
|getopts||Gets input options.|
|hash||Provides direct access to utilities.|
|if||Executes commands selectively.|
|let||Evaluates arithmetic expressions.|
|local||Creates a local variable.|
|read||Reads a line from standard input.||OpenVMS DCL READ|
|readonly||Sets the readonly attribute on shell variables or functions.|
|return||Returns from the current shell function.|
|select||Processes commands selectively.|
|set||Sets shell flags and positional parameters.|
|shift||Shifts positional parameters.|
|source||Executes commands from a file.|
|test||Evaluates an expression.|
|trap||Intercepts exception conditions.|
|true||Returns a zero exit value.|
|type||Displays command information.|
|typeset||Assigns attributes and values to variable.|
|unalias||Removes command name translation.||OpenVMS DCL DELETE/SYMBOL; see alias|
|unset||Unsets values and attributes of variables and functions.|
|until||Executes commands in a loop until a condition is reached.|
|while||Executes commands in a loop until a condition is reached.|
|cc||Compile links; invokes C compiler.||DECC must be installed|
|cxx||Compiles links; invokes C++ compiler.||CXX must be installed|
|gcc||Compiles links; invokes C/C++ compiler.||DECC must be installed|
|g++||Compiles links; invokes C++ compiler.||CXX must be installed|
|ld||Invokes the linker.|
|make||Builds programs. Maintains up-to-date versions of target files and performs shell commands.||Similar to MMS (Module Management System).|
|chmod||Changes file permissions.||OpenVMS DCL SET SECURITY or SET PROTECTION|
|chown||Changes owner of a file.||OpenVMS DCL SET FILE/OWNER|
|df||Displays amount of free disk space in a system.||
|share||Displays list of NFS shares.|
|touch||Updates the access and modification dates of a file.|
|ulimit||Displays and sets file size limit.|
|umask||Displays and sets the file creation mask.|
|chgrp||Changes group ownership.||OpenVMS DCL SET ACL|
|ar||Archives files.||OpenVMS LIBRARY|
|bzip2||Compress/Decompress a file.|
|cat||Concatenates files; displays or prints files.||OpenVMS DCL TYPE; see head , more|
|cksum||Displays checksum and byte count of a file.||See sum|
|cmp||Compares two files, showing first difference only (for a quick check).||OpenVMS DCL DIFFERENCE; see comm , diff|
|comm||Compares two sorted text files; output is three columns showing (1) lines in file1 only, (2) lines in file2 only, (3) lines common to both files.||See cmp , diff|
|cp||Copies files to a new destination.||OpenVMS DCL COPY|
|csplit||Splits a file into new files containing segments of the original file.|
|diff||Compares two files, showing all differences.||OpenVMS DCL DIFFERENCE; see cmp , comm|
|du||Displays disk space usage.|
|egrep||Searches for text in a file.||OpenVMS DCL SEARCH; UNIX: grep -e|
|fgrep||Searches for text in a file.||OpenVMS DCL SEARCH; UNIX: grep -f|
|find||Searches down directory trees for a file (no need to know device!).||OpenVMS DIR [...] filename; see ls|
|grep||Searches for text in a file.||OpenVMS DCL SEARCH; see egrep and fgrep|
|gnutar||GNU tar utility to archive files. Reads OpenSource software distribution tarballs and archives and restores UNIX-style files.|
|gunzip||Decompress a file.||See gzip|
|gzip||Compress/Decompress a file.||See gunzip|
|head||Displays the beginning of files.||See cat , lpr|
|join||Joins lines of two files (fields) in output.||See paste|
|less||Displays a file one screen at a time.||OpenVMS DCL TYPE/PAGE; see more|
|ln||Link (creates an alias filename).||OpenVMS DCL SET FILE/ENTRY|
|ls||Displays contents of a directory.||OpenVMS DCL DIRECTORY; see find|
|mkdir||Creates a directory.||OpenVMS DCL CREATE/DIRECTORY|
|mkfile||Creates a file.||OpenVMS DCL CREATE|
|more||Displays a file one screen at a time||OpenVMS DCL TYPE/PAGE; see less|
|mv||Moves files to a new location or renames files.||OpenVMS DCL RENAME|
|paste||Joins corresponding lines of several files, or subsequent lines in one file.||See join|
|rm||Deletes files.||OpenVMS DCL DELETE|
|rmdir||Deletes a directory.|
|split||Splits a file into multiple files.|
|sum||Displays a checksum for a file.|
|tar||Archives files.||This runs VMSTAR, a tool similar to tar . It is not a genuine UNIX tar utility. Similar to OpenVMS BACKUP. For more information, see Section 8.2. See gnutar .|
|unzip||Retrieves archived files.|
|zcat||Expands compressed files.|
|cut||Locates specified fields of each line of a file and writes the characters in those fields to standard output. Displays columns of a file.|
|expand||Replaces tab characters with spaces in the named files or in the standard input, and writes the result to the standard output.||See unexpand|
|fmt||Formats text of a file to a specified width.||See fold|
|fold||Formats file by wrapping lines at the specified width.||See fmt|
|gawk ( awk )||Text processing language.|
|nl||Numbers lines in a file.|
|od||Writes the contents of a file to standard output, in a specified format.|
|sed||Invokes a stream editor.|
|sort||Sorts the lines of a file.|
|tr||Finds and replaces characters in a file.|
|unexpand||Replaces spaces with tab characters in the data from the standard input, or in the named files, and writes the result to the standard output.||See expand|
|uniq||Removes duplicate lines from a file.|
|vi||Invokes a text editor similating the standard UNIX vi text editor.||OpenVMS EDIT; for more information, see Section 8.2|
|wc||Displays the number of lines, words, and characters in a text file.|
|lp||Prints a file.|