- This is one of multiple videos
in my WSL version two series.
In this video, I'm gonna show you some tips and tricks.
I'm gonna show you, as an example,
how to use the Microsoft Windows Terminal.
You can open up multiple shells
to various Linux operating systems running
within WSL version two.
I'll also show you some additional tips and tricks
in this video.
So as an example,
how to open Linux files from within Windows,
or how to access Windows files from within Linux.
Use the menu below this video
if you want to jump to a specific topic.
So if you're not interested in the Windows Terminal,
but you just want to see
how to open Linux files within Windows,
then use the menu to jump to that topic.
Okay, so let's get started.
(upbeat dance music)
♪ Yeah, let's go ♪
(upbeat dance music continues)
- Microsoft have released a Windows Terminal
that makes it a lot easier to work with multiple consoles.
So I'm gonna go to the Microsoft store,
and I'm gonna search for the Windows Terminal.
And here it is, so I'm gonna click on that,
and I'm gonna click get, and then I'm gonna click install,
to install the Windows Terminal on my computer.
It's not a very big installation.
You can see it's about six meg.
So quite a small installation.
And I'm gonna click launch to launch the Windows Terminal.
What I've got here is a Windows PowerShell.
So if I type wsl-l-v, as an example,
I can see that I've got
an Ubuntu 20.04 virtual machine running.
I can see that the Docker Desktop is running.
I can see that 18.04 is stopped, as an example,
and Ubuntu has stopped.
But notice here, I can click on this little down arrow,
and I can open a command prompt.
This is the classic command prompt
that's been around for many, many years.
So as an example,
IP config shows me the IP address of my computer.
So I've got PowerShell running here,
I've got a command prompt running here,
but what I can now do
is start an Ubuntu 20.04 prompt.
So, lsb_release -a
shows me that I've got Ubuntu 20.04 in this tab.
Drop this down, let's start an 18.04 tab.
So, lsb_release -a.
I've got PowerShell. I've got a command prompt.
I've got an Ubuntu virtual machine,
in this case, 20.04, running, and I've got 18.04 running.
And what I could do now, as an example,
is go into my Docker WSL Integration,
and I could enable Docker on various virtual machines,
including the 18.04 virtual machine.
Click apply and restart, to apply those changes.
Go back into my Windows Terminal.
In my 18.04 virtual machine,
I could type, docker run hello-world.
I'm told, "Hello from Docker!"
Everything seems to be working right.
What I can do now is use this command
to run an Ubuntu shell.
So, lsb_release -a.
And that command doesn't work.
So let's install this app update to update my references.
What I'm doing now is running,
hopefully, a 20.04 Ubuntu
within 18.04.
So I'll install that software quickly.
Clear the screen. So, lsb_release -a.
Notice I'm running Ubuntu 20.04 within Docker.
When I type exit, and use that command again,
notice I'm running Ubuntu 18.04.
So in this example, I'm running Ubuntu 20.04
in a Docker container, within an 18.04 virtual machine,
which is running within Windows.
This is fantastic.
I can even open an Azure Cloud Shell here,
and log into Azure,
log into my various virtual machines
running within WSL version two, open up a command prompt,
open up PowerShell, et cetera.
This is a fantastic development from Microsoft.
You can run a whole bunch of terminals,
but you can also change the settings.
So, if you click on the little down arrow
and go to settings, you can change the fonts,
you can change a whole bunch of options
within Windows Terminal.
If you're interested,
I'll create a separate video on Windows Terminal.
Let me know if you're interested in me doing that.
I'll show you how to change a lot of the schema settings
and a lot of the options here.
But notice you can have different profiles.
One for Windows PowerShell, as an example,
one for cmd, or the command prompt.
One for the different virtual machines that we're running
within WSL version two, et cetera.
So Windows Terminal is fantastic, great application.
But what I want to show you now are some tips and tricks
with regards to WSL version two.
So this is not a Windows Terminal option.
This is just part of WSL version two.
So one of the options, and let me go back to home,
in this 20.04 LTS virtual machine,
is I can access files in Windows
from within Linux.
So at the moment, pwd once again shows me
that I'm in my home directory,
but if I go cd root, notice I'm in the root directory.
If I go to mnt, ls,
I can see the C drive.
This is the C drive on my Windows computer.
So as an example, if I go to C drive,
there are the files on my C drive in Windows.
So, back in my Ubuntu shell,
I'll go, cd c, and type ls,
and what you'll notice is I have these files listed.
Those are the files on my C drive.
I'll use sudo here so that I can use root privileges.
So, sudo ls. Put my password in.
Now, after I've put in my password,
notice I can see all the directories on my C drive.
So those are the directories on my C drive.
And I could also do something like, find grep,
and let's just grep for temp as an example.
And notice I'm able to use Linux commands on Windows.
So I'll just stop that for a second.
I'm getting permission denied, 'cause I need to use sudo.
And let's simply search for devlist.txt.
So, devlist.txt, to make it simpler.
And, as you can see, it's trying to find the files,
but it has found the one file here.
So scrolling up, notice it did find devlist.txt
in the root directory.
Now in the same way that you can use Linux
to look at the C drive,
or other drives on a Windows computer,
you can use Explorer to explore the Linux directory.
So I'll type explorer .,
and I need to type exe .
to run the Windows application.
And what it's done now is opened up Windows Explorer,
and I'm looking at the WSL hard drive
for Ubuntu 20.04.
And what I can see here
are the files on my Linux virtual machine.
So, ls, as an example, shows me those two files,
xe.py and xe2.py.
And I can see something similar here in Explorer.
And what I could do, as an example, is open these files
in Visual Studio Code, as an example.
So I've opened xe.py in Visual Studio Code.
What I'll do is cat that file here,
so that you can see what's in the file.
Notice there are two print statements at the end.
So what I'll do is delete the extra print statement,
and go file, save, to save the file.
And back in Linux, if I read that file,
notice the second print statement has been removed.
I could say something here like, print hello
from Windows,
and go file, save, to save the file.
And if I cat that again, in Linux,
notice, there's the changed file.
So, basically, Explorer
allows me to explore files
on the Linux subsystem using a familiar Windows application.
What you can also do is use VS Code to open files directly.
So I can say, code.exe xe.py,
to open that file.
In this case, it's actually just code.
So, code, and I'm gonna open xe.py.
And what that does is start VS Code in Windows,
and it opens that file directly from within Windows.
So I'm opening a file on the Linux subsystem
from within Windows.
And I did that directly,
or you could just use Explorer to do that.
So you might prefer using Explorer
to view the Linux virtual machine hard drive.
So as you can see, there's very tight integration
between Linux and Windows,
using the Windows subsystem for Linux, so WSL version two.
Fantastic options available now,
if you use Windows as your primary operating system,
to develop on Linux, use Linux commands,
learn Linux, et cetera.
The Windows Terminal is also a fantastic application.
I'm really glad to see how Microsoft have changed their ways
and are using a lot of Linux technologies
as part of Windows.
Okay, so, very long video,
but hopefully you've learned something.
I'm David Bombal, and I want to wish you all the very best.
(upbeat dance music)
♪ Yeah, let's go ♪
(upbeat dance music continues)