What is the best way for a Windows boy to start with * nix web development?

I have been a Windows / M $ boy for over 15 years and have specialized in web design for 10 years using Classic ASP and ASP.net. The problem is that all the last funky languages ​​I want to play with (Django using Python, Rails, NitroJS) are * nix based and often come out of Mac and they all use Apache and not sniff the port / IIS version .

I played a lot with Ruby on Rails since it works happily on my XP Pro dev setup, but when it comes to running it and working on a real real server using * nix, I'm really really scared. I want to fill the void and hopefully go around both camps, but I don’t know where to start.

How can I close the gap in my knowledge for getting web applications running on * nix systems? What do I need to know and where can I find out about it (books, links, etc.)?

SSH, Tunneling, chmod'ing ... all Greeks come to me :)

Edit: Thanks for all the great answers to this question, clearly amazed. Great tips. I get Ubuntu installed this weekend to play around the time really :)

+4
source share
8 answers

It sounds like you need to first understand the basics of * nix. Everything else is based on that. For example, an attempt to configure your running Apache using PHP / Python / No matter which configuration will be quite tough without this knowledge - if you can actually ssh to your server :)

With this in mind: http://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X/? ref = sr_1_1 t = UTF8 & s = books & QID = 1262712609 & cf = 8-1 . Oldie, but goldie, and should be easily accessible to any programmer from other environments. Perhaps someone can recommend an updated version of this?

+2
source

I agree with some others here that installing and actually using the * nix machine is a good place to start if you want to go into the * nix administration. Even trying to host a simple FTP server will be painful if you have never spent time with systems.

If you need to choose, I would recommend installing and using a Linux distribution rather than buying a Mac. Do not misunderstand me; I have nothing against the Mac, but I have seen LOT more Linux servers than Mac servers. And I’m sure that any client you work with will appreciate setting up a server with a free OS.

As mentioned, Ubuntu is a great distribution if you've never used Linux before. After spending some time with Ubuntu, feel free to try out other distros like Ubuntu Server Edition or Fedora . Oh, and be sure to back up your data before remaking your hard drive and installing Linux. It is important.

After conveniently using Ubuntu (or what you install), one of the first things you will need to do is to learn a few basic command line utilities. This article from Oracle is a great place to start. If you want to know a few more details, they have more articles in their series.

If you run into Linux troubleshooting problems, use the support forums . This is an invaluable resource. If you want a more formal reading (what you will do), try Essential System Administration or Linux Administering for Beginners . I think both of them will be much cheaper and more relevant than some of the other books listed here.

If you want to know how to host a web server on a * nix machine, I definitely recommend that you learn about system administration in general. Of course, you do not need to know how to configure the cron job to host the web server, but in the long run it will make your life a lot easier.


Other information

Windows Vista and Windows 7 (and XP too) have a partitioning tool that allows you to remake your hard drive. In Windows XP, the partitioning tool can be found in the Start menu> Control Panel> Administrative Tools> Computer Management> Storage> Disk Management. Make sure you are viewing the control panel in Classic View. After you open Disk Management, just right-click on your primary partition and (after backing up your data!) Change the primary partition. You now have a place to install Linux.

To install most Linux distributions, download the appropriate .iso file, burn it to a CD, and download it from the CD. Use ImgBurn to burn the file to a CD. From there, the installation is quite simple. Install Linux on any space that you previously freed up when resizing partitions. If you notice that Linux creates both a swap partition and a regular partition, don't worry; which is completely normal (Windows does the swap file, Linux uses the swap partition).

You will find a 32 and 64-bit edition of almost all the distributions mentioned. 32-bit versions are generally slightly compatible with some hardware and software; 64-bit versions greatly enhance your hardware. For example, I run the 32-bit version of Ubuntu on my desktop because it has (unfortunately) only a 32-bit driver for the wireless card. In addition, Amazon offers only its MP3 (lol) download program, which is required to purchase music from them, for 32-bit distributions. I am running a 64-bit distribution on my laptop, as it is much more capable of using my limited hardware.

+2
source

Here is how I did it:

  • Got a Mac, started using it as my main workstation without work for experimental side projects: iPhone apps, Automator, Cocoa stuff, Ruby scripts.
  • Installed by Mono on MacOS, I started writing ASP.net stuff that I already liked in Unix.
  • Gradually, I began to use less Windows. I made sure all of my .net projects were Mono-compliant, so I could move code between platforms.
  • Profit?

This is not how you learn Unix, because you, an ordinary person with full employment and life, slowly fall into Unix without losing your mind.

+1
source

I would recommend installing UNIX on a machine or virtual machine and starting to get your hands dirty. Ubuntu is a popular Gnu / Linux distribution that is pretty easy to install and pretty simple.

There are too many books that come to mind, but what really moved me from my old DOS days to UNIX (Solaris first) was Kernighan and Pike's “Unix Programming Environment”. This is a bit dated now, but it gives you some idea of ​​how people do things in the UNIX world.

Once you have completed some actions on the command line (it may take several weeks, I think), you can try to deploy the Rails project on your computer, find the links and just absorb everything you need to get the work done. I think this is more effective than sitting with one book and trying to read it to begin to understand UNIX.

Good luck.

+1
source

Ubuntu linux is a pretty easy place to run: https://help.ubuntu.com/community/Installation

A good introductory book will help. I found the Harley Hahn Guide for Unix / Linux very useful when I started: http://www.harley.com/books/sg3.html

I am delighted with how easy ubuntu people did things, and with your own linux installation to play with really helps.

Possible way to use Linux at home:

  • Install Ubuntu from a bootable CD

    • download ISO file under windows
    • burn the ISO file to a CD under the windows - use any software that you like to do
    • bootable CD (make sure your BIOS allows you to boot from the CD)
    • use the windows processing CD so that unused space can accommodate Ubuntu

      • I did this using Windows Vista on my laptop and was stunned by how easy it was to do it ... (Naturally, you must, of course, keep all the important things on the laptop ...)
    • use the CD option to insert a boot menu that allows you to select windows or ubuntu
  • install apache - helps you learn about web administration / sys admin
  • install php - it will be a little interesting for you to play with
  • try writing some basic bash scripts - like .bat files, but much more powerful and good starting points for sys admin concepts
+1
source

Since an early call would probably use the command line interface, I would suggest starting with bash scripting; it is a simple language to pick up and similar to (but much more powerful than) DOS package scripts. bash will help you get started with the command line, as it will actively use both regular and unusual commands. This is a great guide for bash: http://tldp.org/LDP/abs/html/

A virtual machine is very important, whether you are on Windows or Mac OS. I use VirtualBox (free), but Parallels is also good (albeit commercial). This will allow you to configure almost any type of linux / windows machine and destroy them with impunity.

0
source

If you want to plunge into the pool, Cygwin is a good option. You can install it on your Windows box and start exploring the command line on a system that you are already familiar with. This gives you access to many large * nix command line tools (smaller, tail, ssh, etc.). It also gives you the opportunity to use these tools in the Windows window that you use all day, every day.

I still use it regularly when I have to use a Windows machine (SSH'ing in localhost is much more powerful than running a DOS command line), and when I finally switched from Windows, I was much better prepared because I had a long time used the CLI and many of its tools.

0
source

The Linux Launch book is great. Very handy link when using Linux.

Provides a basic command line for administration and programming. Covers almost everything you need to know.

0
source

All Articles