Уроки модуля (1/2)
Вывод и перенаправления (echo, cat, >)
В Linux почти все команды считывают данные из входного потока и записывают результаты в выходной поток. Эти каналы называются стандартными потоками:
- Стандартный ввод (stdin): поток, из которого команда считывает вводимые данные (по умолчанию — клавиатура).
- Стандартный вывод (stdout): поток, в который команда записывает успешный вывод (по умолчанию — экран терминала).
- Стандартная ошибка (stderr): поток, в который команда записывает сообщения об ошибках (по умолчанию — экран).
Используя командную строку, мы можем перенаправить эти потоки для сохранения результатов непосредственно в файлы.
Печать текста: echo
Команда echo просто записывает свои аргументы на стандартный вывод (экран):
echo "Hello everyone"Перенаправление вывода (перезапись): >
Если вы хотите сохранить вывод команды в файл, а не отображать его на экране, вы можете использовать оператор перенаправления «больше чем» >:
echo "Hello everyone" > greetings.txtЭта команда запускает echo и перенаправляет выходные данные в файл greetings.txt.
[!ВАЖНО] Если файл
greetings.txtне существует, он создается. Если он уже существует, его существующее содержимое полностью удаляется и заменяется новым выводом.
Чтение содержимого файла: cat
Чтобы просмотреть содержимое одного или нескольких текстовых файлов на лету, используйте команду cat (сокращение от concatenate):
cat greetings.txtДобавление вывода: >>
Если вы хотите добавить новые строки в конец существующего файла, а не перезаписывать его, вы должны использовать оператор добавления >>:
echo "New line of text" >> greetings.txtТеперь при чтении файла с помощью cat greetings.txt будут показаны как первая, так и вторая строки.
Примеры использования и распространенные ошибки
Вы можете передать несколько файлов в cat одновременно, чтобы отображать их последовательно (объединено):
cat notes.txt info.txt
# Output:
# Keep learning Linux!
# Linux is awesome.Вы можете перенаправить объединенный вывод в третий файл с помощью оператора >:
cat notes.txt info.txt > combined.txtЕсли вы попытаетесь прочитать несуществующий файл, cat напишет сообщение об ошибке:
cat nonexistent_file.txt
# Output:
# cat: nonexistent_file.txt: No such file or directoryПопробуйте сами
Упражнение 1. Создайте файл с приветствием
Создайте файл с именем «hello.txt», содержащий именно текст «Hello World», используя echo и оператор >.
Показать подсказку
Используйте echo, за которым следует строка в кавычках, оператор > и hello.txt.
Решение доступно после 3 попыток
Упражнение 2. Добавление заметок в файл
Добавьте строку «Linux — это весело» в конец существующего файла «notes.txt», не удаляя его текущее содержимое.
Показать подсказку
Используйте оператор >>, чтобы добавить текст в файл Notes.txt.
Решение доступно после 3 попыток
Упражнение 3. Объединение файлов
Объедините содержимое файлов «notes.txt» и «info.txt» и сохраните объединенный вывод в новый файл с именем «combined.txt».
Показать подсказку
Используйте cat, за которым следуют имена двух исходных файлов, и перенаправьте вывод с помощью > в файл назначения.
Решение доступно после 3 попыток