Поиск по сайту:

Как отобразить историю Bash без номеров строк

Как вы уже знаете, файл истории Bash (~/.bash_history) хранит запись всех команд, которые вы запускаете в Терминале. Мы можем запустить команду history, чтобы просмотреть список недавно выполненных команд в нашем терминале. Заглянув в историю, вы должны были заметить, что каждая команда имеет номер префикса (номер строки). Этот номер префикса поможет вам найти и удалить определенную запись команды из истории. Но знаете ли вы, что мы можем опустить эти числа из вывода команды истории? В этом кратком руководстве описаны все возможные способы отображения истории Bash без номеров строк в Linux и Unix-подобных операционных системах.

Отображение истории Bash без номеров строк

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

history

вывод команды истории

Как видите, каждая запись в истории имеет номер префикса.

Если вы не хотите отображать номера строк в выводе команды history, вот несколько способов сделать это.

Способ 1. Отображение содержимого файла ~/.bash_history.

Это самый простой способ отобразить историю Bash без номеров строк.

cat ~/.bash_history

Пример вывода:

Отображение истории Bash без номеров строк

Способ 2. Использование команды история.

Мы можем использовать опцию write команды истории, чтобы распечатать историю без цифр, как показано ниже.

history -w /dev/stdout

Пример вывода:

История оболочки Bash без номеров строк с использованием команды истории

Если вы хотите записать вывод в текстовый файл, скажем, history.txt, просто запустите:

history -w history.txt

Способ 3. Использование команд история и cut.

Один из таких способов — использовать команды history и cut, как показано ниже.

history | cut -c 8-

Пример вывода:

История оболочки Bash без номеров строк

Видеть? Номера строк отсутствуют.

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

  • история: отображает историю вашей оболочки.
  • |: символ вертикальной черты используется отдельно от одной или нескольких команд. Он отправляет выходные данные одной команды в качестве входных данных следующей команды. То есть каждая команда считывает выходные данные предыдущей команды.
  • cut : удалить разделы из каждой строки файла.
  • -c: выберите только определенные символы.
  • 8- : (N-) Отображение вывода от N-го байта, символа или поля до конца строки. В этом случае (8-) он обрезает первые 7 символов каждой строки вывода команды истории и показывает фактическую команду с 8-го символа.

Способ 4. Использование команд fc и sed.

Мы также можем использовать команды fc и sed для отображения истории оболочки без номеров строк.

fc -l -n 1 | sed 's/^\s*//'

Отобразить историю оболочки без номеров строк с помощью команды fc

Чтобы узнать, что делает каждая часть приведенной выше команды Linux, обратитесь к ExplainShell.

Способ 5. Использование команд history и awk

Другой способ игнорировать историю оболочки номеров строк — использовать команду "awk", как показано ниже.

history | awk '{$1="";print substr($0,2)}'

Пример вывода:

Отобразить историю оболочки без номеров строк с помощью команды awk

Метод 6 — Использование Perl

Еще один способ отобразить историю Bash без номеров строк — запустить следующую однострочную команду Perl:

history | perl -pe "~s/ *[0-9]+ *//"

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

Рекомендуется прочитать:

  • Как очистить историю командной строки в Linux
  • Как удалить определенную команду из истории Bash в Linux
  • HSTR – удобный просмотр, навигация, поиск и управление историей командной строки
  • McFly — замена функции поиска по истории Bash с помощью сочетания клавиш Ctrl+R
  • Bashhub – доступ к истории вашего терминала откуда угодно
  • Как найти самые часто используемые команды в Linux

Статьи по данной тематике