Библиотека сайта rus-linux.net
Руководство по Bash для начинающих | ||
---|---|---|
Назад | Приложение A. Особенности командных оболочек | Вперед |
Приложение A. Особенности командных оболочек
Оригинал: "Bash Guide for Beginners"Автор: Machtelt Garrels
Дата публикации: 9.02.2010 (Revision 1.12)
Перевод: Н.Ромоданов
Дата перевода: март 2011 г.
Краткое содержание
В этом документе приводится обзор общих особенностей командных оболочек (одних и тех же в различных оболочках) и их различий (конкретные особенности командных оболочек).
Общие особенности
Следующие функции являются стандартными в любой командной оболочке. Обратите внимание, что команды stop (остановка), suspend (приостановка), jobs (задания), bg (фоновый режим) и fg (приоритетный режим) доступны только в системах, в которых поддерживается управление заданиями.
Таблица A.1. Общие особенности командных оболочек
Команда | Значение |
> | Перенаправление вывода |
>> | Добавление к файлу |
< | Перенаправление ввода |
<< | "Встраиваемые" документы (перенаправление ввода) |
| | Вывод в конвейер |
& | Запуск процесса в фоновом режиме |
; | Разделение команд в той же самой строке |
* | Совпадение с любым символом (символами) в имени файла |
? | Совпадение с одним символом в имени файла |
[ ] | Совпадение с любым символом, указанным в квадратных скобках |
( ) | Выполнение в подоболочке |
` ` | Подстановка выходного потока, выданного командами, заключенными в кавычки |
" " | Кавычки, отменяющие только некоторые особенные свойства (допускается подстановка переменных и команд) |
' ' | Полная отмена особенных свойств (подстановки не допускаются) |
\ | Отменяются особые свойства символа, следующего за обратным слешем |
$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), оболочкой Bourne Again SHell (bash), оболочкой Korn shell (ksh) и оболочкой C shell (csh).
Совместимость командных оболочек | |
Поскольку оболочка Bourne Again Shell является расширением оболочки sh, все команды sh будут также работать и в bash, но не наоборот. В bash есть много своих собственных особенностей и, как показано в таблице ниже, многие из них взяты из других оболочек. Поскольку оболочка Turbo C является расширением оболочки csh, все команды csh будут работать и в tcsh, но не наоборот. |
Таблица A.2. Различия командных оболочек
sh | bash | ksh | csh | Значение / Действие |
$ | $ | $ | % | Строка — приглашение, используемое по умолчанию |
>| | >| | >! | Принудительное перенаправление | |
> file 2>&1 | &> | > file 2>&1 | >& | Перенаправление stdout и stderr в файл |
{ } | { } | Подстановка элементов, указанных в списке | ||
`command` | `command` или $(command) | $(command) | `command` | Подстановка результата работы command |
|
|
|
| Домашний директорий |
~ | ~ | ~ | Символ домашнего директория | |
~+, ~-, dirs | ~+, ~- | =-, =N | Доступ к стеку директориев | |
|
|
| set var= value | Присваивание значения переменной |
export | export | export | setenv | Установка значения для переменной среды окружения |
|
| Можно использовать более 9 аргументов | ||
" | " | " | Все аргументы в отдельных словах | |
|
|
|
| Число аргументов |
|
|
|
| Код возврата самой последней выполненной команды |
|
|
| Идентификатор PID самого последнего процесса, работающего в фоновом режиме | |
|
|
| Текущие параметры | |
| source |
| source | Чтение команд из файла |
alias x='y' | alias x=y | alias x y | Для команды y задается имя x | |
case | case | case | switch или case | Выбор альтернативы |
done | done | done | end | Завершение циклической инструкции |
esac | esac | esac | endsw | Завершение инструкции case или switch |
exit | exit | exit | exit | Выход с кодом возврата |
for/do | for/do | for/do | foreach | Цикл с перебором переменных |
set -f , set -o nullglob|dotglob|nocaseglob|noglob | noglob | При генерации имен файлов символы подстановок игнорируются | ||
hash | hash | alias | hashstat | Показать хешированные команды (отслеживание алиасов) |
hash | hash | alias | rehash | Запомнить путь к команде |
hash | hash | unhash | Забыть путь к команде | |
history | history | history | Список предыдущих команд | |
ArrowUp+Enter или !! | r | !! | Отмена предыдущей команды | |
! | r | ! | Отмена последней команды, начинающейся с "str". | |
! | r | ! | Замена "x" на "y" в самой последней команде, начинающейся с "cmd", затем — исполнение команды. | |
if [ | if [ | if (( | if ( | Пример проверки условия |
fi | fi | fi | endif | Завершение инструкции if |
ulimit | ulimit | ulimit | limit | Установка лимитов на ресурсы |
pwd | pwd | pwd | dirs | Выдача рабочего директория |
read | read | read | $< | Чтение из терминала |
trap | trap | trap | onintr | Игнорирование прерываний |
unalias | unalias | unalias | Удаление алиасов | |
until | until | until | Начало цикла until | |
while/do | while/do | while/do | while | Начало цикла while |
В Bourne Again SHell есть гораздо больше возможностей, не перечисленных здесь. Эта таблица дает всего лишь представление о том, какие возможности из других командных оболочек включены в эту оболочку: в столбце bash пробелов нет. Дополнительную информацию о возможностях, имеющихся только в Bash, можно получить в документации по Bash в разделе "Возможности Bash".
Дополнительная информация:
Вы должны прочитать хотя бы одно руководство, касающееся вашей оболочки. Предпочтительнее посмотреть info bash, bash — это командная оболочка GNU, самая простая для начинающих. Распечатайте документацию и возьмите ее домой, изучите ее, когда у вас появится свободное время.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Подводим итог главы 12 | Глоссарий |