 So this is a highly important video if you do not want to look like a fool on the internet if you're a new user to Linux or If you're doing any kind of development stuff, or even if you're using Mac OS, frankly There are some basic terminology that I've in my time on the internet I have realized that people Serially misuse some basic concepts, so I want to make them clear specifically about the terminal What is a terminal? What is a shell? What is bash? What is you know? What's a command line? What is a prompt? Those are all technically different things and a lot of people who are new Use those terms incorrectly and it actually gets them into a lot of confusion because they don't know how ask for things And other people will hear them misusing terms and think they're dumb Okay, so I'm gonna explain if you're a new user even if you're not and you secretly have something to learn that you Don't know about I'm doing this video for you. So here's where the confusion arises I just brought up a window. Well, this window is a terminal emulator. It also is running It might be running a shell like bash Usually if on your machine if you don't know what you're running, you're probably running bash on my case in my case I'm running ZSH. So I brought up ZSH. I brought up a terminal I brought up brought up a command line and I brought up a command prompt All of those different things are different and it's important to know the disc the difference between them Firstly, the terminal is really it's really short for the terminal emulator Because this little program the the actual window that comes up that you have stuff running in that is your terminal emulator And that's emulating what a old classical terminal looks like where you you know put commands in and stuff like that theoretically, of course Terminal emulators might be doing other things in addition to that but the terminal emulator is the program the window That is floating on your screen, okay? That is different from bash, okay? That is absolutely not the same thing as bash So the terminal emulator is the window bash is the language that runs in Most terminal emulators, okay? By or at least you have it start by default when you bring up a terminal emulator in most cases So if you want to know what you're running what language you're running you can type in echo dollar sign zero In my case, I'm running zsh, but if you don't know what you're running You're probably running bash so you can see that or in the weird Circumstances you might just be running been sh without anything in front of it Although if you you're running that you probably know that you're running that unless I guess I think been sh is default on like Ubuntu If you're root or something like that, but anyway, so the difference between bash and Zsh, which are languages and a terminal is very there's it's a very important distinction Let me put it this way. Let's say here's a here's a newbie question a newbie question That is would be would fall under the definition of a stupid question How do I copy and paste in bash? That is a dumb question. Let me explain why it's not bash is a language You don't copy and paste in a language you copy and paste the bindings for your copying and pasting Come from your terminal emulator it is specific to this graphical program that's running and you can copy and paste things from it and Input it into whatever you're doing that has nothing to do with bash It has nothing to do with the shell So if you ask a question like how do I scroll up in bash or how do I copy and paste or something like that? Or how do I change the background color of bash? Those are all those do not make any sense Bash is merely a language that often runs and command prompts. Okay, so in my terminal emulator If you want to so my terminal emulator happens to be my build of ST the simple terminal and in my terminal emulator If I want to copy something I can highlight it and I can press alt and see and I copy it So if I want to paste that in I can press alt V and that's how I paste that is probably not going to be the exact Bindings on your machine. I think most terminal emulators will have Control alt C and control alt V or sometimes shift insert will be another way of pasting something One thing you will never ever see though is here's an example. Okay, so I'm gonna have a little command So sleep 5 and echo LMAO so that's gonna sleep Wait for five seconds and then print LMAO so on all Unix based operating systems You know that if you have a command that takes some time to run like this one I can press control C and control C is gonna stop whatever it's doing. Okay, so since that has been taken since when you know Shells were first invented you are not going to have that as you're binding for pasting something in ever ever in Any kind of terminal emulator because basically bash has this setting has control C as a Binding that it's always gonna have so no terminal emulator in its right mind would ever bind that same key Okay, but keep in mind. Those are different things So what else so another thing that people ask about is this little thing here? What's this thing before actually to be clear? What's a command line? Okay a command line is the line that we're actually typing on here So a command line it isn't just about terminal emulators It isn't just about bash or anything like that because I could open up another terminal emulator I'll do this so again st is my terminal emulator, and I'm gonna open an instance running Python Over here. I can type commands That are in the Python language as opposed to bash and it will run them This is a command line interface on the left, and this is a command line interface on the right What's the difference? They're running different languages the one on the right is running ZSH or in your case It might be bash the one on the left is running Python Now language is like bad. There's a reason we use languages like bash for every once in a while. Okay Here's what happens. This is another noob thing, and I can't help but laugh at it There are a lot of people who will be like they'll take computer science 101 They'll learn some Python and they'll be like I like Python. I want to have Python as my Default program that I run in my terminal emulator, and that's it's such a silly thing even if you love Python Language is like bash shell, which is the original bash add some stuff on and ZSH add some more stuff on there Those are kind of language I'm not going to go into it that much in this video But those are languages that are uniquely built to be very nice and terse for a command line interface Python is really a language that is supposed to be written in a file, and then you run it all as one thing in a script It is not as efficient at getting things done on the command line Specifically, you know Python to put functions and functions. It's a huge pain But piping on the command line is a much easier thing either way that's we'll talk about that in another video Let's keep let's keep it to the basics So anyway, this both this and Python have a command line interface another question You might want to have or it what is this thing here this little color stuff with my name in it This is just it goes by different names. You can just call it a prompt sometimes And it's merely decorative although sometimes people will have information in it depending on what kind of shell you have But this is something Specific to each one of your shells. So what happens is when you install an operating system when or really when you open bash bash is going to look at a config file for all the information that you know It's gonna run at the very beginning so it knows what kind of configuration you want And one of the things you can change is this little prompt here now It's sometimes called a ps1 and the reason it is is because if we set the variable ps1 Let's say we set it to lol what that does is it changes your prompt to lol So that's what ps1 means. Okay, we can change it or we can say ps1 equals You know just some text something like that and in that case, it's gonna set oops. I mean ps1 It's gonna set your prompt to whatever that is now how I got all this color here is because on some some shells like Zsh you have the ability to give set your ps1 to different color codes You can do this on bash as well, but it the syntax of it is not exactly the same so when you say something the reason I bring this up is because a lot of people will say something like oh People will install my terminal emulator, which is this thing here, which of course comes with things like Bindings for scrolling up and pasting and copying things But one thing it does not have is this prompt because this prompt this Prompts are always built into shells and in your shells configuration file That is where you set what your prompt is going to be you just say it Make my ps1 look like that So a lot of people will install my terminal emulator and ask me Luke I installed your terminal, but I don't it doesn't look like that and they're talking about this thing here That's not how that has nothing Literally nothing to do with the terminal emulator whatsoever These prompts are set in shells like bash and if you want to look how to change them look up How do I set how do I change my bash prompt? It actually is a sort of complicated syntax They even have bash prompt generators you can look up But it has nothing to do with the terminal the terminal emulator So anyway, that's in general The the confusions that people have that is mostly it's a failure to distinguish The language that runs in a terminal emulator from the terminal emulator itself Terminal emulators can run lots of different things. They can even run You know, let's say I run LF with which is a file manager They can run lots of different things that are not Command prompts that run a specific language like bash or shell or ZSH or anything like that So when you have problems, I'm doing this video just so you know how to ask about them Don't say funny things like oh, how do I? I don't know again copy and paste and bash growl up and bash those are have nothing to do with bash Anyway, so hopefully you learn something if you're a noob or even if you're a veteran user who's been Using words incorrectly for the years and it's total cringe. Hopefully you learn something. That's about it for today I will see you guys next time