мы продолжим наше обсуждение и посмотрим, как перенаправить вывод команды в файл.
краткое изложение каждой выполняемой команды имеет три потока данных, подключенных к ней std или стандартный ввод
или стандартный вывод и stdlr или стандартная ошибка обычно, когда мы запускаем комментарий, мы хотите видеть
вывод на экране в терминале, это удобно в большинстве случаев, но иногда мы
можем захотеть сохранить его в файл, чтобы сохранить его для записи, передать его в другую программу или отправить
кому-то еще, чтобы перенаправить вывод команды в файл есть оператор перенаправления вывода,
который является знаком больше, чем он указывает на комментарий, что мы хотим, чтобы вывод был сохранен в
файле, а не выводился на экран, давайте посмотрим пример, и мы начнем с простой
я запускаю команду ls, которая, как и ожидалось, распечатала вывод на экране,
теперь я собираюсь использовать направление скорости вывода, чтобы сохранить его в файл ls минус l больше, чем ls.txt,
давайте поговорим о том, что имеет произошло больше чем знак которая является
оператор перенаправления вывода перенаправил вывод в файл вместо его печати на экране
увидеть, как новый файл с именем ls.txt был создан в текущем рабочем каталоге
и вы заметили, что мы не должны создать файл перед сохраняя его, он был создан
автоматически, если я отображу его содержимое, я найду там вывод команды ls,
теперь давайте посмотрим, что произойдет, если мы снова перенаправим его в тот же файл, я перенаправляю вывод
другой команды в тот же файл я перенаправлю вывод ifconfig, поэтому ifconfig больше, чем
и имя файла, и я перечисляю содержимое файла cat ls.txt, и вы заметили что-то очень
важное: файл был перезаписан, вывод первой команды больше не существует поэтому вы можете
сделать вывод, когда использование выходной категории придется в случае сценариев, когда файл создается,
если он не существует, или он перезаписывается, если он уже существует, если мы не хотим перезаписывать
файл, мы можем вместо этого добавить или добавить к th e конец файла с помощью оператора double больше, чем
давайте снова запустим те же команды ls минус l больше, чем так, перенаправление вывода output.txt
и ifconfig вдвое больше, чем output.txt и cat output.txt это содержимое файла, которое
мы видим вывод обеих команд вывод второй был добавлен к файлу,
это большая разница, и важно, давайте посмотрим еще один пример, который
вдвое больше, чем оператор и users.txt, конечно, этот файл не существует,
поэтому вдвое больше Оператор than создает файл, если он не существует, или добавляет
к нему, если он уже существует до сих пор. В квесте я много раз говорил, что все является файлом
в Linux или рассматривается как файл, чтобы подчеркнуть эту концепцию, я покажу вы, как даже терминал
рассматривается как файл, чтобы увидеть файл за терминалом, запустите команду tty
tty, и мы замечаем, что файл это файл, который он называется xero, в каталоге pts, который находится в dev,
я открываю другой терминал и я Я перенаправляю вывод на f команда для файла, который
представляет другой терминал, например ifconfig больше, чем слэш dev pts и 0.
Очень хорошо, мы видим, как вывод команды
был записан в файл, представляющий терминал, и появился в первом терминале,
это похоже на базовый обмен мгновенными сообщениями, как этот привет, как у вас
строка появилась в другом терминале
, так как команда echo просто отображает строку текста,
давайте продолжим и поговорим о перенаправлении ошибок три потока текст в любую команду Linux на
самом деле имеет номера, связанные с их вы видите числа в круглых скобках stde double
r или стандартная ошибка - это поток номер два, и мы используем эти числа для идентификации потоков,
если мы поместим число перед оператором больше, тогда он перенаправит этот поток,
если мы не будем использовать число как мы это делали до сих пор, тогда по умолчанию используется потоковая передача, которая является
стандартным выводом, давайте посмотрим несколько примеров.Я запускаю команду, которая вернет
хвост ошибки минус n3 косая черта и т. д. shado w в разрешении отказано непривилегированный пользователь не может видеть файл,
чтобы перенаправить сообщение об ошибке в файл, я буду использовать два, которые являются идентификатором std double r
и оператором больше чем, так что больше, чем в файле error dot txt,
это не разрешено помещать любое пространство между 2 и больше, чем это запрещено, и cat error.txt
мы замечаем, как ошибка была перенаправлена ​​в файл, который также был создан, потому что
на самом деле он не существовал, те же правила перенаправления вывода применяются к перенаправление ошибок
также, если вы хотите добавить в файл вместо его перезаписи, используйте 2 и оператор
двойного больше, чем знак, я снова выполняю ту же команду, на этот раз, используя 2 и двойной знак,
как этот, и cat error.txt сообщение об ошибке было добавлено в конец файла,
это еще одна ошибка, в два раза превышающая error.txt,
она была добавлена ​​к файлу; также возможно перенаправить как обычный вывод, так и сообщения об
ошибках той же команды, которые может выдать одна и та же команда обе нормальный вывод и ошибки,
например, хвост минус n2 и т. д. пароль и второй файл второй аргумент, это
тень, он напечатал последние две строки первого файла,
это строки, но ошибка для второго файла, ему не разрешено читать файл
и я перенаправляю вывод в файл с именем output.txt, а ошибки - в error.txt
файлы были созданы или перезаписаны, это результат, и это ошибка,
хорошо, в следующем примере я покажу вам, как перенаправить оба стандартный вывод и
стандартная ошибка в тот же файл, что я сделаю, это перенаправлю стандартный вывод в файл
и стандартную ошибку на стандартный вывод, поэтому я снова запускаю команду,
это комментарий, который я перенаправляю стандартный вывод в output.txt
и стандартная ошибка для стандартного вывода амперсанд, один из которых является идентификатором стандартного вывода
cat output.txt обратите внимание, что файл содержит как вывод, так и ошибки,
одно замечание здесь мы перенаправили в поток, поместив амперсанд перед номером потока
иначе это перенаправили бы в файл с именем one, теперь стандартная ошибка
была перенаправлена ​​в файл с именем one, поэтому этот амперсанд здесь очень важен,
вы также можете комбинировать перенаправление команды с каналами, давайте посмотрим на пример,
давайте отфильтруем строку, содержащую MAC-адрес используя канал, поэтому ifconfig pipe
grep ether, это MAC-адрес, и я хочу видеть строки, содержащие строку ether,
отлично, мы видим вывод, и я сохраню вывод в файл, больший, чем mac.txt,
вывод кстати, команда была сохранена в файл, а не напечатана в терминале,
если вы просто хотите получить MAC-адрес без дополнительных строк, вы можете попробовать,
я использую второй отрезок трубы минус да пробел между двойными кавычками
минус f10, это Mac адрес, и я перенаправляю его в файл
, так как я ввел новую команду, которая вырезает,
она вырезает разделы из каждой строки, используя разделитель полей, в этом случае
пробел и раздел или номер поля, чтобы вырезать в этом пример это было 10,
потому что до поля, которое я хотел вырезать, есть 10 пробелов, это был MAC-адрес, просто чтобы
привыкнуть к команде вырезания, вы можете попробовать другой простой пример, давайте рассмотрим файл паролей,
и я хочу вырезать первое поле, которое представляет пользователей используя двоеточие в качестве разделителя,
поэтому вырежьте минус d двоеточие минус f1 в конце первого поля,
и мы увидим только пользователей,
или я вырежу идентификатор пользователя, который является третьим полем,
хорошо, давайте продолжим, что мы можем сделать, если в том же когда мы хотим сохранить и просмотреть вывод
любого комментария, если я использую команду перенаправления, вывод будет перенаправлен в файл без
отображения его в терминале, например, кто больше, чем users.txt, я не вижу, что вывод
здесь входит в Воспроизведите команду t, ее имя происходит от разделителя t, используемого в водопроводе, он в основном
прерывает вывод программы, чтобы ее можно было как отображать, так и сохранять в файле, давайте посмотрим
на пример, у меня есть config pipe grep ether, это отображает вывод только на экране
и эта запятая nd сохраняет вывод только в файл, мне нужна комбинация этих двух комментариев,
поэтому вместо использования категории вывода я буду использовать другой канал, и
эта команда с помощью команды t записывает вывод как на экран, так и в файл, который
я хочу, чтобы вы увидели, что будет создан новый файл, это результат на экране, а catm.txt
тот же результат был сохранен в файл по умолчанию команда t перезаписывает файл, который
вы можете указать t добавить в файл используя параметр минус a, как в следующем примере
ho pipe t минус m.txt и cat m.txt, вывод был добавлен в конец файла,
и вы также можете записать вывод в несколько файлов, а затем - версия ядра, ваше имя
минус r это работающая версия ядра pipe t минус mac dot txt и kernel dot txt
ой, извините, я забыл комментарий, поэтому вы называете минус ru имя минус r
и pipe t минус a и файлы, выводимые на экран и добавлен к обоим файлам,
спасибо, что все об отзыве команды и pipi нг