Командата history в Linux (Bash History) ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
10.12.2024
No categories

Командата history в Linux (Bash History)

Командата history (история) в Linux е мощен инструмент за потребителите, работещи с обвивката Bash. Тя съхранява данни за изпълнени преди това команди, като позволява на потребителите да преглеждат, припомнят и дори да изпълняват отново команди, без да ги въвеждат отново. Това може значително да повиши производителността, като спести време и намали вероятността от допускане на грешки при повторно въвеждане на дълги команди.

Какво представлява историята на Bash?

Bash, подобно на много други шелове, поддържа запис на въведените от вас команди във файл с история. В повечето дистрибуции на Linux тази история се съхранява във файл, наречен .bash_history, в домашната директория на всеки потребител (~/.bash_history). По подразбиране всяка команда, въведена в шела, се добавя към този файл при приключване на сесията, което позволява на потребителите да се връщат към команди от предишни сесии.

Основно използване на командата history

Командата history е лесна за използване и предоставя различни начини за преглед и взаимодействие с историята на командите. Ето някои от най-често срещаните употреби:

  • Показване на историята на командите:
    Изпълнението на командата history без никакви аргументи ще покаже списък с последните въведени от вас команди, както и номер до всяка команда.

    history

    Това показва последните n команди, където n обикновено е около 500 или 1000 в зависимост от конфигурацията на вашата система.

  • Посочете броя на командите:
    Можете да ограничите броя на показаните команди, като посочите число. Например, за да видите последните 10 команди:

    history 10

Извикване на команди от историята

Командата “История” също така ви позволява лесно да си припомняте и да използвате повторно изпълнени преди това команди:

  • Използване на означението ! (възклицателен знак):
    Това ви позволява да изпълнявате отново команди директно от историята:

    • !! – Изпълнява отново последната изпълнена команда.
      !!
    • !n – Изпълнява командата на позиция n в списъка с историята.
      !42

      Това ще изпълни отново командата, включена в списъка на историята под номер 42.

    • !string – Намира последната команда, която започва с string, и я изпълнява.
      !git

      Тази команда ще изпълни най-новата команда, започваща с git.

  • Използване на клавишите със стрелки:
    Можете да използвате клавишите със стрелки нагоре и надолу, за да прелиствате предишни команди директно в терминала. Това е особено полезно за бързо намиране на последните команди.

Редактиране и промяна на историята

  • Премахване на конкретни записи:
    Можете да изтриете определена команда от историята, като използвате history -d, последвана от номера на реда:

    history -d 42

    Това ще изтрие командата на ред 42 в списъка с историята.

  • Изтриване на цялата история:
    За да изтриете всички команди от файла с историята, използвайте:

    history -c

    Това изчиства историята за текущата сесия. За да изчистите и запазената история в ~/.bash_history, презапишете файла:

    history -c && > ~/.bash_history

Конфигуриране на историята на Bash

Поведението на историята може да се персонализира чрез променливи на средата и конфигурационни настройки във файловете ~/.bashrc или ~/.bash_profile:

  • HISTSIZE:
    Тази променлива контролира колко команди се съхраняват в паметта по време на сесия. Например, за да запазите 1000 команди:

    export HISTSIZE=1000
  • HISTFILESIZE:
    Тази променлива задава броя на редовете (командите), които се запазват във файла ~/.bash_history. Например:

    export HISTFILESIZE=2000

    Това означава, че 2000 команди ще се запазят във файла с историята дори след излизане от системата.

  • HISTCONTROL:
    Тази променлива определя как се съхраняват командите. Общите опции включват:

    • ignoredups – Предотвратява добавянето на дублиращи се команди в историята.
    • ignorespace – Командите, които започват с интервал, не се добавят в историята.
    • ignorereboth – Комбинира ignoredups и ignorerespace.

    Пример за задаване на HISTCONTROL за игнориране на дублиращи се команди:

    еxport HISTCONTROL=ignoredups
  • HISTTIMEFORMAT:
    За да включите времеви печат към всеки запис в историята, задайте HISTTIMEFORMAT:

    export HISTTIMEFORMAT="%F %T "

    Така към всеки запис в историята ще се добавят датата (%F) и часът (%T).

Търсене в историята

  • Обратно търсене с Ctrl r:
    Започнете да изписвате част от командата и Bash ще намери съответстващите команди, докато ги изписвате. Повторното натискане на Ctrl r ще премине през предишните съвпадения.
  • Търсене с история:
    Можете също така да използвате grep за търсене в изхода на историята:

    history | grep git

    Това ще покаже всички команди, които съдържат думата git.

Заключение

Командата history е основна част от работата с шела Bash, като предлага начин за проследяване на предишни команди и оптимизиране на работните процеси. Благодарение на възможността за припомняне, търсене и персонализиране на историята на командите, тя помага да се направят операциите с командния ред по-ефективни и удобни за потребителя. Като овладеят историята и свързаните с нея функции, потребителите могат значително да ускорят работата си в средите на Linux.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills