shell

Когда операционная система выдает приглашение $ и вы вводите команды для выполнения, вы имеете дело не с ядром самой системы, а с неким посредником, называемым интерпретатором команд или shell.

Существуют две основные разновидности интерпретаторов shell: Bourne shell и С shell. В *nix- подобных системах наиболее распространены такие языки командных интерпретаторов как Основы BASH скрипты, циклы, горячие клавиши, Оболочка sh Bourne shell и ksh, но также применяются альтернативные оболочки zsh, C shell (csh) и tcsh, отличающиеся синтаксисом управляющих конструкций и поведением переменных.

Стандартом POSIX (ISO/IEC 9945) (Том 3. Оболочка и утилиты) определён язык оболочки, включающий конструкции последовательного (перевод строки, точка с запятой), условного (if, case, ||, &&) и циклического (for, for in, while, until) исполнения команд, а также оператор присваивания. Стандартом также определён режим редактирования вводимых команд, являющийся подмножеством команд стандартного текстового редактора vi.

Команда source перечитывает файлы настроек. Чтобы сделать псевдоним постоянным, вы должны добавить указанную строку в файл .profile, .bashrc (bash) или .cshrc (csh). Эти файлы считываются только во время входа в систему, так что либо выйдите из системы и войдите обратно, либо введите команду source, чтобы файлы были прочитаны снова. В bash эта команда обозначается точкой.

bash
$ . ~/.profile
csh
$ source ~/.cshrc

Существуют 3 файловых дескриптора: stdin - стандартный ввод, stdout - стандартный вывод (1) и stderr - стандартный поток ошибок (2).

Понимаем, что оболочка(Основы BASH скрипты, циклы, горячие клавиши, tcsh ), при разборе параметров командной строки, читает параметры строго слева направо.

$ rm /tmp/777.txt 2>&1 # стандартный поток ошибок будет перенаправлен в стандартный вывод
$ rm /tmp/777.txt >file.txt 2>&1 # stdout перенаправляется в файл, дополнительно 2>&1 мы также stderr перенаправляем в файл

# перенаправить стандартный вывод и вывод об ошибках в файл /var/log/messages
*/5 * * * * root /etc/cron.d/check.sh >> /var/log/cron 2>&1
# отправить стандартный вывод и вывод об ошибках на YouName@example.com
*/22 * * * * root /etc/cron.d/check.sh 2>&1 | mail -s "Alarm" YouName@example.com

Читайте также: Служебные символы используемые в shell скриптах

PQ VPS сервера в 28+ странах.