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

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


shell

shell

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

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

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

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 · Последние изменения: 2019/05/31 07:49 — darkfire