GNU + Cygnus + Windows = CYGWIN
Cygwin is a Linux-like environment for Windows.
If you are an experienced UNIX user who misses a powerful command-line environment, you will enjoy Cygwin
With Cygwin installed, users have access to many standard UNIX utilities. They can be used from one of the provided shells such as bash or from the Windows Command Prompt. Additionally, programmers may write Win32 console or GUI applications that make use of the standard Microsoft Win32 API and/or the Cygwin API. As a result, it is possible to easily port many significant UNIX programs without the need for extensive changes to the source code. This includes configuring and building most of the available GNU software (including the development tools included with the Cygwin distribution).
Developers coming from a UNIX background will find a set of utilities they are already comfortable using, including a working UNIX shell. The compiler tools are the standard GNU compilers most people will have previously used under UNIX, only ported to the Windows host. Programmers wishing to port UNIX software to Windows NT or 9x will find that the Cygwin library provides an easy way to port many UNIX packages, with only minimal source code changes
download cygwin : http://www.cygwin.com/
When you start a Cygwin Console, you are automatically sent to your Cygwin home directory – which usually corresponds to your Windows username. All Windows users on your system should have a home directory with a Windows path of:
c:\cygwin\home\[Windows Username]
To find out what your home directory name is type the ‘pwd’ (i.e. print working directory) command in a newly opened Cygwin Console. In this example my home directory is called ‘Administrator’:
$pwd
/home/Administrator
Note on Cygwin directories
Cywin uses the Linux standard approach to naming directory paths – which uses the forward slash “/” to separate directories, rather than the Windows approach with uses the backward slash “\” to separate directories.
Cygwin does not use the [drive letter + ":"] notation to denote your root directory on a hard disk – i.e. there is no “c:” drive in Cygwin. The Cygwin root directory is denoted by a single forward slash “/”.
Directory Structure
Cygwin attempts to duplicate the directory structure of a Linux System within the “c:\cygwin” folder:
Windows location and Cygwin Console
c:\cygwin\bin –> /bin
c:\cygwin\etc –> /etc
c:\cygwin\home –>/home
c:\cygwin\home\administrator –>/home/administrator
c:\cygwin\lib –>/lib
c:\cygwin\tmp –>/tmp
c:\cygwin\usr –> /usr
c:\cygwin\var –> /var

Common Cygwin commands:
Working with Files
cp <filename> <new filename>
copy – Make a copy of a file
cp -R <directory> <new directory>
Make a copy of a directory
mv <filename> <new filename>
move – Move or rename a file
rm <filename>
remove – Delete a file
Working with Directories
cd <directory>
change directory – Change to the directory specified
ls
List – Lists the files in the current directory
ls -l
Lists the files and their attributes
mkdir <new directory name>
make directory – Create a new directory
pwd
Path of working directory – tells you what directory you are in
Archiving/Extracting Files and Directories
tar -zcvf <filename> <directory> # create gzipped tar archive of <directory>
-z – filter the archive through gzip
-c - create a new archive
-v – verbosely list files processed
-f – use archive file
tar -xvzf <filename> # extract tarred, gzipped <filename> in current directory
-x – extract files from an archive
-v – verbosely list files processed
-z – filter the archive through gzip
-f – use archive file
Working with File Permissions:
chmod u+x <filename>
changes permission of the named file to executable.
u – user, (this means you)
+ – adds permissions
x – executable rights