2013-10-01 3 views
13

Я совершенно новый для Unix. В настоящее время меня попросили узнать об KornShell (ksh) и Bash shell. Может кто-нибудь, пожалуйста, дайте мне краткий обзор этих двух?Разница между оболочкой korn и bash

Подходит ли термин «shell» означает «terminal»?

Я понимаю, что могу читать документы как в Интернете. Но я считаю, что обзор опытного программиста Unix поможет мне лучше понять.

+0

«от неопытного программиста UNIX» ..Я думаю, что это должно быть «от опытного программиста UNIX» ... но в любом случае – mawia

+0

отредактировал его :) anyways – SriniV

+1

Нет, оболочка не является [терминалом] (https://commons.wikimedia.org/wiki/File:Terminal -дек-vt100.jpg). –

ответ

22

Сообщение от UNIX.COM

Shell особенности

В этой таблице ниже списков большинства функций, которые я думаю, заставит вас выбрать одну оболочку над другой. Он не предназначен для окончательного списка и не включает каждую возможную функцию для каждой возможной оболочки. Функция считается только в оболочке, если в версии, поставляемой с операционной системой, или если она доступна, как скомпилированная непосредственно из стандартного дистрибутива. В частности, указанная ниже оболочка C - это доступная на SUNOS 4. *, значительное количество поставщиков теперь отправляет либо tcsh, либо свою собственную расширенную оболочку C вместо этого (они не всегда делают очевидным, что они отправляют tcsh.

Код:

         sh csh ksh bash tcsh zsh rc es 
Job control       N Y Y Y Y Y N N 
Aliases        N Y Y Y Y Y N N 
Shell functions      Y(1) N Y Y N Y Y Y 
"Sensible" Input/Output redirection Y N Y Y N Y Y Y 
Directory stack      N Y Y Y Y Y F F 
Command history      N Y Y Y Y Y L L 
Command line editing     N N Y Y Y Y L L 
Vi Command line editing    N N Y Y Y(3) Y L L 
Emacs Command line editing   N N Y Y Y Y L L 
Rebindable Command line editing  N N N Y Y Y L L 
User name look up     N Y Y Y Y Y L L 
Login/Logout watching    N N N N Y Y F F 
Filename completion     N Y(1) Y Y Y Y L L 
Username completion     N Y(2) Y Y Y Y L L 
Hostname completion     N Y(2) Y Y Y Y L L 
History completion     N N N Y Y Y L L 
Fully programmable Completion  N N N N Y Y N N 
Mh Mailbox completion    N N N N(4) N(6) N(6) N N 
Co Processes       N N Y N N Y N N 
Builtin artithmetic evaluation  N Y Y Y Y Y N N 
Can follow symbolic links invisibly N N Y Y Y Y N N 
Periodic command execution   N N N N Y Y N N 
Custom Prompt (easily)    N N Y Y Y Y Y Y 
Sun Keyboard Hack     N N N N N Y N N 
Spelling Correction     N N N N Y Y N N 
Process Substitution     N N N Y(2) N Y Y Y 
Underlying Syntax     sh csh sh sh csh sh rc rc 
Freely Available      N N N(5) Y Y Y Y Y 
Checks Mailbox      N Y Y Y Y Y F F 
Tty Sanity Checking     N N N N Y Y N N 
Can cope with large argument lists Y N Y Y Y Y Y Y 
Has non-interactive startup file  N Y Y(7) Y(7) Y Y N N 
Has non-login startup file   N Y Y(7) Y Y Y N N 
Can avoid user startup files   N Y N Y N Y Y Y 
Can specify startup file    N N Y Y N N N N 
Low level command redefinition  N N N N N N N Y 
Has anonymous functions    N N N N N N Y Y 
List Variables      N Y Y N Y Y Y Y 
Full signal trap handling   Y N Y Y N Y Y Y 
File no clobber ability    N Y Y Y Y Y N F 
Local variables      N N Y Y N Y Y Y 
Lexically scoped variables   N N N N N N N Y 
Exceptions       N N N N N N N Y 

Ключ к таблице выше

Y Функция может быть сделано с помощью этой оболочки

N.. Особенность отсутствует в оболочке.

F Функция может быть выполнена только с использованием функции оболочки .

L Библиотека readline должна быть связана с оболочкой, чтобы включить функцию .

Примечания к таблице выше

1. This feature was not in the original version, but has since become 
    almost standard. 
2. This feature is fairly new and so is often not found on many 
    versions of the shell, it is gradually making its way into 
    standard distribution. 
3. The Vi emulation of this shell is thought by many to be 
    incomplete. 
4. This feature is not standard but unofficial patches exist to 
    perform this. 
5. A version called 'pdksh' is freely available, but does not have 
    the full functionality of the AT&T version. 
6. This can be done via the shells programmable completion mechanism. 
7. Only by specifying a file via the ENV environment variable. 
+1

Для тех, кто задается вопросом: оболочка korn сокращена как ksh. –

+0

Это в основном идентично http://stackoverflow.com/a/31801862/874188, где несколько комментариев указывают на устаревшую или неверную информацию. – tripleee

4

Есть открытые версии источника из KSH. Вы можете запустить его в Linux. Был более старый ksh для OSS, называемый pdksh, который действовал несколько иначе, чем новый ksh, и может быть, поэтому людям это не понравилось.

Существует несколько отличий - bash имеет большую часть того, что делает ksh, а затем некоторые дополнительные вещи. Сценарий, написанный для запуска в ksh, скорее всего, будет работать в bash просто отлично. Многие сделки различия с математическими, переменные, массивы, функции и т.д. ... - Баш только кажется, что есть ад намного больше, чем это KSH

ksh is available on multiple platforms by default but bash would have to be specifically added. On the flip side though, most Linux distros come with bash and you have to add ksh if you want it. 

Редактирование VI стиль, КШ используемый по умолчанию, но не баш. Однако вы можете ввести «set -o vi» в bash, чтобы получить ту же функциональность.

one reason for using ksh for scripting is, this shell is available on nearly all existing flavours of *nix. Bash is not installed by default on all *nix. 
+1

У оболочки Korn есть несколько функций, которые отсутствуют в Bash, особенно в арифметике с плавающей запятой. – tripleee

Смежные вопросы