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

Я новичок в Shell SCripting

Я кодирую это

  • Как предоставить глобальный доступ к файлу в частной папке?
  • Отображать только последние 10 (или n) строк длинного вывода команды
  • Перенос файлов из CentOS VM VirtualBox на хост-машину Windows
  • Как Linux знает местоположение файлов данных на диске
  • Каталоги реструктуризации в иерархию
  • Возможно ли, чтобы системный администратор прослушивал терминалы своих пользователей?
  • $ ls -l 1> stdout.txt 

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

     1> stdout.txt 

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

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

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

  • Как использовать команду grep для поиска всех URL-адресов в файле базы данных, кроме гиперссылок и http://www.example.com, и сохранить их в другом файле
  • Linux: команда set для локальных переменных
  • Динамически ссылаться на имя файла
  • Почему существует разница в длительности выполнения команды с различными методами перенаправления?
  • Замена Bash-процесса не работает как «root» на OS X
  • Хорошая или плохая практика? Перенаправление на stderr?
  • 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 - лучшая ОС в мире.