Welcome to Intro to Linux, where we're going to be covering some essentials in the operating system of Linux and how to get started. So assuming that you've never used Linux before, we're going to be starting there and really from the ground up, start to get some of those fundamentals down, some of the muscle memory that is required to learn and use Linux. So let's go ahead and do an overview of what we're going to be learning. We're going to start with an initial install. So assuming that you don't have Linux installed, we're going to start there. And we're going to be using these two tools here with the downloads linked, virtual box and vagrant. And this just allows for a faster setup and not as tedious as the other approach of using virtual machines. So from there, we're going to be covering some essential commands around the file system. So commands such as LS, CD, PWD and many more. But the idea is we're going to be learning how to navigate the file system, how to check what files we have, what our current state is in our file system. Since we're going to be doing this through the terminal and not the traditional point, click and drag way of doing things, right? So in this terminal only setup that we're going to be having Linux with, it's going to allow us to learn that way and really get those fundamentals down. From there, we're going to be covering some productivity tips. So how to get the most bang for your buck at the command line, things such as tab autocomplete where you can hit tab and it'll complete the rest of your command. And aliases, where we're going to detail on that, how that can save us time. From there, we're going to be learning these security concepts, such as permissions and access, why they're so important. And then pseudo versus super user, right, these two commands of pseudo and sue. Then we're going to finish off with man pages on how to get help on a command. So if we don't know how to use a command, or we've never heard of a certain command, we can use the man pages and get help on how to use them. We can also look for examples on specific use cases on how to use them. And that is going to allow us to get up and running when we're in unfamiliar territory. So this is where we're going to be covering in this course. If there's anything I've learned in my years working in information security and using Linux is that no one knows everything. But the best people know where to look, they know what questions to ask. And from there, they're up and running. And that's where we're going to be looking to do in this course when it comes to your journey in learning Linux. All right. So here we are in the virtual box installer. And again, I'm doing this on macOS Catalina. So click continue through this wizard, it takes you to the instructions on how to install virtual box. And depending on the OS, you might be able to do touch ID and type of Mac you are using if using Windows, you should just input your password or do the touch ID. And you can see it doesn't take very long to install virtual box. And you can do a spotlight search for virtual box. And you can see we have the virtual box manager here. So here we are at the terminal. What we're going to do here is initialize our vagrant box. So remember that was an operating system image, or to give it as a template. And then from there, we're going to create our config files, which is called the vagrant file. That allows us to make changes, any customizations that we would like. So what we're going to do here is vagrant in it. And then the name of the box, Ubuntu trustee 64. And if you've used git before, it's not a preregister for this course, but if you've used it before, you will recognize this right here, in it. So a little bit similar there in the nomenclature. So in this project directory, trustee, I just named it that to have it be more clear of what we're working on, and then do a vagrant in it that creates the initial vagrant file. And then from here, you have vagrant up, this will get your box going and import everything it needs for this base image. And you'll see a successful message once the, once the installation is done. And if you read some of this output, where you can see everything that is happening in the background, now we're going to face your adapters, port forwarding, only the correct ports needed for it, key based authentication, all of the things that you would kind of have to do manually. If you would do it in virtual box, downloading an ISO, waiting for that, then going into virtual box, getting your adapter set up. So you're saving quite a bit of time here. So you get quite a bit with vagrant, without having to go through all those steps yourself in a VMware or a virtual box in this case. And just to show that a little bit, let's go over here to our virtual box manager. And as you can see, trustee, the image, the vagrant image is running, but we're not using the virtual box manager for anything else other than the installation, right? We're not going to go into the GUI or mess with message settings or anything like that. As you can see, it's just the trustee default here, the trustee image, right? So the other way to install a VM would be manually, essentially, and looking at or messing with all the settings for virtual box, which we're not going to do. So you're going in here to network, this is where you put all your adapters, all your extensions. But with vagrant, we're not we're actually skipping all of that and just using the config file, the vagrant file. All right. So here we are. And after looking at that output, I would just went in and clear the screen. Let's do a vagrant minus H, which is the help message for vagrant command line tool. And then we could see what we have at our disposal. And we're going to use a couple of these. But you could see it gets pretty good help output for what the command does. And we'll use we use a couple of these. But first, the command that we're going to be using a lot is LS, right? We want to see what we have in our directory. And this one right here is the important one that we're going to take a look at, vagrant file. So let's go ahead and VIM VI into vagrant file, which is the configuration for our for our vagrant box, right? It has all the details that we saw earlier upon installation. And this looks a little bit intimidating. Don't worry. For now, we only have to worry about a couple of lines here. And most of this are actually comments, if you see everything with a with a pound sign. Those are comments, which reading through them gives us a pretty good idea of what's going on. So here's the first line that is that is actually running, right? It's not a common vagrant configure to config. And that basically executes our configuration. And the next one is down here, which is the name of our box, our vagrant box, the one that we installed with vagrant in it. And scrolling all the way to the bottom here, something's up with my cursor. There we go. You see a end keyword. So that's where the vagrant file ends. Now, going back up to the top, we're going to change one thing here. And it's going to be right here. And in order to edit things in VI in VIM, you press the I key, your keyboard, you see insert. That means you're about to edit or you can you can make a change. So what we're going to do here is just add a host name. We have our box name. Now we're going to add a host name. And we do that with config.vm.hostname. Let's go ahead and name this trustee, just like the name of the box, trustee01. In case we make more of these, remember, vagrant is a tool that allows us to quickly deploy VMs from one base image. So if we wanted to, we could create many of VMs from this base image. So we're just going to call it trustee01. And to exit, to save an exit that of VIM, press your escape key, colon WQ. So I'll say that once more, since VI does have a bit of a learning curve, escape colon WQ, which means write quit. So now those files, that file has been updated. And in order for those configurations to take place or to take effect, we're going to use one of these commands up here. And that's going to be vagrant reload here. As you could read here, it says restarts vagrant machine and loads the new vagrant file configuration. So this means that the changes will take effect. The changes that we just did in this VI command, we're going to be taking effect. And a fun fact is that vagrant reload actually combines a couple of commands. Combines vagrant halt and vagrant up. So a little bit of a shortcut workflow there, but let's go ahead and do that. Vagrant reload, and that'll make sure that those changes that we just made take effect. See the output here that is telling us what's going on behind the scenes. The network interface is the part forwarding. And in this case, the only change that's going to be different from the last time is the hostname. So you can see successful at setting the hostname. And now we have an updated config file, which for vagrant are called vagrant files. We're going to take a look at a couple of commands that are going to be pretty commonly used in the real world, but also in this course. And we're going to get to know them pretty well, as well as how to get the most out of Linux built-ins. There's a lot of ways to get help, a lot of ways to have a productivity boost just with using Linux built-ins and built-in features. So we're going to take a look at that. One command that we've ran already is LS, when you're listing your tractors and listing all your files. We're going to take a look at that. So now after that, we loaded our config and have freshly loaded config file. Let's go ahead and SSH back into a vagrant environment. I forgot to ran vagrant up and you actually combine these two. So this is one way, which we'll get into detail. One way to kind of boost your productivity is we're going to semi colon, which delimits or separates two commands, and it allows you to run one command run right after the other. So we're going to do a vagrant up to bring the machine up and then SSH right into it. So just give it a couple moments to go back into our vagrant environment, which we did make the changes in our vagrant file. So we'll have that new hostname. All right. So now that we're in our vagrant environment, we can even run a hostname and we could see that's the hostname that we changed in our previous video. So let's go ahead and look at some of these commands, right? Some of the things that we can do here, LS, which we've talked about, do LS, LAH, which list long format, all in H for human readable. And you can see the different files here, right? Anything with a D is a directory. Anything that doesn't have it is a file. So we have our files here in our home directory. And let's go ahead and CD into vagrant, which CD is another common command, which is change directory, changing it into a vagrant directory, which is our shared directory. So we can have files here in this folder in this directory, have them in our vagrant environment, but also locally, right? So in my case, a Mac, we could basically, as we mentioned previously, that's one way to have a shared directory where we don't have to copy files. You don't have to SAP or any of that. You could just have them make them once and have them there. Right. So these are our shared files currently. So one thing that that we could also do when it comes to productivity is tab, tab autocomplete, something that comes in pretty handy. So let's say you have a you have command, and it's a rather long command, maybe you're changing into, let's say, just as an example, CD Etsy, and you want to get into, let's say, log rotate D, just as an example, right? Well, you could type that out. But as you could see, there's another directory here that starts with log. So you wouldn't get that, or you would have to like remember exactly what to type, but you'd also do the log R and then tab and the rest of autocomplete, right? So it's just a way to, let's say you semi remember where you need to go, where you need to change directories to, and you have to remember just enough to be disambiguous and then Linux will take care of the rest. So that's one way to kind of boost your productivity as well. So these are these are a couple commands, right? LS, CD, hostname that we've ran, PWD, which is print working directory is another common one. And it's very useful because it lets you know what's the full path to, to where you are to your directory. And in case you don't, in case you need to navigate somewhere else, right? And you don't know exactly where your location is. So let's go ahead and CD and dash. That'll change you back into the directory where you previously were, right? So going back to your vagrant directory. That way you don't have to type this, or let's say you don't even remember where the previous directory you were in, you're working in, let's say you're working in this one for quite some time, and you just want to get back to your previous directory. This is a way to do it. And it's a pretty commonly used one as well.   And the concept of aliases is base, basically, shorthand ways of running commands, right? Think of them as shortcuts, keyword shortcuts, which you can then use over and over.  Let's say you have a really long command or a multi command as we used previously with vagrant, vagrant up, vagrant SSH. You could wrap that into an alias, like a one word, one word alias, and run that. And then just, just call that every time you need to do that specific command. So that is, that's one thing you can do.  So let's go ahead and do an example of that. So let's take a look at an example here. Let's say you want a straightforward way to get back to this vagrant directory so that you don't have to CD and type that every time. So let's CD dot, dot, which means go up a level. So now we're at the root directory. And we can check that with PWD, which we learned earlier. And that tells us we are at the root directory at top level. So to go back to, to CD vagrant, right, we could do this CD dash. We could do CD vagrant, which more than likely we're going to have to do this, right? Unless we, we happen to, it happens to be that that was our previous directory. We're going to have to type it out. And let's pretend that this was two paths in or three, three levels in, right? We would want to continue to type that every time. So what we could do is set up an alias, right? A one word alias that allows us to execute that and get back to this directory. So the way we do that is with the alias keyword, and then we're just going to call it VG or vagrant. And wrap it in quotes, CD slash vagrant. So this is telling our shell that this keyword means CD slash vagrant. It's just as good as typing that out. So we execute that. And now let's test it out. Sure enough, we're in our vagrant directory. Now we can get one step fancier with this, right? We were previously at this, uh, directory. And let's say something like CD slash Etsy slash log rotate D and an LS just to show the concept that we can combine multiple commands in an alias. So let's say alias and we'll just call this one log R for log rotate. And we'll do CD and then this right here slash Etsy log rotate D. And then semi colon, which is going to separate these two commands command one and command two and LS LAH to get all the format and human readable. And that's going to be your alias for log R. And let's go ahead and test that out. Log R. Sure enough, we CD into this, this directory and we get an LS. So if it's something that you were checking often, right? So that you are going to have to type a lot. This would save you quite a bit of time by setting up that alias beforehand. One thing of note is if you want to make these permanent, right, regardless of how many times you log out of this session or let's say you reboot your computer, your host laptop computer, you're going to want to wait to for these alias to be permanent. And the way you do that is through your bash RC. Let's do an LS LAH, which is a command that we're becoming familiar with in this course. And we're going to do this till the sign, which till the just means home directory. So we want to look at our home directory here. LS LAH. And this right here, we see different files for bash history. But this is the one that we want here bash RC, as that's going to be where we can store aliases for permanent usage. So here we see our bash history, bash log out of bash RC. This is the one that we're interested in here. Now normally in a Mac, you could do this on bash profile, but for Linux, you're going to do it in this bash RC file. So what we're going to do just to reiterate, we're going to do is add these aliases, such as this one, such as the EG one for CD vagrant, we're going to add them in our bash RC so that they are permanent. And it doesn't matter how many times we kill the session or we log out, log back in, they're going to be, they're going to remain as our aliases and we could continue to use them. So I'm just going to go ahead and copy this before I head in here to the bash RC to vi.bash RC. Now there's a lot in here that is built in with our distribution and then with Linux. But down here, I just scrolled to the bottom. We have our, some of these aliases. So configuring for a grep output, LS output, basically color coded and some other ones for LS. What we need to know though, all we need to know though here is the concept that one keyword can allow us to do quite a bit, depending on how how custom we want to get with it. But the purposes of the aliases that we were demonstrating going to go ahead and add them down here. And I'm just going to put a comment in here for a grant and log rotate and gonna paste in my output didn't come here correctly. But I remember it, it was alias log R log R equals CD Etsy log rotate dot D. And I would recommend pasting this in here, but I'm typing this out for demonstration purposes. But here we have CD Etsy log rotate D and LS LAH, LAH. And gonna go ahead and check that just to make sure that I got that right down here. And sure enough, that's correct. Okay. So I'm going to go ahead and get rid of that and add the other alias, which was for vagrant. So alias VG. And that was CD slash vagrant. Okay. And to exit VI, it's escape colon WQ does take a couple of times couple of tries to remember that. And there's all kinds of jokes on on VI and how hard it is to exit. But just remember colon or escape colon WQ. And that stands for right quit. So now we have those aliases in our bash or C file. And it doesn't matter how many times we kill the session or log out, it's always going to be they're always going to remain since they're tied to our bash or C file. And we'll just go ahead and test that one out VG. And we're back at our vagrant file. So we could see how powerful aliases can be. They're pretty much up to our disposal, how much we want to customize, right? If we want to do three command aliases, four command aliases, right? It really just depends on how far we want to go. For example, at C log rotate, right? Let's just see what other directories are in here. Just for demonstration purposes. So there is no actually no mother directories in here. So I'll just demonstrate a two level, a two level switch or two level change and in directories. Let's say I want to go up two levels, right? What I could do is do an alias.to for two levels. And then CD something like that. If I was three levels in or three directories in, I could do it and name it three. But the point is, I can do some shorthand, right? Something that I'm going to remember. I want to go up two levels. And then I could just type that in. And now I'm there two levels up, right? So whatever works for you in the best way you're going to remember your, your commands and where you need to go, what you need to do. That's how I would recommend using aliases because it will boost your productivity and just save you a bit of time. The cool thing here is that vagrant allows for shared directories. Your vagrant box to locally to your Mac or Windows system or vice versa, you get a direct or shared directory for free. So let's just do an LS, LAH, which will show us in long format, human readable format, what we have. And what I'm looking for is the shared directory here. Since I happen to know that that's going to be in CD vagrant. Let's go CD to that change directory. And once again, as I said previously, LS is going to be command that we're going to be running quite a bit in this course. Because we want to list what we have in our directory that allows us to navigate from the command line, right? Versus searching in a GUI, clicking and dragging. This is a, this is the Linux way to do it. And it's actually more efficient. So what we see here is the vagrant file that we edited earlier. And just to just for visual representation, let's take a look. And although color waves are different, this is the same file that we edited previously. As you can see the only non comment lines are here. This first one and then these two, which we added the host name line. And then of course, go to have our end line or end keyword. And as you can see, we have this shared file text file, which I just happened to create for fun to show this concept of a shared directory. And there we have the shared file. And let's just do an MD five, MD five some, yeah, just MD five some on the shared file. What this does is output the hash of that file. So the hash representation of that file. And we're going to take a look locally on our Mac. And to see that it's the same file. So let's just do an exit, which will send us back to our Mac in the same directory. So you can see an LS, which we see the same files that we just saw up here. And we'll do an MD five for that same file. And you could see these two are the same hash, which means it's the same exact file. So this this ends up to be a pretty good workflow. If you want to share files from one to another from your Mac to your vagrant box or vice versa. And you don't have to mess around with with copying and pasting or SCP command. And then with virtual box, you would have to mess the settings in order to allow that sharing. So this just basically comes for free, which is a pretty, pretty cool thing from vagrant. And it's going to help in your workflow, we're going to go over some concepts and security, and some of the guard rules that Linux has built in, how we can leverage them, and how we can get to a level of understanding. So that as users and admins of Linux environment, we can become more self sufficient. Remember this course is all about how to get that initial level of understanding and how we can get going from there. So in a production environment, people wouldn't have the same level of access across the board, right, people work in the one department wouldn't have the same level of access as another. And that's what we have in Linux with file permissions. So, you know, if there's some sensitive files, only those that need to work on those will have access to them, and not everybody else. So having that same having that same concept, the principle of least privilege is what we're going to be discussing here, starting at a basic level. So when heading clear to my screen, and we're here in the route directory, and let's go ahead and go to our vagrant directory. So we could do the CD vagrant, or we could run the alias that we previously created. We'll go ahead and do that. Now we're at vagrant. And we're going to use another command that we've that we've become familiar with, with LS, LIH, just so we could see everything in long format, and look at the permissions. So you may have noticed this already, but we have our permissions here on the right hand side. Anything with a D is a directory. But then after that, is where we will go into the permissions. So what do these, what do these letters mean here? Well, R stands for read, W stands for write, and X stands for execute. So that means what kind of permission is given for these files, or for these directories, if it's in this case, right? But if you look at this vagrant file, for example, let's just try to break this down a little bit in what this means. So the R we've said means read and the W means write. We don't see any X's here. So that means there's no execution privileges for the given user. Now, if we break it down even further, we can think about these in in groups of three. So this is one set of three. This is another set of three. And this is the last set of three. And what this means is it's broken up in owner, group, and users. So this first set is the owner. That means the owner of this file of vagrant file has read write, but not execute. So they have read and write access. Then the group only has read access. The users also only have read access. So that kind of lets you know the permissions or the access that is provisioned for this file and set another way this this permissions here is 644. Now, how did I come to that to that number? Well, these these RWX are also represented by numbers, right? The binary representation of them. And there's resources for this such as Linux comm geeks for geeks, or you can just look at the Linux documentation as well. But one of the things that that we can remember that we can remember here is R is for represented by four, W is represented by two, and an X is represented by one. So we can even test this out here. Let's go ahead and create a file. And let we'll just call it permissions. So we're using touch to create this command to create this file. And let's look at its permissions that it's given by default. So it's similar to the vagrant file. We see that read write, and then only read for the last two, right only read for the group and the users. And this is where we can come start talking about another command that is pretty, pretty powerful, pretty common. And that's Tramot. That's going to allow us to modify permissions up or down if we need to. So we're going to take a look at the Tramot command here. And, and how it's useful for us as administrators of our environment, in this case, of our vagrant, just a vagrant environment that we're using here. So we see your permissions here with LS LAH, we have read write, read, and then only read. So set another way. There's this means that there's read and write access for the owner read access for the group and read access for all of the users. So we can think about these in terms of like three blocks, could say this is one block. This is second one. And this is the third one. So we think about it that way in terms of how they're they're broken up. And when it comes to Linux permissions, there's also the number representation or binary representation of these bits here of this RW. And if we scroll up here, we see an X, right? So read write execute. The only thing we need to know is the R is for or translates as for in binary or number representation of the permissions. W is two. And the X is one. So set another way this permission right here. This would be ours for W is two. So that would be a six. This would be a four. And this would be four. And since nothing else is on no other permission bits are on for this file. This could be we could say that this is 644. That's where Chimad comes into play, right? One way you can modify permissions up or down to give more access to give a less access is using the number representation. So if we do this, Chimad or change mod, how some people call it 644, and permissions.txt of the file, we should get this same exact output. This is just the number the number representation way of doing it. So let's go ahead do an LSLEH to check that. And we have the same output as we have here. Now if we wanted to change that, let's say we want to have executable permissions for our user for the owner as well, we can do something like this 744. So now we're adding executable bits. So the R is four, W is two, and the X is one. That would be 744. And let's go ahead and run that. And what we should see here is an X where this previous blank space was. So now we have executable permissions for this file as the owner and the text is green. So that's just Linux color output, the way it helps us know that it is an executable file. Now just for demonstration purposes, I'm going to change this back to its previous form of only read write. And we're going to change it. But now using the explicit annotation instead of the number number notation of changing permissions, we're going to change it in the other way. So let's go ahead and do that. And it's a little bit non intuitive with the nomenclature here as you actually stands for owner or your own user, right? So it's not but it's you. You stands for your own the owner or your own user. And what we want to do is read, write and execute how it was in this 744 output, read, write and execute. And then we'll give it the file name. So this should change it so that it matches this exact output of the Jamal 744. And let's go ahead and check that. And we see it's the same output as when we did it through the number representation. So whatever works for you in terms of how you out makes more sense for you, doing it this way, the explicit annotation or doing it the number, the number ways way, some resources to to get these permissions down in terms of, let's say you just forget what the numbers represent. I would recommend linuxsize.com, geeksforgeeks or linux.com. And those will give you a good idea of what these mean and kind of just instill those those fundamentals. We talked about permissions and what access that gives you to particular files and directories, but also at a user level, right? Not every user is going to have the same privileges out of the box. And this is where we're going to talk about the sudo versus su command. So sudo will allow you to run a command with super user privileges. And normally it's used to run that single command, right? And then you remain as your user level at your as your normal access. And the su command or SU will switch user, actually elevate you completely to that root or that super user. Now that would be necessary when you're going to be running a lot of admin level tasks or admin level commands, and you're going to remain as that user. But it's generally not recommended to do so when you're just going to run one or two commands as you're you're risking that user, that root level user, which has unlimited access. So so that's generally not recommended. So let's go over what these what these commands do in a couple of examples. So to demonstrate this example, we're going to look at a file that has or that is owned by root. Let's go ahead and do an L S L H at C hosts. And as you can see, this file is owned by root, which means only that sprees are just going to be able to write to it. So let's just go ahead and show this VI at C hosts. Now I'm still as my user, as my normal vagrant user. So let's see what we can do here. Just going to attempt to write something here. And as you can see, I get this warning down here, warning changing a read only file. And let's see if I can do something here. This is a comment for testing purposes. Let's go ahead and escape colon WQ to write quit or save the file. And sure enough, I get that read only option a set range. So it's not allowing me to do anything here because I am not the super user. I'm not root. So I'm going to go ahead and exit out of here the queue. And we could look at it and we could see those look at it again. We see those changes were not made. So now let's go ahead and run it with pseudo and forgetting the VI here. Let's go ahead and run that. Now we should be able to do it. So running I for insert and just going to put this is a comment for testing purposes colon WQ. And we'll go ahead and check it. And we did make those changes now that we are the super user. So that's definitely something that we that we see there as the we can see how this command could be could be beneficial for us. Now, the difference between running pseudo VI, right, and then doing something like this pseudo dash I. Now we are the root user, right. And we could see that with this pound sign. Just as a general rule of thumb that to remember by with anything you have a command prompt with the pound sign. You are root user. And when you see something like a dollar sign, you are at your user level. So let's say you can distinguish those two. Another way is with your UID. So your user ID. So if I run this command called ID, I'll get UID equals zero, which is root, right. That is the the highest level of access you have in Linux. And as we mentioned earlier, it's generally not recommended to use unless you need it. Following the principle of least privilege. And if we go back exit back as a vagrant user, let's go ahead and run ID there. We could see we are not UID zero, not the root user. We are vagrant user. So these are general concepts that we want to know from a security perspective when we are administering our environment. So the difference between running this up here pseudo VI and then your command versus doing this. Now you here you switched as your root user. And doing it another way would be pseudo dash su that pseudo su dash is what I meant.  You're actually switching user to your root user. Now you are your root user. Just how we did it up here. But this is just another way using this su command switch user. We're in the ID and we see that we are the root user. Now we can go into this Etsy hosts without doing the pseudo and write to it. And let's just go ahead and do that for this demo. Another comment as root. And let's just go look at that and we could see that this was written. So that's the difference basically that you could run all commands without having to do pseudo because you're already super user. You're already that root user.  So as a general security concept, you don't want to be the root user longer than you need to be. So basically, those are the differences between pseudo and super user. And anytime you have doubts on, on what a command does or wants more help on a command, we can use something very, very beneficial that we have built in here in Linux. And that's using the man pages. Now that we've gone over some commands that we can use, some examples on how to use them, and some security concepts, let's go over one last concept that will really help you in your journey of learning Linux. And that is how to get help on certain commands, right? How to learn how to use them and how we can even do this through our Linux terminal itself. So yes, we can research how to use these Google examples. And that's very helpful. But we also have a very powerful tool in our arsenal right here in our shell. And that's the man pages. So earlier when we were installing vagrant, right after we installed vagrant, we did a minus H, right to get help on on the utility vagrant. And we could do something very similar, but even more powerful when it comes to commands. And that's using the man pages. So we've used, for example, LS several times, right? But what if we didn't know how to use this command? How would we learn that right here in our terminal? Well, we can do something like man LS. What this is going to do is take us to the man page of the command. Go ahead and enter. And we could see it gives us a description on what the command does. It lists directory contents. So that gives us a pretty good idea of how we can use it. But it is more than that because it tells us all the options that we have a dash a dash B and so forth and explanations on what all these do. So we can start to read these and see what fits our use case, right? What do we want to do or have an output when it comes to the LS command. So far, just to look at some examples. So far, we've used the dash A. We've used the dash H as well, right here. So we could see what some of these other commands or some of these other options are as well, right? Which one of these do we might need to use, right? For example, we could see here the D list directory entries instead of contents. We could see down here, we have some pretty, pretty neat ones as far as fill with the comma separated list of entries. This one we know use a long listed format. And then down here, we could even reverse the order when we sort. We could sort by file size. So we could see we have a lot of options on how to use this command and just gives us a really good idea of how to use it, right? If we never use this command before, we could read these options and have a pretty clear idea on how to use it. Let's go ahead and look at another example, a command that we haven't used. We're going to do a man find. Now, the find command is a pretty powerful command that we can use. And let's go ahead and read what it's about. It tells us search for files in a directory hierarchy. Okay, so we have it gives an idea of what this command does, right? Searching for files in a directory. And here in the description itself, it tells us it searches the directory tree rooted at each given file. And it evaluates the given expression from left to right. If this sounds like a lot of jargon, right, we get a reread this and start to think about what it does. It searches directory tree. If we think of the directories and its structure as a tree, let's say we look at that Etsy log rotate D earlier, right? That's two directories in Etsy and log rotate. So that's the tree for that directory, that directory structure. And find can search that and search every file within that directory tree, given on the rules that we give it. So we can start to see or might be able to start imagining what it can do. Now, we could read all of this output, which I do recommend when you're first learning a command. But we could also do is use the search functionality of the man pages. And the way we search in man page is with slash. So we could do slash keyword, and it will take us to that specific keyword. So we could do, for example, slash dash L, and that'll take us to all occurrences of the dash L. But in this case, we want to look at examples on how to use the find command. So let's go ahead and do slash examples and hit enter. And we could see all occurrences of the word example are highlighted. But we could hit the N key in order to continue to scroll down and it'll take us to that specific keyword. We could just hit the N key. So let's just continue to hit the N key until we get to these examples. We see plenty of examples that are quite robust on how to use this command. Now, a lot of this is unfamiliar since we haven't learned it yet. But we could see that all of these have a description to go along with it. For example, this first one, maybe we don't recognize what the command does itself. But if we read the description, we'll get a pretty good idea of what it does. So it says find files named core, enter below the directory slash temp and delete them. And if we start to read this, we see find slash temp name core. So just like the description tells us, right, it's looking for files with a specific name. And it's using that with the option of dash name. And we could see if we continue to read, it gives us a little bit more details on what it does in terms of escaping specific characters. But we have a decent idea of what that command does. It's looking for files with that specific name, and then proceeding to delete them with this second half here. And if we scroll down a little bit more, right, we see other examples of the find command that could be pretty powerful. But we might recognize this part here, right? When we were talking about permissions in our security concepts, we could see that it's searching or we might be able to get an idea that it's searching for files with a specific permissions, permissions bit set. And let's go ahead and read the description for this one. Search for files which have reading right permissions for their owner and group, but which other users can read but not write to. And if we remember, the binary representation or the number of representations of permissions, right, read, write and execute all have a number allocated to them. So read is for right is to and executable is one. And just how the description tells us here, it has reading right for owner and group. So that's these first two. And that does check out as we can see, we have six for both of those. So that's reading right. And we have a four, which means read. And just how the description is telling us here, the users have read or read only permissions, right? So now we can understand that this command is searching for all files with that specific permissions set. And we can continue to read more examples down here and start testing these out ourselves. But we could see what this command, what this command does, right? And we could do all of this right here in the man page. Now, yes, we can Google and search for these commands, right? Search for examples of the fine command. And that's very helpful. But the concept explained here is that we can do a lot of this right here in the man page. And to really get the most out of the man page and its functionality, we can do a couple more things if we want to search for specific things, right? We talked about using slash keyword. But down here, we see this help message, press H for help. Let's go ahead and do that. And now we see a lot of different ways that we can leverage the man pages to search for specific things or to navigate around as well. So here we have under moving different ways to move around. And the keyboard shortcut, along with the explanation. So for example, this one, you can go forward, one line, this one go backward, one line. So that's a lot that we can use. Think about it as another tool in your toolbox when you're when you're using the man pages. And down here, we have searching. We use this functionality of slash and then the keyword pattern using the end key to continue to continue looking at the next one. But we have a lot of other options we hear that we have here, such as question mark pattern. So question mark, and then the keyword will search backward. Right? So we see a lot of different ways that we can use the man page. And man page has this own help, help messages that we can use in order to get the most out of it. So there's a lot that we can do here to to really leverage the man pages. Thank you for joining me in this course intro to Linux, where we covered an overview of how to get up and running in the operating system of Linux and how to use some commands. I really hope that you learned a ton and derived a lot of value, a lot of useful tidbits, and how to get started in Linux. Just as an overview, we covered an initial install on getting up and running with virtual box and vagrant. And why that was a more efficient setup than going another route. We covered some basic essential commands, such as LS, PWD, CD, and the concept of the man pages. We covered some productivity tips on how to save us save ourselves some time at the command line, how to be more efficient, such as have auto complete aliases, making those aliases permanent to survive reboots and so forth. Some important security concepts that we need to know, such as file permissions, access control, and pseudo and root privileges. And the concept of man pages, how to really leverage this tool that is a total game changer once you learn it. And it'll allow you to learn new commands on the fly. So I really hope that you learned a lot in this course and that you will continue on your journey in learning Linux. Thank you and see you in the next one.


A lot can happen in a wiki minute, like the 60 seconds of everything that happens on wikimedia projects. Or even the time it takes to answer, what does the wikimedia foundation do? You might know about Wikipedia, the free encyclopedia anyone can edit, but you may not know that Wikipedia as well as 12 other open source projects dedicated to free knowledge are hosted and operated by a non-profit, the wikimedia foundation.  That's why they work to make sure free, verifiable knowledge is accessible to everyone. Their work includes improving and maintaining world-class technology to support wikimedia's vast open source infrastructure, providing support and funding to organizations and people who make free knowledge possible. They also provide legal and advocacy efforts to protect people's right to free knowledge around the world. And that's what the wikimedia foundation does in only a minute.


Welcome back. Today also we are going to solve some numerical problems. After having established relationship of almost all thermodynamic quantities with the molecular partition function, now we should be able to apply those developed concepts in solving the problems and addressing the problems. Let us continue with different types of problems and see that how the derived equations, the derived concepts can find their applications. The first question that we would like to solve today is on heat capacity. The question is the heat capacity of a gas determines the speed of sound in it through the following formula. The formula is C s is equal to gamma R t by m raised to the power 1 by 2. C s is the speed of sound and the heat capacity determines that means in the given expression there should be something which is connected to heat capacity and that is given to us that gamma is the ratio of C p by C v, m is the molar mass of the gas, deduce an expression for the speed of sound in a perfect gas of a diatomic, linear triatomic and non-linear triatomic molecules at high temperatures. And it is also given to us that consider only translation and rotation activity. The question is estimate the speed of sound in air at 25 degrees centigrade. Let us first of all try to understand the question. According to the given question to us the speed of sound depends upon the heat capacity of a gas. That means you are talking about what is the speed of sound when it travels through a gas. The heat capacity in the given question is represented as ratio of C p and C v and we need to deal with diatomic, linear triatomic and non-linear triatomic molecules at high temperatures. Then it says estimate the speed of sound in air at 25 degrees centigrade. Let us see how to proceed. This information that C s equals gamma R t by m square root is given to us. We also know that C p minus C v or C p m minus C v m is equal to R and this is for an ideal gas. Therefore, the disclaimer here is that we are dealing with the ideal gas. The ratio of C p to C v is called gamma which is also given to you and from here we have to now proceed. Now let us go back to our discussion when we connected heat capacity with mean energy and then from there we came up with an approximation. Why I am saying an approximation is that the equation which is written over here C v m is equal to 1 by 2 into 3 by nu R star plus 2 nu v star. By using this expression you can estimate the value of C v. Carefully see what I am saying I said you can estimate the value of C v. I am not saying that you can calculate exactly calculate because there are approximations involved here. For a gas translational contribution is always there and in three dimensions that is why this 3 by 2 R there is an R over here also. This 3 by 2 R contribution is always going to be there for a gas at room temperature. Now then as the temperature increases the rotational contribution also comes in. So, therefore, we have nu R star and nu R star is equal to 2 for linear molecule and 3 for non-linear molecules we have discussed it earlier.  If the vibrational modes are not active we are taking the value as 0. If the vibrational modes are fully active then we are taking the value of 1. We are not taking any in between value over here that is why I said you can estimate heat capacity by using such a formula. So, for vibrational modes remember that this is for one normal mode of vibration. If there is only one normal mode of vibration nu v star is 1 if there are 2, 3, 4 you have to substitute that number. Now let us proceed. So, we have discussed that the constant molar volume heat capacity can be given by 1 by 2 into 3 plus nu R star plus nu 2 nu v star into gas constant. And we just discussed that for diatomic molecule nu R star is equal to 2 because diatomic molecule is linear. For example, A, B and given to us let us look at the statement. What it is given to us? Only translation and rotation active that means the temperature is not that significantly high enough for the vibrations to become active. Fine with this knowledge translation is active we will keep 3 here. Rotation is active so nu R since we are dealing with diatomic molecule linear molecule then nu R star is equal to 2. So, then 3, 3 plus 2 is 5 5 by 2 R nu v star is 0 because vibrational modes are not active. So, 3 plus 2 5 5 by 2 R so CVM is 5 by 2 R and as we just discussed that CPM minus CVM is equal to R right. I am not writing N over here because we are talking about differences in the molar heat capacities. So, using this equation CPM is equal to CVM plus R. So, if CVM is 5 by 2 R then CPM is going to be 7 by 2 R. Gamma which is the ratio of CP and CV then becomes 7 by 5 7 by 5 right 7 by 2 divided by 5 by 2 which is 7 by 5 which is 1.40. Therefore, substituting in this equation the value of gamma you get C S is equal to 1.40 RT by M square root. Now, you can evaluate this at any temperature and you can estimate the speed of sound alright. I hope it is clear. Now, the second part of the question was for a linear triatomic molecule, linear triatomic molecule something like this A B C carbon dioxide. As long as the system is linear the molecule is linear nu R star is to be used 2. That means, CVM remains same 5 by 2 R. How 5 by 2 R? 3 plus 2. CPM also remains 7 by 2. Gamma remains 1.4 and the expression for the speed of sound also remains the same. Only what is differing here is compared to the previous one your molar mass is going to be different. When you talk about diatomic molecule versus triatomic molecule the molar mass is going to be different and by these expressions you can now estimate the value of speed of sound ok. Now, let us talk about linear triatomic molecule. Linear triatomic we have already we have already done I will modify it for non-linear triatomic molecule non-linear. Non-linear one of the example is HOH type. When non-linear you are talking about nu R star is equal to 3. That means, this is going to be 1 by 2 into 3 plus 3 nu V star is 0. So, therefore, you can put R this is equal to 3 R. CVM is 3 R obviously, then CPM means add another R to 3 R it becomes 4 R and gamma which is the ratio of CP and CV that becomes 4 R divided by 3 R which is equal to 4 by 3. Substitute gamma is equal to 4 by 3 over here. So, you have 4 RT by 3 M square root. Now, you can substitute the numbers and estimate the value of speed of sound in this medium the medium here is gas. So, to solve these kind of problems what is important is to remember this expression which can be used to estimate the value of CV. This value will depend upon the temperature. If temperature is high enough for all the rotational modes to be active you substitute the value of nu R star. And if the temperature is not high enough for the vibrational modes to be active then nu V star is 0, but if they are active then you put the number depending upon how many normal modes of vibrations are fully active. So, I hope that with this example it is clear that how to obtain or obtain an estimate of heat capacity at constant volume. Now, let us take another example a different type of example the question here is what is the ratio of the number of molecules with V equal to 1 and J is equal to 2 to those with V equal to 2 and J is equal to 6 for nitrogen at 1000 Kelvin. For nitrogen the frequency is given 7.06 into 10 to the power 13 per second and the moment of inertia is given. The question is to calculate the ratio of the number of molecules with a different set of vibrational or rotational quantum numbers. If it were only belonging to one set of quantum numbers things would have been very very easy, but here you have to deal with the molecules in which the vibrational quantum number V is equal to 1 and rotational quantum number J is equal to 2. And for the other state the vibrational quantum number V is equal to 2 and the rotational quantum number J is equal to 6. How to now address this kind of problems? When we talk about how to evaluate the number of molecules we have an expression n i upon n is equal to exponential minus beta e i over q. Now remember that if there are more than one energy states if there are more than one energy states corresponding to a particular level then that particular level is 2 fold, 3 fold or in general g fold degenerate. In that case g i will come here, but to address this kind of problem first of all we need to know energy levels and we need to know degeneracies. These two things are required to solve this problem. One is energy levels and second is the degeneracy. The question given to us talks about vibrational and rotational levels. Therefore, we will be dealing with the vibrational energy and rotational energy. Vibrational energy is given by e V is equal to V plus half h nu or you can also write V plus half h c nu bar where V can take value from 0, 1, 2 etc. And the rotational energy is given by h cross by 8 pi square i into j into j plus 1. When we discussed the rotational partition function we talked in terms of rotational constant b a b c where b is h cross by 4 pi c i and the total energy then we calculated in terms of b, but in terms of moment of inertia this is the expression. You can get from that by substituting b is equal to h cross by 4 c i. Now the first step is for this set of quantum numbers V is equal to 1 and j is equal to 2. We will add these and this. We will add for e V and we add for e j. For first set V is equal to 1 so therefore 1 1 plus 1 by 2 into h nu we are given information in terms of the frequency plus h square by 8 pi square i. So h square by 8 pi square i j into j plus 1 j is 2 so 2 into 3. When you solve everything you get 7.04 into 10 to the power minus 20 joules this is the energy. Similarly you repeat this exercise for V equal to 2 and j equal to 6. So you put V equal to 2 and j equal to 6. Do the calculations and you will get then now the calculate the energy is little higher. This is 1.186 into 10 raise to the power minus 19 joule. We have the energies. Now for the set of quantum numbers given to us then after having solved this and this I just said that n i is equal to g i exponential minus beta e i over q and similarly I can write n j is equal to g j exponential minus beta e j over q. When you take the ratio n i upon n j then you get n i upon n j is equal to g i upon g j into exponential minus e i minus e j by k t. We have to calculate n i upon n j that means we need to have information on g i we need to have information on g j. This difference e i minus e j that is the difference between these numbers 7.04 into 10 raise to the power minus 20 and 1.186 into 10 raise to the power minus 19. Now the degeneracy for rotational levels for rotors g j is equal to 2 j plus 1. So, in the first case v is equal to 1 j is equal to 2. So, 2 j plus 1 is 2 into 2 plus 1 for the second one v is equal to 2 and j is equal to 6 ok. So, 2 j plus 1 what we have is 5 this is 2 plus 1 is 3 into 2 6 6 divided by 6 plus 1 is 7 into 2 is 4 14. So, 6 by 14 into exponential minus delta e delta e is difference between these two numbers and it turns out to be 12.6. What was the question given to us? What is the ratio of the number of molecules with v equal to 1 and j is equal to 2 to those with v equal to 2 and j is equal to 6 for nitrogen at 1000 Kelvin. Since these quantum numbers belong to different states of motion or modes of motion. Therefore, the problem becomes little complex you need to involve degeneracy and you need to include the differences in their energy states. First you have to calculate the energies which they are occupying for v equal to 1 and j is equal to 2 it was easy to compute it was easy to calculate that it is 7.04 into 10 raise to the power minus 20. Similarly, for the second it came to 1.186 into 10 raise to the power minus 19. The degeneracies were also possible to evaluate because we know that for rotational levels the degeneracy is 2 j plus 1. Therefore, by writing such a number what we have is we have this ratio of number of molecules with v equal to 1 and j is equal to 2 to those with v equal to 2 and j equal to 6 the answer is 12.6. So, you might have noted in today's discussion that when you are dealing with such type of questions you need to know the rotational constants in simple terms for example, b is equal to h cross by 4 pi c i and if I use i is equal to mu r square then even mu I can express in terms of masses. So, therefore, do not get confused if these expressions are written in terms of the moment of inertia or in terms of the masses molar masses. So, I hope that solution of these kind of problems has brought little more clarity on how to use the derived equations on molecular partition function in solving the numerical problems of this type. We are going to solve some more numerical problems, but those we will do in the next lecture. Thank you very much.


want to build us up. Where are you? What time is it with you at the moment? It is 1030 at night, 1030 p.m. on a Wednesday night. On a Wednesday night. Yeah, well past my bedtime. And you're from Balabafay County, Donegal. And you met your husband, Fergus, from County Gildare. Where did you meet him? I met him on a Etihad flight from Dublin to Australia. And you'd never seen him before in your life?  And to be honest, getting off the flight, I thought I'd never see him again. But you're like, here we are. Fast forward. Nine years later, we're married with two children. Oh my goodness, me. What a great love story. And talk us through how did that all develop? Obviously, you're on the plane together. Were you sitting beside each other or near each other? What happened? We, no, we weren't sitting beside each other. He was sitting behind me. We were both sitting on aisle seats and he was sitting opposite me and a rollback. And as we were taken off, I looked back and he looked a bit nervous. So anyway, I offered him a suite and he declined. And then we got off in Dubai and he came up pretending that he was lost. He was a bit of a damsel in distress. And it turned out I had no idea where we were going either. So we both ended up lost in Abu Dhabi. And we decided we'd go for something to eat and we got chatting. And then when we were boarding the flight to Brisbane, he asked me for my Facebook name and I give it to him. I always, the joke between us is I always say to him, if it asked me for my number, I would have given the wrong one. But he had his phone out. He had his Facebook ready to go. So I thought, right, I better give him the right one. And yeah, look, the rest is history now. We are happily married. And yeah, we have two beautiful children and made up of a life for ourselves in Australia and two businesses. And yeah, it's all good, all from one flight. A lot can happen on a flight. Absolutely brilliant, brilliant story. And tell me, you said there you had two businesses. So talk me through that. That's right. So we just opened our second business in October. It's called Aregle Property. So it's a real estate agency. And we also have Northline Developments. It's a construction company and maintenance company. So we've actually merged the two together. So Northline does all the maintenance for our rental properties. It's actually the first of its kind here in Queensland. So it's a bit of a new idea that we brought out. And it seems to be going really, really well. It's been very, very popular. We're really busy as if we weren't busy enough with two kids. We have, yeah, we're fine ways to juggle it all and make it work while we're in a foreign country with very little family and support around us. You know, so it can be done. Were you at the moment, Monica, is there a big Irish community or are you basically on your own? There is, yeah, no, there's a lot of Irish and there's a lot more that's arrived in the last 12 months. I think a lot of people have left Ireland after COVID. They're all deciding to go and explore. So there is, there is a great Irish community here. Definitely. We're very, very lucky. We have amazing friends here. But you definitely do miss the free babysitting from the ground. We can do with a few more visits a year from the grandparents, a few more nights out would be lovely. We've had one night out in three years. Our oldest son is three. We've had one night out. Are you sure you're from Donegal? I know. A lot has changed since I left Donegal, I can tell you. What time are you? I've settled a lot. You're out there for some, what is it, nine, ten years?  I'm coming up on 13 years. 13 years out there. Yeah, I'm 13 years in April and Fergus is 10 years this year. So we actually met. We met on the 10th of October, 2014. And then on the 10th of October, 2020, our son was born. So it's a pretty significant date. Yes. And our little girl then was the 9th of October, two years later. So October is a big month for us. Absolutely. There's a lot happens in October. Expensive months for the grandparents. Very expensive months, yeah. We try and hide now from it every year. Tell me, what's your long-term goals?  What's the story? We definitely, we tie with the idea of coming home a lot. We were back home for Christmas and we love being at home. Our end goal is to definitely move home. But at the minute, we just, we know that we need to have everything set up before we go home. Like we need to have a house to move back into a car. Every time we go home, we get a bit of a shock as to how expensive it has got. It just seems to be getting more and more expensive. And the thought of having to go back and start again from scratch is very daunting. So we now know that we have to have it all set up before we do return home. But definitely, our heart is very much in Ireland and we do intend to move back one day. What's the lifestyle like out there, Amonika? Is it sunnier to hear or better than hear? It's great here for children. Obviously, you've got the sunshine all year round. We always joke and say it's quite dry and weather here.  So that's great. That's a quick dry weather. Priorities when you have children. What about the kids? They like it. I suppose the kids know nothing else. I mean, they were born there. Well, we go home quite a lot. So we were back in Ireland twice last year. And the first time we went back, it was in February and I said to my son, do you want to go to the beach? And he was so excited. We got out of the car. He walked onto the beach. He nearly was blown away. And he was like, I want to go home. It was a bit of a shock from the beaches that he's just in Australia versus Ireland. He learned. They love going home. They love getting dressed up and jumping in the puddles and stuff like that. So look, they know no difference. They're very lucky. They're very fortunate to have two lives, really. They get the good weather here and they get the fun and the rain and the snow at home. And is there anything out there, anything obviously traveling back and forward? Is there anything that you miss about home? Is there anything that they don't do well? What about the tea? Where's Ryan? What about the tea? Is the tea good out there? The tea is not good out here at all. It's not the same. Look, maybe if you grew up with the crappy tea bags, that would be fine, but we're used to the good quality tea bags. Our local shop, we're lucky, actually sells them, but they're like $12 a box for 80 Barry's tea bags. And it's just my non-negotiable. We have to get our decent tea every day. We definitely miss the tea bags. What's their cheese and onion crisps like? There's no comparison at all. There is. It's tattoo all the way in King. Yeah, no. Their version of it here is just not the same. I've actually gone off crisps a lot since I moved here and they were always my Achilles heel at home. So now it's good for the waistline of it. So tell me, you're in Brisbane and things are really looking up in Brisbane because I can see here that the... I didn't know actually all this. The Olympics are coming to Brisbane in 2032, which is only around the corner in less than 10 years, like I said, 18 years time. Yeah. Yeah, it's very, very busy here at the minute. So yeah, since they won the Olympics, it's been crazy here, all the infrastructure is just popping up everywhere. We're really busy with the construction side of things as well. There's new houses being built everywhere. It's really hard to even find a plot of land to buy now. So it's a really, really good time for people to come out. I suppose if they wanted to come out and work hard and save a bit of money, there is good money to be made here. And yeah, now is the time to do it really with the Olympics coming. And it's definitely a good time to cash in on it and work hard and then go home, you know, if that's people's plans or their goals. Exactly, yeah. And the good weather as well, thrown in for good measure. Tell me, Monica and Fergus, you've got Facebook, Instagram, etc. And I can also see here that you can listen to tips and tricks for DIYers on the Builders podcast as well. You've got that all. So tell us more about that. That's right. Yeah, that's Fergus does the Builders podcast. He's always given handy hints and tips for people that own investment properties or for people who own properties that, yeah, want to do little cosmetic touches, you know, change things that, making small changes that can help you get a lot more return on your investment. So yeah, he's always given helpful little tips on that. So it's definitely worth checking out. Yeah, he's good to listen to. So I think your listeners will like him. He's always given good advice. And the good thing is he has investment properties in Ireland. So, you know, people can reach out to him and he's always kind of happy to give advice and point people in the right direction. He has lots of contacts in Ireland as well. So just want to give out the, it's Northline Developments on Facebook and Instagram and Ericle Property on Facebook and Instagram as well. That's right, yeah. And look, anyone can reach out to me as well if they're thinking of coming over and they have any questions. It's always nice. There is a great Irish community here and everyone really pulls together if, you know, people are coming out and trying to help where they can. So if anyone ever wants to, you know, have any questions answered or they have any queries, just more than happy to answer any questions. Well, you're there in Brisbane, Australia. That's just gone 10, 30 at night and we're here in Donegal and it's just coming up to court. I'll give you the microphone now. You want to say hello to a few friends and relatives now when you've got the microphone. Thank you. Well, yeah, I'd love to start off by saying hi to my parents, my mum and dad, Joan Rosemary and all my siblings and my friends. I've been very, very fortunate over the years being away for so long. A lot of people, you know, you can lose touch with your friends, but I have amazing friends and haven't lost touch with them. So I'll shout out to Wendy, Ian and the girls and Emma and then good friends of ours are over here at the minute. They're on their honeymoon to Maggie and Neil. Congratulations and enjoy your honeymoon. So I think that's everyone. Absolutely brilliant, Monica. Thank you so much. And thank you for sharing the lovely, lovely love. I like a good love story, especially. I love that. Well, a happy ending as well. Monica. Absolutely is. I want to wish you and Fergus all the very best and thank you so, so much for taking the time out this morning or this afternoon or tonight where we are in Australia. Thank you so much and good luck. Thank you very much, Monica. Thanks you so much for your time. All right, have a good day. Cheers.


Live from Barcelona, Spain, it's theCUBE, covering KubeCon CloudNativeCon Europe 2019. brought to you by Red Hat, the Cloud Native Computing Foundation and Ecosystem Partners. Welcome back to theCUBE here in Barcelona, Spain. This is KubeCon CloudNativeCon 2019. I'm Stu Miniman, my co-host for two days of wall-to-wall coverage is Corey Quinn. Joining us on the program, we have two gentlemen from Red Hat. To my right is Josh Berkers, who's the Kubernetes community manager and sitting to his right is Dan Bozanak, who's a senior software engineer. And as I said, both with Red Hat, gentlemen, thanks so much for joining us. Well, thank you. All right, so Josh, a community manager in the Kubernetes space. So what brings you here to KubeCon and maybe explain to us and give the clarification on the shirt so that we can be educated to properly call this city in residence by how they should be. So, I mean, obviously I'm here because the community's here, right? Very large community. We had a contributor summit on Monday. They had a couple hundred people, 300 people at it. I have one thing, when we talk about community in Kubernetes, there's the general ecosystem community and then there's the contributor community. And the latter is more with what I'm concerned with because even the contributor community by itself is quite large. As for the t-shirt, speaking of community, so we like to actually do special t-shirts for the contributor summits. I designed this one. Despite my current career, my academic background is actually an art. This is obviously a moro pastiche. But one of the things I actually learned by doing this was I did a different version first that said Barca on it. And then one of the folks from here is like, well, that's the football team. That when they abbreviate the city, it's actually Barnett. It was news to me, I am today years old when I found that out. So thank you very much for that. Yes, and it was an additional four hours of drawing for me. All right, so a while back, I had a tweet that went out that I knew was going to be taken in two different ways. And you were one of the first people to come back on that in the second wave. Everyone first thought I was being a snarky jerk, which, let's be honest, fair. But what I said was that in five years, no one is going to care about Kubernetes. And your response was, yeah, that's a victory condition. If you don't have to think or care about this, that means it won in a similar way that a lot of things have slipped beneath the level of awareness. And I'm curious as to what both of you think about the idea of Kubernetes, I'm not saying it loses in the marketplace. I don't think that that is likely at all. But what point do people not have to think about it anymore and what does that future look like? Yeah, I mean, one of our colleagues noticed yesterday that this conference particularly is not about Kubernetes anymore. So you hear more about all the ecosystem, a lot of projects around it. So it certainly grew up above the Kubernetes. And so you see all the talks about service meshes and things we try to do for the edge computing and things like that. So it's not just the Kubernetes anymore. It's whole ecosystem of the products and projects around it that I think is a big success. Yeah, and I mean, I'll say taking sort of a longer view is I can remember compiling my own Linux kernels. I can remember doing it on a weekly basis because you honestly had to, right?  Now on my various servers and stuff that I do for testing and demos and development, I can't even tell you what kernel version I'm running. Because I don't care, right? And for core Kubernetes, like I said, if we get to that point of not needing to care about it, of only needing to care about it when we're developing something, then that looks like victory to me. Yeah, Josh, is there anything in the core contributor team that they have milestones and say, hey, by the time we get to 2.0 or 3.0, you know, Kubernetes is invisible? Yeah, well, it's spoken of more in terms of GA and API stability because really, if you're going to back up and you say, what is Kubernetes, what's definitely Kubernetes is, is a bag of APIs, a very large bag of APIs. We have a lot of APIs, but a bag of APIs. And the less those APIs change in the future, the closer we're getting to maturity and stability, right? Because we want people building new stuff around the APIs, not modifying the APIs themselves. Yeah, well, to that end, last night, here at Barcelona Time, a blog post came out from AWS where they set out a formalized deprecation strategy for their EKS product to keep up with the releases of Kubernetes. Now, AWS generally does not turn things off ever, which means that 500 years from now, two trunkless legs of stone in a desert will be balanced by an ELB classic. And we're never going to be rid of anything they've ever built. But if nothing else, you've impacted them to formalize a deprecation strategy that follows upstream, which is awesome. It's great to start seeing a world where you don't have to support older versions of things as your user base and your community informs you. It's nice to see providers breaking from their model to respond to what the community has done. And I can't imagine for you, that's anything other than an unqualified success. All right, so Dan, when we talk about dispersion of technology, there are a few issues that get people as excited these days as edge computing. So tell us a little bit about what you're doing and the community's doing in the IoT and Edge space. Yeah, so we noticed that more and more people want to try their workloads outside of the centralized, one centralized data cluster. So the big term for the last year was the hybrid cloud, but it's not just hybrid cloud. People coming also from the IoT user space wants to containerize their workloads, wants to put the processing closer and closer to the devices that are actually producing and consuming those data and the users. And there's a lot of use cases which should be tackled in that way. And as you all said previously, like Kubernetes won the developers hearts and minds. So APIs are stable, everybody's using them. It will be supported for decades. So it's natural to try to bring all these tools and all these platforms that are already available to the developers try to tackle these new challenges. So that's why last year we formed the Kubernetes IoT Edge Working Group, trying to start with the simple questions because when people come to you and say Edge, everybody thinks something different. For somebody, it's an IoT gateway. For somebody, it's a full blown Kubernetes cluster at some Telco provider. So that's what we're trying to figure out all these things and try to form a community because as we saw in the previous also for the IoT user space is that complex problems like these are never basically solved by single company. You need open source, you need open standards, you need a community around it so that people can pick and choose and build a solution to feed their needs. Yeah, so as you said, right, there is that spectrum of offerings, everything from that Telco down to, okay, is this going to be something sitting on a tower somewhere or the vast proliferation of IoT which we can spend lots of time. So are you looking at all of these? Are you pointing, okay, we already have a Telco working group over here and we're going to work on the IoT thing. Where are we? What are the answers and starting points for people today? So we have a single working group for now and we try to bring into people that are interested in this topic in general. So as one of the guys said, like Edge is everything that's not running in the central cloud, right? So we have a couple of interesting things happening at the moment. So future way guys have a Cube Edge project and they're present at this conference and we have a couple of sessions on that that's basically trying to tackle this device edge kind of space. How to put Kubernetes workload on the constrained device and over the constrained network kind of problem. And we have a people like coming from the rancher which provide their own, again, resource constrained Kubernetes deployments and we see a lot of developments here but it's still I think early age and that's why we have like a working group which is something that we can build a community and work over the time to shape things and find the appropriate reference architecture blueprints for people that can follow in the future. Yeah, I think that there's been an awful lot of focus here on this show on Kubernetes but it is a KubeCon plus cloud native con. I'm curious as far as what you're seeing at these conversations, something you alluded to as well is that there's now a bunch of other services that are factored in. I mean, it feels almost like this show has become just from conversations, Kubernetes and friends but the level of attention that's being paid to those friends is very dramatically increasing and I'm curious as to how you're seeing this evolve in the community particularly, but also with customers and what you're seeing as this entire ecosystem continues to evolve. Yeah, well, I mean, part of it is out of necessity, right? As when Kubernetes moved from dev and experimental into production, you don't run Kubernetes by itself, right? And some of these Kubernetes you can run with existing tooling, right? Cloud providers, that sort of thing but other things you discovered that you want new tools. For example, one of the areas that we saw expansion in to start with was the area of monitoring and telemetry because it turns out that monitoring telemetry that you built for 100 servers does not work with 20,000 pods. There's just a volume problem there and so then we had new projects like Heapster and Prometheus and then new products from other companies that like Cystic and that sort of thing just looking at that space, right? In order to have that part of the tooling because it can't be in production without monitoring telemetry. One of my personal areas that I'm involved in is storage, right, and so we've had the Rook project here go from and pretty much a year and a half actually, go from being open sourced to being now a serious alternative solution if you don't want to be dependent on cloud provider storage. Please tell me you're giving that an award called Rookie of the Year. I do not apologize for that one. One thing that does resonate with me though is the idea that you've taken strategically that instead of building all of this functionality into Kubernetes and turning it into a you will do it this way or you're going to be off in the wilderness somewhere, it's decoupled. I love that pattern. Was that always the design from day one or was this a contentious decision? No, it wasn't. Kubernetes started out as kind of a monolith, right? Because it was like the open source version of Borg Lite, right? And which was built as a monolith within Google because there weren't options. It had to work with Google stuff, right? If you're looking at Borg, right? And so they're not worried about supporting all this other stuff. But from day one of Kubernetes being a project, it was a multi-company project, right? And if you look at, you know, OpenShift and OpenShift's users and OpenShift's stack, it's different from what Google uses for GKE. And honestly, the easiest way to support sort of multiple stack layers is to decouple everything, right? And that's not how we started out, right? Cloud providers, like one of our problems, cloud providers, Intree, storage Intree. Networking was the only thing that was separate from day one. You know, but all this stuff was Intree and it didn't take very long for that to get unmaintainable. Right? I mean, I think one of the, I've been following you and running into you on the conference circuit for years and one of the talks I gave for a year and a half was heresy in the church of Docker, where we don't know what your problem is but Docker, Docker, Docker, Docker, Docker. And I gave a list of 12 or 13 different reasons and things that were not being handled by Docker. And now I've sunset that talk largely because one, no one talks about Docker and it feels a bit like punching down. But more importantly, Kubernetes has largely solved almost all of those. There are a few exceptions here and there because it turns out, sorry, nothing is perfect and we've not yet found containerization, utopia, surprise but it's really come a very long way in a very short period of time. Well, a lot of it is decoupling because the thing is that you can take it two ways, right? It's one is that potentially as an ecosystem, Kubernetes solves almost anything. Some things like IoT are, you know, a lot more alpha state than others. And then if you actually look at just core Kubernetes like what you would get off of the Kubernetes, Kubernetes repo if you compiled it yourself, Kubernetes solves almost nothing. Like by itself, you can't do much with it other than test your patches. Right, in isolation, the big problem it solves is really limited to I want a buzzword on my resume. There needs to be more to it than that. So, and I think that's true in general because like, you know, if you look at why did Linux become the default server OS, right? It became the default server OS because it was adaptable, right? Because you would compile in your own stuff because we define POSIX and kernel module APIs to make it easy for people to build their own stuff without needing to commit to the Linux kernel. All right, so I'd like to get both of your thoughts just on the storage piece there because you know, one, you know, storage is a complex, highly fragmented ecosystem out there. You know, Red Hat has many options out there and boy when I saw the keynote this morning I thought he did a really good job of laying out the options but boy, there's, you know, it's a complex, multi-fragmented stack with a lot of different options out there and edge computing, the storage industry as a whole without even Kubernetes is trying to figure out how that works, so maybe we start with you. So yeah, I don't have any particular answers for you for today in that area but what I want to emphasize what Josh said earlier is that these APIs and this demodalization that is done in Kubernetes, it's one of the big important things for Edge as well because people coming there and saying, we should do this, should we revamp things or should we just try to reuse what's basically very good, very well designed system. So that's the starting point, like why do we want to start using Kubernetes for the edge computing? But for the storage questions I would hand over to Josh. So your problem with storage is not anything to do with Kubernetes in particular but the fact that like you said the storage sort of stack ecosystem is a mess, it's more vendor, everything is vendor specific, things don't work even semantically the same, let alone like the same by API. And so all we can do in the world of Kubernetes is make enabling a storage for Kubernetes not any harder than it would have been to do it in some other system. Right, and look, the storage industry would say, no, no, it's not a mess, it's just that there's a poor flavor of applications out there, there is not one solution to fit them all and that's why we have block, we have file, we have object, we have all these various ways of doing things. So you're saying storage is hard but storage with Kubernetes is no harder today, we're getting to that point. I would say it's a little harder today and we're working on making it not any harder. Excellent, well Josh and Dan thank you so much for the updates, always appreciative of the community contributions, look forward to hearing more about the, of course the contributors always and as the Edge and IoT groups mature, look forward to hearing updates in the future, thank you. Thank you, thank you. For Corey Quinn, I'm Stu Miniman back with lots more coverage here from KubeCon, CloudNativeCon 2019 in Barcelona, Spain. Thanks for watching theCUBE.