The Cygwin tools are ports of
the popular GNU development tools for Windows 9x/ME/NT/2000. They run thanks to
the Cygwin library which provides the UNIX system calls and environment these programs
expect. For example you find the popular Commandline Secure Shell Tools (SSH) to
create a secure terminal emulation from Windows to Unix systems.
The following packages are available with the current release:
ash autoconf automake bash binutils bison byacc bzip2 clear cpio crypt cvs cygrunsrv
cygwin dejagnu diff expect file fileutils findutils flex gawk gcc gdb gdbm gettext
ghostscript gperf grep groff gzip inetutils irc jbigkit jpeg less libpng login lynx m4
make man mingw mt mutt ncftp ncurses newlib-man opengl openssh openssl patch
pcre perl popt postgresql python readline regex rxvt sed sh-utils squid ssmtp tar tcltk
tcsh termcap tetex-beta texinfo textutils tiff time unzip vim w32api wget which xpm
xpm-nox zip zlib
This will then download the list of available packages, and offer to install them for
you. There are a number of options within setup to control installation details.
The selected packages are now downloaded to your local drive.
When installing, you will have to specify:
- Install root directory (e.g. D:\cygwin)
- Default Text File Type ("DOS" or "Unix")
- Install For ("All" or "Just Me")
D:\Cygwin\bin on /usr/bin type system (binmode)
D:\Cygwin\lib on /usr/lib type system (binmode)
D:\Cygwin on / type system (binmode)
c: on /cygdrive/c type user (binmode,noumount)
d: on /cygdrive/d type user (binmode,noumount)
e: on /cygdrive/e type user (binmode,noumount)
If you need additional mount points create the directories and mount them e.g.
mount c:/uxhome /home/zahn
The setup program will setup the needed mount points automatically. You can find them
in the Windows registry under
There is no need to create a POSIX /dev directory as it is simulated within Cygwin
automatically. It supports the following devices: /dev/null, /dev/zero, /dev/tty,
/dev/ttyX, /dev/ptmx, /dev/comX (the serial ports), /dev/windows (the windows message
queue), /dev/random and /dev/urandom. These devices cannot be seen with the command
ls /dev although commands such as ls /dev/tty work fine.
The Win32 device name for a partition is the drive letter with leading \\.\, so the
floppy would be \\.\A:, the first partition typically \\.\C:. Complete drives (except
floppies and CD-ROMS which are supported as partitions only) are named
\\.\PHYSICALDRIVEx. The x is the drive number which you can check in the disk
manager. Each drive line has prepended the text "Disk x".
To access tape drives the Win32 file name \\.\TAPEx is used. For example the
first installed tape device is named \\.\tape0.
The naming convention is simple: The name of the POSIX device has to begin with /dev/
and the rest is as you like. The only exception are tape devices. To identify if the
tape device is used as a rewind or a no-rewind device the name must not begin with n
(rewind) or has to begin with n (no-rewind).
mount -b //./A: /dev/fd0 # mount floppy as raw block
mount -b //./tape0 /dev/st0 # mount 1. tape as rewind
mount -b //./tape0 /dev/nst0 # ...and as the no-rewind
Note the usage of the -b option. It is best to include the -b option when mounting
these devices to ensure that all file I/O is in "binary mode". Enter -s option to add
mount point to system-wide registry location.
Now you can use tar as follows:
tar xvf /dev/st0 <dir>
The BASH shell can be configured with the configuration file $HOME/.bashrc (e.g)
alias up='cd ..'
alias ll='ls -la'
alias ls='ls -F'
alias ps='ps -Wl'
alias home='cd $HOME'
alias which='type -path'
alias unix2dos='recode lat1:ibmpc'
alias dos2unix='recode ibmpc:lat1'
# Make Bash 8bit clean
set meta-flag on
set convert-meta off
set output-meta on
set completion-ignore-case on
# Set Prompt
PS1="`tput smso``whoami`@\h>`tput rmso` "
We suggest to set the TERM variable for programs (e.g. vi) which use a correct
terminal emulation to the following values:
Linux: TERM=linux; export TERM
Sun: TERM=ansi; export TERM
The following screenshots shows a secure terminal emulation (SSH) from Windows to Unix
using Cygwin's bash shell. The bash shell, like many other Unix utilities is ported to