Staying true to your PC-self in a Mac-forward Coding Bootcamp
For the majority of my childhood, my father worked as a Network Server Administrator for a nearby university. Years before that, he imported the first Apple computers to the state of New Hampshire for his computer store. In the 1970s, he coded in a variety of languages: 6502 Assembly →Z80 Assembly →BASIC →ForTran →Pascal →Turbo Pascal →Modular.
Our house was always a PC house. We all trusted my father when he said PCs were the way to go — and in my experience, I have always favored the PC experience. My whole family has Dells and HPs and Android phones — we are full on “I’M A PC.” (Yes, we did have iPods but that was just a fluke…)
But this isn’t about deciding which operating system is better *cough*windows*cough* — this is about learning how to connect your Linux operating system to your Windows operating system to be able to successfully participate in a coding bootcamp, like Flatiron School.
I read in Flatiron paperwork that a Mac was required, but I really didn’t think it a good idea to learn software engineering AND how to use a Mac. I also spoke to friends who had successfully done bootcamps on a PC, so I figured I could figure it out.
And generally, it has been totally fine! I followed all the PC setup directions to create my Linux system and got to work!
And then came the first code challenge, my nemesis.
For the code challenge, one needed to download a zip file and then open it up in Ubuntu… and this is where I hit a wall — or more specifically, the wall.
I had been operating with two parallel systems (Windows and Linux) which I could not figure out how to connect. There was a virtual wall between the systems. This is by design, as explained by THIS article:
Microsoft strongly warns against adding or modifying Linux files with Windows software. This could cause metadata problems or file corruption, and may force you to uninstall and reinstall your Linux distribution to fix it. However, you can still view and back up your Linux files using Windows software, and that won’t cause any problems.
When faced with downloading a file to my Windows operating system, I could not access the file with Ubuntu.
I did some (admittedly) light Googling on the subject and tried to get some assistance from classmates (S/O to Zeus!), but couldn’t seem to get either operating system to see the other.
So then, after flailing about for two code challenges, and causing extra work for my instructor (S/O to and sorry, Greg!), I finally did some serious Googling and here are my results:
To view Ubuntu/Linux files in Windows File Explorer:
(There are several methods — here are a couple)
In the navigation bar of Windows File Explorer (where it says Quick Access), type: \\wsl$\Ubuntu-18.04
This works only the first time to create a connection to Ubuntu — and you’re going to want to check which version of Ubuntu you are currently using (18.04 or otherwise).
Every subsequent time, one merely needs to type: \\wsl$ to get access to the Ubuntu files.
I then use the search bar within Ubuntu to access the files I am looking for.
You can also drag Ubuntu over to your Quick Access links for easier access later. Very handy.
2. explorer.exe .
Another easy way to go about this is, in your Ubuntu command line, type: explorer.exe .
This pops open a Windows File Explorer window of the Ubuntu folder you were currently in.
To view Windows files in Ubuntu:
In your command line, type: cd /mnt/c
(This assumes you are trying to access the c drive — if your windows files are on (D:) drive, use mnt/d.)
This moves you into the Windows (C:) drive, where you can access your files!
With these tools, you can now move files between the two operating systems with (relative) ease!
So here is yet another blog post about the Windows/Linux relationship. I will always be a PC and I am glad to finally be able to live harmoniously in this world.
I dream of a world with PC users and Mac users (no matter how inaccessible and persnickety the macOS operating system is) can live together in harmony and files can be easily accessed when they need to be.