DevGang
Авторизоваться

Раскройте секреты вашей командной строки

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

Команда history

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

Например, вот фрагмент истории терминала, иллюстрирующий, действие команды:

history
  547  echo "Rebuilding sendmail.cf file"
  548  echo "=========================="
  549  vim /etc/mail/sendmail.mc
  550  m4 sendmail.mc >sendmail.cf
  551  systemctl restart sendmail
  552  echo "Subject: Test Email"|sendmail  -v info@sebostechnology.ca
  553  echo "Rebuilding after changing access file"
  554  echo "=========================="
  555  vim /etc/mail/access
  556  makemap hash /etc/mail/access < /etc/mail/access
  557  vim /etc/mail/sendmail.mc
  558  m4 sendmail.mc >sendmail.cf
  559  systemctl restart sendmail
  560  journalctl --unit=sendmail
  561  echo "Subject: Test Email"|sendmail  -v info@sebostechnology.ca

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

Повторный запуск команды через history

Команда history делает невероятно простым повторный запуск предыдущей команды, используя символ ! с последующим связанным с командой номером. Например, чтобы повторить m4 sendmail.mc >sendmail.cf, можно ввести либо !550 или !558, в зависимости от того, какой экземпляр вы хотите выполнить. Эта функция особенно полезна для повторяющихся задач.

В ходе проекта вы регулярно запускаете последовательность одних и тех же команд, чтобы упростить этот процесс, объединим команду history с оператором Bash &&, что позволит выполнить несколько команд за один раз. Например, вот набор команд, которые могут часто использоваться:

556  makemap hash /etc/mail/access < /etc/mail/access
558  m4 sendmail.mc >sendmail.cf
559  systemctl restart sendmail
561  echo "Subject: Test Email"|sendmail  -v info@sebostechnology.ca

Используя history, можно запустить все четыре команды с помощью одной строки:

!556 && !558 && !559 && !561

Эта последовательность команд переводится как:

makemap hash /etc/mail/access < /etc/mail/access && m4 sendmail.mc >sendmail.cf && systemctl restart sendmail && echo "Subject: Test Email"|sendmail  -v info@sebostechnology.ca

Использование этого метода экономит значительное количество времени и снижает риск ошибок при ручном наборе. Эта команда может быть чем-то большим, чем просто журнал — она может служить усилителем производительности.

Но чем еще она может быть полезна? Для начала, вы можете искать определенные команды с помощью history | grep, создавать повторно используемые скрипты из часто используемых последовательностей или даже предотвращать ошибки повторного ввода, ссылаясь на предыдущие записи.

Чем может быть полезна команда history?

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

  • Начинаем с чистого листа: перед началом нового проекта иногда полезно очистить историю, чтобы убедиться, что вы начинаете с чистого листа. Это можно сделать с помощью:
history -c
  • Сохранение истории для документации: при завершении проекта вы можете захотеть сохранить историю команд как часть документации проекта. Это позволит вам ссылаться на команды, которые вы использовали позже:
history > project_history.txt
  • Анализ использования команд: для больших проектов, где вы часто повторяете команды, может быть полезно проанализировать использование команд. Следующая команда генерирует список наиболее часто используемых команд:
history | awk '{CMD[$2]++} END {for (a in CMD) print CMD[a], a}' | sort -nr | head
  • Временное отключение истории: если вы хотите запускать конфиденциальные команды без их регистрации в файле истории, вы можете временно отключить функцию истории:
unset HISTFILE
  • Обратный поиск: если вам нужно быстро найти ранее использованную команду, вы можете нажать Ctrl + r, чтобы начать обратный поиск. Начните вводить текст, и терминал отобразит соответствующие команды из вашей истории.
  • Поиск по ключевым словам: другой способ найти определенную команду — использовать grep для фильтрации истории. Например:
history | grep <some string>

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

Вам нужно использовать history?

Нужно ли вам использовать history команду? Не обязательно. Ее использование не делает вас автоматически лучшим пользователем Linux, и это не та команда, на которую вы, скорее всего, будете полагаться ежедневно. Тем не менее, это один из тех недооцененных инструментов, который может сэкономить вам много времени и усилий, если вы его используете.

Источник:

#Command Line #Linux
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу