When I use the type command to find out if cat is a shell built-in or an external program I get the output below:
-$ type cat
cat is hashed (/bin/cat)
-$
Does this mean that cat is an external program which is /bin/cat?
I got confused, because when I checked the output below for echo I got to see that it is a built-in but also a program /bin/echo
-$ type echo
echo is a shell builtin
-$ which echo
/bin/echo
-$
So I could not use the logic that /bin/cat necessarily means an external program, because echo was /bin/echo but still a built-in.
So how do I know what cat is? Built-in or external?