Как отобразить историю 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