Сочетание тройника и tty

Я попробовал следующую команду, я прочитал ее из книги

sudo ls | tee /dev/tty3a

Эта команда дает мне Permission denied, даже с sudo .
Здесь tty – телетайп, я это уже знаю. Но что такое 3a с tty?

  • Каково максимально допустимое количество TTY, определяется ли оно где-либо в заголовках ядра?
  • Запустить приложение, используя xinit на разных tty
  • В чем разница между управляющими символами ^ S и ^ Z внутри терминала?
  • Почему для выхода из `cat` нужны два нажатия D?
  • Альтернатива теперь устаревшим двоичным файлам rfcomm в bluez
  • Перенаправить tty в стандартный
  • Что определяет, где отображаются сообщения TTY и загрузочные сообщения?
  • Повторное воспроизведение файла журнала экрана
  • 2 Solutions collect form web for “Сочетание тройника и tty”

    Имена файлов устройств в /dev варьируются между вариантами Unix. Есть несколько, которые вы найдете везде, например /dev/tty означает текущий терминал. Похоже, что /dev/tty3a – это имя четвертого серийного порта¹ в некоторых вариантах Unix, включая Solaris и SCO OpenServer. Эквивалентом Linux будет /dev/ttyS3 . Таким образом, ls|tee /dev/tty3a дублирует вывод ls на четвертый последовательный порт.

    Если в последовательный порт не подключено устройство, вы получите сообщение об ошибке («Ошибка ввода / вывода»). Если драйвер для последовательного порта отсутствует, вы получите другую ошибку («Нет такого устройства»). Если узел устройства даже не существует, вы, конечно, получите «Нет такого файла или каталога».

    Если узел устройства существует, но у вас нет доступа к нему, вы получите сообщение об ошибке «Доступ запрещен». Если вы не используете root, или есть аппаратный терминал, подключенный к этому последовательному порту, и вы вошли в систему на этом терминале, вероятно, у вас нет разрешения на доступ к этому устройству.

    Предполагая, что устройство присутствует, если вы хотите получить к нему доступ как root, вам нужно запустить команду tee как root, например

     ls | sudo tee /dev/tty3a 

    Обратите внимание, что sudo ls | tee /dev/tty3a sudo ls | tee /dev/tty3a не будет работать, потому что он запускает только ls как root, команда tee не является аргументом sudo и работает как исходный пользователь. В этой команде труба создается исходной оболочкой, а вызов sudo составляет левую часть трубы. Если вы хотите запустить как ls и tee как root, вам нужно будет написать sudo ls | sudo tee /dev/tty3a sudo ls | sudo tee /dev/tty3a (с созданием трубы все еще в исходной оболочке). Если вы хотите запустить обе команды от имени root и выполнить настройку канала с правами root, вам нужно будет вызвать оболочку как root для настройки канала: sudo sh -c 'ls | tee /dev/tty3a' sudo sh -c 'ls | tee /dev/tty3a'

    ¹ Последовательные порты пронумерованы от 0.

    Пример, который вы нашли в книге, показывает, что вы можете писать на своем и другом экране терминала одновременно. Войдите в систему два раза на одном сервере и запустите w и вы получите что-то вроде:

     $ w USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT joe pts/1 :0 21:53 0.00s 0.04s 0.00sw joe pts/2 :0 22:38 3.00s 0.01s 0.01s /bin/bash 

    На первой консоли пишите:

     $ seq 3 | tee /dev/pts/1 

    и вы получаете двойной выход.

    Затем попробуйте на той же консоли

     $ seq 3 | tee /dev/pts/2 

    и вы получите тот же результат на обоих экранах.

    Это может быть полезно, если у вас много мониторов / консолей, которые вошли в систему, и вы хотите обновить их с одной консоли.

    Interesting Posts

    Удалите строку, если регулярное выражение существует только в 1-м столбце каждой строки в файле csv

    Почему жесткие ссылки на каталоги не разрешены в UNIX / Linux?

    просмотреть историю открытых программ Manjaro Linux

    Обратный порядок элементов с точками в строке

    linux для отображения деталей (например, PID, VID) подключенных устройств на последовательный порт (ы) (например, RS232) компьютера

    Поддерживается ли спрятанное дерево устройств в Sparc 32-порте ядра Linux?

    Создание отпечатков HPKP для всей цепочки сертификатов

    Multitail: прокрутка вверх

    Не удалось установить Mysql

    Как отключить завершение работы, чтобы не прерывать важный процесс?

    Клонировать жесткий диск при загрузке PXE

    Какой язык сценариев я могу использовать для автоматизации процесса конкатенации и копирования?

    Избегайте заполнения имен каталогов при смене буферов vim.

    Выделенное выделение CPU для зоны в Solaris 11

    awk: добавьте поле автоинкремента в файл

    Linux и Unix - лучшая ОС в мире.