С помощью перенаправления ввода/вывода мы можем перенаправить вывод одной программы в файл или на стандартный ввод другой программы.
Например, у вас не получается настроить сеть, и вы хотите перенаправить вывод команды ifconfig в файл, а затем разместить этот файл на форуме, где вам помогут разобраться с проблемой. А можно командой ps -ах перенаправить список всех процессов команде grep, которая найдет в списке интересующий вас процесс.
Рассмотрим следующую команду:
echo "some text " > file . txt
Символ > означает, что вывод команды, находящейся слева от этого символа, будет записан в файл, находящийся справа от символа, при этом файл будет перезаписан.
Чуть ранее мы говорили о перенаправлении вывода программы i fconfig в файл.
Команда будет выглядеть так:
ifconfig > ifconfig . txt
Если вместо > указано », то исходный файл не будет перезаписан, а вывод команды добавится в конец файла:
echo «some text» > file.txt
echo «more text» >> file.txt
cat file . txt
some text
more text
Кроме символов > и >> для перенаправления ввода/вывода часто употребляется вертикальная черта | .
Предположим, что мы хотим вывести содержимое файла Big_text:
cat Big_text
Но в файле Big_text много строк, они быстро проскочат по экрану, и мы ничего не успеем прочитать.
Следовательно, целесообразно отправить вывод команды cat какой-то программе, которая будет выводить файл на экран постранично, например:
cat Big_text I more
Конечно, этот пример не очень убедительный, потому что для постраничного вывода гораздо удобнее команда less:
less Big_text
Вот еще один интересный пример. Допустим, мы хотим удалить файл file.txt без запроса -для этого можно указать команду:
echo у I rm file.txt
Команда rm запросит подтверждение удаления (нужно было бы нажать клавишу <У>), но за нас это сделает команда echo.
И еще один пример. Пусть имеется большой файл, и нам нужно найти в нем все строки, содержащие подстроку 555-555. Чтобы не делать это вручную, можно воcпользоваться командой:
cat file . txt I grep "555-555"
Надеюсь, приведенная в этом разделе информация сделает вашу работу в командной строке максимально комфортной.
Добавить комментарий