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

📜 Использование команды 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

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий