UNIX: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 513:
Нажатие клавиши '''Ctrl-C''' останавливает выполнение текущей команды, посылая ей сигнал '''SIGKILL'''. '''Ctrl-Z''' приостанавливает текущую команду, переводя её в режим сна. Разбудить её можно командой '''%%'''.
 
=== Стандартный ввод и вывод ===
 
Каждый процесс имеет стандартный ввод (stdin) и стандартный вывод (stdout). Переадресовать стандартный ввод или вывод можно с помощью конструкции '''>''файл''''' (вывод) или '''<''файл''''' (ввод). А ещё можно стандартный вывод одной команды направить в стандартный ввод другой с помощью конструкции ''команда|команда''. Это называется конвейер. В общем виде конвейер выглядит так:
: <nowiki>'''''команда'' | ''команда'' | ... | ''команда'' <''файл'' >''файл'''''</nowiki>
Конструкции <nowiki>'''<''файл'''''</nowiki> и <nowiki>'''>''файл'''''</nowiki> являются необязательными, независимыми друг от друга, и могут быть в любом порядке. Пробелы неважны.
 
Кроме того, есть конструкция <nowiki>'''>>''файл'''''</nowiki>. Она заменяет конструкцию <nowiki>'''>''файл'''''</nowiki> и означает, что если файл уже существует - стандартный вывод не заменяет содержимое файла, а дописывается к концу файла, т.&nbsp;е. файл открывается не на запись, а на дописывание.
 
Кроме стандартного ввода и стандартного вывода, есть и стандартная диагностика (stderr, standard error). Разные интерпретаторы по-разному позволяют переадресовать её. Так, в '''csh''' и '''tcsh''' для переадресации и стандартного вывода, и стандартной диагностики используется конструкция <nowiki>'''|&''файл'''''</nowiki>, <nowiki>'''>&''файл'''''</nowiki> или <nowiki>'''>>&''файл'''''</nowiki>, а переадресовать только одну стандартную диагностику невозможно.
 
Многие команды в UNIX часто используются, или даже в основном предназначены, для работы в конвейере. Наиболее типичной такой командой является '''less''' (и её более старая версия '''more'''), которая позволяет просматривать стандартный вывод любой команды. Другими такими командами, по-видимому, являются '''sed''', '''grep''', '''sort'''.
 
=== Комментарии ===
 
Всё, что идёт в строке после решётки (#), считается комментарием.
 
== Файлы и каналы ==