Kph (korn shell)

Korn Shell (ksh) - командна оболонка UNIX, розроблена Девідом Корном в 1983 році. Korn Shell має повну зворотну сумісність з Bourne Shell і містить безліч функцій оболонки C Shell. Головною перевагою Korn Shell є можливість використання даної оболонки як мова програмування.

Особливості

  • Інтерактивний командний мову для програмування високого рівня
  • Від платформи незалежний
  • Відповідає стандарту POSIX
  • Може використовувати скрипти

Використання

В якості оболонки, завантажується при вході користувача в систему (login shell)

  • AIX - пропріетарна UNIX-подібна операційна система, розроблена компанією IBM
  • HP_UX - пропріетарна UNIX-подібна операційна система, розроблена компанією Hewlett-Packard

Як скриптовой оболонки

  • Open Solaris - ОС з відкритим вихідним кодом, створена на базі ОС Solaris компанією Sun Microsystems

Так само Korn Shell використовується в QNX - комерційної микроядерной операційній системі реального часі, призначеної для вбудованих системи.

Як затверджувати сайт KornShell 80% клієнтів ATT Bell Laboratories использут Korn Shell.

Нова функціональність ksh93

  • Додаткові арифметичні операції
  • Складові змінні (аналог структур) і дисциплінарна функції (аналог методів)
  • асоціативні масиви
  • Посилання на змінні
  • розгортання параметрів
  • Функції з власної областю видимості
  • Зарезервовані змінні .sh і вбудовані команди
  • Історія команд
  • Прибрана можливість експортування функцій і псевдонімів за допомогою вбудованих команд

Наступні версії ksh93

Функціональність ksh93t +

Інтерактивні можливості

  • Можливість використання скриптів
  • Можливість перенаправлення потоків на довільні файлові дескриптори.
  • підтримка Unicode
  • Автозаповнення рядка
  • Є функція збереження історії команд і автодоповнення за даними з історії команд
  • Розширений інтерфейс командного рядка: використання змінних $ PS1
  • Можливість перевизначення команд для їх скорочення і підстановка параметрів в * скорочені псевдоніми команд за допомогою команди alias.
  • управління процесами
  • Розвинена система гарячих клавіш.

програмні можливості

  • Можливість використання функцій (підпрограм)
  • Обробка винятків
  • Пошук і заміна по змінним
  • Посилання на змінні
  • Функції зі змінним числом параметрів
  • Можливість встановлювати аргументи за умовчанням в функціях
  • Можливість визначити для користувача типи
  • Функція eval, що дозволяє виконати що-небудь
  • Генератор псведослучайних чисел
  • асоціативні масиви
  • Вбудована підтримка арифметичних операцій над числами з плаваючою точкою
  • Зарезервовані змінні .sh, вбудовані команди і їх динамічне розширення
  • Можливість використання компілятора shrcomp для байт-коду
  • Вбудований пошук за допомогою регулярних виразів і патернів
  • Складові змінних (аналог структур) і дисциплінарні функції (аналог методів)
  • Функції з власної областю видимості

межпроцессорной взаємодія

  • Передача байтів по каналах, в тому числі серіалізовані об'єкти
  • Можливість підстановки команд (вихідні дані однієї команди можуть бути використані як аргументи іншої)
  • Можливість підстановки процесів якщо система підтримує / dev / fd /
  • Підтримка TCP, UDP сполуку як потоків, а так само клієнта SCTP з'єднання.

Приклад використання складових змінних

Вплив інших командних оболонок

Bourne Shell і CShell відмовили великий вплив на Korn Shell.

Bourne Shell

Спочатку ksh була модифікацією командної оболонки Bourne shell. І до сих пір ksh зберігає повну сумісність з Bourne shell, тобто всі програми, написані для оболонки Bourne, можуть працювати ksh.

Bourne Shell була розроблена в 1977 році Стівеном Борном так само працювали на ATT Bell Labs. Це скриптова мова, що базується на командах мови алгол 68. Bourne Shell поширювалася з 7-ї версією UNIX, і до сих пір використовується в багатьох дистрибутивах як оболонка за замовчуванням і оболонка для суперкористувача root.

Відмінності Korn Shell від Bourne Shell

  • платформонезавісимость
  • Автозаповнення рядка
  • Функція збереження історії команд
  • Вбудована можливість перевизначення команд
  • Значно розширена сфера програмних можливостей
  • Можливість підстановки процесів
  • Підтримка TCP, UDP з'єднання у вигляді потоків

Сsh заснована на стандарті POSIX і на мові Сі. Є базовою частиною freeBsd і OpenBSD. Головна особливість csh - можливість використання в якості мови програмування.

Відмінності Korn Shell від C Shell

  • Підтримка функцій (підпрограм)
  • Обробка винятків і інші можливості, пов'язані з використанням функцій.
  • Вбудований пошук за допомогою регулярних виразів
  • Можливість підстановки процесів
  • Підтримка TCP, UDP з'єднання у вигляді потоків
  • Не підтримує неявну зміну директорії (якщо команда - ім'я директорії, то відбувається перехід в цю директорію) Implicit Directory Change If command is dir name changes to it

Інші версії ksh

До відкриття вихідного коду Korn Shell був створений ряд альтернативних оболонок з відритим вихідним кодом:

Інші командні оболонки, що відносяться до Korn Shell

  • dtksh - Desktop Korn Shell - відгалуження від ksh93, розроблялася як частина середовища робочого столу CDE.
  • tksh - відгалуження від ksh93, надає доступ до бібліотеки базових елементів графічного інтерфейсу Tk
  • MKS Korn Shell - пропріетарна версія Microsoft. Входить до складу Microsoft Windows Services for UNIX - програмний пакет, що забезпечує частина середовища UNIX на Windows.

Список літератури