В цьому документі описані загальні можливості найпопулярніших оболонок та відмінності між ними.

Загальні можливості

Наступні можливості є стандартними у кожні оболонці. Зверніть увагу, що команди stop, suspend, jobs, bg і fg доступні лише у системах, котрі дозволяють керування завданнями.

[Таблиця А1. Стандартні можливості оболонок] | Команда | Значення | | :--------- | :--------------------------------------------------------- | | > | Перенаправлення виводу | | >> | Додати до файлу | | < | Перенаправлення вводу | | << | Документна вставка (перенаправлення вводу) | | &bar; | Конвеєризація виводу | | & | Запуск процесу у фоні | | ; | Декілька команд у одному рядку | | * | Будь-які символи (у імені файлу) | | ? | Будь-який поодинокий символ | | [ ] | Будь-які символи з тих, що перелічені | | ( ) | Запустити у дочірній оболонці | | | Підставити вивід залапкованої команди | | " " | Часткове цитування (дозволяє змінні та підстановку команд) | | ' ' | Повне цитування (без розкривань) | | \ | Екранувати наступний символ | | $var | Значення змінної | | $$ | Ідентифікатор процесу | | $0 | Ім’я команди | | $n | n-ний аргумент (n від 0 до 9) | | $* | Всі аргументи як одне слово | | # | Початок коментаря | | bg | Фонове виконання | | break | Перервати виконання циклу | | cd | Змінити каталог | | continue | Повторити виконання циклу (з наступним елементом циклу) | | echo | Показати вивід | | eval | Оцінити (проаналізувати) аргументи | | exec | Запустити нову оболонку | | fg | Виконання на передньому плані | | jobs | Показати активні задачі | | kill | Завершити запущені задачі | | newgrp | Змінити до нової групи | | shift | Зсунути позиційні параметри | | stop | Тимчасово зупинити фонове завдання | | suspend | Тимчасово зупинити поточне завдання | | time | Рахувати тривалість виконання команди | | umask | Задати чи проглянути права доступу до файлу | | unset | Видалити визначення функції чи змінної | | wait | Зачекати на завершення фонового завдання |

Відмінності

У наведеній таблиці показано основні відмінності між стандартною оболонкою (sh), Оновленою оболонкою Борна (bash), оболонкою Корна (ksh) та С-подібною оболонкою (csh).

Підказка: Сумісність оболонок

Оскільки оновлена оболонка Борна є надбудовою стандартної оболонки, всі команди sh працюватимуть у bash (але не навпаки). Bash має багато власних можливостей, і, як показано у таблиці, багато можливостей відрізняються від інших оболонок.

Оскільки оболонка Turbo C є надбудовою csh, всі команди csh працюватимуть у tcsh, але не навпаки.

[Таблиця А2. Відмінності між оболонками] | sh | bash | ksh | csh | Пояснення | | :-------------- | :-------------- | :------------- | :-------------- | :------------------------------------------------------------ | | $ | $ | $ | % | Стандартна користувацька підказка | | >&bar; | >&bar; | >! | Примусове перенаправлення | > file 2>&1 | &> file, > file 2>&1 | > file 2>&1 | >& file | Пере направити стандартний вивід та стандартні помилки у файл | | { } | | { } | Розкрити елементи списку | `command | \command, $(command) | $(command) | \command` | Підставити вивід команди command | $HOME | $HOME | $HOME | $home | Домашній каталог | | ~ | ~ | ~ | Символ домашнього каталогу | | ~+, ~-, dirs | ~+, ~- | =-, =N | Доступ до стеку каталогів | var=value | VAR=value | var=value | set var=value | Присвоєння змінних | export var | export VAR=value | export var=val | setenv var val | Задати змінну середовища | | ${nnnn} | ${nn} | | Посилання більше як на 9 аргументів | "$@" | "$@" | "$@" | | Всі аргументи як окремі слова | $# | $# | $# | $#argv | Кількість аргументів | $? | $? | $? | $status | Стан завершення останньої команди | $! | $! | $! | | PID останнього фонового процесу | $- | $- | $- | | Поточні опції | . file | source file, . file | . file | source file | Зчитати команди з файлу | | alias x='y' | alias x=y | alias x y | Ім’я x замінює команду y | case | case | case | switch, case | Вибір альтернатив | done | done | done | end | Кінець оператора циклу | esac | esac | esac | endsw | Кінець циклів case чи switch | exit n | exit n | exit n | exit (expr) | Завершити з станом | for/do | for/do | for/do | foreach | Цикл зі змінними | | set -f, set -o *glob | | noglob | Ігнорувати символи підстановки для генерації імен файлів | hash | hash | alias -t | hashstat | Показати збережені команди (відстежувані псевдоніми) | hash cmds | hash cmds | alias -t cmds | rehash | Запам’ятати розміщення команд | hash -r | hash -r | | unhash | Забути розміщення команд | | history | history | history | Переглянути попередні команди | | ArrowUp+Enter чи !! | r | !! | Повторити попередню команду | | !str | r str | !str | Повторити попередню команду, що починається з "str" | | !cmd:s/x/y/ | r x=y cmd | !cmd:s/x/y/ | Замінити "x" на "y" у останній команді, що починається з "cmd", і виконати її | if [ $i -eq 5 ] | if [ $i -eq 5 ] | if ((i==5)) | if ($i==5) | Проста перевірка умови | fi | fi | fi | endif | Кінець оператора if | ulimit | ulimit | ulimit | limit | Встановити обмеження ресурсів | pwd | pwd | pwd | dirs | Надрукувати ім’я поточного каталогу | read | read | read | $< | Зчитати з терміналу | trap 2 | trap 2 | trap 2 | onintr | Ігнорувати переривання | | unalias | unalias | unalias | Видалити псевдоніми | until | until | until | | Розпочати цикл until | while/do | while/do | while/do | while | Розпочати цикл while

Оновлена оболонка Борна має багато можливостей, не перелічених тут. Таблиця наведена просто щоб дати вам уявлення про те, як ця оболонка об’єднує в себе всі зручні ідеї з інших оболонок: зверніть увагу на відсутність пропусків у стовпчику bash. Додаткова інформація про властивості оболонки bash знаходиться на сторінках info Bash у розділі Bash Features (Властивості Bash).

Додаткова інформація.

Ви повинні прочитати як мінімум один посібник, вивчаючи вашу оболонку. Найкращим вибором буде info bash. Роздрукуйте його та перечитуйте, коли у вас з’явиться вільна хвилинка.