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
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
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
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 special
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
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 Windows.