I’ve installed a virtual machine on my (windows) computer and installed Ubuntu…now what? I’ve also installed npm (why ? because I just remembered npm install and thought it would be nice to type that in the terminal/shell/console whatever. )
Does anyone have any advice, tips, indications? Normally this VM should be for programming only - so does that mean I’ll be pushing and fetching and surging and all that from my VM?
I wrote a pair of small guides for a small team. They’re markdown files and were written with BitBucket in mind; you can basically replace any instance of BitBucket with GitHub. I just moved them over to Github. They may be slightly out of date.
Take things slow. I would suggest that as you get things to work in Windows, try to get the same thing in Ubuntu. Start easy - think about what things you do the most on Windows now and try to do them in Ubuntu. This could be as simple as checking your email or downloading a file. This is going to be trivial at first, but as your needs get more complicated so will the tasks. You’ll need to ask questions here and on the Ubuntu Forums, and find tutorials. You’ll find that some things are easier to do in Windows, and other things much harder. Eventually, you’ll know your way around the file system pretty well, and be able to manipulate files with the command line. I think that this is the most natural and effective way to get comfortable with Linux.
It’s not the first time I’ve used Ubuntu but definitely a first when it comes to doing something else than writing documents… I’m about to start back-end and would like to start “correctly” if I may say so.
But I’m curious, linux and all is a big deal for developers etc, why would you advise me to stay with Windows now? By the way - you’re one of the people who said: “get a VM, download Ubuntu, run your own server”
I would never advise such a thing. Jump ship as soon as you can!
I recommended a virtual machine because the cost of screwing up is negligible. You could wipe your hard drive and just run Ubuntu, but if you screw something up badly enough that you need to reinstall, you’re out of a working computer for that time. Plus, getting people comfortable with Linux is a lot like getting them to exercise or eat healthy - start slow, keep the expectations low, and integrate the new with the life they already have. Dramatic changes are usually a shortcut to failure. I’ve seen it a hundred times before, so my suggestions tend to be conservative.
The goal underlying my suggestion is for you to feel like you can get things done on Ubuntu rather than diving into a bunch of arcane commands. If you think you’re ready for the DevOps stuff, then by all means spin up an Apache or NginX server and start routing requests! Get a firewall going, create an SSL cert, or install Wordpress. By “Take things slow…”, I was thinking you’d spend a day or two just playing with all that Ubuntu has to offer and then you’d naturally progress to the more complicated stuff soon after. I’m not in charge, though. You can do what you want!
Ok, so if you’re gearing up for the backend stuff and you want to start on the right foot, @belcurv’s guide will get you going with SSH. A common task with remote servers is accessing them via the command line using SSH, then editing files. You can do the same with a VM, just minimize your VM window and connect from your Windows host. Once you can do that, get comfortable with the command line text editors vim and nano. Navigate directories and learn how permissions work in the Linux file system. scp and rscync are hugely useful tools. I would say these skills make up 90% of the DevOps stuff that I have to do for my personal servers, and I consider them the foundation of everything else I could ever do.
I’m definitely not the final word here. Just my suggestions.