Како у bash-u уносити команде а да се не памте у history-ју?

Постоји некад ситуација кад је потребно унети неку команду преко терминала а да та иста не може видети позивањем команде `history`. То обично буду команде унутар којих се налазе лозинке или неки поверљиви подаци – а за које не бисте волели да буду виђени ако се неко улогује на сервер са истим подацима.

Наравно – није препоручљиво да више корисника користи исте логин податке или кључ – али ето, понекад се то не може избећи – рецимо баш кад је superuser у питању (root) а рецимо више људи ради на одржавању сервера а да нису судоерси из неког разлога. Углавном да не залазимо у то са безбедоносне стране већ да видимо како избећи логовање команди у history-ју.

History је важна ствар јер имате преглед шта је све рађено раније (можете додати и инфо о времену – упутство овде) али ето, можда понекад затреба и поиграти се са history-јем, обрисати нешто из њега (читај – ако си нешто засрао), забранити чување историје и слично.

Укратко – варијабле које почињу са HIST су везане за history (HISTSIZE, HISTFILE, HISTCMD, HISTCONTROL, HISTTIMEFORMAT, HISTIGNORE) и ту би требало нешто променити да не би било историје а варијабла која нас занима је HISTFILE. Све што је потребно је да пре осетљиве команде aнсетујете ову варијаблу или да је преусмерите у /dev/null и мирни сте. Ако урадите `echo $HISTFILE` видећете где се налази сам фајл. Дакле команде ако не желите да се све даље команде памте док се не излогујете су…

unset HISTFILE
# или
HISTFILE=/dev/null
# или
HISTFILE=

Ако из постојећег history-ја треба да се обришу неке ставке, онда треба користити `unset HISTFILE` и едитор за едит фајла, отприлике:

unset HISTFILE
vim .bash_history

Ако не желите да се уопште памте команде додајте у свој .bash_profile овај unset…

echo "unset HISTFILE" >> ~/.bash_profile ; . ~/.bash_profile

Наравно, обришите ову ставку из .bash_profile када будете хтели да вратите логовање у .bash_history фајл.