Это старая версия документа!
Оболочка
Born again shell - усовершенствованная оболочка Bourne shell.
Командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, так же, может читать команды из файла, т.е. написание скриптов.
Общее
Формы команд
cmd & - выполнить в фоновом режиме.
{cmd1; cmd2} - выполнить группой, в текущей оболочке.
(cmd1; cmd2) - выполнить группой, в подоболочке.
cmd1 | cmd2 - направить выход cmd1 на вход cmd2.
cmd1 `cmd2` - выход cmd2 в аргументами в cmd1.
cmd1 $(cmd2) - тоже самое, по стандарту POSIX.
cmd $(выражение) - арифметический результат выражения, аргументами в cmd.
cmd1 && cmd2 - логическое И
cmd1 || cmd2 - логическое ИЛИ.
!cmd - инверсия кода результата.
# Выполнить указанные команды в фоне
$ nroff file > file.txt &
# Выполнить команда последовательно
$ cd; ls
# Переадресация результатов
$ (date; who; pwd) > logfile
# Отсортировать, подготовить и вывести результат
$ sort file | pr -3 | lpr
# Отобразить эхом сообщение об ошибке
$ grep 'XX file' || echo "XX not found"
Переадресация ввода/вывода
0 | Ввод | stdin | Клавиатура |
1 | Вывод | stdout | Экран терминала |
2 | Вывод ошибок | stderr | Экран терминала |
cmd > file - перезаписать выводом команды файл.
cmd » file - присоединить вывод команды к файлу.
cmd < file - исходные данные для команды из файла.
cmd 2> file - вывод только ошибок в файл.
cmd &> file - вывод данных и ошибок в файл (&> /dev/null - подавление вывода).
Специальные имена файлов
/dev/(stdin|stdout|stderr) - дубликаты 0,1,2.
/dev/fd/<n> - дескриптор файла <n>
/dev/(tcp|udp)/<host>/<port> - оболочка устанавливает соединение, используя полученный дескриптор для В/Вывода
Внутренние команды
Часть из приведенных команд, имеет аналогичные исполняемые файлы в ОС, но это не одно и тоже.
Ввод/вывод
echo - выводит выражение или переменную stdout.
printf - форматированный вывод
read - читает значение из stdin
Файловая система
cd - сменить текущий каталог
pwd - текущий каталог
pushd, popd, dirs - работа с каталогами
Действия над переменными
getopts - разбор переменных, переданных из командной строки
let - арифметические операции над переменными
eval - транслирует список аргументов в команды
set - изменяет значение внутренних переменных скрипта
unset - удаляет переменную
export - сделать переменную доступной дочерним процессам
declare, typeset - задают (и накладывают) ограничения на переменные
Управление сценарием
source, . (точка) - запуск указанного сценария
exit - завершение работы сценария
exec - заменяет текущий процесс новым
shopt - позволяет изменять ключи оболочки «на лету»
Управление запущенными задачами
jobs - список задач, запущенных в оболочке (информация по номеру)
fg - вернуть текущее задание из фонового режима (или на указанный номер)
bg - перенести текущее задание в фоновый режим
wait - ожидает завершение фоновых задач
kill - прервать выполнение задания
Переменные окружения
Временная, локальная переменная (Очистится при окончании сессии):
# Просмотр текущий переменных
$ env
$ myVar=Value
$ echo myVar
Для долгосрочного хранения, нужно добавить ее в файл .bashrc, в домашней директории:
export myVar=Value
После чего, нужно обновить конфигурацию командой source .bashrc
Горячие клавиши
Ctrl + A (E) - перемещает курсор в начало (конец) строки
Ctrl + Y - вставить из (своего) буфера
Ctrl + U (W) - копирует в буфер всю строку (слово) ДО курсора (k-после курсора)
Ctrl + S (P) - приостановить (возобновить) вывод
Ctrl + L - очистить экран (clear)
Ctrl + R - поиск по ранее введенным командам
Примеры