 A little while ago I had a viewer asking about, first he asked about having it do .slash when you're running a program, and then he asked about clicking to run a program in Linux. He was wondering, you know, he says that when he's working on Python scripts, he hates having to type .slash or type out Python to run a script when he's working on a project. And let me tell you right now, the .slash, when you're in a shell, that just means current directory. So let's say we had a script, let's make a script we'll call it hello.sh, again the extension does not matter in Linux, that's for you as an end user to view, what really matters is your shebang line. So let's say I'm working on a bash script here, I'm going to say bin bash, this tells the operating system that this is a bash script, and then I can say echo, hello world, I can save that. Now if I try to run it like this, whoops, I can say .slash, hello.sh, it's not going to work, because permission and I, because one of the great benefits of Linux and other Unix and Unix-like operating systems is that programs should not have a right to run unless you give them a right to run, this prevents you from accidentally downloading or clicking on something that's going to execute and mess up your system, but it's really easy to give something permission, change mod plus x, hello.sh, so now it's execute, now I can say .slash, hello.sh, and you can see it outputted, hello world. Now if we didn't put the .slash, what this is telling the operating system is to run a program that's actually installed to the system, see this is a script that's on my system but it's not installed, and really the only time you should be running a program like this is if you're a developer working on something, besides that, programs should be installed to your system, using preferably a package manager and secure repositories, so that's what the .slash is, and the same is somewhat the same on Windows in that let's say I had a program called hello.exe on a Windows machine in a folder, and then I also had one installed to my system under Windows, the Windows folder, the sys32 folder, by default, if anywhere in the system that sys32 is in the path variable, see on both Linux and Windows have a variable called path, and it tells you what directories programs will run from without having to be in that directory, likely on Linux and most Unix-based and Unix-like operating systems, most programs are installed to directories, Windows is kind of weird where it installs programs mostly to your, what's it called, program files directory, and they're not in your path directory, which means you have to use the full URL, the full path name to that file every time you want to run it, you don't really do that because lots of times you'll be running it from a menu, but it's putting in that full URL, or full URL, I keep saying URL, that full path, but it's the same if you were to add one of those folders to your path variable on Windows, you could run it from anywhere on the system, one of the differences is on Linux you're either going to be running something from path, or if it's in your current director or some other directory, you have to give the full path or .slash, I see this as a benefit because let's say again, I had a hello.sh installed to my system, and I have one in the current folder, well if I was type hello.sh and there's one on the system it will run that, where if I did .slash which is saying current directory run this script, where in Windows it will by default run the one in the current directory rather than the system-wide one, if I want to run the system-wide one, I either have to type in the full path name or exit the current directory I'm in. So it's not a big deal either way, I do think that the links one's a little bit clearer because you're saying .slash, so you're saying in this directory, so you know you're running a program from in this directory rather than one somewhere else on your system, I think it's just cleaner and clearer. But the next part of this question, and that's true regardless of whatever program, it doesn't matter if you're writing in C or C++ or Python or Perl or Bash, if it's not installed to your system, it's not in the path directory, you're gonna have to do a .slash to say the current directory or give the full path name. Now about clicking, that all depends on how you have your system set up, but most systems once you have, or set up by default, not most systems, but a majority of the more like Ubuntu or Linux Mint, if you click on a program that's already made executable, it will run. So let me open up my file browser here, I'm using Thunar, if I was to double click this, doesn't look like anything happened, nothing popped up, it didn't open up the file, that's because it did run, but since it's not a GUI, nothing popped up. Now some file browsers will pop up an option, which I actually prefer. I don't think you should be able to double click something that isn't installed to your system and just have it run, although again, you still had to give it permission, if I hadn't given that permission to run, it wouldn't have run at all. But it did run, but since it's not a GUI, nothing displayed. I think Nautilus, which is a common file browser on like Ubuntu and Linux Mint, if you're using like a Noam desktop or something like that, that's the default file browser, at least it used to be. And it pops up, if a program is executable, it still doesn't just run it, it asks you, do you wanna run it in a shell to where you can see the output, which is good for a program like this, do you just wanna run it if it's a GUI, then you won't see the shell, or do you wanna cancel? That gives you a little extra step there, it's not really security, but it's an extra step from you accidentally clicking on something. And it gives you those options and how you wanna run it. But it is running when I'm double clicking it here. It's printing Hello World just not in a viewable screen, so let's turn this into a GUI application real quick. So I'm gonna take my Hello World, well, actually before we do that, let's do this. Let's go Echo, Hello, and we'll put that into a new file called new.log. We'll save that. Now, we'll go back to our file browser here, if I double click this, you can see it create a file. So you know that the program did run. Again, you didn't see anything because it's not a GUI application. If I go Vim, now I can add in something, I do have Xenity installed on my machine, which allows you to create simple dialogue boxes. I can say Xenity dash dash info to create a basic info box, and then whatever I want the text to be, I can say text, Hello World. Now, if I double click it, well, first of all, let me delete this file because it will overwrite it, so we can say this. It says Hello World. See, it does run when I click it. And then when I click OK, it creates that file. So you can just click on applications once you make them executable, as long as you have that set up in your file browser, which most file browsers by default, or I don't want to say most, but the more commonly used file browsers are set up to do that already. The thing is, as I said earlier, you never really want to do this unless you're a developer working on something. Otherwise, programs should be installed to your system, in which case you wouldn't be clicking on them directly, you'd be clicking on a desktop link, which would be created preferably by your package manager when you're installing that package. And that's a whole other topic. And again, that's another place I think Linux is superior to Windows where Windows makes these binary L and K files where Linux uses a plain text. I think it's just desktop is what the files are called. So it's plain text, so it's easier to edit. You can just edit it with whatever program language without any special libraries or interfaces. So again, if you are just clicking on a script and you're not developing unless you're just testing something out, I don't know where you got it. People will argue different things over that. Me, if it's not, if I'm working on code, I trust the repositories because I trust the particular distro that I choose and that's why I chose that distro and stuff will be installed to your system. But again, if you're working on something, you're going to be in the shell already writing out your code, or I guess in IDE, which probably will have a run button. But seriously, is it that hard to go dot slash and hit tab to run your script? So that's it. I thought I pointed out that it's not that there's necessarily some of what he was asking was not a Linux versus Windows thing. You can just click on something and make it run. Some of it is different and I hopefully showed you here why sometimes it's a little bit of an advantage and sometimes it's a big security advantage of Linux over Windows. And one of the biggest problems you'll see with Windows, there's a number of them, but the fact that people do just click and programs can just run. Programs should not be able to run unless you gave them permission. You either change mod plus X and made them X acutable or he clicked properties and went to permissions and you made it executable in here. Allow this program to run as a program. Once you do this here, it's the same as doing change mod plus X. Or again, when you're installing, you're using, let's say on a Debian based system, Debian, Linux, Ubuntu. Packages are usually a deb file dot db and that will have stuff. It will basically unzip and the files will have permission on your system and place them in the right spot. And you never really go and click on them. You might run them from the shell. But usually if you're clicking, you're clicking on a link that has an icon to it. That's also why executables and Linux don't have icons embedded in them. They're designated by your desktop link, which is also an advantage. Because again, you should never be really, once something's installed on your system, you're going to be clicking on a link. Anyway, I feel like I'm repeating myself now. As always, I hope you visit my website filmsbychrist.com. I hope this didn't confuse things for you. I hope it clarified a little bit for you. If for some reason you're double clicking on something and it's not running, or at least bringing you up an option to run it, that's just the settings on your machine. And again, depending on your file browser, that's probably what the settings are or your desktop interface. But if you're running XFC with Thunar, that's what I'm running here. It runs like this. If you're running Nome with Nautilus, like I said, last I checked, it pops up a dialog which I actually prefer to this. Or ask, do you want to run in the shell? Just run it or cancel. Which is nice because you don't accidentally click on anything and you also have that shell option. Again, if this was not a GUI application, it's just a shell. I'm not going to see any of the output, which is a little annoying, but I never run anything like that. I run everything. Even when I start, I either run stuff from the shell or I have this little application finder that I run, which every desktop has some form of that. It's a lot quicker to just type in that instead of going and finding an icon to click on it. I'm all about the autocomplete to run stuff, so I can do that there. Or I can just say Google and Tab and I have it there and I can enter to open up Google Chrome. Again, I'm kind of babbling on at this point. Visit FilmStarKris.com, Chris Decay, link in the description as always. I hope that you have a great day.