One of the paradigm shifts Windows users (and even some Unix users) have to get by is often seen in a "How do I do X in Y?" question, for example "How do I repeat commands in Unix?". Of course that can be a perfectly legitimate question, but often the person asking is missing an important concept: Unixish systems do not tightly bind the user interface to the system. That particular question is a user interface question, and the answer is (depending upon how much of an s.o.b. you want to be) "That has nothing to do with 'Unix'" or "That depends upon what shell you are using."
For old Unix and Linux hands, the unbinding is obvious: we have choices. We can choose our shells, our windows managers, even our filesystems. Windows users have much less choice, especially "out of the box". An XP system is a tightly bound system of tools - windows work the way windows work, there's one command line shell, and while there are three possible file systems, there's no reason to use the older types unless you are dual booting some ancient Windows or have old disks that need to be accessed.
So Windows users aren't prepared for choice. The same misunderstandings apply to naive Unix users who never understood that they had choices: a csh user suddenly transported to Linux bash may cry "How do I repeat commands in Linux?", a SCO user accustomed to DEL being his INTR character will complain "I can't get ping to stop!" (and a Windows user, accustomed to "ping" quitting by itself, will make the same complaint). None of them understand that it isn't "Linux" or "OS X" that is conspiring to confuse them: it's simply default choices that can be easily changed.
For those that arrived here from some Google search, Linux bash shell repeats commands with 'up arrow' and you'd stop "ping" with CTRL-C, but those are again defaults and might be different.
Windows users (and the naive Unix users, which might include many Mac OS X users) need to adjust their view of how things work. Some time ago I wrote New to Unix. That's helpful, but it doesn't necessarily point your brain in the direction it needs to go - it's not just substituting one set of rules for another (slashes vs. backslashes), it's understanding that a lot of this can be a matter of choice.
How do you know when it's choice and when you are stuck with it? Well, really, you are almost never "stuck"; whatever you need probably can be accomplished some way. The idea is to know what's trivial and what is not, and of course the more you understand about how your system really works, the easier it is to make that judgment. When you first have that "Aha!" moment where you realize that your gui and your shell are just programs that call upon services in the Unix kernel, you have learned a lot. It may still be hard to know when something is really "Unix" and when it is not, but generally you should realize that operating systems themselves do simple things: they read and write data, and not a lot more.
In other words, the operating system doesn't get involved with complicated stuff like editing a file: it just reads the bytes some editing program wants and writes them back to the file system when the editor tells it to. Most everything in between is up to the program you are using - that editor of course calls on the OS to get keystrokes and to send things to your screen, but most of what it does has little to do with the OS itself: with some adjustments, it could work quite happily on an entirely different operating system. Even that business of reading and writing the file system is a bit outside the operating systems real control: it passes off most of the responsibility to a file system driver, which is just a program added on to the base system.. a different program could be substituted and the system would still work as it always has.
For the same reasons, your operating system isn't concerned with legal file names, whether or not you can type both "lc" and "LC", how you stop a command from running (though actually stopping it is the operating systems job) or what colors are shown as the background. I suppose I could give hundreds of other examples, but it boils down to knowing how things work: if you understand that your car is out of gas, you don't expect it to start by hooking up to another car with jumper cables, right? But why do you know that? Because you have at least a rudimentary understanding of how cars work. If you did not, you might not realize the futility of getting a "jump" when your gas tank is empty.
The same is true for operating systems. The more you understand about how they work, the more you'll understand what you should be able to control easily.
Have you tried Searching this site?
Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.
Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.
Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.
We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.
Click here to add your comments
Sun Mar 16 22:29:52 2008: Subject: anonymous
http://goodbye-microsoft.com/
You just made a point that an Operating System is actually a kernel, while at the same time referring to Windows or Mac OS X (which include many things other than a kernel) as Operating Systems.
If you really want to avoid the k-word, you could at least be consistent and find another term for what Windows and Mac OS X are.
Mon Mar 17 09:54:46 2008: Subject: TonyLawrence
Well, no, that wasn't my point, and an operating system is not just a kernel. "Linux" by itself is just a kernel. "Ubuntu" is not.
But you are right: I was sloppy here differentiating between the kernel and the rest. This was mean as a very basic article; I didn't want to focus on that particularly, but still I should have been more careful.
Don't miss responses! Subscribe to Comments by RSS or by Email
Click here to add your comments
If you want a picture to show with your comment, go get a Gravatar