Хорошо я все еще не уверен, как это работало, но я смог использовать cabal
устанавливать правильную версию X11
. Это, кажется, не конфликтует с версией, о которой сообщают Xorg -version
.
cabal install x11
Вы можете вручную создать запись / dev, используя параметры
mknod /dev/ttyUSBn c 188 n
, но устройство должно быть создано автоматически в соответствии с правилами UDEV
(Почти) все является файлом, но не все является обычным файлом. Нет смысла вызывать текстовый редактор в специальном файле, таком как каталог, сетевой сокет, последовательный порт и т.д.
Файл /dev/stdout
может быть одним из нескольких вариантов в зависимости от варианта unix:
В любом случае при открытии /dev/stdout
и аналогичных файлов создается новый дескриптор файла, связанный с тем же файлом, который уже открыт приложением на 1 дескриптора файла. «Стандартный вывод» означает дескриптор файла 1, и это только соглашение, что этот дескриптор файла используется для вывода - ядру все равно.
Когда вы управляете программой в терминале, все три стандартных описателя (0 = стандартный вход, 1 = стандартная продукция, 2 = стандартная ошибка) открыты на предельном устройстве. При чтении с этого устройства возвращаются символы, введенные пользователем, и при записи на это устройство отображается текст в окне терминала. (Нет никакого стандартного способа, учитывая предельное устройство, прочитать продукцию, которую оно показывает или вводить вход в него.)
, Когда вы бежите кошка/dev/stdout
, которая делает точно то же самое как кошка/dev/stdin
или кошка/dev/stderr
, потому что эти три описателя файла связаны с тем же файлом: это говорит кошка
читать от терминала. Вот что делает кот
без аргументов.
Если запущен cat/dev/stdout > foo
, то /dev/stdout
будет ссылаться на файл foo
- эта команда эквивалентна cat foo > foo
. В зависимости от реализации cat
, она может либо выйти из строя (версия GNU утверждает, что «input file is output file»), либо ничего не сделать, так как считывает из пустого файла foo
( > foo
только что усекла его). В версии cat
, которая не обнаруживает этот особый случай, если foo
не пуст, то cat/dev/stdout > > foo
или эквивалентный cat foo > > foo
будет добавлять содержимое файла в себя бесконечно.
При запуске vim/dev/stdout
он жалуется на то, что не умеет редактировать терминал (что просто не имеет смысла).
Можно ввести входные события с помощью xdotool . Команды можно вызвать при нажатии клавиши с помощью xbindkeys . Поместите что-то подобное в ~/.xbindkeysrc
:
"xdotool click 4"
control+shift+prior
"xdotool click 5"
control+shift+next
-121--90735- Традиционно unix-системы имеют скрипт для создания записей в /dev
, называемый MAKEDEV
и расположенный в /dev
.Этот сценарий часто присутствует в Linux, но может отсутствовать на встроенных устройствах, где дизайнер предполагал, что все устройства будут присутствовать, или в системах, работающих под управлением udev, где записи устройств обычно создаются автоматически. Обратите внимание, что MAKEDEV
обычно создает записи в текущем каталоге, поэтому сначала запустите cd/dev
.
Отсутствует стандарт для аргументов, передаваемых в /dev/MAKEDEV
- обычно аргументы обозначают некоторый набор создаваемых записей устройства. На Debian /dev/MAKEDEV usb
создает tтyUSB *
, а также множество других. Вы также можете найти tyUSB
в сценарии MAKEDEV
, чтобы выяснить, какую командную строку нужно запустить. Низкоуровневая команда, создающая записи устройства, - monod
.
Если система использует udev, запустите udevadm trigger -s usb-serial
для повторного создания записей /dev
, а также выполните любую команду, связанную с обнаружением устройства. (В этом случае устройство является последовательным портом, а не устройством, подключенным к порту.)