В /var/www
, создайте папку public_html и реконфигурируйте это как свой корневой каталог для Apache. Файлы в /var/www
может быть включен, но не получен доступ непосредственно.
После выполнения exec &>filename
, стандартный вывод и стандартная погрешность оболочки переходят в filename
. Стандартный вход является дескриптором файла 0 по определению, и стандартный вывод является fd 1, и стандартная погрешность является fd 2.
Дескриптор файла или не перенаправляется или не перенаправляется: это всегда идет куда-нибудь (предполагающий, что процесс имеет этот открытый дескриптор). Перенаправить дескриптор файла означает изменяться, куда он идет. Когда Вы работали exec &>filename
, stdout и stderr были раньше подключены к терминалу и стали связанными с filename
.
Всегда существует способ относиться к текущему терминалу: /dev/tty
. Когда процесс открывает этот файл, это всегда означает терминал управления процесса, какой бы ни это. Таким образом, если Вы хотите возвратить исходный stdout и stderr той оболочки, можно сделать это, потому что файл, с которым они были подключены, все еще вокруг.
exec &>/dev/tty
Вы хотите
exec &>$(tty)
То, что Вы делаете в своем вопросе, копирует в stdout и stderr исходный stdout и stderr, которые были уже перенаправлены в файл.
Поскольку ответ Жабр объясняет, tty
возвратит оконечное устройство текущего терминала. Это - то, куда три стандартных дескрипторов файлов прибывают из к по умолчанию в оболочке входа в систему. Таким образом, вышеупомянутый оператор использует tty
перенаправить stdout и stderr назад к оконечному устройству, как они были прежде.
Если Вы обеспокоены мобильностью (согласно Вашему комментарию к ответу Gilles), оба метода (tty утилита и /dev/tty
файл), находятся в стандарте POSIX.
Скопированный дословно с комментария Gilles:
There's an advantage to /dev/tty: it works even after exec <somefile,
whereas $(tty) would complain “not a tty”
/dev/tty
: это работает даже после exec <somefile
, тогда как $(tty)
жаловался бы “не tty”.
– Gilles 'SO- stop being evil'
24.09.2013, 01:38
/dev/tty
работы в случаях, где$(tty)
не делает:/dev/tty
работы пока процесс имеют терминал управления (который является лучшим, можно надеяться, поскольку должно быть что-то все еще соединение процесса с терминалом), тогда как$(tty)
требует, чтобы терминал все еще был открыт на стандартном входе. – Gilles 'SO- stop being evil' 24.09.2013, 01:38