Стандартные дескрипторы файла ввода-вывода

Я новичок в Shell SCripting

Я кодирую это

$ ls -l 1> stdout.txt 

и я получаю результат по желанию,

 1> stdout.txt 

перенаправляет вывод из стандартного вывода в файл stdout.txt.

Я не вижу такого файла на диске. Какая файловая система поддерживает такие файлы, это ramfs ?

Имеет ли это какое-либо сходство с procfs и sysfs ?

  • Есть ли способ читать строки из вывода команды?
  • не может получить доступ к стандартным выводам из команды
  • fg a bg, потому что вы забыли перенаправить вывод в / dev / null
  • Значение bash -i> & / dev / tcp / HOST / PORT 0> & 1?
  • su и перенаправление
  • Это UUOC (бесполезное использование кошки) для перенаправления одного файла на другой?
  • Как мне прийти с этим pty и что я могу с ним сделать?
  • Итерации над выходом команды в bash без подоболочки
  • One Solution collect form web for “Стандартные дескрипторы файла ввода-вывода”

    Если вы работаете в Linux, и я правильно прочитал ваш вопрос, да посмотрите в /proc .

    Для конкретного процесса смотрите /proc/[pid]/fd , например ls -l /proc/123/fd/

    Существует также специальный способ достижения текущего процесса fd: /proc/self/fd .

    Обратите внимание: например, ls -l /proc/self/fd будет для процесса ls а не для вашей текущей оболочки, которую вы можете увидеть:

     cat /proc/self/cmdline | tr '\000' '\n' 

    или

     cat /proc/self/status 

    Для последнего взгляда особенно в PPid который должен быть PID вашей оболочки.

     Name: cat State: R (running) Tgid: 12696 Pid: 12696 PPid: 312 

    В качестве эксперимента вы можете попытаться открыть два окна терминала:

    1. В окне 1 введите echo $$ чтобы получить PID этой оболочки.
    2. В окне 2 скажем, cat /proc/[pid]/fd/1
    3. В окне 1 начните вводить и наблюдайте, что происходит в окне 2.

    • / proc на kernel.org
    • proc на TLDP
    • Файловые системы на man7.org
    Linux и Unix - лучшая ОС в мире.