5 key insights on the transition from Windows to Linux

No readers like this yet.


When I began my current job at Algoma University as the systems librarian, I really had no idea what I was getting into. Despite a decade in library information technology (IT), I felt nervous over my primary task: to help develop and administer Evergreen, an open source library catalogue system. The problem? My experience was almost totally in the world of Windows.

Initially, I was cautiously optimistic. I had a proven track record of picking up new skills in a hurry, but after about the first three weeks, I realized I was in trouble. How would I make the transition from Windows to Linux system administration? More importantly, how would I do it while on the job? Afterall, I was hired to get work done, not to educate myself on a new operating system. I had my evenings, but being scheduled to take over the project manager role within four months of my arrival, I doubted evenings would get me where I needed to be. In the end, the project survived my tenure as project manager and what follows is what I learned in the process.

Insights for anyone moving from Windows to Linux

Take stock of what you actually do know. I wasn’t completely useless. My Windows background gave me some skills in terms of development. Objects, functions, methods, and basic programming logic are transportable concepts even if the specifics of a language are slightly different. Networking and database management were similar. This was important, because it gave me some bargaining power with my boss. It allowed me to go after low hanging fruit, such as our library’s website—also an open source project, but again, the similarities between web technologies made it an attainable task. Impressing my boss with early results of some kind was critical.

Get your boss on your side. I knew most of my learning would have to be at work rather than just messing around in the evenings, so it would have to be part of my professional development. The argument was easy to make: the time put into learning Linux was an investment. The payoff was opening the library up to the tremendous amount of free and open source software (FOSS) available. That, combined with the work I was actually getting done, made my boss agreeable. He allowed me to take whole days (even a whole week here and there) to dive deep into Linux.

Use Linux all the time. Although there was common ground in the networking and development world, there was almost none in the system administration arena. The only way to remedy that was by using Linux all the time. This was daunting. Just trying to find my way around the Linux file system was hair-pulling frustration, yet work needed to get done. I experimented with different forms of coexistence: Linux virtual machines hosted on Windows; Windows virtual machines hosted on Linux; the Windows Ubuntu Installer (WUBI), formating old workstations. They all have their advantages and disadvantages, but in the end I decided the best setup was to format a workstation as a Linux workstation with a full GUI desktop, and to format a remote server as a typical Linux server. I found keeping a Windows workstation too tempting; it was too easy to fall back into old habits. With this setup it was possible to power up a Windows VM when necessary, but the inconvenience of working on an underpowered VM encouraged me to stick with Linux, regardless of frustrations. The setup gives you the full Linux experience: learning how to connect printers and handle things like email on the workstation side, while also administering a server via secure shell (SSH). Then it was a matter of figuring out how to get productive, especially at the command line.

Learn key commands, develop confidence. The first time I started EMACS, I had to hard reboot the workstation to get out of it. This did not build confidence. If you’re an experienced open source technologist, the commands below will seem facile, but if you’re new, and you’re looking at a Command Line Interface (CLI) prompt that seems to look straight back at you, the first move isn’t obvious. Although people are afraid of the CLI, you can actually become useful (if not efficient) fairly quickly if you know where to start. I recommend the following:

ls, cd, find

The ability to navigate the file system is elemental.


This is important for any kind of real server administration.


This is the easiest way to get your workstation up and connected to the Internet.

grep, tail, vim

These are essential commands for sifting through code and logs.

ssh, scp

Connecting to remote servers and moving files back and forth securely is very important.

Making mistakes is learning. Even when things go wrong you’re learning something. I learned a lot about Linux services the first time I updated iptables. When stumbling around to get the new settings to take, I inadvertently shut down the network adapter on the remote server. All you can do at a time like that is hope the people you work with are patient and supportive. Fortunately, I’ve found members of the open source community to be very accommodating.

User profile image.
Robin Isard | Robin started his library career working at the Washington DC public library as Head of Intranet Development. Following that, he lived many years overseas, primarily in West Africa building IT infrastructure in The Republic of the Gambia, Sierra Leone, Guinea Bissau and Guinea Conakry.


One more insight might be: <strong>Find someone you can lean on</strong>: a colleague or friend willing to share their own Linux knowledge can help fast-forward your own understanding, and it can be fun, too (especially when you hit a problem that <em>neither</em> of you can figure out at first!)

"Learn key commands, develop confidence. The first time I started EMACS, I had to hard reboot the workstation to get out of it. "

Well, I'd say a good point to make here is: pay attention to what appears on your screen.

When you start up emacs it displays a help screen that, inter alia, tells you how to quit.

"When you start up emacs it displays a help screen that, inter alia, tells you how to quit."


True, if you just run "emacs" without a target file. But if you use emacs to open up a file (which seems like a likely scenario), no, you don't get that. And if you don't happen to be running in a graphical environment, and don't know how to switch to a new VT, then you can easily feel like you're trapped. I can certainly understand how someone brand new to Linux would get frustrated and feel that rebooting was the only option.

Great advice. Especially the point about taking stock of what you actually know. No matter who you are, there will always be gaps in your knowledge. From there, you can work on filling those gaps as needed while (as you pointed out) going after that <em>low-hanging fruit</em>. You're being productive while learning, which is a great feeling.

I had the same challenge. I also made the switch to Linux (Ubuntu) on my workstation many years ago for getting all the required knowledge to manage a Linux server (also Ubuntu). This strategy worked very well for several reasons. One important reason was that Linux is basically easy to learn, it is a quite logical system (in the opposite to Windows). But all that Windows knowledge which I had acquired since working with Windows 2.0 was standing in my way. So the best method was really to give up on Windows completely. One side-effect is that working with a good Linux distro makes you more effective. That I figured out quite fast. Now, many years later I can't image to return ever to Windows on my desktop.

Hi Sir Robin.

Thanks for sharing your experience in transitioning form windows to linux environment. Your article is great! :) Your key points are awesome specially "Use Linux all the time"

Ouch, I cringed when you shut down the network adapter on the remote server. That's my big fear now that I usually know what I'm doing, have regular backups, and no longer have any physical contact with any of the servers with which I'm charged.

I grew up commodore. DRDOS took me about 6 days to master and I frankly loved/love it. I met Slackware before Windows 95 was invented.

Worst act was doing a gzip backup of the entirety of my first linux installation after being unable to find an opensource backup program. I did not realize that someone had the bright idea of making file deletion a default for a compression/archiving program, having happily, safely used pkzip, arc, lha, etc. for years.

Worst experience was that this followed hours of asking for help doing a backup in a variety of linux help IRC channels and getting responses primarily of "man ..." and "read the mans". For a linux noob a man is about as helpful as handing a calculus textbook to an illiterate first grader who asks for help with his addition homework. Fortunately the quality of community has improved over time and some people actually are helpful.

Wonderful article. Really nice to hear about supportive bosses and employees being able to learn new things on the jobs.

I highly recommend <a href="http://linuxcommand.org/tlcl.php">The Linux Command Line</a> by William Shotts to anyone looking to get started with Linux.

Well said Robin that our mistakes teaches us lot. Linux is very good platform, specially for virtual server. Your Linux learning phase is so interested.
<a href="http://www.ricohidc.com/services/virtual-private-servers.html">VPS Hosting India</a> provides by Ricoh with both Linux and Windows VPS Servers.

I do believe in making mistakes and fail freely and this has helped a lot in learning new techniques and do research on various topics and trends. Talking about linux, it is the best platform that can be used without any issues if you are good at it.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.