Cygwin and EmacsW32
If you are using emacsW32, then you can run cygwin bash inside emacs by calling the command “cygwin-shell”.
First, you need to set the “cygwin-shell” path. This you can do by
pulling the menu under “Options‣Customize emacsW32”. Or, you can put
the following line in your .emacs:
「(setq w32shell-cygwin-bin "C:\\cygwin\\bin")」
Once you have the w32shell-cygwin-bin set, the command “shell” will also invoke cygwin-shell. If you want run plain Windows's “cmd.exe” shell, you can call cmd-shell. EmacsW32 also has msys-shell, which is for those who are using MinGW.
Note, when using cygwin shell in emacsW32, if the $PATH env var is not set correctly, it can cause Window to mistakingly popup a dialogue saying some program crashed. For a example, see: