72

Running bash commands in cygwin produce the following error:

$ ls
ls: command not found

This is a question that I self-answered on my tech blog where I keep the tech-tips which I need to give to myself from time to time, so I decided to move it over here instead. The original blog post is here: http://thehacklist.blogspot.com/2009/04/cygwin-ls-command-not-found.html

If you are a linux enthusiast and really miss those greps and sed/awks on the windows box, you've probably installed cygwin. You tried running it either by double-clicking the cygwin icon on your desktop or the cygwin.bat file in your C:\cygwin directory and got the bash-3.X$ prompt. However, although the pwd or cd commands work, if you try ls, it says:ls: command not found.

chantey
  • 4,252
  • 1
  • 35
  • 40
Sudipta Chatterjee
  • 4,592
  • 1
  • 27
  • 30

3 Answers3

99
  1. Right click on "My Computer" -> Properties -> Advanced -> Environment Variables
  2. Add a new environment variable, called CYGWIN_HOME and set its value to C:\cygwin
  3. Edit the PATH environment variable and add %CYGWIN_HOME%\bin to it (usually separated by a ';').
  4. Just click okay, exit any command prompts or bash shells (over cygwin) you may have open, and open it again - it'll work!

Assumption - this assumes that you have installed cygwin at C:\cygwin. If you've kept it someplace else, please modify the above accordingly.

Sudipta Chatterjee
  • 4,592
  • 1
  • 27
  • 30
16

Check the cygwin.bat file, it should have something like:

set PATH=C:\cygwin\bin;C:\cygwin;%PATH%
...etc
bash --login -i

(you don't really need c:\cygwin in there, but I have some additional scripts/bat files there; the key thing is c:\cygwin\bin)

michael
  • 9,161
  • 2
  • 52
  • 49
0

I was able to resolve this by adding C:\cygwin\bin to the Windows path.

Maybe not suitable for every use-case but got the job done in my situation.

chantey
  • 4,252
  • 1
  • 35
  • 40