Help me get some basic Linux experience using my Win 7 laptop.
October 6, 2013 7:56 PM   Subscribe

What's the best way to get some basic hands-on Linux experience as it applies to corporate environments using my Windows 7 laptop? I know there are some variants of Linux that can be booted from a CD, but I don't have an optical drive. I do have an external USB hard drive with lots of space available. What are my options?

If it helps, my laptop currently has a single NTFS Win 7 partition. I'm open to repartitioning it and doing a multi-boot setup if I can keep my Win 7 install/data.
posted by iamisaid to Computers & Internet (15 answers total) 4 users marked this as a favorite
 
Install Virtualbox. Create a linux VM and work with it in there. EZPZ.
posted by fatbird at 8:08 PM on October 6, 2013 [7 favorites]


Many of the modern, popular distros provide utilities that will allow you to create a bootable USB stick that will load a "live" running OS off a USB stick, which will not do anything at all to the operating system currently installed on your machine's disk.

Examples:

http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows

http://www.ubuntu.com/download/desktop/try-ubuntu-before-you-install

And, like fatbird said: use virtualbox. Esp if you want to have something a bit more persistent. Download the standard ISO file (for CD or DVD) to somewhere on your Windows hard disk, then you can use Virtualbox to "mount" that file as if it's an attached optical drive; then that can be booted and used to install a full running Linux machine as a guest operating system. Again, without messing one bit with Windows.

Have fun!
posted by armoir from antproof case at 8:19 PM on October 6, 2013


External USB CD/DVD/BD drives aren't that expensive.
posted by Chocolate Pickle at 8:21 PM on October 6, 2013


My Linux experience is a little dated, but I'd suggest backing the laptop up onto the external hard disk and then setting up the machine to be dual-boot. Maybe repartition the external hard disk to make it tidy later backing up your linux stuff on it.

I know there are some variants of Linux that can be booted from a CD, but I don't have an optical drive.

Many of the linux live CD formulations can also boot off a USB memory stick. And then install from it. I like this approach because you know from the live boot that stuff like sound, wireless, etc. is working before doing the install.

I think it may still be fussy booting off an external USB hard disk as opposed to memory stick. Dunno.

Do a basic sanity check of googling "my_laptop_version linux" and "my_laptop_version ubuntu" before doing the install.

Aside from that, you may want to try both gnome and KDE to see if you favor one or the other.

Other folk will chime in with distributions to look at.

I haven't ever mucked around with VMs, but fatbird is right that you'll want to as a geek/technologist. I'm guessing you can do a vanilla install onto a second partition, boot into windows, and then boot up the linux install in the VM. Or just have your linux instance just live in a folder on your windows machine.

What's the best way to get some basic hands-on Linux experience as it applies to corporate environments using my Windows 7 laptop?

Once you've got linux working on one machine, you may want to put together a second machine to get some experience backing up one machine onto another, logging in from one machine into another, command line experience, running torrents, etc. That second machine can be purpose-built or almost any computer sold in the last decade, if you have an old abandoned laptop or desktop sitting around.

Your local Linux User Group may be of great help with all this stuff.
posted by sebastienbailard at 8:23 PM on October 6, 2013


What fatbird said. use VirtualBox and install VMs with various Linux flavors. No futzing with USB or discs, no partitioning of your notebook's hard drive. The VMs just are files on your hard drive. I've done hits with VirtualBox on my Mac for things like Linux and Chrome OS and of course, Windows. You can using Linux in a window and still have your Windows apps like Outlook running at the same time. Linux will be running in a window just like a windows app.
posted by birdherder at 8:40 PM on October 6, 2013


basic hands-on Linux experience as it applies to corporate environments

I have been using Linux to get work done on and off for the past 18 years or so, but I'm not sure what you want to learn. Most corporate Linux use that i am aware of is servers, and all good-hearted servers run headless, so whatever you do should probably focus on gaining familiartiy with the command line environment.

I'd suggest Virtualbox to run things on top of Windows 7. As for which Linux distribution, I've avoided Redhat, but hey seem to have a better foothold in the corporate world than my preference of Debian and its derivatives (like Ubuntu). That said, most distros are going to be more alike than they are different. Most of the software and utilities are going to be the same, but the way you install them is going to differ. No reason you can't try a few, but start with one.

I'd suggest the Ubuntu Alternative CD image to do a minimal text-mode installation and then go from there. Youd don't need a physical CD Virtualbox will let you mount an iSO as a virtual CD in the virtual machine.
posted by Good Brain at 8:52 PM on October 6, 2013


In a corporate environment you will not be repartitioning hard drives or dual-booting laptops. That is advice for the home enthusiast.

I guess your question has two parts: how to get your hands on a Unix-y OS and what skills do you need to learn.

My best answer to the first question is "whatever is easiest for you," whether it's running CentOS in a VM set up using the free version of VMWare's products or something else. If that sounds too frustrating and you only want to start learning the command line, set up Cygwin. Cygwin will take you 75% of the way there, in terms of functionality.

As far as useful basic skills to learn, I would recommend learning the following:

    - simple scripting in bash
    - the rudiments of grepping with regular expressions
    - the simple use cases of a handful of utilities like cron, netstat, and scp
    - the basics of vi or emacs and sed/awk for automating text manipulation
    - the very basics of configuring your machine using sysctl, the /proc filesystem, and so on

I like the doorstopper volume called The Unix and Linux System Administration Handbook.
posted by Nomyte at 10:24 PM on October 6, 2013 [1 favorite]


Install Oracle VirtualBox.

Grab a torrent of Xubuntu or Lubuntu and use that torrent to get a copy of an ISO file that contains the installer for Linux.

If you're running Windows 7, don't bother with Ubuntu as its hardware requirements are too severe for most older machines, and you'll click on something and wait ten seconds for the click to do something.

Xubuntu and Lubuntu are much more lightweight and they won't get in your way, in the way that Ubuntu does.

You don't need an optical drive — you can install Linux within VirtualBox straight from whichever ISO file you end up with.

Once you install Linux, you have access to a Terminal.app-style terminal emulator application that gets you a command line.

Another option is to install Cygwin, but there are some hassles involved with getting an environment set up properly. The better path to learning Linux is to install it within VirtualBox or VMware or another OS hosting tool.
posted by Blazecock Pileon at 10:56 PM on October 6, 2013


What's the best way to get some basic hands-on Linux experience as it applies to corporate environments using my Windows 7 laptop?
Seconding GoodBrain that Linux desktop doesn't exist in the corporation much. Headless servers all over the place though, and Virtualbox is sufficient for this.

As a novice, you're going to need to distinguish yourself by learning technology that nobody can be an expert in yet, in other words, new tech. The buzzword of the day is Devops, and automation. Vagrant is a pretty nice tool in the 'Devops' sphere. Especially nice if you're trying to learn puppet, chef or some other configuration management tool. The other nice thing is that it automates a bunch of common configurations for virtualboxes, as you'll quickly discover using the command line via a virtualbox terminal window sucks compared to SSH.
posted by pwnguin at 11:04 PM on October 6, 2013


I'll dispute Blazecock Pileon statement that a system originally running Windows 7 means Ubuntu won't run well, my old laptop came with Windows 7 and ran it perfectly fine up until a few days ago (when I installed Android x86 to it). So long as you have a couple of gigabytes of memory on it Ubuntu should run fine. (It's nearly always low memory that's responsible for poor system performance, and my old lappy has been upgraded to 3GB.)

But yes, you really should be playing with this in a virtual machine, either VirtualBox or VMware or whatever. If you really mess something up, just delete the virtual machine. Or better, install it and make a backup copy of the VM -- if you screw something up badly, just copy the backup over the messed up hard disk file.
posted by JHarris at 7:50 AM on October 7, 2013 [1 favorite]


Nothing wrong with running a LiveCD / LiveUSB image or a VM inside VirtualBox, but if you are looking at Linux as it is normally used in the enterprise I would instead get an old machine of some sort and install a headless (no GUI) server setup and play with that.

I'd use CentOS or Scientific Linux, both of which are pretty close to RHEL. Debian is very nice but unfortunately not widely used in corporate contexts (at least in my experience) so it's not where I'd spend my time starting out.

The advantage versus a pre-rolled VM is that you'll get some experience working with stuff like LVM, which is useful if you're going to administer a real system. Unless you are only ever going to administer virtual machines running on shared infrastructure, or work at a higher level in the stack exclusively.

If you have a closet full of old hardware (and who doesn't) you can actually put together a fake "corporate" LAN, if you have a week or so to spend messing around with it. Set up one box with a whole mess of old hard drives as a RAIDed SAN server, then another machine as a webserver with its drives on the SAN box, maybe another box as a firewall/router so you can play with rules and routing, a VMWare host and some Windows clients, etc.: feel free to extend to as many departments or technologies as you want to play with.

One thing I'd recommend you play with is some actual non-open-source Enterprise-y software. Lots of people who know Linux from academic contexts get in trouble when they get into a corporate environment and need to install 'BigCorp Enterprise Database Middleware Layer Web 2.0 OnDemand Cloud Platform' or some other crap, because "installing software" has always meant typing sudo yum install packagename and that is generally not the case with shitty corporate stuff (would it were the case!). For bonus points, do the install without any Internet connectivity on the Linux machine.

Most of the big vendors have demo versions available of their big software packages, and it's ... educational, if not precisely pleasant ... to experiment with installing them.
posted by Kadin2048 at 8:00 AM on October 7, 2013 [1 favorite]


Seconding Nomyte: try Cygwin.
posted by PickeringPete at 8:20 AM on October 7, 2013


Strongly disagree about Cygwin. Cygwin is a useful tool when you know why Cygwin is a useful tool. As a way to learn Linux (and the standard gnu userland) when you know very little about Linux, it isn't much use because of the oddness of fitting a unixy environment into a Windows environment. Cygwin makes vastly more sense once you have some familiarity with Linux.

As for Vagrant and devops: Walk before you can run. It is worth installing Virtualbox and doing a few linux installs inside a few virtual machines before turning to tools that automate such tasks. And honestly, it seems like 75% of devops is reinventing the wheel.
posted by Good Brain at 8:57 AM on October 7, 2013


The Oracle VirtualBox also has an Oracle Linux VM you can use. It is very close to Redhat.
posted by vacapinta at 10:12 AM on October 7, 2013


Well, I'm a professional Linux Architect with over a decade's linux admin experience, let me offer some insight into learning with an eye towards the enterprise:

The recommendations for virtualbox are spot-on. You should be installing either Oracle Linux (as vacapinta recommends) or CentOS, since enterprise linux deployments are synonymous with Red Hat, and both of those are compiled from the Red Hat sources.

You should also take advantage of Amazon's free EC2 instance and familiarize yourself with the concepts thereof. Plus, with an EC2 instance and a VM on your desktop, you've now got a geographically disparate network of machines to configure / tweak/ utilize / understand.

Learn the command line. As others mentioned, being an admin is all about servers, and servers don't have GUIs.

Get good (really good) at plumbing. Understanding how the various tools can be piped together is both necessary and powerful, and will help make you an extremely effective admin.

Get good (really good) at a text editor - and this should probably be vi/vim. I'm not trying to slight my emacs brethren, but vi will always be available (it's part of the POSIX standard, after all), where emacs will not. Whichever you choose, being an admin is frequently about slicing and dicing text, and the better you are at that, the more effective an admin you will be.

Learn your package manager, and keep it holy. In the case of Red Hat/CentOS/Oracle Linux this is rpm/yum. Understand in depth everything it can tell you about your system, and learn why you should have a strong preference for software installed from package instead of from source (hint: repeatability and consistency, the watchwords of the enterprise admin.) Learn how to rebuild a binary package from its source package. Learn how to create a new package from scratch and make it available for automatic installation.

Learn shell scripting, with an eye towards automation and repeatability. Then learn why using shell scripts for deployment is sub-optimal.

Learn a revision control system - preferably several. As an admin, you'll be looking for centralized control, so you're probably looking for subversion. Learn enough git to git yourself into trouble. Then learn mercurial, because it will make more sense to you since you'll probably have to also interact with subversion frequently. Keep your configs and shell scripts here.

Learn a configuration management system, like puppet, or chef, or ansible. Once you do, move all your deployment stuff to it, and put it all in revision control.

Understand the benefits of virtualization, and learn to recognize when virtualization is not an option.

Now, learn how to do all of the above at 2am, when services are down, your employer is hemmoraging money as a result, and the CIO is on the same conference call you are, screaming for somone's head if this isn't fixed so fast it never happened in the first place.

Then, once you've done most of the above, get a Red Hat certification - the best career move I ever made was in getting my Red Hat Certified Engineer. Look to the various exam preps for the RHCE for even more tips on things to learn.

Any other questions about what it's like to work as a Linux admin, feel free to hit me up via memail.
posted by namewithoutwords at 11:00 AM on October 7, 2013 [1 favorite]


« Older Was I sexually violated?   |   Halloween-costume making tips for the non-crafty Newer »
This thread is closed to new comments.