Linux / UNIX: Command Not Found Error and Solution

last updated in Categories , ,

Why I am getting the error Command not found? How do I fix this problem?

A common question asked by new Linux or UNIX users. When you get the error “Command not found” it means that Linux or UNIX searched for command everywhere it knew to look and could not find a program by that name. Another cause is you misspelled the command name (typo) or administrator does not at all install the command on your Linux/UNIX based system. To get rid of this error try the following suggestions:

Make sure command was not misspelled

All Linux and UNIX commands are case sensitive and you need to type correct spelling of command.

Make sure command is your path

You can see current search path with following command:

$ echo $PATH

Sample outputs:


Usually, all user commands are in /bin and /usr/bin or /usr/local/bin directories. All your programs are installed in these directories. When you type the clear command, you are running /usr/bin/clear. So if it is not in your path try to add directories to your search path as follows (setup Linux or UNIX search path with following bash export command):

$ export PATH=$PATH:/bin:/usr/local/bin

You can also find out of path of any command with which or whereis commands:

$ which ls


$ which gcc


$ which date


$ which cal


$ whereis gcc


You can run a program using its full pathname as follows:

$ /bin/ls
$ /bin/date

Finally, sometime you may not have permission to run the command.


Let’s assume the program you want to execute is called “cal” and you get a “Command not found” message from Unix or Linux. First, type the following command to see if you get a path name:
$ whereis cal
Sample outputs:

cal: /usr/bin/cal /usr/share/man/man1/cal.1.gz

If you do, you can invoke it using a full path name (e.g. /usr/bin/cal):
$ /usr/bin/cal
Sample outputs:

   September 2012
Su Mo Tu We Th Fr Sa
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29

Or You can add the path to your PATH variable in your shell start-up file $HOME/.cshrc (csh/tcsh) or $HOME/.bashrc (bash) file, then “source” the file:
$ vi $HOME/.bashrc
Add the path as follows:

export PATH

Save and close the file. Run the following command:
$ source ~/.bashrc
$ echo $PATH
$ cal

Finally, you can use the following command to search for cal command get a hit about its location.
$ find / -name cal -print
Then, invoke it using a full path name or add it to your PATH variable in your shell startup file.


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

65 comment

  1. Hi,I have a problem when I run the command under Cygwin.
    I type
    However,it shows:
    :command not found
    ‘/run.bash: line 6: Syntax error near unexpected token ‘

    ‘/run.bash: line 6: ‘function gplot’

    All this code was definitely right, that’s our teacher who give to us..
    So what’s the problem?
    Thank you

  2. Line 6 has an error. Can you just copy and paste your source code here. Put in

    <code>your script code…</code>

    tags, so that I can help you further.

  3. the command ‘setup’ is not working, it says command not found although there is a man page for that command…can u help me how to make it work or is there any alternate command for the above??

  4. Hi
    I have a bash script say “simulate”.
    When i type simulate on cmd prompt, it says
    command not found. but when i type
    ./simulate it works.
    What can be reason. i checked PATH, /bin is there.
    Which bash says /bin/bash.

  5. Hi configure command is not there in my bin folder. So this command is not executing. Pls help me that what i have to do to run this command?

  6. If the $PATH variable is correct a fully qualified path works, try typing “rehash” at the command prompt to update the systems list of valid commands.

  7. i get an error as ‘Command not found’ when i use zgrep. can any one help me on this. any command to grep through zip files(i need the filename as output)

  8. hi guys!

    i’m new to ns2..could someone please tell me why i keep having “command not found” error messages as follows. What should i doooo??? HELP

    zaid@ymax-hw-0006:~/Desktop/ns-allinone-2.32/ns-2.32$ testing.tcl
    /home/zaid/Desktop/ns-allinone-2.32/ns-2.32/testing.tcl: line 4: namtrace-all: command not found
    /home/zaid/Desktop/ns-allinone-2.32/ns-2.32/testing.tcl: line 6: proc: command not found
    /home/zaid/Desktop/ns-allinone-2.32/ns-2.32/testing.tcl: line 7: global: command not found
    /home/zaid/Desktop/ns-allinone-2.32/ns-2.32/testing.tcl: line 8: flush-trace: command not found
    /home/zaid/Desktop/ns-allinone-2.32/ns-2.32/testing.tcl: line 9: close: command not found
    zaid@ymax-hw-0006:~/Desktop/ns-allinone-2.32/ns-2.32$ Cannot connect to existing nam instance. Starting a new one…

    nam: Unable to open the file “out.nam.nam”

  9. Help me
    I have a samba server configuration , and when I will start it, it show me this post of error
    /bin/bash: smbd: command not found
    And I don´t know what i have to do for fix it

  10. my Linux Fedora 6 was hacked by some one who change the rights of root and give himself all right
    now i can enter with root but when i want to execute command always get this message ‘commang not found’
    what can i do to take back my root right please?

  11. Hi,

    I want to execute sas program through unix script.
    I tried to execute simple program through script.below is the script:
    cd //SASDATA/cz/cp151/Macros

    However, I could not execute it.I get following message:
    sh sas: not found

    Please guide me .

  12. I have installed successfull the ns2 .Tclscripts can’t be compiled,morover,uptil now(because i have just tried very simple & small programes) “puts” command is not working.It is saying- command not found.I have installed cygwin in g drive.I am opening the prompt from desktop shortkut & entering the directory by-
    $ cd c:
    $ cd cygwin
    $ set a “5”
    $ puts a
    bash: puts: command not found
    also i was trying to find whereis “puts command” i found the location but i dont know how to handle the problem .
    puts: usr/share/man/man3/puts.3.gz

    Thanks in advance……….

  13. Hi Vivek,

    I want to know the path for command “export”, command “set”
    when I am doing
    [root@test usr]# /usr/bin/which export
    /usr/bin/which: no export in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)

    can you please help me on this?


  14. Hi,
    I ran into a “make: arm_v5t_le-gcc: command not found” with “make” facility while I was doing compile a program.
    I ran this compiling with arm_v5t_le-gcc full path, I got the same error.
    I checked the $PATH, and the the arm_v5t_le-gcc is in there.
    I checked with “locate”, and the arm_v5t_le-gcc is there.
    I checked with “which”, and the arm_v5t_le-gcc is there.
    I checked the permission, and the arm_v5t_le-gcc is 755.
    What else may cause this “command not found” error? Any guys can help me?
    Thank you very much!

  15. hey there I am using backtrack4 in windows 7 my graphics card is atı hd 5650
    when ı command this :
    airodump-ng -w captura -c 11 — bssid 00:3e:d7:65:e2:87 wlan0
    bash: 3e: command not found

    note :I can see all of wifi/wlan etc.

  16. do you happen to know where to look for that specific message “command not found” in centos? I’d like to chnage it to something else but am not able to locate it anywhere… have found it in other distros like ubuntu/debian – they have it in /etc/bash.bashrc and they even have such package by name command-not-found… and I was able to replace it with desired content… so, is there a way to perform the same on centos?

  17. I am using cygwin and when i compile program
    by command gcc -o hello
    it shows installation problem,cannot exec ‘cc’plus’:No such file or directory

    but when i execute program with command ./hello.exe
    it shows output

    how should i remove this problem plz tell me.

  18. Hi . I am using Red hat E 4 and i am working bops simulator.
    after compile makefile , bops exe is producted and existed.
    but by input command :bops test
    Error is : bops :not command found.

  19. hi, I have installed ns2 simulator in fedora5.The installation happened perfectly,
    but when i start opening ns,I am geeting error as command not found
    error :command not found
    please help me if i need to set any variables

  20. i dont get vi editor screen.whan i type “vi file name” i get the answer as command not found.i will be in /bin/bash. how did i over this problem.

  21. Hi,
    I just found this thread through Google.

    My situation was similar, but the resolution was simple and different. It wasn’t related to the code at all.
    I was on my Windows 7 machine connecting to my UNIX server through Notepad++ using the FTP plugin.

    I was getting the same error mentioned here –
    } ./
    ./ Command not found.

    After looking at the initial things I was like “Doh!” and I checked the Notepad++ -> Edit Menu -> EOL Converstion settings and of course it was set to Windows and not UNIX.

    After I set it to UNIX and uploaded the latest copy, the program executed without problems.

    Just thought I’d note that here in case people have the same issue.


  22. hi, I have installed ns2 simulator in fedora5.The installation happened perfectly,
    but when i start opening ns,I am geeting error as command not found
    error :command not found
    please help me if i need to set any variables

  23. How to resolve it…. IBM AIX 5.3….. Please help..

     man chlv
    sh[9]: tbl:  not found.
    sh[9]: nroff:  not found.
    sh[9]: col:  not found.
    # man chvg
    sh[9]: tbl:  not found.
    sh[9]: nroff:  not found.
    sh[9]: col:  not found.
    # man mkvg
    sh[9]: tbl:  not found.
    sh[9]: nroff:  not found.
    sh[9]: col:  not found.
    # man lspv
    sh[9]: tbl:  not found.
    sh[9]: nroff:  not found.
    sh[9]: col:  not found.
  24. hi
    i want to check whether the unzip command has worked properly.. i mean to say whether unzip have unzipped all the file or folders correctly in an another folder..based on that i have to send notification….i think there is some option called $? where i can check in the particular folder ..if it is suceesful, i will get value 1..i am not sure..please let me know…

  25. hi,
    i m getting error as bash : command not found while compilation c programming can you tel me how to get rid of it.

  26. This happens under Cygwin. You find yourself using two editors, one in Window$ and one in LInux. What happens is you get DOS cr/lfs (^M) in the file and these create all sorts of havoc in the bash command stream.

    The only way out is to keep the streams separate.

  27. Hi everybody,
    I have installed ns2 and cygwin in windows 7. it works. but I faced one problem. when I want to run tcl and write ns simple.tcl it shows -bash: ns: command not found…..kindly solve my problem.waiting for your reply………

  28. sir
    i have installed ns2 suhan it gives errorcessfully but when i run a programme
    it gives error
    couldn’t read file “namtrace-all”: no such file or directory
    my prograame is
    set ns [new Simulator]
    set nf [open out.nam w]
    $ns namtrace-all $nf

    proc finish {} {
    global ns nf
    $ns flush-trace
    close $nf
    exec nam out.nam &
    exit 0 }

    set n1 [$ns node]
    set n2 [$ns node]
    $ns duplex-link $n1 $n2 1Mb 10ms DropTail
    $ns at 5.0 “finish”
    $ns run

  29. hi frnds,
    yum server installing step the createreppo, command not fount &-bash this command not fount what’s the prblm? wt 2 to 4 that one?

  30. another reason scripts can fail is because the line ending is DOS instead of UNIX. i am guessing that this is because the first line that specifies the interpreters name will see the extra linefeed. this can happen if you used any windows-based line editing app… even vi on unix will continue in DOS mode if it finds a linefeed anywhere in the file, so just editing with vi is not enough to convert the file.

    try running the dos2unix command on your script to rewrite the script without linefeeds.

  31. Needed dos2unix, that had been my problem – but I see that’s already been mentioned here! It seems I get better error messages as root

    [root@xxx bin]# ./
    -bash: ./ /bin/sh^M: bad interpreter: No such file or directory
    [root@xxx bin]# su yyy
    xxx:yyy 1> ./
    ./ Command not found.

  32. why these are command not found in the binutils-build?

  33. i installed nasm . now when i assemble in terminal ,it produces the .o file but when i write the command for linking, ld -o str str.o , it says bash: ld: command not found… what’s wrong?

  34. I have created a simple script in a file and stored at location (/home/mint).I have changed the file permission to 755 to make it executable.However when i type file name on terminal it shows me that “Command not found”. Here is the solution:
    1) File name
    #!/bin/sh -x
    ls -l
    2)Stored at location /home/mint
    3)make it executable
    $chmod 755
    5)add the location of file in the PATH variable
    $export PATH=$PATH:/home/mint
    6)ls command should be in the path as per $PATH variable value.
    you could checke for ls command in /bin,/user/bin etc
    type and hit enter it should work.

    This is my first script so If I am not wrong, is a command itself to unix after making it executable.So it is searching this file in the $PATH if it is not there then there is a error.”Command not found”

  35. hey i get this as i open terminal
    “ns-allinone-: command not found”
    also i cannot run tcl file.
    What is the solution?

  36. I installes the ns-2.35 in fedora 15. i dont have problem in running ns but still i cant run nam. It shows bash: nam:command not found. i set the environment path too. but still i get this error.

  37. i am trying to compile on linux server and i am getting the following error :

    ./compile[94]: /usr/bin/gcc: not found [No such file or directory]

    Please help me in this error

  38. Can you tell me why `which cd` command doesn’t print anything on the screen ? I had read some where over the internet and i forgot. Can you please give information on this ?

  39. @Raghavendra, you need to install GCC on that linux machine.
    If you are using CentOS/RHEL/Fedora you follw this command
    #yum install gcc
    For Debian/Ubuntu
    #apt-get install gcc

  40. I am using Ubuntu 14. I want to use arm tool chain to compile my code. My tool chain is in
    # /home/raj/el/arm/bin/

    Now i added this path using export and path variable as follow :
    # export PATH=/home/raj/el/arm/bin/:$PATH

    Now I want to compile my code with arm gcc compiler but it through error by saying that
    No such file or directory but when i am using
    # which arm-gcc
    it is showing path..
    I dnt understand why is this error. I am not able to cross-compile my code for arm target.

  41. I can help , I have installed Fedora 21 from Friday and I could not log in, and try to start again and show me the login screen , and does not show me any errors, income and command line appears:

    -bash: id: command not found
    bash: ls: command not found…
    Similar command is: ‘lz’
    bash: tty: command not found…
    Similar command is: ‘tty’
    bash: grep: command not found…

  42. Hi All,

    i have below script for History & sos backup. its working fine in RHEL5.8 and i have configured new server RHEL6.6, when i try to run this script i am getting an error message “ls: cannot access /root/new/2016/June: No such file or directory”

    dPATH="/root/new"                  # Configure the backup directory path here #
    tDate="$(date +"%d-%m-%y_%H-%M")"
    tYEAR="$(date +"%Y")"
    tMONTH="$(date +"%B")"
    tDAY="$(date +"%d")"
    tTIME="$(date +"%H-%M")"
    gdFTIME="$(date +'%d%b%Y')"
    dFIND="$(ls $dPATH/$tYEAR/$tMONTH | grep $gdFTIME*)"
    hFile="$(find /home -name .bash_history)"
    hFileUser="$(find /home -name .bash_history | awk -F'/' '{print $3}')"
    if [ "$dFIND" != "" ]; then
    for dP in $dFIND
                    mkdir -p $dPATH/$tYEAR/$tMONTH/$dP/History_backup-$gdFTIME >> $tmpPATH/History_backup$tDate.log
                    mkdir -p $sosName >> $tmpPATH/History_backup$tDate.log
                    /usr/sbin/sosreport --tmp-dir $sosName/ --batch -n emc
                    echo "SOS Report has been created and placed" >> $tmpPATH/History_backup$tDate.log
            for i in $hFileUser
                            cd $dName
                            cp $n $i-history-$tDate.txt
                            echo "$i: $n Copied..." >> $tmpPATH/History_backup$tDate.log
                            tar -czf $i-history-$tDate.tar.gz $dName/$i-history-$tDate.txt
                            echo "$n archived..." >> $tmpPATH/History_backup$tDate.log
                            rm -rf $i-history-$tDate.txt
                            echo "$i-history-$tDate.txt deleted..." >> $tmpPATH/History_backup$tDate.log
                            ## Cronjob Backup ##
                            getCJList=( dgcx root )
                            cd $dName
                            for cj in ${getCJList[@]}
                            if [ "$cj" != "" ]; then
                                    echo "Creating File : $dName/crontab-$cj-$gtHSTNAME-$tDate.txt..." >> $tmpPATH/History_backup$tDate.log
                                    touch crontab-$cj-$gtHSTNAME-$tDate.txt
                                    echo "$(crontab -lu $cj)" > crontab-$cj-$gtHSTNAME-$tDate.txt
                                    echo "Archiving File : $dName/crontab-$cj-$gtHSTNAME-$tDate.txt..." >> $tmpPATH/History_backup$tDate.log
                                    tar -czf crontab-$cj-$gtHSTNAME-$tDate.tar.gz crontab-$cj-$gtHSTNAME-$tDate.txt
                                    echo "Removing File : $dName/crontab-$cj-$gtHSTNAME-$tDate.txt..." >> $tmpPATH/History_backup$tDate.log
                                    rm -rf crontab-$cj-$gtHSTNAME-$tDate.txt
                                    echo "User $cj doesn't have cronjobs : IGNORE" >> $tmpPATH/History_backup$tDate.log
                            cd $dName
                            cp /root/.bash_history $dName/root-history-$tDate.txt
                            tar -czf root-history-$tDate.tar.gz root-history-$tDate.txt
                            rm -rf root-history-$tDate.txt
                            chown user.user $OwnFolder -R
  43. Iam seeing double entries:
    [radha@ip-172-31-10-140 ~]$ $PATH
    bash: /sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/bin:/home/radha/apache-hive-2.0.0-bin/bin:/home/radha/hadoop-2.6.0/bin:/opt/aws/bin:/home/radha/hadoop-2.6.0/bin:/home/radha/apache-hive-2.0.0-bin/bin:/home/radha/hadoop-2.6.0/bin:/bin:/usr/local/bin:/opt/aws/bin:/home/radha/hadoop-2.6.0/bin:/home/radha/apache-hive-2.0.0-bin/bin:/home/radha/jdk1.8.0_77/bin:/home/radha/hadoop-2.6.0/bin:/opt/aws/bin:/home/radha/hadoop-2.6.0/bin:/home/radha/apache-hive-2.0.0-bin/bin:/home/radha/jdk1.8.0_77/bin:/home/radha/hadoop-2.6.0/bin: No such file or directory

    vi .bashrc

    I have added the below entries in bashrc file:
    # User specific aliases and functions
    export JAVA_HOME=$HOME/jdk1.8.0_77
    export PATH=$PATH:$JAVA_HOME/bin
    export HADOOP_HOME=$HOME/hadoop-2.6.0
    export PATH=$PATH:$HADOOP_HOME/bin

  44. : command not found

    Check for control characters or extra spaces at the end of a continues line. In vi (:set list).
    cd /home/user; \ $ (there is a space between \ and $)
    cd /home/user; \^M (Wrong type of carriage return)
    Once space and carriage return were fixed the script ran.

  45. Sometimes this can be due to some comments with “#”. So removing those can help too.
    Ex :
    # Author : My script

    So remove these lines.

    Still, have a question? Get help on our forum!