Ако сте потребител на команден ред на Linux, ще се съгласите, че има моменти, когато не искате определени команди, които изпълнявате, да бъдат записани в историята на командния ред. Може да има много причини за това. Например, вие сте на определено място във вашата компания и имате някои привилегии, които не искате другите да злоупотребяват. Или има някои критични команди, които не искате да стартирате случайно, докато разглеждате списъка с история.

Но има ли начин да се контролира какво се случва в списъка на историята и какво не? Или, с други думи, може ли да включим режим на инкогнито като уеб браузър в командния ред на Linux? Отговорът е "да" и има много начини да постигнете това, в зависимост от това, което точно искате. В тази статия ще обсъдим някои от популярните налични решения.

Забележка : всички команди, представени в тази статия, са тествани на Ubuntu.

Има различни начини

Първите два начина, които ще опишем тук, вече са обхванати в един от предходните ни статии. Ако вече сте наясно с тях, можете да пропуснете тези неща. Ако обаче не сте наясно, препоръчваме ви да ги прегледате внимателно.

1. Поставете интервал преди командата

Да, четете го правилно. Поставете интервал в началото на командата и тя ще бъде пренебрегната от черупката, което означава, че командата няма да бъде записана в историята. Има обаче зависимост - това решение ще работи само ако променливата на средата HISTCONTROL е настроена на "ignorespace" или "ignoreboth", което по подразбиране е в повечето случаи.

Така че, една команда като следното:

 [пространство] ехо "това е строго секретно" 

Няма да се показва в историята, ако вече сте направили тази команда:

 износ HISTCONTROL = ignorespace 

Показаният по-долу екран е пример за това поведение.

Четвъртата команда "ехо" не е записана в историята, тъй като е била стартирана с интервал в началото.

2. Забранете цялата история за текущата сесия

Ако искате да деактивирате цялата история за сесия, можете лесно да направите това, като дезактивирате променливата на средата HISTSIZE, преди да започнете работа с командния ред. За да деактивирате променливата изпълнете следната команда:

 износ HISTFILE = 0 

HISTFILE е броят на линиите (или командите), които могат да бъдат съхранени в списъка с истории за продължителна сесия на bash. По подразбиране тази променлива има зададена стойност - например 1000 в моя случай.

Така че командата, посочена по-горе, ще определи стойността на променливата на околната среда до нула и следователно нищо няма да бъде съхранено в списъка с история, докато не затворите терминала. Имайте предвид, че също така няма да можете да видите предишните команди, като натиснете клавиша със стрелка нагоре или изпълнявате командата за history .

3. Изтрийте цялата история, след като сте готови

Това може да се разглежда като алтернатива на решението, споменато в предишния раздел. Единствената разлика е, че в този случай изпълнявате команда, след като приключите с цялата си работа. Това е следната команда:

 история-cw 

Както вече споменахме, това ще има същия ефект като горепосоченото решение HISTFILE.

4. Изключете историята само за работата, която вършите

Докато описаните по-горе решения (2 и 3) правят този трик, те изтриват цялата история, нещо, което може да е нежелано в много ситуации. Възможно е да има случаи, в които искате да запазите списъка с история до момента, в който стартирате работата на командния ред. За такива ситуации трябва да изпълните следната команда, преди да започнете с работата си:

 [пространство] + история 

Забележка : [space] представлява празно пространство.

Горната команда ще деактивира временно историята, което означава, че всичко, което правите след стартирането на тази команда, няма да бъде записано в историята, въпреки че всички неща, изпълнени преди горната команда, ще бъдат там, както е в списъка с история.

За да активирате отново историята, изпълнете следната команда:

 [Космос] зададете -а история 

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

5. Изтрийте конкретни команди от историята

Представете си, че списъкът с истории вече съдържа някои команди, които не искате да бъдат записани. Какво може да се направи в този случай? Просто е. Можете да продължите напред и да ги премахнете. Следващото е как да постигнете това:

 история [пространство] grep "част от командата, която искате да премахнете" 

В горната команда ще се изведе списък със съвпадащи команди (които са в списъка с история) с число [num], предхождащо всеки от тях.

След като идентифицирате командата, която искате да премахнете, изпълнете следната команда, за да премахнете съответния запис от списъка с история:

 история -d [num] 

Следващата екранна снимка е пример за това.

Втората команда "ехо" бе премахната успешно.

Като алтернатива, можете просто да натиснете клавиша със стрелка нагоре, за да се върнете обратно в списъка с история и след като командата на интереса ви се появи на терминала, просто натиснете "Ctrl + U", за да изчистите напълно линията, списък.

заключение

Има няколко начина, по които можете да манипулирате историята на команден ред на Linux, за да отговаряте на вашите нужди. Имайте предвид, обаче, че обикновено не е добра практика да скривате или премахвате дадена команда от историята, въпреки че също така не е погрешна сама по себе си, но трябва да сте наясно какво правите и какви ефекти може да има.