Отличительные особенности оболочек

В таблице ниже показаны основные различия между обычной shell (sh), Bourne Again SHell (bash), Korn shell (ksh) и C shell (csh).

note.gif Совместимость оболочек
Так как Bourne Again SHell является расширением sh, все команды sh будут также работать в bash - но не наоборот. Сам по себе bash включает много возможностей, и, как показывает таблица ниже, многие функции включены из других оболочек.
Поскольку оболочка Turbo C является надстройкой csh, все команды csh будут работать в tcsh, но не наоборот.

Таблица C.2. Различные свойства оболочек

sh bash ksh csh Значение/Действие
$ $ $ % Приглашение к вводу по умолчанию
  >| >| >! Принудительное перенаправление
> file 2>&1 &> file или
> file 2>&1
> file 2>&1 >& file Перенаправление стандартных потоков вывода и ошибок в file
  { }   { } Расширить элементы в список
`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=value setenv var val Установка переменной окружения
  ${nnnn} ${nn}   Возможность ссылаться на более, чем 9 аргументов
"$@" "$@" "$@"   Все аргументы в виде отдельных слов
$# $# $# $#argv Количество аргументов
$? $? $? $status Код возврата от последней выполненной команды
$! $! $!   PID последнего фонового
процесса
$- $- $-   Текущие опции
. file source file or . file . file source file Читает команды в файле
  alias x='y' alias x=y alias x y Имя x устанавливается для команды y
case case case switch or 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 or !! 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

У Bourne Again SHell есть намного больше свойств, не перечисленных здесь. Но эта таблица может дать вам представление о том, как эта оболочка включает в себя все полезные идеи из других оболочек: в колонке bash нет пустот. Больше информации о специфических свойствах Bash можно получить из info-страниц Bash в разделе "Bash Features".

Как минимум вам надо прочитать руководство к вашей командной оболочке. Предпочтительно было бы выбрать info bash. Bash, будучи оболочкой GNU, также прост для начинающих.

Создано