Руководство по Bash для начинающих | ||
---|---|---|
Назад | Приложение A. Особенности командных оболочек | Вперед |
В этом документе приводится обзор общих особенностей командных оболочек (одних и тех же в различных оболочках) и их различий (конкретные особенности командных оболочек).
Следующие функции являются стандартными в любой командной оболочке. Обратите внимание, что команды 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 или > file 2>&1 | > file 2>&1 | >& file | Перенаправление stdout и stderr в файл 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 | Для команды y задается имя x | |
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 nullglob|dotglob|nocaseglob|noglob | 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 | rstr | !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 |
В Bourne Again SHell есть гораздо больше возможностей, не перечисленных здесь. Эта таблица дает всего лишь представление о том, какие возможности из других командных оболочек включены в эту оболочку: в столбце bash пробелов нет. Дополнительную информацию о возможностях, имеющихся только в Bash, можно получить в документации по Bash в разделе "Возможности Bash".
Дополнительная информация:
Вы должны прочитать хотя бы одно руководство, касающееся вашей оболочки. Предпочтительнее посмотреть info bash, bash — это командная оболочка GNU, самая простая для начинающих. Распечатайте документацию и возьмите ее домой, изучите ее, когда у вас появится свободное время.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Подводим итог главы 12 | Глоссарий |