📜 Использование команды hash в Linux

Большинство пользователей Linux используют команду history для получения списка ранее использованных команд, но это не единственный способ. Вы можете использовать команду hash, которая работает быстрее, чем команда history, и показывает полный путь команды (где она хранится).

Поэтому в этом руководстве мы расскажем вам, как использовать команду hash. Но перед этим давайте посмотрим, чем она отличается от команды history.

 

Разница между историей и хэшем

Цели использования команд hash и history различны.

Когда вы выполняете команду hash, она показывает список ранее выполненных команд, но ограничена текущим сеансом оболочки, поскольку хранит данные в хэш-таблице.

С другой стороны, команда history не имеет таких ограничений, так как она хранит ранее выполненные команды в файле bash_history.

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

Большим недостатком использования команды hash является то, что она не включает встроенные команды bash, такие как echo, cd и т. д., поэтому вы не получите полный список предыдущих команд.

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

В связи с этим возникает вопрос. Стоит ли использовать эту команду?

Если вы имеете дело с несколькими сеансами оболочки и хотите обрабатывать их независимо друг от друга, а время отклика также имеет большое значение, то команда hash – отличный вариант для вас.

 

Как использовать команду hash

Чтобы научиться использовать любую команду, неплохо сначала узнать ее синтаксис, и именно поэтому мы начнем c него:

hash [options] [command]

Где,

  • [options] используется для изменения поведения команды хеширования по умолчанию, например, для очистки хеш-таблицы.
  • [command] – это место, где вы вводите имя команды, которую вы хотите хэшировать или не хэшировать. Проще говоря, имя команды, которую вы хотите добавить/удалить из хэш-таблицы.

Теперь давайте рассмотрим примеры использования команды hash по очереди.

 

1. Доступ к списку хэшей

Чтобы получить доступ к хэш-списку, достаточно выполнить команду hash без каких-либо опций, как показано здесь:

hash

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

Вы увидите 2 столбца: hits и command. Здесь столбец hits показывает количество раз, когда команда была использована, а столбец command – путь к команде.

Но если вы выполните команду hash в свежем сеансе оболочки, вы увидите:

hash: hash table is empty

Вы также можете проверить команду по отдельности, хэширована она или нет, используя команду type.

Если команда не хэширована, то вывод будет таким:

type whoami
whoami is /usr/bin/whoami

 

2. Добавление команд в хэш-таблицу (без выполнения)

Чтобы добавить одну или несколько команд в хэш-таблицу, достаточно добавить имена команд к хэш-команде, как показано далее:

hash command1 command2 command3 commandN

Например, здесь мы добавили 3 команды в хэш-лист:

hash neofetch apt topgrade

Наверняка вы задаетесь вопросом, почему нули в столбце hits.

Если вы помните, столбец hits показывает, сколько раз была выполнена команда.

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

3. Удаление записей из хэш-таблицы

Если вы хотите удалить запись о команде из хэш-таблицы, достаточно использовать флаг -d, за которым следует одно или несколько имен команд, как показано далее:

hash -d command_1 command_2 command_3

Если я захочу удалить команды xargs и grep из хэш-таблицы, то я использую следующее:

hash -d xargs grep

 

4. Сброс хэш-таблицы

Чтобы сбросить хэш-таблицу, достаточно использовать флаг -r в команде hash:

hash -r
Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *