Where to begin with Linux

Posted on 2005-04-26
Last Modified: 2013-12-06
Earlier I asked a question about the .net enviornment and linux.  So I started looking at something called mono.  But I am afraid that I really need to learn more about Linux before even considering Mono.  If I read correctly, there are many different flavors of linux.  Suze, Fedora, Red Hat etc.  Needless to say, I'll need to learn Linux as well...but where to begin?  Is there a particular flavor of linux that lends itself to Mono?

Also, there is Linux Programming.  Coming from the windows world, I wasn't aware that one could "program" in or around linux.  Still no clue.  Flipped through the pages of "Linux for dummies", and saw that one could change the promt to anyting one likes.  Is that an example of programming linux?

Aside from the fact that Linux is much more stable than windows, are there other compelling reasons to switch to linux?  Remember taking a course on linux many many years ago and playing wiht vi.  what a nightmare.

anyways....that's just for starters....

Question by:brdrok
    LVL 95

    Assisted Solution

    by:Lee W, MVP
    Linux is great... but it's flexibility is, in my opinion, the reason it's not considered easy by most people.

    My theory is this:
    With regards to the ease of use to the end user, I personally believe Macs are easier primarily because there's typically only one or two ways to do things.  On a Windows PC, there are 5 or 6 ways of doing something, and on a Linux machine, perhaps a dozen ways - and a dozen programs.  You might think this makes things easier, but look at it from an inexperienced user's perspective.  They ask 5 people how to do something on a mac and 5 people give them the same answer.  Nothing confusing.  Now a PC user asks 5 people how to do something on a PC and they get 3 different answers.  Now they try to remember how to do it again alone, and they mix up the instructions and can't figure it out.  Lastly, on Linux, they ask 5 people and get 4 software preferences and 6 explanations of how to do it.  Now they are REALLY confused.

    To get started in Linux, you can do a number of things.

    1.  Run a "live" distro, such as Suse Live, Knoppix, or any of several others.
    2.  Install a Virtual Machine software such as VMWare, Bochs, or VirtualPC (this will let you install and run Linux in a "virtual" computer on your Windows Desktop.  The advantage to this is that you can run both Windows and Linux simultaneously and you don't have to format/repartition your hard drive or get another computer.
    3. Get another computer to run Linux on.  Anything with 128 MB of RAM will do, but yoou really do want more (some versions of Linux can handle less RAM, but 128 is a good minimum as some won't install easily without at least that much).

    You can get the most popular distros of linux through

    Not sure what the "best" one would be for programming, though for new users, most people tend to recommend Suse or Mandrake.  I personally prefer Debian, though debian isn't as easy to install, once running, it has a really nice software download and install tool - apt (apt-get).  For example, if you ran Debian, installing Mono could be as simple as typing "apt-get install mono" and answer a yes/no question or two and bang, you have Mono and it's installed and ready to go.
    LVL 14

    Expert Comment

    "Linux Programming"

    In Linux, you can create batch files (usually called 'shell scripts') and also more robust programs, just as you can in Linux.  Some of the languages used include C, C++, and Perl.  Perl is closer to a scripting language, and comes pre-installed in most versions/flavors/distros of Linux.  C/C++ programs will need to be compiled, but again Linux will often come with the compiler pre-installed.

    >>saw that one could change the promt to anyting one likes.  Is that an example of programming linux?

    Eh, yes and no.  Technically, you can do that for Windows, too.  It's more of a "setting" than a "program" - you just have to be very command-line saavy to do it.

    But, since Linux is Open Source (in most cases) - you can basically re-code the whole OS, down to the kernel level, if you would so like.  I'd put that at the "Advanced" level; it's something I've never tried to do since I've never needed to at this point.

    >>vi.  what a nightmare.

    Definitely takes some getting used to.  Just keep a simple command reference nearby... and know how to kill a terminal window if you ever need to.
    LVL 7

    Author Comment

    thanks for the great answer.  at the risk of sounding like a complete idiot....all the different versions (i.e. SuSE, Liv, Knoppix, Red Hat etc) are they all the same "Linux"?  What I mean by that is, if I were to type in a command into the command line in one Linux from SuSE, will the same command work in "Debian Linux"?

    You said:
    1.  Run a "live" distro, such as Suse Live, Knoppix, or any of several others

    what do you mean by "live".  I am assuming that distro is short for Distributor but not sure on that.

    Still a little foggy in terms of programming and linux.  I am assuming that the language of choice is C.  When people say programming linux, do they mean the "traditional" meaning of programs (i.e. writing a front end application with a database backend?).  Or do they mean programming as in writing your own drivers, etc?  

    I apologize for barraging you with a whole bunch of questions...and will add more points.  But what's the general idea behind bash shell?  Is that like the onion layer between the user and the kernel?  If so, what is it one can do with bash shell?  Is that considered programming linux? whewww...the more I type the more questions I got.   Sorry....

    Entering the undiscovered country...and I'll need a guide<grin>

    LVL 7

    Author Comment


    thanks for your help.  what are some of the typical uses of shell scripts?  
    LVL 14

    Accepted Solution

    >> what are some of the typical uses of shell scripts?

    Shell scripts can be used for simple file manipulation, both as in copying/moving/deleting files, and as in changing text around.  For example, I work in a Windows environment right now, and have created several batch files: one issues DOS commands to stop and restart a service every night, one copies files over from a network folder and runs them through a program, one re-formats a tab-delimited file so it can be imported from one program to another.  If I worked in a Linux environment, I could create shell scripts to do all of these tasks as well.  (On a simple level, batch file = shell script.)

    I found this site on shell scripts; it may be useful to you:

    To answer some of your other questions:

    >> if I were to type in a command into the command line in one Linux from SuSE, will the same command work in "Debian Linux"?

    In most cases, the answer is 'yes.'  Another thing that determines if your command will work is the shell you're running.  Most versions of Linux use bash as the shell by default, but there's also sh, csh, and tcsh to name a few.  Think of a shell like a DOS window.  In the Windows world, there's just one DOS.  But, in the Linux world, there are multiple shells (as I've listed above), and each is just slightly different.

    >> what do you mean by "live".  

    A "live" distro is something that you burn to a single CD, and can be run without actually being installed.  You place the CD in your computer, boot up, and it will boot into Knoppix (or Gnoppix, or Suse Live) instead of Windows.  But, in most cases you will still have access to your Windows files.  Live CDs are great for people who want to try out Linux before actually installing.

    >>I am assuming that distro is short for

    distro is short for distrobution.  Basically, it's the official term for "flavor."  Fedora, Debian, Mandrake, SuSE are all examples of distros.

    I'm going to guess that you wrote that last comment as I was still typing, so I won't repeat anything on Linux programming just yet.  But, if you're still foggy in that area, just ask.
    LVL 7

    Author Comment

    thanks...this really provided me with a GREAT overview of linux without getting bogged down too much on lingo.  


    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    Join & Write a Comment

    Suggested Solutions

    Title # Comments Views Activity
    Updating Wheezy to latest distro 7 41
    Zenoss 2 40
    Amazon AWS SSL Certificate 7 37
    Mac - rsync folders with / in name 5 36
    Little introduction about CP: CP is a command on linux that use to copy files and folder from one location to another location. Example usage of CP as follow: cp /myfoder /pathto/destination/folder/ cp abc.tar.gz /pathto/destination/folder/ab…
    If you use Debian 6 Squeeze and you are tired of looking at the childish graphical GDM login screen that is used by default, here's an easy way to change it. If you've already tried to change it you've probably discovered that none of the old met…
    Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
    Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.

    729 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    19 Experts available now in Live!

    Get 1:1 Help Now