Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

shell

shell

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

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

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

  • bash. Усовершенствованная и модернизированная вариация командной оболочки Bourne shell (sh).
  • sh (Bourne shell). Данная оболочка является де-факто стандартом и доступна почти в любом дистрибутиве *nix. В Debian ссылается на dash.
  • dash (Debian Almquist Shell).
  • csh. В FreeBSD ссылается на tcsh
  • ksh
  • zsh

source

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

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

stdin stdout stderr

Существуют 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.txt · Последние изменения: 2017/07/29 13:19 — darkfire