UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Иногда команду
trap$ (trap "" 1; долго_выполняемая команда) &2134$Для процесса и его потомков пустая последовательность означает, что нужно игнорировать прерывания. При наличии скобок команда
trapдолго_выполняемая_командаtrapКоманда
nohup(1)shell$ cat 'which nohup'trap "" 1 15if test -t 2>&1then echo "Sending output to 'nohup.out'" exec nice -5 $* >>nohup.out 2>&1else exec nice -5 $* 2>&1fi$Команда
test -tnicenohupPATHКоманда
execniceExecexeccal/usr/bin/calКстати, сигнал 9 — это тот сигнал, который нельзя перехватить или игнорировать: он всегда уничтожает процесс. На языке
shell$ kill -9 номер_процессаОбращение
kill -9В приведенной выше версии команды
nohupНайдите встроенную команду
times.profileНапишите программу, находящую следующий свободный идентификатор пользователя в файле
/etc/passwd5.5 Команда
overwriteВ команде
sort-о$ sort файл1 -о файл2Ее эквивалент:
$ sort файл1 > файл2Если
файл1файл2>-оМогут использовать флаг
-оsed$ sed 's/UNIX/UNIX (TM)/g' -o ch2Непрактично изменять все подобные команды, вводя флаг — это не лучшее решение. Более целесообразным представляется централизованное выполнение функций, как в случае операции
>overwrite$ sed 's/UNIX/UNIX (TM)/g' гл2 | overwrite гл2В основном алгоритм программы очевиден: нужно только сохранить где-нибудь весь входной поток вплоть до конца файла, а затем копировать его в файл, указанный как аргумент:
# overwrite: copy standard input to output after EOF# version 1. BUG herePATH=/bin:/usr/bincase $# in1) ;;*) echo 'Usage: overwrite file' 1>&2; exit 2esacnew=/tmp/overwr.$$trap 'rm -f $new; exit 1' 1 2 15cat >$new # collect the inputcp $new $1 # overwrite the input filerm -f $newКоманда
cpmvcp
