Перенаправление ввода-вывода в Ubuntu

режим восстановления в Ubuntu Изучение

В Linux у каждого процесса есть три канала связи: стандартный ввод, стандартный вывод и стандартная ошибка. Эти каналы связи помогают пользователям взаимодействовать с процессами в системе Linux. Канал связи стандартного ввода (STDIN) принимает ввод от пользователя через терминал в виде команды, а затем после обработки команды ядром Linux терминал отображает результат через стандартный вывод (STDOUT) или стандартную ошибку (STDERR). канал. Стандартный вывод (STDOUT) или стандартная ошибка (STDERR) одной команды могут быть перенаправлены как стандартный ввод (STDIN) для другой команды с помощью перенаправления ввода-вывода «>», и аналогично стандартный ввод (STDIN) может быть перенаправлен в качестве стандартного вывода (STDOUT) для другой команды, использующей перенаправление ввода-вывода «<».

Стандартный ввод

Стандартный ввод или STDIN — это команда, которую мы вводим в нашем терминале для взаимодействия с ядром Linux.

Ubuntu@Ubuntu:~$ ls -la

В приведенном выше примере «ls -la» — это стандартный ввод или STDIN.

Стандартный вывод

Стандартный вывод или STDOUT — это вывод запущенного процесса или команды, переданный ядру Linux через стандартный ввод и отображаемый на терминале. Например, приведенный выше, вывод будет похож на

Ubuntu@Ubuntu:~$ ls -la
…snip…
-rwxr-x—  1 Ubuntu Ubuntu       89 Jan  4  2021  arith.sh
-rw-r—r—  1 Ubuntu Ubuntu   3771 Jun  3  2020  .bashrc
drwx—— 28 Ubuntu Ubuntu   4096 Aug  1 13:10  .cache
drwxr-xr-x 36 Ubuntu Ubuntu    4096 Jul 29 18:30  .config
drwx——  3 Ubuntu Ubuntu    4096 Nov 18  2020  .dbus
drwxr-xr-x  5 Ubuntu Ubuntu    4096 Jul 30 16:28  Desktop
drwxr-xr-x 13 Ubuntu Ubuntu   12288 Jul 28 19:53  Downloads
…snip…

Каждый вывод имеет заранее определенное место по умолчанию в операционных системах на основе Unix. Некоторые методы перенаправления вывода приведены ниже.

  • Стандартное перенаправление вывода «>»
  • Стандартное перенаправление ввода «<»
  • Стандартное перенаправление ошибки «2>»
  • Стандартный вывод и перенаправление ошибок «&>»
  • Стандартное перенаправление вывода «>>»
  • Стандартное перенаправление ввода «<<»
  • Перенаправление с помощью конвейеров «|»
Читайте также:  Что такое фабричные функции в JavaScript?

Стандартное перенаправление вывода «>»

Перенаправление вывода — это метод, при котором стандартный вывод команды может быть перенаправлен в файлы или как стандартный ввод для другой команды. Знак «>» используется для перенаправления вывода. Терминал не показывает вывод; вместо этого он записывается в файл или перенаправляется в качестве входных данных для другой команды. Например

Ubuntu@Ubuntu:~$ echo Hello World > file.txt

ИЛИ

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames > packegNames

Вместо вывода, отображаемого на терминале, он будет перенаправлен в файл file.txt или pakegsNames. Чтобы подтвердить, был ли перенаправлен вывод, используйте команду cat для чтения файлов.

Ubuntu@Ubuntu:~$ cat file.txt

Ubuntu@Ubuntu:~$ cat pakegName

Этот оператор «1>» также используется для перенаправления стандартного вывода.

Стандартное перенаправление ввода «<»

Перенаправление ввода — это метод, при котором стандартный ввод команды перенаправляется из файла или стандартный вывод другой команды. Знак «<» используется для перенаправления ввода. В основном это действие команды по умолчанию. Например

Ubuntu@Ubuntu:~$ less < /etc/passwd

То же самое, что и этот.

Ubuntu@Ubuntu:~$ less  /etc/passwd

Он принимает ввод из файла / etc / passwd вместо клавиатуры. Знак «0 <» также можно использовать для перенаправления стандартного ввода.

Стандартное перенаправление ошибок «2>»

С помощью метода перенаправления стандартные ошибки могут быть перенаправлены и записаны в файл. Например

Ubuntu@Ubuntu:~$ sudo apt-get update 2> error

Если произойдет какая-либо ошибка, она не будет отображаться в окне терминала; скорее, он будет сохранен в файле ошибок. Если файл с ошибкой уже существует, он будет перезаписан.

Стандартный вывод и стандартное перенаправление ошибок «&>»

Знак «&>» означает более эффективный способ перенаправления стандартного вывода и стандартной ошибки одновременно со знаком «&>». Например

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames &> pkgnames

Все имена пакетов и ошибки будут храниться в файле pkgnames.

Стандартное перенаправление вывода «>>»

Этот метод перенаправления перенаправляет стандартный вывод команды или файла в другой файл. Разница заключается в использовании перенаправления «>>». Если файл уже существует, данные будут добавлены к файлу; следовательно, файл не будет перезаписан.

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames >> pkgnames

Если файлы pkgnames уже существуют, его содержимое не будет перезаписано; скорее вывод будет добавлен в конец файла.

Стандартное перенаправление ввода «<<»

Этот метод перенаправления считывает ввод пользователя с терминала и затем добавляет его в файл.

Ubuntu@Ubuntu:~$ cat pkgnames << pkgnames
> ubuntu
> chrome
> pkgnames

Если файлы pkgnames уже существуют, его содержимое не будет перезаписано.

Перенаправление с помощью каналов «| »

Каналы часто используются, когда вы хотите объединить несколько команд. В случае каналов вывод первой команды может использоваться как ввод второй команды. Например

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames | less

В приведенной выше команде стандартный вывод команды оставлен вертикальной чертой «|» знак — стандартный ввод команды справа от вертикальной черты «|» знак.

Объединение операторов перенаправления

Вы можете комбинировать некоторые операторы перенаправления, потому что они удобны в использовании и занимают меньше времени; некоторые из комбинированных операторов перенаправления приведены ниже.

2 >>: Этот оператор используется для перенаправления стандартных ошибок в файл.
<>: Этот оператор используется для указанных файлов как для стандартного ввода, так и для стандартного вывода.
> &: Этот оператор перенаправляет вывод одного файла в другой.
<&: Этот оператор перенаправляет ввод одного файла в другой.
2> & 1: Этот оператор используется для перенаправления стандартной ошибки на стандартный вывод.
1> & 2: Этот оператор используется для перенаправления стандартного вывода на стандартную ошибку.

Вывод

Для администратора Linux перенаправление ввода-вывода — очень распространенная процедура в повседневной работе. Сохранение вывода и ошибок для последующего использования и объединение нескольких команд упрощают вашу работу и сокращают время, чтобы вы могли работать усердно и эффективно. Выше приведены несколько советов, которые помогут вам понять перенаправления ввода-вывода.

Оцените статью
bestprogrammer.ru
Добавить комментарий