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

Многих новичков Linux пугает своей сложностью, но стоит раскрыть потенциал его интерфейса командной строки (CLI), как становится ясно: это лучший друг программиста. Освоение простых, но эффективных команд Linux — от навигации по каталогам до работы с файлами и даже отладки — может радикально улучшить рабочий процесс.

Рассмотрим пять приемов работы с командной строкой, которые облегчат жизнь любому разработчику. Эти сочетания клавиш не просто удобны — они меняют ситуацию, экономят время и значительно повышают эффективность работы с терминалом.

1. Создание нескольких комбинаций папок с помощью mkdir и скобок {}

Организация файлов и каталогов — задача, часто выполняемая разработчиками, особенно при управлении проектами или создании сложных структур каталогов. Обычно создание нескольких каталогов связано с большим количеством повторяющегося набора текста. Однако эффективный прием работы с командой mkdir позволяет создать несколько каталогов за один раз с помощью скобок {}.

Проблема

Допустим, необходимо создать в проекте структуру папок для различных сред (разработки, тестирования и производства) для нескольких сервисов. Традиционно это делается вручную, что может выглядеть следующим образом:

mkdir dev
mkdir test
mkdir prod

По мере усложнения структуры усложняется и выполнение этой задачи. Оно может стать утомительным, если, к примеру, потребуются папки для backend— и frontend-сервисов во всех трех средах.

Решение: mkdir со скобками {}

Вместо отдельного создания каждого каталога, можно объединить весь процесс в одну команду с помощью mkdir и скобок {}. Это позволит эффективно создавать комбинации каталогов.

Например:

mkdir -p {dev,test,prod}/{backend,frontend}

Вот краткое описание происходящего:

  • флаг -p указывает mkdir создавать родительские каталоги по мере необходимости (т. е. он не будет выдавать ошибки, если родительские каталоги еще не существуют);
  • фигурные скобки {} позволяют указать несколько опций, которые mkdir автоматически объединит;
  • первый набор {dev,test,prod} создает каталоги для различных сред;
  • второй набор {backend,frontend} создает каталоги для различных сервисов.

Что здесь происходит?

При выполнении этой команды создается следующая структура папок:

dev/
backend/
frontend/
test/
backend/
frontend/
prod/
backend/
frontend/

Как этот лайфхак меняет ситуацию?

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

2. Возвращение с помощью cd — вместо повторного использования cd ..

Программисты нередко сталкиваются с работой в глубоко вложенных каталогах. Например, часто приходится перемещаться из корневого каталога проекта в подкаталоги для кода, конфигурационных файлов или журналов. Однако, когда приходит время вернуться назад, обратное перемещение вручную путем многократного ввода cd .. может вызвать фрустрацию и привести к ошибкам.

Проблема

Представьте, что вы работаете во вложенном каталоге, например:

/home/user/projects/webapp/src/frontend/components

Чтобы вернуться в корневой каталог проекта, обычно приходится набирать cd .. несколько раз:

cd ..
cd ..
cd ..
cd ..

Приведенные выше четыре отдельные команды позволяют вернуться в /home/user/projects/. Это не просто утомительно — можно легко потерять представление о том, откуда вы пришли.

Решение: cd —

Более простая и быстрая альтернатива — использование команды cd -. Она позволяет мгновенно вернуться в предыдущий каталог независимо от того, насколько глубоко вы зашли во вложенную структуру.

Как это работает

  • В отличие от cd .., команда cd - не перемещается вверх по дереву каталогов, а возвращает в последний каталог, в котором вы находились, почти как кнопка «Back» («Назад») в веб-браузере.

Допустим, вы начали работу в корневом каталоге проекта /home/user/projects/webapp/, затем перешли во вложенный каталог /home/user/projects/webapp/src/frontend/components. Чтобы вернуться, вместо набора cd .. несколько раз можно использовать:

cd -

И вы сразу вернетесь в /home/user/projects/webapp/.

Что здесь происходит?

Команда cd - сохраняет в памяти предыдущий каталог, поэтому при ее использовании текущий каталог заменяется последним. Это очень эффективный способ перемещения между двумя каталогами, особенно при переходе между рабочим каталогом и глубоко вложенным.

Практическое применение

Этот лайфхак особенно полезен при отладке или работе над несколькими частями проекта. Если вам нужно часто переключаться между корневым каталогом проекта и глубоким подкаталогом, cd - избавит вас от необходимости выводить длинные пути или переходить вверх шаг за шагом.

3. Быстрое создание нескольких файлов с помощью touch и диапазона чисел

Создание нескольких файлов, будь то тестовые файлы, заполнители или журналы, — обычная задача для разработчиков. Обычно каждый файл создается отдельно, но делать это вручную при необходимости в большом количестве файлов становится обременительно. К счастью, Linux предлагает способ создания нескольких файлов одной командой, используя touch и диапазон чисел в скобках {}.

Проблема

Представьте, что вам нужно создать 100 пронумерованных файлов для серии тестовых примеров, например test1.txttest2.txt, вплоть до test100.txt. Если делать это вручную с помощью отдельных команд touch, то код будет выглядеть примерно так:

touch test1.txt
touch test2.txt
touch test3.txt
...
touch test100.txt

Это утомительно и отнимает много времени. Но есть более эффективный способ!

Решение: touch с диапазоном чисел и скобками {}

Чтобы быстро создать несколько файлов за один раз, можно использовать команду touch с диапазоном чисел внутри скобок {}. Вот как это работает:

touch test{1..100}.txt

Что здесь происходит

  • Команда touch используется для создания новых файлов. Обычно мы используем ее следующим образом: touch filename.txt.
  • Добавив диапазон чисел внутри скобок {1..100}, указываем оболочке создать файлы, пронумерованные от 1 до 100.
  • В результате одной командой будут созданы файлы test1.txttest2.txttest3.txt — вплоть до test100.txt.

Пример

Разберем этот лайфхак на примере. Выполняем:

touch test{1..10}.txt

В каталоге создаются следующие файлы:

test1.txt
test2.txt
test3.txt
...
test10.txt

Как этот лайфхак меняет ситуацию?

Данный метод позволяет мгновенно генерировать несколько файлов, избавляя вас от необходимости вручную создавать каждый файл по отдельности. Это особенно полезно в случаях, когда нужны файлы-заполнители для тестирования или ведения журналов, а также при автоматизации процессов, требующих ввода нескольких файлов.

Практический пример использования

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

4. Обновление файлов в режиме реального времени с помощью tail -f

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

Проблема

Допустим, при работе над приложением нужно проконтролировать файл журнала error_file.log, чтобы отследить все новые ошибки, записываемые в журнал. Обычно используется команда tail, чтобы прочитать последние несколько строк файла, например:

tail error_file.log

Хотя эта команда позволяет получить текущее состояние файла, оно не обновляется в режиме реального времени. Если файл изменится, придется повторно выполнить команду, чтобы увидеть новые строки. Такой подход далеко не идеален, особенно при устранении неполадок в live-системах или мониторинге журналов на предмет событий в реальном времени.

Решение: tail -f для обновления в режиме реального времени

Использование команды tail -f позволяет отслеживать изменения в файле журнала по мере их возникновения. Это дает возможность видеть новые строки, добавленные в файл, без необходимости повторного выполнения команды.

tail -f error_file.log

Что здесь происходит

  • Команда tail сама по себе показывает последние 10 строк файла.
  • Опция -f означает «следовать», она позволяет держать терминал открытым и постоянно отображать новые строки по мере их добавления в файл.

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

Пример

Допустим, вы мониторите файл журнала веб-сервера, чтобы видеть входящие запросы и ошибки:

tail -f /var/log/nginx/access.log

По мере поступления новых запросов вы будете видеть их в терминале. Нет необходимости обновлять или повторно запускать команду — она постоянно мониторит файл на предмет обновлений.

Практическое применение

Одно из самых практичных применений tail -f — отладка. Представьте, что нужно найти причину периодически возникающих проблем в приложении. Отслеживая журнал ошибок приложения в режиме реального времени, можно увидеть новые сообщения об ошибках по мере их появления и немедленно принять меры.

Например, можно выполнить:

tail -f /var/log/app/error.log

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

Бонусный лайфхак: комбинируйте tail -f с grep

Чтобы мониторить файл журнала в режиме реального времени, обращая внимание только на определенные записи, можете объединить tail -f с grep. Например:

tail -f error_file.log | grep "ERROR"

Эта команда покажет только строки, содержащие слово «Error» («Ошибка»), что поможет вам отфильтровать вывод журнала для получения необходимой информации.

5. Просмотр последних команд с помощью history 5

Программисты во время работы часто повторяют определенные команды — будь то компиляция кода, управление файлами или перезапуск сервисов. Вспомнить точный синтаксис команды, использованной ранее, или проследить за выполненными действиями порой непросто, особенно при многочасовой работе в терминале.

К счастью, Linux отслеживает каждую команду, выполняемую в течение сессии. Команда history позволяет просмотреть список ранее выполненных команд, поэтому ее использование может сэкономить много времени и сил.

Проблема

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

Решение: history 5 для запоминания последних команд

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

Например:

history 5

Это отобразит 5 последних выполненных команд, что позволит быстро вспомнить и повторно выполнить их.

Что здесь происходит

  • Команда history выведет всю историю команд, использованных в течение сессии.
  • Добавление числа (например, history 5) ограничивает вывод пятью последними командами, что позволит сосредоточиться только на нескольких последних выполненных задачах.

Допустим, последними пятью командами были:

  123  ls
124 cd src/
125 mkdir newdir
126 touch newfile.txt
127 history 5

Запуск history 5 отразит:

  123  ls
124 cd src/
125 mkdir newdir
126 touch newfile.txt
127 history 5

В чем польза этого лайфхака

Если вы забыли, как выполняли ту или иную команду, history спасет вас от необходимости разбираться в этом заново. Этот прием также помогает вспомнить сложные команды, например, с длинными флагами или опциями, которые не хочется набирать по памяти.

Практический пример использования

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

history 5

Полученный список из пяти последних команд позволит легко вспомнить и повторно выполнить любую из них с минимальными усилиями.

Бонусный лайфхак: повторное выполнение команд

Можно быстро повторно выполнить любую команду из истории, используя восклицательный знак (!), за которым следует номер команды. Например, чтобы повторно выполнить команду mkdir newdir, описанную выше (номер команды 125), достаточно просто набрать:

!125

Этот прием избавляет от необходимости набирать всю команду заново и может существенно сэкономить время, особенно при работе с длинными командами.

Заключение

Освоить интерфейс командной строки Linux необходимо каждому разработчику, поэтому рассмотренные здесь инструменты могут стать незаменимыми в вашем арсенале. Эти пять методов — от эффективного управления файлами и папками до навигации по каталогам и запоминания команд — значительно упростят рабочий процесс и повысят производительность. Вспомним напоследок их предназначение:

  • mkdir со скобками: создание нескольких папок за один раз;
  • cd -: быстрый переход к предыдущему каталогу;
  • touch с диапазоном чисел: создание нескольких файлов за один раз;
  • tail -f: отслеживание файлов журнала в реальном времени;
  • history 5: вызов и повторное выполнение недавних команд.

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

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи CyCoderX: 5 Linux Command Tricks That Will Change Your Life as a Programmer

Предыдущая статьяТоп-10 типичных ошибок при реализации паттерна MVVM в Android 
Следующая статьяУсловия в CSS: что делать, если они нужны уже сейчас?