I am completely new to Unix. Presently, I have been asked to learn about both KornShell (ksh) and Bash shell. Can some one please give me a short overview about the two?
Is the term "shell" synonymous to "terminal"?
I understand that I can read documents about both online. But I believe that an overview from an experienced Unix programmer will help me better understand.
There are open source versions of ksh. You can run it on Linux. There was an older ksh for OSS called pdksh that acted somewhat differently than the newer ksh and that may be why folks didn't like it.
There are several differences - bash has most of what ksh does and then some extra stuff. A script written to run in ksh would likely run in bash just fine. A lot of the differences deal with math, variables, arrays, functions etc... - bash just seems to have a hell of lot more of this than ksh
The vi style editing that ksh used by default but not bash. However, you can type "set -o vi" in bash to get that same functionality.
Post from UNIX.COM
Shell features
This table below lists most features that I think would make you choose one shell over another. It is not intended to be a definitive list and does not include every single possible feature for every single possible shell. A feature is only considered to be in a shell if in the version that comes with the operating system, or if it is available as compiled directly from the standard distribution. In particular the C shell specified below is that available on SUNOS 4.*, a considerable number of vendors now ship either tcsh or their own enhanced C shell instead (they don't always make it obvious that they are shipping tcsh.
Code:
Key to the table above.
Y Feature can be done using this shell.
N Feature is not present in the shell.
F Feature can only be done by using the shells function mechanism.
L The readline library must be linked into the shell to enable this Feature.
Notes to the table above