Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Руководство по 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. Различия командных оболочек

shbashkshcshЗначение / Действие

$

$

$

%

Строка — приглашение, используемое по умолчанию

>|

>|

>!

Принудительное перенаправление

> 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   Глоссарий