A kinda relevant question.<p>I use Windows most of time. Like the author, I have bunch of CLI scripts (in Python mainly) which I put into my ~/bin/ equivalent.<p>After setting python.exe as the default program for `.py` extension, and adding `.py` to `%pathext%`, I can now run my ~/bin/hello.py script at any path by just type `hello`, which I use hundreds of time a day.<p>I now use Linux more and more (still a newbie) but I never get it to work similarly here.<p>Firstly, Linux seems to have no concept of "associated program", so you can never "just" call .py file, and let the shell to know to use python to execute it. Sure, you can chmod +x to the script, but then you have to add a shebang line directly to the script itself, which I always feel uncomfortable since it's hard-coded (what if in future I don't want to execute my .py script with `/usr/bin/python` but `/usr/bin/nohtyp`?).<p>Furthermore, I failed to find <i>any</i> way to omit `.py` part when calling my script.<p>Again, none of the above is to question the design of the Linux -- I know it comes with lots of advantages.<p>But I really, really just want to run `hello` to call a `hello.py` script that is in my $PATH.