HISTCONTROL=ignorespace

Címkék

Szereted-e, hogy ha a shelled kihagyja a history-ból a space-szel kezdődő parancsokat?

PS: a címben a bash megoldást említettem, de bármilyen más shell azonos feature-ére érvényes a kérdés

Választások

Hozzászólások

Nem igazan teszek space-t a parancsok ele, de valojaban szeretem ha minden megmarad. Ugyanakkor azt viszont nem ertem hogy az `ignoredups` az miert nem alapertelmezett :)

Erre mar korabban is volt mukodo trukk. Kiadsz egy parancsot, utana visszakeresed a parancsot (felnyil) es kitorlod majd nem utsz entert(!) hanem "visszamesz" (lenyil) es kiadsz olyan parancsot amit akarsz. A bash kilepeskor menti a history-t, de akkor mar a parancs nem lesz ott.

Persze, csak en nem szeretem az ignorespace-t, mert sokkal tobbszor copy&paste-elek parancsot (veletlenul olyakor space-szel egyutt), mint ahanyszor el kell tuntetnem valamit a history-bol... Meg egyebkent nem annyira bonyolult mint amennyire hangzik. Es mukodik akkor is ha utolag josz ra, hogy azt a parancsot nem szeretned a history-ban...

Szerkesztve: 2022. 07. 30., szo – 11:20

Nekem nagyon hasznosnak bionyult. Pl. van egy program, ahol úgy tudom elkerülni, hogy minden műveletnél (=minden parancsnál) meg kelljen adnom egy jelszót, hogy csinálok egy `export FOO_PASSPHRASE=verysecretdontlookhere`-t.  Ezt viszont nyilván nem szeretném a históriámban látni, úgyhogy megy az `export` elé a szóköz. (A végén pedig `<space>unset -v FOO_PASSPHRASE`.) Hasonlóan van pár rsync parancs, amit gyakran adok ki, hogy állományokat mentsek vagy állítsak vissza, ill. hogy könyvtárfákat szinkronizáljak. Azonban korábbi hibáimat elkerülendő, rsync-parancsot bőbeszédű módban adok ki, és először teszek a legvégére egy `-n`-t (= --dry-run). Minden rsyncelés előtt elöször kiadom az `-n`-es változatot, megnézem, hogy az történne-e, amit szeretnék, és ha igen, akkor: felfelé nyíl, C^a, szóköz, C^e, C^w, enter. Azaz: legutolsó parancs betöltése, sor elejére ugrás, szóköz beillesztése, sor végére ugrás, utolsó szó (itt: `-n`) levágása, parancs végrehajtása. Így a históriámban csak "száraz" rsyncek laknak. Köszönöm, HISTCONTROL=ignoreboth ! :D

A history-ban nem lesz benne de a ps kimenetében igen. Ez saját gépen még elmegy, de egy "közös" szerveren már lehet problémás, főleg ha sokáig fut a parancs.

~ $ # csak hogy látszódjon, hogy mi van benne
~ $ secret="foobar"
~ $ cat - $secret

Másik terminálon:

~ $ ps fax | grep [c]at  
8702 pts/3    S+     0:00              |   |   |   \_ cat - foobar

 

#maistanultamvalamit

I hate those Smurfs!

régebben copy-paste alkalmával belefutottam, hogy nem volt ott a historymban. ezután kinyomoztam miért. most már tudatosan használom

4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.

Ez fura, hogy többen belefutottatok, van, aki kikapcsolta. Elvileg ennek default nem kéne bekapcsolva lennie, default-on itt a shell upstream/dev default-ját értem, tehát a fejlesztői alapértelmezést, ami akkor lép életbe, ha nincs módosítva a kódbázis, nincs speciális fordítási kapcsoló alkalmazva és nincs shellrc, ami felülbírálja. Gondolom egyes disztrók kapcsolják be az rj-jükben. Ez pont az egyik hátránya a user helyett gondolkodó, bekapcsolunk mindent, úgyse érdekel senkit hogy működik elvű disztrók hozzáállásának, és ha valami fura történik, az ember csak nyomozhat, hogy mi lehet az oka.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Szerkesztve: 2022. 07. 30., szo – 22:37

Nálam általában Bash megy, ritkán zsh. Egyikben sem használom ezt a feature-t, pedig ezek tudnák, elég hasznos lehet egyes esetekben, megértem, aki szereti. Szigorúbban POSIX kompatibilis shellekben nem szokott lenni ilyen, bár valami okossággal ott is pótolható, pl. shell indulása előtt a history fájlból kiszűrni ezeket a szóközzel kezdődő sorokat.

Szerk.: egyébként pont ezt szeretem a unixlike világban. Ezeket az apró, hasznos, hatékonysági feature-öket, sokat enni nem kérnek, könnyen implementálhatók, de egyes esetekben rettenet hasznosak. Ez az apró szegmens, amit a mainstream fizetős OS-ek, meg a webmániás soydevek hanyagolnak, inkább a virtualizációs-konténerizációs, DRM-es, felhasználót lekorlátozós, webbloatos, electronos hülyeségeiket tolják, mintha az megváltaná a világot.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Szerkesztve: 2022. 07. 31., v – 09:09

En szeretnem hasznalni, de security okokbol mindent is rogzitunk. Tudom, a history nem security, ez inkabb csak kenyelmi dolog, ha vissza kell keresni valamit, de azert nem adjuk meg olyan konnyen a parancs elrejtesenek a lehetoseget. (van mas ket vedvonal ami rogzit mindent is)

En akkor szeretnem, amikor probalkozom, irom a csatakigyot, benne grep, cut, awk, miegymas, es nezem, hogy mit hoz ki, es tuningolom, javitgatom a parametereket, mig pontosan azt nem csinalja, amit szeretnek.

Ilyenkor hulyen nez ki a benazas a historyban, kicsit szegyenkezek is miatta. Ezt usznam meg, ha csak a tokeletes parancs maradna benne.

Jó, de a saját gépeden ez nehogy már probléma legyen, hogy kapitális biztonsági kérdés legyen egy shell history is. Ha szükséged van rá, kapcsold be. A rendszered most nem ettől lesz kevésbé biztonságos. Aki komolyan támadja a rendszered, az úgyse a shellbe fog gépelgetni, hanem scripteket fog futtatni, de már az is régen rossz, ha be tudott jelentkezni a gépbe.

Illetve én nem szégyenkeznék a bénázás miatt, nekem is van, hogy egy összetett parancs, vagy egy felparaméterezés 5-15 nekifutás után megy csak. Tényleg nem néz ki jól a historyban, de nem szégyen, inkább csak az áttekinthetőséget nehezíti egy későbbi parancs-visszahívásnál.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)