 Hello everyone again welcome to this year academies course on Linux and programming languages today we are going to begin our lecture with Linux Linux basics my name is Anand and I will be their instructor for this course I will be today like I am going to mainly talk about the Linux basics some of the history of Linux how it evolved into where it is today and why commercially it is very successful and we will see why it is very successful commercially and then we will also start working on the Linux with how it is structured mainly we will study about the file structures file systems and the various programs that are embedded in Linux and then I will be taking you through how to interact with Linux we will begin with some of the commands the basic commands that we will review and then I think we will cover as much as many commands as possible today and then we will leave it for the next lecture so let us begin so let us briefly talk about the history of Linux the history of Linux is not complete without talking about the history of units itself I think many of you are familiar with Linux having worked on it in different times at different times so far Unix is an operating system very similar to Windows or any other operating system that you may be familiar with one other thing that comes to mind today is widely used is the iOS operating system that is in the Apple iPhones Windows is very popular that is the operating system supported by Microsoft it is widely used in almost all the PCs today probably it has a market share of also Unix is mainly used in the fantasy computation world which includes the LSI design and many other areas we will see why it is widely used in both computing world the Unix itself was developed more than 40 years ago 1969 at the AT&T Bell Labs the two pioneers Ken Thompson and Dennis Ritchie the main people developing this operating system and in fact if you look at the timeline actually predates even the Windows operating system which is probably into being in 70s one thing to note about Unix is the command line interpreter what that means is as you type the commands that is how it understands what you are typing and what you are requesting on the services what you are requesting it is developed for many computers as you know the computing world itself evolved right in the from 1930s when the big mainframes were invented by IBM then the IBM the then the mainframes actually function to many computers and then in the 1970s the PC revolution started with the PCs becoming coming into the focus for the mainframes themselves the operating systems there proprietary and people used to interact with the computers using punch cards and it is other types of programming not really developing any kind of personal programming interfaces so it will be like more like a batch program so everybody will be writing a program they will be submitting into a punch card machine which turns the program into punch cards and then one person collects all these punch cards goes to the computer he runs those punch cards and then the computer will produce some results in the form of a punch card or some kind of a print out and then that print out is distributed to everyone who wrote the program and they can look at the result and then they go and modify the program the mini computers really started the revolution there the computers started interacting with people on a one-on-one basis so this is again one of the key aspects and this also prompted what is the time sharing which means that every person gets a fixed time on the computer I hope in your experience to you must have taken these kind of computing courses where you actually sit in the terminal do a fixed time of time of work and then move on and then somebody else will take your spot and kind of a time sharing you can also think of time sharing in a much more granular form that we will talk about in the later states of course and again as I mentioned the UNIX is the predecessor of Linux and we will see like how Linux came into being and what are the key aspects of Linux and why is it popular today so Linux itself Linux was created by Linus to all 1991 is created as an open source when Linus actually proposed Linux is that this is the lightweight operating system and this needs to be an open system and it is the variant of UNIX in the sense that it uses predominantly the core basics of UNIX and then it adds some more so one of the key aspects of Linux is this open source and we will see like what is an open source and why is it important so before we look at that let us look at what exactly is Linux so Linux is a fully networked 32 bit as well as a 64 bit UNIX like operating system what this means is it uses UNIX tools like said arc and rep we will again talk about these things later on in the course just to remember these terms said arc and rep we will see what they are it has built-in compilers for various programming languages C C++ Fortran small talk and Ada these are the two other languages also supported these are expect like languages we will we won't be learning about these languages just remember that it has a support for multiple languages as well and then it also supports networking tools like telnet STP ping trace route etc. I hope you guys are already familiar with some of these terms for example telnet is telnet allow users to communicate to computers which are remote remotely located so they can actually use telnet as a protocol to log in into a computer which is situated maybe like across the globe and then basically use it as a server to service whatever their programming needs FTP is it is an acronym for file transfer protocol again this is mainly used for transferring one file to another one file from one location to another location again we will we will talk about some more concepts on the FTP as to how we can move like that thing is a just a remote system where you can actually see whether a particular machine is alive or dead using the spin program and we will talk about all those things on the module stage again as I mentioned Linux provides a way for multiple users to communicate or multiple users to use so it is a multi user multitasking and multi processor system why is this important multi user because now it is not like your PC where you are actually sitting and you have your own system your own window you just communicate to it and then basically like it serves you and so for example if you are editing a word document that word document is so personal that only you can do it you unless you put it on the web or you use a mail program send it to somebody nobody else is will be able to see what you are trying to do but as in a multi user situation actually you can do some things and then your friend can come and add on top of it things like that so again the multi user is key aspect why it is preferred in this computing world in the scientific multitasking again you can simultaneously work on many tasks within the Linux operating system this is another key aspect today in personal computing world like I mean if you contrast it against the Windows operating system Windows also allows you to actually have multiple programs open but you still can only work on one program at a time here you can actually see multiple programs as one program runs you can also work on another one things like that it it forms with multiple windows in the inside the same operating system and multi processor again that is important because now you can actually add on processors to increase the throughput of a given program and work simultaneously with these multiple processors again contrasting to Windows operating system Windows provides maybe multiple CPUs in the machine but it still is working on only one of the aspects of it whether it's multi CPU multi core it's still it's servicing only one user one program it has an X Windows GUI again X Windows is so different from your normal Microsoft Windows in the sense that now you can open up multiple terminals inside the same window and then work in each of these terminals differently it also coexist with other operating system one of the three things that you will notice that today is x86 well actually now you can put two operating systems at the same time for example in your PC you can create a partition where you can have a Linux operating system on one side on partition and then the Windows operating system on the other side it also runs on multiple platforms again this is another key thing as I mentioned now the Linux works on x86 it also works on spark processors HP is that you can name it like I mean all this platform can support and the important aspect that I mentioned in the previous slide was that Linux is an open source and yes so it includes the source code as part of the operating system so even though we call it an open source you have to think of this as providing this source code for majority of the programs and we will see like I mean how this has evolved into even better and why people use it so let's see like why Linux is free I mean Linux is used today by many lot of company number one is Linux is free so you can view and edit the source code very easily the source code comes shipped as part of the executable itself as a part of the oils even though I call it like Linux is free in reality really not free there are commercial systems like the Red Hat Fedora who actually produce Linux for commercial consumption the thing is even though minus Torval's original vision was to have this Linux as a free operating system it served a lot of purposes but at the same time you know support became an issue and some of these companies took over the support and so that they can provide the bug fixes and more additional updates to certain features that the users are requesting in a more streamlined fashion so that is the reason why the commercially available Linux installations and of course the commercial installations are attractive for the companies like ones who work on the design or VLSI design for example because they at least get a reliable installation of Linux rather than looking at the open source and feel like when some of the bugs may be fixed or something and it is fully customizable so again people can write their own custom scripts and custom tools on top of Linux and with for example if you have a real-time operating system or real-time processor then you want to make it a real-time operating system you can put your own customizations on top of the Linux operating system to make it real-time one of the key features is the stability which is which again comes from the open source because once it is open source it is tested and verified by large community of users and they actually can constantly test the the new code as well as they provide the bug fixes to so it is basically about 30 years of testing has gone into this operating system and hence we get a very reliable and a stable installation again this is critical for critical applications even VLSI design for example is a critical application and so we need these kind of highly stable environment and it is also good for the shared environment as it offers today Linux also has a better security structure we notice that actually in Windows we come across several Trojan attacks and virus attacks but for the Linux side we seldom see any of these kind of attacks by the spurious program the reason is the security infrastructure that is already built in as part of the Linux since all these the way that it works is very reliable and very consistent it is very hard to break in into this and it is also highly portable we can if we have a new processor or hardware platform it is very easy to actually extend into that platform and it is also written actually it is written in C so that actually makes it more portable across this multiple platforms so now that we have explained why Linux is used by a lot of companies today let us look at what are the main features of Linux so that we can familiarize ourselves with Linux so Linux has three most important parts one is called the kernel the other is the shell and the third one is the file system so let us begin from the bottom which is the hardware so again the goal of the Linux is to actually to for the users to communicate with the hardware so on the bottom we have the hardware on the top we have the users so the users actually communicate with the hardware so let us see how they do it so the first layer that Unix the Linux offers is the operating system itself which is essentially has the process management memory management etc they are the very low-level programs which goes into the hardware resources and they try to control the hardware resources okay on top of these programs we have the standard library which are used for opening closing read write fork etc these are the regular commands that support or that uses these process management memory management programs they call these programs to do and on top of that is the standard utility programs like shell editors compilers etc and they actually call these other programs to facilitate how to do certain tasks so as a user you interact with the shell editors and the compilers so as I mentioned earlier the pre-mean systems are the pre-mean parts of Linux or the kernel shell and the file system so you interact with what is the what is known as a shell and then the shell themselves have worked with the kernel which are the the the the various management functions the process management memory management etc and and that in turn works with the hardware to satisfy your request so let us look at some more of the terminologies themselves so when the users communicate with the shell editor that aspect is known as the user interface so as I mentioned the various terminals that you open within the windows or all the user interfaces and that part that forms the shell and you will also see like what is the shell the shell is actually driving it is the program that is driving these terminals so that you will be able to interact with the with the computer then the shell then the shell itself works with the standard library and we just call it as the library interface and then finally the the libraries are populated using these for the management commands process management memory management etc which manages the the hardware resources and that is what is called the system call interface that interface between the libraries and the operating system on the other hand we see that actually the all these programs that really work on the process management memory management etc they are called the kernel and then anything above kernel is the user mode or the shell and going in between is the file system which we will see how the file system will be organized etc so let us look at the kernel in more detail so the kernel is the hard of the operating system it is the lower lower level core of the system that is the interface between the application and the hardware so you can think of the kernel as essentially their programs that calls various hardware resources and they also make sure that your programs finally are getting executed in time on certain processors or on certain more the hardware resources and with all the resources intact with the required resources so the functions that it performs are managing the memory managing the IO devices and then one of the key things that we talked about was this shared time sharing between the the processes so again it provides it allocates time between the user and the process it also does the inter process communication which becomes very key when we talk about whether we want to interrupt a process whether a process communicates with another process handing over things and it also sets process priorities so let us look at a brief example for example you if you have a writing a program say like you are starting a big array so it knows how to fetch that array from a memory and then you are actually interacting through the IO devices so it also watches IO devices there are any additional inputs that come coming in and meanwhile another user can start a program to compile a or he can start a program to actually go through a dictionary and sort and find the particular word so it again time shares between these two processes so that it knows like okay works on this for some time like a sorting program while it goes and like searches the dictionary for some other time and then meanwhile you may say that okay you know what I forget this program I want to kill this process and then so I press the control C we will see what are the commands in the later stage but they you press the control C and then now suddenly that becomes an interrupt and it understands that interrupt and basically kill that process and say like if you want a process to communicate to another one essentially like I mean you have started a process now for reading the memory or writing into the memory and then you want your answers to go into that process and it basically understands which processes need to communicate between each other and then it correspondingly does that and when you are doing all these things suddenly like the memory management process comes along and says that you know what frees all the programs that you are running now I want to see like I mean how how the various pictures are there I want to compress some of the pictures and then I will free up so that process gets a higher priority and that is also set by the kernel we can think of the kernel as the main thing that drives all the things and making sure that everything works properly so now let us look at the shell what does that provide the shell program is the it is the topmost program or topmost interface between the user and the the kernel and it usually contains a command interpreter and it also has its own programming capability so what this means is a shell is something that you see in the terminal when it comes to a prompt the prompt is represented as a dollar or rather than sign then it comes to that it actually means that that the command interpreter is active now whatever you type in is interpreted as a command and once you press enter that command gets executed the command gets executed in the background the shell understands that command takes that command it executes the command and then it spits out the result and then again it goes back to that prompt and sits and waits for your command the next command so you can think of shell as your own personal slave is ready to do whatever it takes to satisfy the master so you tell him one command he just goes and runs the command gives you the output whether it is an error or real output produces the output and then he sits back and waits for your next column so he is really a like a dumb waiter think of it think of the shell that and shells are of multiple types one particular shell is called the bond shell it is denoted as this SH and it was a shell made by Stephen Bond so he just called his own name that is for SH and then the other one is the C shell it is denoted as CSA there is a type of here just note down that it is actually CSH there is a modified C shell also called TC shell and then there is something called con shell which is denoted as KSH and then there is a then the another shell called one again shell which is also denoted as batch of the SH the Linus Torval's first invented Linux operating system he actually coded the bash on top of the Linux so the first shell that was coded on Linux of the bash or the bond again shell so now that we looked at the second part of the operating system on the shell now we move on to the next one which is the file system so once you understand the the kernel the shell and the file system then we can move on into the various commands so let's look at this file system one concept key concept of Linux is that Linux treats everything whether it is a hardware resource or an IO device whatever it is it treats them as files so for example if you are using a keyboard to enter the keyboard itself is a file so you can say like read keyboard which means that it opens a file called keyboard and it tries to read whatever you type in so now my question is how do you actually write it into a terminal the terminal device is also a file so if you write from your program into a file or terminal that gets displayed into the terminal now the hardware resources are also like various files so they get executed you'll see in the later sections as to how they are denoted usually they are flashed there or devices and one other key aspect of it is there is a fixed hierarchy for the file system and that's how the operating system finds there everything is presiding for example if you want to put a device you will typically put it into a slash there or if you have other files you will be putting there putting it into another location again the top level of the directory or the top level directory is known as the root and that is denoted as just the slash so when I say flash there that means that it is a hierarchy under that slash which contains some devices and then there are several other things you will see like slash etc slash bin various things which denotes specific functions and you will talk about that in the latest page so now that we understood the three main things you can start looking into some of the commands and how to navigate through the Linux operating system so in order to get started we need a couple of things so when you when you start a device with Linux operating system typically you go to the computer you turn it on now what happens you see like bunch of stuff going on your monitor scrolling through the monitor which which is basically me initializes several devices files your this etc and etc once they are all initiated initialize then the system boots up and also it boots up the X windows and then finally it comes up with a screen which contains the task view for logging so the login information typically is unique to provide the username on the password and the username is typically set by the system administrator it is a user specific it's your own personal unique name and in Linux every keyword every username everything is case sensitive so an uppercase on and maybe different from a lower case on it so two people can have different user names it's just the case differences and your password is also case sensitive and password you can change at any time and though you cannot change your username you need to go through the system administrator we will see like how we can change the password in the data section but password can be changed by the user at any time so now that you have logged in into the system with the username and password now what happens so now the system actually comes up with the number of windows maybe one window or several other windows they are called the terms or X terms which are which stands for this external on the on top of the way and inside each of the terminal it also it starts the shell that we talked about and this could be one of the many shelves that that are supported that I talked about and when you know that a shell is active because the shell comes up with a prompt and as I mentioned the prompt can be just a dollar sign a percentage sign or even just a and a greater than symbol once you have the prompt now you can ask it to perform the task that you want to get out of it so they are what are called commands so these commands tell the operating system to perform a set of operations so these operations we will see what kind of operation can you ask the operating system to perform the typical syntax of the command is as follows the command followed by options followed by arguments again command options and finally arguments so how do we use these this commands let us first talk about some basic commands and then we will go more into how the more advanced commands and how we can string these commands together to perform various operations let us look at some of the basic command so these are all just shortcuts or control keys essentially so how do how can we use the control key to perform various functions so if you look in your keyboard the control key is probably at the bottom most key and on your left hand side it just says CTL so we use that for doing certain operations so in Linux control S means it will pause the display so once the display is paused actually even if you type anything nothing will show up on the terminal the control key on the other hand will restart the display so that once you pass and you can restart using the simple queue the other misty control sequences or control C that cancels an operation so you type in a long command suddenly you find that actually more I don't want to execute this command let me cancel this one you can do a control C on it or say like you started a command using like the command interpreter and it is just going and it is running and you don't know like I mean after one hour come back and see that actually it's still running and you want to just cancel that command because we know that it won't take more than an hour so again you do the control C and immediately it about that command and then comes back to the prompt so for canceling an operation you can do the control C control you cancels a line again the same thing once you start typing a line and then you just wanted to about midway and then because you may have done a typo then you basically do a control you and control D is the to signal the end of pipe and control V is to treat any following characters as a normal character for example if you type control V and then control C it doesn't take the control C just things that you just type SSC and then it just types C other misty control keys are control A to go to the beginning of the line so for example you are typing a long command and suddenly you think that oh man I made a mistake in the command name and I want to change the command name so you can go to you can just press control A and then you will be the cursor will go to the first character of that command and then from there you can either retap it or you can use arrow keys to move left and right and then the other misty one is also control E which takes you to the end of the line which is also pretty useful when you want to come back after typing this particular or making a change in the beginning of the command now you want to go back to the end of the command and then start continue to type the remainder of the command again control E is a very good way to do that so now that we understood understand understood the the control key operations let's look at how we can get help in Linux so in Linux you can get help in many ways one of the ways that you can get a get help on a particular command is to use what is called man the man is the short form for manual so it is like opening up a manual and then looking at what a particular command bus so the way to use this option is man with some options or options are just optional and then followed by the command so the man options are this dash M stands for the keyword path to the man pages or dash K the keyword list command for all the keyword matches so you can say man dash K and then you can say anything that you want maybe you want to just say DIR and then it prints out all the keyword matches for a particular man to match so again you if you look at this one this also the man also follows the same syntax what we talked about there is a command followed by options followed by arguments so here the command that you are interested in to get the man pages becomes the argument for the man command itself so again in Unix this is one of the key features basically we have the commands as arguments or various other commons now another way to get help is to just type the command itself and then use a dash help here the dash help is the option there are no arguments and then the command is just your regular and here we can use like dash help and dash dash help to change the way so now let us look at an example of how the man is used so here I will briefly talk about these pieces first of all the X term you see here is the terminal that popped up after opening the Linux this is after you log in and then finally came to the this particular point particular terminal and in the terminal you have all these various buttons this is for minimizing maximum and then actually removing this X term itself there is also you can go to the border and actually get on it and drag and make the windows bigger or smaller for you to work it now let us look at here here it says the root is the name of the user here and then this ACP or 6P is the name of the machine that this person logged in so here essentially like this root does not mean the file system root but it is the person who is logging in so this person's login name is root which is essentially a super user and then the machine itself is this KACP or 60 and this is the directory typically this is the Linux is the directory and then the dollar sign denotes the shell here this is most likely the VSH or the bash shell now this person is now we have given this command so it is a man and then dash M so do you think this will work I can see that actually it did not work because man has a command as an option but does not have an argument so it says this option requires an argument which is the dash M and then this is the version of the man that is getting installed actually remove some of these annotations for that and now it also provides you with a usage how to use the man itself so here it says man usage all these are your options and then including this and then there is a compulsory thing which is the name which is essentially the name of the command and then it goes on to actually explain to explain you as to what each of these options mean for example a is find all the matching entries all the some of them to the upper PSM that we saw the path the search set the search path for the manual pages the path so if you give it dash M with the path it uses that path to go and search for the man pages and then we also saw like the dash K which is here it says basically like the same as the A command so you know basically how the other options some of the interesting ones like the print location of the man pages dash W in fact I typically use the man command with probably like even without any arguments and just a man and then the command that works most of the cases unless you want to change some of these so this is one of the key things so now you know how to get help within the system within for every command so this is what we will see in the next slide so again it is here it is described in more details the dash a list all files and directories even the hidden ones that are preceded by dot so one key thing about Linux is some of these files you won't be able to see it when you do a test a display command unless you provide this dash a option a stands for all and then dash L is the size creation date and the permissions the L actually stands for long so it provides a long option essentially like I mean it gives you more details about various things then the dash D actually lists the directory and dash C is it will not create a file if it is already present we will see in a cow to use this dash S is typically means that the force and dash K is the block size dash R is another key option this could be an uppercase R or a lower case of this stand for the reverse way and see let's see like how we can use because it is useful for copying removing things like that to use this recursive nature dash D is the type and then finally dash B typically prints out the version so if you want to know which version of a particular command is being used you can just simply say the command dash B and then it should produce that version for example in the previous slide we saw that the Linux actually even by default it printed out the version as 5 1.5 0 1 so now we will go into various command and I will start with LS LS stands for list and this is mainly used to list the files in the current directory so there is a concept of a directory we saw the file structure with the root directory as the flash and then there you can also have bunch of directories under that so every directory contains number of files and to list the number of files we use this command called LS in fact there is an analog analogous command even in the Windows world where you can display the number of the name of all the files inside and electric and LS also has the many options again as I mentioned the dash L that is one of them which is for the long list this way is not more information dash T is a list by modification date which is very useful because it starts by the modification date and you can actually the dash T option gives the files from the latest to the oldest modified we can do a R to reverse that order so again you can combine like this some of these I mean actually all these options together they are not you can you do not need to use them exclusively and uppercase S list by style H is list file sizes human readable form of and then I told you the R reverses the order a looks for all the hidden files in the file names that start with dot are hidden so if you just simply give an LS command before show up unless you put an LS dash a and then uppercase S list file of a particular directory so one of the useful thing is here you can see that as I mentioned the options can be combined and someone tell me what this command will return LS-LTR I think you are correct this returns the long form of the files long name it starts first by the modification date from the the latest to the to the oldest but then because you see an R it reverses the order so actually it displays the files from the oldest to the latest the latest files displayed at the very end of the list I think like it should be clear I also urge you to actually type man dash LS or man LS to get the manual entry for the LS command itself it should it should print you like all these options and then it also tells you whether you need an argument or mark again I want to ask you that question too does LS need an argument I think again you are correct it does not need an argument because it just lists the files in this direction and double L is again a short form which stands for probably the LS-L so then these are what are known as aliases we will also look at some of these things and how to set up the aliases in the coming section but this will be a good introduction for LS command and I want you to actually try it out and just play with these commands as we go along and then see how they work and what you learn from them so now let us look at actually using the LS command in a particular direction so here again I do not have to remind you it is an X term and in this terminal all these other things that I mentioned with the prompt and then now you type the LS so look at how it produces the files this is just mentioned the LS right so it produces all these things now tell me how these are presented to you they have just simply sorted on alphabetical order and then just presented to you in an alphabetical order form so you can see that one and if you have to read it in various columns this is column 1 column 2 3 4 5 and 6 you can get the same thing with another also known as LS-X that will also print in this format so now we will talk about one more command so let us go to that it is the CD CD stands for change directory so anyone guess how to use this command so CD is used to move between various directories so if you want to move from one directory to another you use this command called CD so the commands that are most popular in Linux are CDD does it need an argument I mentioned that it probably does not have an argument that is correct in most cases there you do not need to provide an argument but you can also provide an argument which is you can type in LS and then space and then you can say like I mean a particular file name then if that file name is found in that particular directory it just returns that file name it is not found then it will tell you that this file not found now there is a concept called a wild card which we will learn in subsequent sections the wild card is typically a character that kind of represents another variable or another name itself so for example you can say star or the asterisk symbol which denotes any character or a question mark will denote any character but only of one character length whereas a star can denote character of any length or character stream of any length so how can you use it you can say like LS star dot PL then it will only give you the files that have PL in as their last two characters or PL as the suffix because you put like star dot PL you put up star PL then it will also return to you anything that has PL as the last two characters in the file which is slightly a bigger set than the star dot PL if it is available and if you say like star TXT then it only gives you the TXT files which are in this case this is copied file ex1 txt ex2 txt f1 txt and maybe out dot txt so it is useful in LS command to actually filter for some files and the others so this is again very useful command and now let us look at the CD command so the CD command essentially moves between the directories we will briefly touch upon this so CD a directory name moves to a directory called the directory name so the CD is the command name there are no options and the argument is the directory name so it moves from wherever it is to this particular directory so you do not need to provide where you are moving from essentially because it knows that okay that is where you want any so what does it mean by actually moving from moving to a different book this means that any command that gets executed subsequently will start as from that directory as a reference so for example say you have a directory called slash a and you actually went to that directory initially and then we are doing commands like LS then it produces the list of files within that directory called a but now when you do the CD to slash P and then put an LS command now anytime the new command only like looks at that particular directory as it is a so now it produces the list of files in directory now there are characters which have special meaning for example the tilde the tilde tilde this denotes your home directory so every user has a home directory where he has he or she has many other files and we will talk about how to create the home directory and what is inside the home directory in a subsequent slide so CD tilde moves the cursor to that particular home directory that your home directory and so now whenever you execute any subsequent command it always uses your home directory another one is this dot dot the two dots denote go to the higher level directory in that particular hierarchy so if you have a slash a slash P and from that if you are issuing CD dot dot it goes to slash a and then same way like I mean the slash indicates the hierarchy separator for the various directories so if you are doing CD dot dot slash dot dot then it moves to level up the hierarchy here be we actually like the terms are slightly confusing the hierarchy down it is actually like I mean the CD dot dot moves it a level up essentially so the way to think about it is like you have the slash as a root directory and then say a and then P and then say a has a C and move and you are here the dot dot dot dot will move you up to a and then the another dot dot will move you up to the slash so if you want to go from C to B there are two ways of doing it one is CD slash B that will directly take it to the B or you can say CD dot dot slash dot dot slash B that is another way to do and CD minus actually typically moves using the wherever you are you come it goes back to that place for example if you say from C CD dot dot slash dot slash B so that now you are here and then just say CD minus from B it takes immediately to see so that is from the previous directory so I think this should suffice for today's lecture let us continue from this point the next time thank you very much.