Bazı komutların bash tarihinde saklanmasını engellemek


31

Gibi komutları hariç tutmak için herhangi bir yolu var mı rm -rf, svn revertbash geçmişinde saklanır alma olmaktan? Aslında, yanlışlıkla yapma niyetim olmasa da, birkaç şeyi hızlı bir şekilde yapıyorum ve gerçekleştiğim için bile birkaç kez yayınladım. Bu nedenle, şu ana kadar yaptığım çok iş kaybına neden oldu.


3

Yanıtlar:


53

Bunları isteyebilirsiniz $HISTIGNORE: "Geçmiş listesine hangi komut satırlarının kaydedilmesi gerektiğine karar vermek için kullanılan, iki nokta üst üste ayrılmış bir kalıp listesi." ~ / .Bashrc dosyasındaki bu satır işi yapmalı:

HISTIGNORE='rm *:svn revert*'

Ayrıca komutun başlangıcına, onu tarih dışında bırakmak için boşluk ekleyebilirsiniz. Bu sürece çalışır $HISTCONTROLiçeren ignorespaceveya ignorebothben kullandım herhangi bir dağıtımı varsayılan olan.


4
boşluk, hep böyle yaptığımdır.
Rob

Kazara ek olarak girdim y, her şeyden sonra cp(diğer adı geçtikten sonra cp -i). Ben diğer ad Yani yolarak alias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')'... Ama HISTIGNOREgöründüğü kadar iyi yöntemdir. :) Teşekkürler.
anishsane

2
Daha açık olmak gerekirse: boşluklarla başlayan komutları yoksaymak export HISTCONTROL="ignorespace"için kendinize ekleyebilirsiniz ~/.bashrc.
Aidan Feldman,

MacOS üzerinde varsayılan değil @AidanFeldman
akauppi

NOT: komut satırına girdiğimizde HISTIGNORE'a değil boşluk bırakılmalıdır.
Gayan Weerakutti

6

OP'nin sorusundan biraz farklı olsa da, kasıtlı olarak bash tarihinde saklanacak bir komut istemediğimde, onlara bir boşluk eklerim. Ubuntu ve türevlerinde çalışır, tüm sistemlerde çalışıp çalışmadığından emin değil.


6
Bağlıdır $HISTCONTROL(cevabımı bakınız).
lbb0

@ l0b0 sağ, işaret ettiğiniz için teşekkürler.
k4rtik

1

Tarihte istemediğim şeyleri yaptığım zaman, genellikle bash örneğimi öldürürüm.

kill -9 $$

$$, şu anki işlemi temsil eder - kabuğundan çalıştırdığınızda bash. $ BASHPID kullanabilirsiniz, ancak bu daha çok yazıyor :-)


2
(Gibi bazı Bash ayarları bu ) her komutun ardından geçmişini kazandıracak ve bu durumda bu işe yaramaz.
l0b0

1
Bunu yapardım. ancak ayar HISTFILE=/dev/nulldaha iyi bir seçenektir.
anishsane

sadece HISTFILE=bash ve ksh olarak çalışır.
kubanczyk

veyaunset HISTFILE
Todd Walton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.