Може да знаете основното използване на команда за история, но тя може да направи много повече от това. Башовата история обикновено се съхранява във файла ~ /.bash_history. Тя ви позволява да извиквате и използвате повторно съхранения запис по ефективен начин, за да извлечете най-доброто от функцията за запазване на историята на bash. Не само това, но можете също да персонализирате и контролирате изхода на командата bash по начина, по който искате.
В тази статия ще ви обясним как ефективно да използвате и персонализирате историята на командите на bash, за да извлечете максимума от нейните функции.
Използвахме Debian 10 за изпълнение на командите и процедурата, споменати в тази статия.
Използване на история на команди на bash
1. Преглед на историята на bash
За да видите цялата история на командите на черупката, можете да изпълните следната команда в терминала:
$ историяТой ще изброи цялата история за конкретен потребител от файла с историята, съхраняван специално за този потребител. Ще видите всички команди, започващи с число, разпределено на всяка от тях. Той ще изброи по-старите команди отгоре, започвайки с номер 1, и по-новите команди отдолу.
2. Търсене в изхода на историята
Можете също да търсите конкретна ключова дума от изхода на историята. Сдвоете командата за история с grep и конкретна ключова дума, за да търсите команди, които съответстват на посочената ключова дума, както следва:
$ история | grep [ключова дума]Например, за да се изброят всички команди, които включват ключовата дума „намери“, командата ще бъде:
$ история | grep намирам
3. Преглед на последните n команди
Командата за история по подразбиране изброява последните 1000 броя команди, изпълнени от потребител. В случай, че искате да изброите само конкретно число, да речем n номер на последната изпълнена команда, изпълнете следната команда в терминала:
$ история nНапример, за да се изброят последните 7 изпълнени команди, командата ще бъде:
$ история 7За да видите броя на последните n изпълнени команди, които включват конкретна ключова дума, можете да използвате следния синтаксис:
$ история | grep ключова дума | tail -nПример за това би бил преглед на последните 4 изпълнени команди с ключовата дума “java”.
$ история | grep java | tail -n
4. Преглед на най-старите команди
За да видите най-стария n брой команди, можете да използвате следния синтаксис в терминала:
$ история | глава -нЗа да видите най-стария n брой команди, които включват конкретна ключова дума, използвайте следния синтаксис:
$ история | grep ключова дума | head -nПример за това би бил преглед на най-старите 4 изпълнени команди с ключовата дума “java”.
$ история | grep java | глава -4
5. Изчистете напълно историята на Bash
За да премахнете цялата история на bash, изпълнете следната команда в терминала:
$ история -cwПерсонализиране на историята на командите на bash
За да персонализираме историята на командите на bash, ще трябва да направим промени в ~ /.bashrc файл. За редактиране на ~ /.bashrc файл, използвайте следната команда:
$ nano ~ /.bashrcСлед като приключите с модифицирането на файла, използвайте Ctrl + O и Ctrl + X, за да запазите и затворите нано редактора.
След това изпълнете следната команда, за да приложите модификациите:
$ източник ~ /.bashrc1. Добавете дата и клеймо в историята на Bash
Ако искате да покажете дата и клеймо заедно с историята на командите, можете да направите това, като добавите следния ред в ~ /.bashrc:
$ export HISTTIMEFORMAT = '% F,% T'Сега стартирайте история команда и тя ще покаже историята на командите със съответните данни и клеймо.
2. Увеличаване на размера на Bash History
Баш по подразбиране поддържа 500 команди в списъка с история. Можем обаче да променим тази стойност, като използваме стойността HISTSIZE.
За да видите текущия размер на историята на bash, изпълнете следната команда в Terminal:
$ echo $ HISTSIZEПо същия начин размерът по подразбиране на файла с историята на bash е 500. Това е максималният брой записи, които се съдържат във файла с история.
За да увеличите размера на историята на bash, да речем 10000, добавете следните редове в ~ /.файл bashrc:
$ HISTSIZE = 10000$ HISTFILESIZE = 10000
За да проверите дали размерът на историята на bash се е променил успешно, изпълнете следните команди в терминала:
$ echo $ HISTSIZE$ echo $ HISTFILESIZE
3. Добавете команди Bash към файла с история
Когато сесията на bash е затворена, можете да изберете дали да презапишете или да добавите командите във файла с история, като използвате променливата histappend. За да видите текущите настройки, изпълнете следната команда в Терминал:
$ shopt histappend„Включено“ в изхода показва, че опцията histappend е активирана и командите ще бъдат добавени във файла с история, вместо да презаписват. Докато се показва „изключено“, опцията histappend е деактивирана и файлът ще бъде заменен.
Отворете ~ /.bashrc файл и:
Добавете следния ред, ако искате да добавите командите към файла с история, вместо да презапишете:
$ shopt -s histappendИли добавете следния ред, ако искате да деактивирате опцията за добавяне и искате да презапишете файла при излизане:
$ shopt -u histappend4. Съхранявайте Bash History незабавно
Bash по подразбиране записва сесията във файла с история на bash само след като сесията приключи. За да промените това поведение по подразбиране и да го направите незабавно да запазите всяка команда, която сте изпълнили, можете да използвате PROMPT_COMMAND.
Редактирайте ~ /.bashrc файл и добавете следния ред:
$ PROMPT_COMMAND = 'история -a'Сега, когато изпълните някоя команда, тя веднага ще бъде добавена към файла с история.
5. Контролирайте Bash History
Можем да контролираме начина, по който bash запазва историята на командите ни чрез променливата HISTCONTROL. Можем да го посочим, за да игнорира дублиращи се записи и / или да игнорира записи с водещи бели интервали.
- ignorespace - елиминира команди, които започват със списък с история на интервала.
- ignoredups - премахване на дублиращи се команди.
- ignoreboth - Активирайте както ignoredups, така и ignorespace
- изтриване - премахване на дубликати от целия списък
За да приложите тези функции, отворете ~ /.bashrc и добавете следния ред със стойности, разделени с двоеточие, както следва:
$ export HISTCONTROL = ignorespace: ignoredups6. Игнорирайте конкретни команди
Също така можем да контролираме кои команди да игнорираме в историята, като използваме променлива HISTIGNORE. Това е списък с шаблони, разделени с двоеточие, в които можем да посочим всички команди, които искаме да игнорираме от историята.
Например, ако не искаме да изброяваме основните команди като история, ls, pwd команди в списъка с история, тогава добавяме следния ред в ~ /.файл bashrc:
$ export HISTIGNORE = "история: ls: pwd:"С историята на командите на bash на Linux можете да направите много повече, отколкото просто да повтаряте старите команди. В тази статия научихме как да използваме историята на bash, за да видим командите, които са изпълнени преди това, и също така се научихме да контролираме начина, по който bash запазва историята на командите.