Probably; it's better to learn something like this in its native
environment; emulated environments like Cygwin, although quite good,
usually have to compromise *somewhere*.
One of the "Linux for Dummies" books might be worthwhile, if you can get
past the title. The one I picked up actually contained quite a bit of
useful information, and was reasonably well written, and wasn't anywhere
near as insulting to my intelligence as I expected (this may be because
Linux is traditionally considered a highly technical subject).
Otherwise, the command 'man' is your close personal friend. If you can
get past all of the technical jargon that tends to get used everywhere.
Unlike Windows, the available online help in Linux is extensive (some
might say too much so). Unfortunately, most of it is written for a
techically savvy audience, so it tends to intimidate beginning Linux
users, especially coming from MS-DOS and Windows.
Incidentally, the standard command line prompt gives you three pieces of
information:
{username}@{hostname} {working} $
{username} is the name of the account you are logged in as.
{hostname} is the name of the machine you are logged in to (important
in networked environments, where you can jump from system to
system quickly)
{working} indicates your working directory. Some distros just display
the name of the folder you're actually in; others display the
full path to that folder as well.
This is completely customizable, so you can have it display just about
anything you want (I've known some setups that display the current date
and time). The '$' at the end of the prompt traditionally indicates that
you are in a 'regular user' login (as opposed to 'root', which
traditionally displays a '#' instead; this serves as a visual reminder
that you are currently logged in as an account with no restrictions,
which can be dangerous if you're not careful).
where you are - pwd
move to nother dir - cd
One tip that *might* make things easier to understand:
Linux, like Unix, tends to use command names that are abbreviations of
their function. For instance:
pwd - Print Working Directory (this prints out which folder you're
currently in); equivalent to just 'cd' in MS-DOS.
cd {path} - Change Directory (instructs the shell to change the working
directory to the location indicated by {path}. 'cd' by itself *always*
returns you to your home folder. Equivalent to 'cd {path}' in MS-DOS.
ls - LiSt (displays a list of the files and folders present in the
current directory); equivalent to 'dir' in MS-DOS.
cp - CoPy (copies a file or folder from one folder to another,
optionally changing the name of the copy); equivalent to 'copy' in
MS-DOS.
mv - MoVe (moves a file or folder from one folder to another, optionally
changing its name); equivalent, roughly, to 'move' and 'ren' in MS-DOS.
The basic abilties of the Linux command line are essentially the same as
in MS-DOS; only the command names are different in most cases. In a few
cases, there are more profound differences (for instance, Linux does not
have a 'rename' command; instead the 'mv' command serves the same
purpose; then there's the way Linux handles filesystems).
Once you understand the logic behind *why* and *how* the Linux command
line is set up the way it is, you will probably find it *easier* to use
than either MS-DOS *or* Windows; it's just that the initial learning
curve can easily appear to be very daunting. However, the fact that
Linux usually applies the same concepts over and over again will make
learning easier (unlike MS-DOS, which almost *requires* you to learn
unique ways of interacting with nearly every command).
The first thing you need to wrap your mind around is the fact that, in
Linux, *everything* on the filesystem, *regardless* of how it is used or
presented, is a file. It doesn't matter whether it appears to be a file,
folder, a device node (a special type of file used to interact with
devices, like the video display or keyboard), or something else
entirely. For your *convenience*, these items are all presented as
different things, but to the system, they are all, essentially, the
same. This allows things to be interacted with in highly standardized
ways, which actually will simplify the learning process (at the same
time, it allows for the incredibly complex constructions for which Linux
and Unix are justifiably well known; the individual pieces are simple,
but they can be strung together in ways that boggle the mind).
The best way to learn Linux is to experiment; so long as you don't
perform your normal, day-to-day functions logged in as root, it is
generally very difficult to damage a Linux installation. If you can,
locate a good teacher who understands Linux and is willing to teach
(note, a *good* teacher is better than a more knowledgeable one; a more
knowledgeable one may be inclined more towards showing off, and not
really teaching anything valuable. However, if you can find a good *and*
knowledgeable teacher, so much the better. Check at your local user
group, if you can find one).