В цьому документі описані загальні можливості найпопулярніших оболонок та відмінності між ними.
Загальні можливості
Наступні можливості є стандартними у кожні оболонці. Зверніть увагу, що команди 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. Роздрукуйте його та перечитуйте, коли у вас з’явиться вільна хвилинка.