Интерфейс командной строки — это альфа и омега для большинства технарей, особенно для разработчиков и сисадминов. Чем бы вы ни занимались — скриптами, конфигурацией серверов или автоматизацией задач, — команды Linux сэкономят вам часы рабочего времени. Но если только вы умеете грамотно с ними обращаться.
Поначалу Linux многих обескураживает, но как только вы разберётесь с интерфейсом командной строки (CLI), вы поймёте, что это лучший друг программиста. Простые, но эффективные команды Linux могут заметно улучшить любые рабочие процессы — от навигации по каталогам до манипуляции с файлами и даже исправления ошибок.
В этой статье я расскажу вам о пяти командах, упрощающих жизнь разработчика. Это не просто удобные приёмы, которые не помешало бы знать. Эти команды сэкономят вам время и значительно повысят эффективность взаимодействия с терминалом.
Создаём несколько папок с помощью 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/
В чём хитрость
Этот метод значительно экономит время и сокращает вероятность ошибки из-за человеческого фактора, особенно если вам нужно настроить большой проект со сложными структурами папок. Все сочетания можно задать в одной лаконичной команде, а не набирать каждую комбинацию вручную.
Возвращаемся назад с помощью cd -, а не повторяем команду cd ..
Программистам часто приходится работать с глубоко вложенными каталогами. Например, вы переносите код, файлы конфигурации или логи из корневого каталога проекта в подкаталоги. И когда вам нужно вернуться туда, откуда вы начали, приходится вручную постоянно набирать cd ..
. Этот процесс раздражает и может привести к ошибкам.
В чём проблема
Представьте, что вы работаете во вложенном каталоге:
/home/user/projects/webapp/src/frontend/components
Чтобы вернуться в корневой каталог проекта, обычно приходится несколько раз вводить cd ..
:
cd ..
cd ..
cd ..
cd ..
Целых четыре команды, чтобы просто вернуться в /home/user/projects/
. Согласитесь, это утомительно, и можно элементарно сбиться со счёта.
Решение: cd -
Есть простая и быстрая альтернатива — команда cd -
. Она мгновенно возвращает в предыдущий каталог, как бы глубоко вы ни спустились по вложенной структуре.
Как это работает
Команда cd -
не переходит вверх по дереву каталога, как команда cd ..
. По ней вы возвращаетесь в последний каталог, в котором были. Это почти как кнопка «Назад» в браузере.
Допустим, вы начали с корневого каталога проекта /home/user/projects/webapp/
и перешли во вложенный каталог /home/user/projects/webapp/src/frontend/components
. А потом несколько раз набрали cd ..
. Но можно вернуться назад, просто напечатав:
cd -
И вы тут же попадаете в /home/user/projects/webapp/
.
Что под капотом
Команда cd -
запоминает предыдущий каталог, так что она быстро перекидывает вас из актуального каталога в предыдущий. Очень удобно перемещаться между двумя каталогами, особенно когда перепрыгиваешь между рабочим и глубоко вложенным каталогом.
Как это применять на практике
Этот приём особенно полезен, когда вы занимаетесь отладкой или переходите из одной части проекта в другую и обратно. Если вам нужно часто переключаться между корневым каталогом и глубоко вложенным подкаталогом, cd -
избавляет от необходимости печатать длинный путь к файлу или пробираться в нужный каталог шаг за шагом.
Быстро создаём несколько файлов с помощью touch и диапазона чисел
Разработчикам часто приходится создавать несколько файлов, например, когда они генерируют тестовые файлы, плейсхолдеры или логи. Создать один файл недолго, а вот создавать файл за файлом довольно нудно. К счастью, в Linux можно создавать несколько файлов с помощью одной команды touch
и диапазона чисел в скобках {}
.
В чём проблема
Допустим, вам нужно создать 100 нумерованных файлов для серии тестовых сценариев: test1.txt
, test2.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}
, вы даёте командному интерпретатору Shell задачу, что нужно создать файлы с номером от 1 до 100.В результате с помощью одной команды создаются файлы
test1.txt
,test2.txt
,test3.txt
вплоть доtest100.txt
.
Пример
Давайте разберёмся. Выполняем команду:
touch test{1..10}.txt
В каталоге создаются следующие файлы:
test1.txt
test2.txt
test3.txt
...
test10.txt
В чём хитрость
Этот метод позволяет мгновенно генерировать несколько файлов, а не создавать их вручную один за другим. Больше всего это подходит для сценариев, когда для тестирования или ведения логов нужны файлы-плейсхолдеры, или выполняется автоматизация процессов, для которых на входе нужно много файлов.
Как это применять на практике
С помощью этого приёма можно быстро генерировать файлы лога для тестирования приложения, которое обрабатывает много файлов. Создавайте их одной командой, а не вручную файл за файлом. Таким образом вы высвободите время для написания и тестирования кода.
Обновление файлов в реальном времени с помощью команды tail -f
Программисты часто имеют дело с логами, особенно если они специализируются на бэкенд-системах. Опираясь на данные из логов, разработчики ищут ошибки, анализируют поведение системы или занимаются отладкой. В этом случае неэффективно снова и снова перебирать логи вручную. К счастью, команда tail
в реальном времени автоматически следит за обновлениями, показывая только что произошедшие изменения.
В чём проблема
Допустим, вы работаете над приложением, и вам нужно отслеживать новые ошибки, которые заносятся в лог error_file.log
. Обычно для чтения последних нескольких строк файла используется команда tail
:
tail error_file.log
Хотя таким образом вы получите представление об актуальном состоянии файла, эта команда не выполняет обновление в реальном времени. Чтобы увидеть новые строки с изменениями, команду нужно повторить. Это неудобно, особенно если вы устраняете неисправности в работающей системе или мониторите логи событий в реальном времени.
Решение: tail -f отслеживает обновления в реальном времени
С командой tail -f
вы будете сразу же узнавать об изменениях в логе. Вам не придётся повторять команду, чтобы увидеть, появились ли в файле новые строки.
tail -f error_file.log
Как это работает
Команда
tail
показывает последние 10 строк файла.Параметр
-f
означает follow — в этом случае терминал остаётся открытым и непрерывно показывает новые строки файла по мере их появления.
Это особенно полезно при мониторинге лога во время выполнения приложения, поскольку сообщения об ошибках или результаты работы можно видеть в реальном времени.
Пример
Скажем, вы следите за входящими запросами и ошибками в логе веб-сервера:
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: таким образом вы отфильтруете в результатах лога нужную информацию.
Просматриваем недавние команды с помощью history 5
Разработчикам часто приходится повторять определённые команды, например, во время компиляции кода, работы с файлами или перезапуска сервисов. Не так-то просто держать в памяти синтаксис уже выполненной команды или совершённые действия, особенно если вы работаете в терминале уже несколько часов.
На радость нам Linux отслеживает каждую команду в течение сессии. Команда history
показывает список выполненных команд, и с её помощью можно сэкономить силы и время.
В чём проблема
Допустим, вы уже не первый час работаете и выполняли сложную команду grep
или find
. И знаете, что вам нужно будет использовать её несколько раз. Трудно запомнить точный синтаксис, так что приходится тратить время, вручную выискивая его в терминале.
Решение: history 5, запоминающая последние команды
Команда history
показывает список команд, выполненных ранее в текущей сессии Shell. По умолчанию она показывает историю всех команд, но число отображаемых команд можно ограничить.
Например:
history 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
вызывает последние команды для повторного выполнения.
Чтобы расти, нужно выйти из привычной зоны и сделать шаг к переменам. Можно изучить новое, начав с бесплатных занятий:
Frontend-разработка: основы HTML, CSS и JavaScript;
Продакт-менеджер: практическое погружение в профессию;
Soft Skills: как мягко добиваться карьерных целей.
Или открыть перспективы и получить повышение с профессиональным обучением:
Комментарии (83)
Volkodlak
27.12.2024 07:36Какие ж это хитрости, это база
adeshere
27.12.2024 07:36Да, это база... но я вот живу в Винде, и навскидку не назову аналоги этих команд. Кроме разве что cd \ в корень или стрелочек для пролистывания истории. Когда мне надо сделать что-то выходящее за рамки файл-менеджера, я пишу bat-ник, а затем в редакторе размножаю и правлю "тупые" команды. Все лучше, чем набирать их вручную.. однако я бы не отказался от подобной "шпаргалки для чайников". Когда комстрока нужна раз в два месяца, курить справку впрок не слишком-то продуктивно (все равно все забудешь). Если же она вдруг срочно понадобилась, проще обычно использовать привычные инструменты, чем гуглить что-то более оптимальное. И вот в этот момент такая заметка-ликбез в закладках вполне может оказаться не лишней. Например, несмотря на массу материалов по регуляркам (которых я тоже не знаю, т.к. они мне нужны раз в полгода), я обращаюсь за справкой не к поисковым системам, а к прочитанным ранее хабростатьям.
Поэтому я бы не стал ругаться на такие заметки. И особенно на комменты с полезными дополнениями. Хотя систематизация материала в статье и его полнота, с моей точки зрения чайника, все-таки явно не идеальны. Даже какой-то диссонанс с названием возникает...
feelamee
27.12.2024 07:36кроме "прекрасного" powershell из комментариев выше, есть например nushell.
Очень неплох, хотя до fish по дружелюбности не дотягивает
saboteur_kiev
27.12.2024 07:36Да, это база... но я вот живу в Винде
Лайвхак:
ставишь git for windows, и получаешь рабочий git-bash и рабочие shell скрипты.
Или вообще запускаешь WSL и там скрипты еще и работают почти также по перформансу.
Заметки бездарные, потому что это блин ну вообще первичная основа.
Проблема винды в том, что изначально она не разрабатывала командную строку вообще, а bat/cmd был просто ужасно простой по сравнению со всеми другими консольными оболочками тех лет.
А потом резко перешла на обратно несовместимый монструозный powershell.
В результате нет истории наработок за 30-40-50 лет, как в shell
Ergistael
27.12.2024 07:36cd -
bash: cd: Не задана переменная OLDPWDmavir
27.12.2024 07:36Очевидно, что Вы еще в текущей сессии не переходили в другой каталог
Ergistael
27.12.2024 07:36Да, действительно, спасибо. Правда, ценность этой команды для меня все равно сомнительна: если я перехожу в каталог не "прыжком", а последовательно, то "cd -" ведет себя аналогично "cd ..". Возможно, это полезно для переключения между двуме ветками.
JBFW
27.12.2024 07:36Есть еще замечательная кнопка TAB:
cd pro-TAB-jects/wo-TAB-rk_directory/-TAB-[images,scripts]-i-TAB-mages/....
И в одну команду переходите куда надо. А потом возвращаетесь в одну команду.
artptr86
27.12.2024 07:36Моя жизнь осталась прежней
MAXH0
27.12.2024 07:36Попробуйте dd if=/dev/zero of=/dev/sda bs=512 count=1 для полноты ощущений ;)
RedEyedAnonymous
27.12.2024 07:36Вспомнился древний 128-байтовый троян времён DOS, зацикливавший таблицу разделов.
SquareRootOfZero
27.12.2024 07:36(занеся палец над Enter) А чо будет-то?...
Wesha
27.12.2024 07:36Да ничего в принципе страшного, MBR сейчас не особо-то и нужен. Вот если бы
bs=512M
...
mavir
27.12.2024 07:36Просмотр логов с -f лучше запускать с флагом -n0, чтобы не показывало последних 10 строк
tail -fn0 error_file.log
viteo
27.12.2024 07:36нужно вводить тег "нейросетевая статья"
и добавлять его в черный списокkokanov
27.12.2024 07:36А как вы понимаете, что это нейросетнвая статья? (На всякий случай, с автором статьи я ни как не связан. Просто ML инженер)
bogolt
27.12.2024 07:36Уровень человека увидевшего линукс впервые.
Есть два варианта. или вы каждый день создаете вложенные папки и тогда вы давно уже знаете как это делать ( написал свой скрипт, разобрались в баше, что вам угодно ) либо вам эта задача не нужна вовсе ( а один раз в год можно сделать руками допустим ).
Заголовок уровня бульварных газет, контент уровня "я выучил команду man".
Что общего у этих команд ( опций). Почему именно их объединили вместе? Почему бы не сказать "пиши скрипт на любую задачу и твоя жизнь не станет прежней"? или там "Устройся менеджером и тебе не придется заниматься вот этим всем"? или "переходи на винду и делай все мышкой"
astenix
27.12.2024 07:36Больше похоже на урок «Все основы Linux» из курса «”Что-то там компьютерное” для тестировщиков».
Astroscope
27.12.2024 07:36"я выучил команду man"
Я вот без налета сарказма хочу сказать, что это хорошая, годная команда, освоение которой оказало и продолжает оказывать благотворное воздействие на меня, как пользователя.
Wesha
27.12.2024 07:36Как узнать, что этот комментарий написан человеком?
Типичные ошибки пятиклассника с тройкой по русскому (в частности, пунктуация)
Типографика ни в Красную Армию (пробелы вокруг скобок, новое предложение не с загалавной и т.п.)
(Я серьёзно. Я пока ещё не видел вывода LLM, в котором был бы правдоподобно имитировано безграмотное написание. Если её просят, то она вносит ошибки рандомно, а не логично с точки зрения двоечника.)
AlexXYZ
27.12.2024 07:36а не логично с точки зрения двоечника
Прям себя в школе вспомнил, когда пытался учительнице объяснить свою интерпретацию правил, но был, конечно же, послан. )))
SquareRootOfZero
27.12.2024 07:36логично с точки зрения двоечника
А какова логика с точки зрения двоечника? Я специальных наблюдений не вёл, но на первый-второй взгляд, там какой-то псевдо-рандом.
bogolt
27.12.2024 07:36То есть предположим человек бы рассказал "Смарите пацаны, есть короче zsh и там все в разы удобнее чем в баше", ну ок.
Или хотябы рассказал про Ctrl-R обратный поиск команды. Но рассказывать про history и обещать что это изменит чью-то жизнь это ну совсем слабо. Поэтому ну конечно может и нейросетевая а просто очень низкий уровень, который сейчас привычно ассоциировать с нейросетевыми сборниками бесполезных советов.
viteo
27.12.2024 07:36группировка по шаблону, который будто бы прямо из промта (в чем проблема, что под капотом, пример, как это работает - и так пять раз)
странное разделение приёмов: фигурные скобки пользователю объяснить надо единожды, а не давать два почти идентичных примера с перечислениями.
перегруженный энтузиазм: из оставшихся трех команд - две это вообще база. ни хитростями это не назвать, ни жизнь наша не изменилась.
вы сами мне честно ответьте, ниужели у вас не возникло ощущения?
Spyman
27.12.2024 07:36Каждый пункт разбит на подпункты, причём в них тот-же текст другими словами. Это прям характерно для ответов gpt которые без указания "пиши кратко" в промпте - фичат текст "на все деньги", но занеимением в обучающей выборке большой информации (видимо) повторяют одну и ту же мысль на все лады.
Ну просто в "пример", "что под капотом", "решение" и "применение" (или че там 4) - прям одно и тоже. Да и не будет человек трижды распсавший что touch... сгенерирует диапазон файлов писать это в 4 раз в отдельном блоке.
Напомнило моего препода из универа, который перемножал матрицы 4х4 у доски проговаривая каждую операцию "... 3 элемент второй строки умножаем на 2 элемент третьей строки... 4 элемент второй строкт умножаем на 2 элемент 4 строки..."
ZaeBest
27.12.2024 07:36Плюсую, должны быть бейджи
human
generated content,human/AI
generated content.
Angry_Bel
27.12.2024 07:36Я сначала написал комментарий, а потом почитал остальные.
А ведь похоже, очень похоже. Что нибудь из разряда 4о
3vi1_0n3
27.12.2024 07:36Скобки "{}" это глоббинг в баше, так что пример с директориями и touch это просто два примера одного и того же. Раскрытие таких скобок происходит до передачи команды на выполнение.
"!125" - man history, там есть другие приколюхи типа поиска в истории по "!?подстрока", который может быть быстрее, чем искать команду глазами в истории. Также man bash описывает некоторые операции с историей команд, например "history -c" для очистки истории команд.
Команда cd при смене директории устанавливает переменную окружения OLDPWD, и если параметр это "-", он заменяется на значение переменной OLDPWD до передачи на выполнение. Ну и можно было описать pushd и popd, раз уж разговор зашел про навигацию по директориям.
Всё выше напрямую связано с bash и описывается практически во всех руководствах как база по работе в командной оболочке. Статья прям для совсем начинающих. Можно было бы заодно упомянуть как "|" работает, если так.
Ей-богу, соберусь когда-нибудь написать цикл статей по башу, чтобы ссылки в камментах к таким статьям постить :-D
411
27.12.2024 07:36Ещё бы статью как многие башизмы реализовывать в POSIX шелле.
3vi1_0n3
27.12.2024 07:36Мысль интересная, спасибо. Я к ней вернусь позже, сейчас пишу маленький фреймворк для баша без вызова внешних команд, чтоб минимизировать внешние вызовы и максимизировать использование того, что там уже есть. Займет некоторое время.
JBFW
27.12.2024 07:36вы не поверите, какое количество "специалистов по поддержке ПО на Unix системах" не знает что делает команда ls ~/bin
Wesha
27.12.2024 07:36не знает что делает команда ls ~/bin
Выдаёт ошибку, конечно же! /s
(если в домике у пользователя нет каталога
bin
— а он по умолчанию не создаётся...)
firnind
27.12.2024 07:36Спасибо, не знал про поиск по истории, всегда делал history | grep что_нужно
AdVv
27.12.2024 07:36Пропишите в ~/.inputrc:
"\e[A": history-search-backward
"\e[B": history-search-forwardПосле чего набрав в терминале первые буквы команды вы сможете осуществлять поиск в истории команд, которые начинались с этих символов.
Т.е. набрав cp и нажав стрелку вверх, вы получите предыдущий cp, который запускался в терминале, за ним еще и еще. Стрелкой вниз можно листать обратно.
evgenyk
27.12.2024 07:36Спасибо, все знал, кроме фишки с touch {1..10}, давно хотел такое. Оказывается работает и {01..10}. Супер!
NotSlow
27.12.2024 07:36еще накину мелочи:
cd без параметров перекинет в домашний каталог
история комманд хранится в ~/.bash_history (на случай если вам надо что-то не из недавнего, а старое найти)
видеть обновления файлов в реальном времени можно еще в mc - открыть по f3 файл, нажать и держать end
Wesha
27.12.2024 07:36история комманд хранится в ~/.bash_history
(ехидно:) А нет у меня такого файла!
(а вот
.tcshrc
— есть!)
a1111exe
27.12.2024 07:36Это хитрости, меняющие жизнь? :) Думал прочитать что-нибудь интересное о find, xargs, grep, perl, sed, awk, cut, tr, paste, comm, jq, inotifywatch, strace, screen, в таком духе..
Derevtso
27.12.2024 07:36Первый раз видел убунту в каких-то давних временах - бесплатно прислали инсталлятор на нескольких CD-дисках, их когда-то реально присылали по почте.
Вообще, я больше к Windows привык, но постоянно на любой работе сталкивался с линуксами - RedHat, Ubuntu, CentOS, Debian, и прочие, время от времени, пишутся какие-то скрипты, докерфайлы, всё такое. Да и на домашних ноутах часто Manjaro ставлю, оно удобное.
И, увидев пару вещей из этой статьи, я буквально, обомлел: "А что, так можно было?" Спасибо авторам подобных статей: на какие-то плюшки если ты случайно не наткнулся, то так и будешь всю жизнь как дурак.
Ну не учил я man всех системных функций наизусть. (
PS: обычно для просмотра обновления логов пользовался watch ... tail
Borelli
27.12.2024 07:36В tail -f можно сразу за несколькими логами следить, команда будет выводить перед каждым блоком новых данных имя файла. Удобно, если отладка требует отслеживать и лог ошибок и специфичный лог:
tail -f app.log error.log custom_feature.log
DaneSoul
27.12.2024 07:36Чтобы вернуться в корневой каталог проекта, обычно приходится несколько раз вводить
cd ..
:cd .. cd .. cd .. cd ..
Можно выразить в одной команде:
cd ../../../../
Angry_Bel
27.12.2024 07:36Я брюзжу, но поехали.
cd - будет работать если вы вводили цельный путь (что логично). А если я шел шаг за шагом, то толку от этого. Это вернёт на уровень ниже. Откровение. cd ~ или cd / и то полезнее, там не нужно думать куда тебя перенесет, ты знаешь конченый результат. Можно и пару назад а одной команде, которым я пользуюсь через ../../../
history - я надеюсь что вы не в серьез, а просто угораете. Ибо перебирать последние 25-50команд в поисках той самой вместо ctrl(cmd) +r и начинать вводить команду - это прям решение. Если мне нужна 3-5 по списку из недавних то банально стрелка вверх помогает.
Вы всерьез это используете, и ещё что-то экономите на этом? И не секунды/минуты, а прям время?
Я прокрастинирую больше, чем сэкономлю на командах
N1X
27.12.2024 07:36cd - будет работать если вы вводили цельный путь (что логично).
Ну я порой так делаю. Удобно когда нужно несколько раз скакнуть туда/сюда чтобы посмотреть какой-то файл. Но целый путь к часто используемому каталогу стараюсь вбить, чтобы переход отбился в истории и потом можно быстренько было сделать Ctrl+R по этому пути... В принципе с этой связкой получается довольно удобно, но в любом случае это вкусовщина )
a_guzarev
27.12.2024 07:36При ротации логов "tail -f" перестанет отслеживать изменения в файле. Чтобы tail продолжал отслеживать лог после ротации, нужно использовать опцию "-F":
tail -F some.log
chesser69
27.12.2024 07:36ИМХО, детский сад, потому что гуглится очень быстро. Скажем, я в bash нулевой, но скрипт по поиску в текущей версии папки проектов Гита быстро переписал на поиск по всем веткам. Такое должен уметь делать любой разраб если хочет долго оставаться в профессии.
DrMefistO
27.12.2024 07:36Самый явный аргумент в пользу нейросетёвости статьи: это заголовок "Просматриваем недавние команды с помощью history 5". И дальше текст в это разделе, который будто кроме 5 ничего не знает.
AnyKey80lvl
27.12.2024 07:36>"Команда
cd -
запоминает предыдущий каталог"
Как эта чушь попала на главную? Куда команда cd это запоминает?Для меня самым полезным знанием о bash стали шорткаты Ctrl-R и Alt-. Вот они сильно изменили стиль и увеличили эффективность.
Ещё лайфак - стараюсь делать cd всегда по абсолютным путям. Вместо cd ../myanotherrepo - cd ~/git/myanotherepo. Так это можно достать из истории по Ctrl-R и быстро попасть в нужное место независимо от текущей директории.
AdVv
27.12.2024 07:36Ну как без коронки про "!!", вместо которых подставляется последняя запущенная команда ?
Когда забыл "sudo", и как царь "sudo !!"
saboteur_kiev
27.12.2024 07:36если что-то забыл в длинной строке, то можно так
$ cho hello Command 'cho' not found $ ^cho^echo^ echo hello hello
qandak
27.12.2024 07:36touch можно передать и существующие файлы, обновляются только временные метки (тут внезапно раскрывается смысл названия команды).
JonikCX
chatgpt, напиши статью про 5 полезных команд в linux.