Під час виконання команд у терміналі, їхній результат зазвичай одразу відображається на екрані, що дозволяє миттєво його переглянути. Однак, іноді виникає потреба зберегти ці дані для подальшого аналізу або використання в поєднанні з іншими інструментами.
Для цього можна скористатися перенаправленням виводу командного рядка. Розглянемо, як направити результат виконання команди у текстовий файл у Windows, macOS та Linux.
Перенаправлення вихідних даних командного рядка до файлу
Існують два оператори, які дозволяють перенаправляти вивід команди у файл: >> та >. Важливо розуміти різницю між ними, щоб уникнути випадкової втрати інформації.
Оператор > створює новий файл або переписує існуючий, якщо він вже існує. Оператор >> також створює новий файл, якщо такого не існує, проте він не перезаписує вже існуючий. Якщо файл вже є, то текст буде додано в кінець цього файлу.
Щоб перенаправити вихідні дані команди до файлу, спочатку введіть команду, потім вкажіть оператор > або >>, а після цього шлях до файлу, куди потрібно зберегти вивід. Наприклад, ось як можна зберегти результат виконання команди `ls`, яка показує список вмісту каталогу:
ls > /шлях/до/файлу
Замініть `/шлях/до/файлу` на повний шлях до файлу, який ви хочете використовувати. Команда буде виконана без виведення результату на екран, а її результат буде збережено у вказаному файлі.
Для перегляду вмісту файлу в терміналі, можна скористатися командою `cat`. Знову ж таки, замініть `/шлях/до/файлу` на повний шлях до файлу, який ви хочете переглянути.
cat /шлях/до/файлу
Ви побачите результат виконання команди у новому файлі:
Оператор > замінює вміст існуючого файлу. Якщо ви хочете зберегти вивід кількох команд в один файл, використовуйте оператор >> натомість. Це дозволить додати вихідні дані до файлу, не втрачаючи попередньо збережену інформацію.
Наприклад, спробуйте додати інформацію про систему в кінець щойно створеного файлу. Запустіть команду `uname -a` в Linux/macOS або `ver` у Windows, та додайте оператор >> разом зі шляхом до файлу:
uname -a >> /шлях/до/файлу
Повторюйте цей процес скільки завгодно разів, щоб додавати вивід команд у кінець файлу.
Відображення виводу на екрані та одночасне його перенаправлення у файл
Оператори > та >> не показують результат виконання команди на екрані, вони просто відправляють його до файлу. Якщо ви хочете зберегти результат у файл та одночасно побачити його на екрані, скористайтеся командою `tee`.
Щоб використати команду `tee`, передайте їй вивід іншої команди через оператор каналу, який виглядає як вертикальна риска (|). Наприклад, ось як можна передати результат виконання команди `ls` до `tee` через канал:
ls | tee /шлях/до/output.txt
Команда `tee` відправить вивід на екран та до файлу, який ви вказали. При цьому, файл буде перезаписано або створено новий, якщо такого не існує, як і у випадку з оператором >.
Щоб використати команду `tee` для виводу на екран та додавання виводу в кінець файлу, додайте ключ `-a` перед шляхом до файлу, наприклад:
uname -a | tee -a /шлях/до/output.txt
Ви побачите вивід команди на екрані, і зможете переконатися за допомогою `cat`, що `tee` також додав його до файлу:
Використання можливостей командного рядка
Існує багато інших способів перенаправлення виводу, включаючи помилки, у файл. Завдяки можливостям командного рядка ви можете відстежувати активність системи, об’єднувати дані з різних джерел та виконувати багато інших корисних дій.
Окрім збереження виведених даних, в терміналі можна виконувати безліч інших операцій. Хоча процес вивчення команд може здатися складним, команди термінала є виразними, легко поєднуються та часто працюють швидше за альтернативи з графічним інтерфейсом.