Where to begin with Linux

Posted on 2005-04-26
Medium Priority
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
  • 3
  • 2
LVL 97

Assisted Solution

by:Lee W, MVP
Lee W, MVP earned 500 total points
ID: 13869910
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 www.linuxiso.org

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

ID: 13870113
"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.

Author Comment

ID: 13870154
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>

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 13870210

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

Accepted Solution

JohnK813 earned 1500 total points
ID: 13870350
>> 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: http://www.freeos.com/guides/lsst/

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.

Author Comment

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


Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The purpose of this article is to demonstrate how we can upgrade Python from version 2.7.6 to Python 2.7.10 on the Linux Mint operating system. I am using an Oracle Virtual Box where I have installed Linux Mint operating system version 17.2. Once yo…
I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
Suggested Courses
Course of the Month14 days, 21 hours left to enroll

840 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