Microsoft Windows and GNU/Linux, along with other UNIX-like systems, are based on very different approaches to user interaction. In fact, one of the most annoying things is when people try to map concepts, for example, when someone complains about some distro not offering a graphical login screen by default because it's "counter-intuitive" (read: it goes against the expectations of someone who has been using Windows NT for their entire life).
The single best tip regarding this is: leave your expectations at the door, don't look for "equivalencies", instead, treat this like a foreign language you're trying to learn that differs radically from your mother tongue. Asking how to do this and how to do that will help you learning some stuff, but do always keep in mind that you need to learn a new logic, a new philosophy, that the design decisions and expectations behind the system you're starting to use differ a lot from that of the system you came from.
IMHO, a good idea would really be to summarize some of the more important differences, so that the newcomer gets acquainted with them and is aware of what is there to learn about.
Like sr_ mentioned, command line. Even if the non-NT branch of Windows started on top of a command line operating system, it was nowhere close to UNIX shells.
- Tell users about shells and what you can do with them, if they are aware of MS-DOS or of the Windows command prompt, warn them that functionalities and features differ a lot, that knowing the UNIX shell one can do several tasks at once over a bunch of files, for example. That it lets you build blocks from small, simple utilities. That the UNIX shell is the sole thing many people need for day-to-day life in the UNIX world.
- Explaining users that there is a more clear separation between shell and terminal (or terminal emulator) is also something I'd do, it would help clear some possible misunderstandings in the future, as well as provide one example of choice in UNIX-land. Shell is the thing you use to run commands, start programs and do shell scripts. There are several shells.
- Unlike Windows NT, where the graphical interface is started and you start stuff from a graphical environment, X is more of a user program under UNIX, that you can as well as start from a text terminal, even if many distros default to starting some graphical login screen on boot.
- Different rules, different conventions. You can use the file names you want, but more than being frowned upon, spaces will actually break in many places. Tell them it may be a good idea to refrain from using spaces in names, it will save headaches if they ever want to do some batch processing using scripts.
- There are no separate roots for different filesystems, there is one
/ to rule them all. Once mounted, you don't exactly see the difference between one filesystem and the other (except when it does not let you do some things because of filesystem limitations, for example, names in FAT).
- It may be interesting to tell them about links, which are actually available under Windows NT but aren't that frequently used by end users. And explain that this is not synonymous with "desktop shortcut".
- The traditional approach is to have filesystems listed in
fstab. Although several hacks exist to handle that pendrive your friend has with some random files, it helps to mention that there is an
fstab and what does it do. Then tell them about
pmount or other tools that let them mount, say, pendrives on the fly.
Permissions: Dealing with hotpluggable devices like pendrives, or with devices where you write stuff (like DVD burners), or, say webcams and bluetooth dongles requires the user to have permission to use devices.
This is a good thing, but some users may clash into this to the extent that some people have even started making tools that give whoever logged in through the graphical login screen permissions to use these devices automagically... Windows has sort of the same separation, but due to a feedback loop of badly designed tools which fail with non-Admin accounts, what doesn't encourage people to use unprivileged accounts under Windows, people end up being largely unaware of the idea of leaving administration accounts for, well, administrative purposes, using everything else with a not-so-privileged account. I think Microsoft even ended up using tools to discard privileges in some kinds of processes. Tell them about
sudo (if they use that), about groups used for permission management (e.g. plugdev and games under Gentoo).
- (And, meanwhile, warn them that changes in groups only take effect once you log in from a real terminal, any running account won't see that; I don't know how Windows does this, but I've seen so many people clashing on this one...)
- Choice: There are plenty of ways to do the same thing, there are plenty of things you can do for the same purpose. Different shells, different window managers, different web browsers, different terminal emulators. Remind them that the first thing they see is not the only thing they can use, that even if the distro defaults to that, chances are that there are alternatives.
- Package management: Tell them how Linux handles package management, with a hint that it is not a good idea to blindly install packages out of the package manager just like you download your average .EXE from the program website.
The TL;DR should effectively be: don't assume things are Windows-like, keep in mind you're dealing with a different operating system, in a different world.