Komentohistoria löytyy komennon 'history' avulla shell:issä varmaan kaikista linux-ympäristöistä. Ja listauksessa on rivinumerot, joihin voi viitata '!n' komennolla jolloin kyseinen komento suoritetaan.
Entäpä sitten, kun kirjoittaa vahingossa väärään shelliin jonkin tärkeän salasanan ja se jää sitten historia-tiedostoon loppuelämäksi? Eipä mitään, sen voi poistaa komennolla:
$ history -d n
Missä n on poistettavan rivin numero historiatiedostossa kuten ylemmässä komennossakin.
Entäpä sitten, kun kirjoittaa vahingossa väärään shelliin jonkin tärkeän salasanan ja se jää sitten historia-tiedostoon loppuelämäksi? Eipä mitään, sen voi poistaa komennolla:
$ history -d n
Missä n on poistettavan rivin numero historiatiedostossa kuten ylemmässä komennossakin.
Vastaukset 16
Vanhimmat
Aivan, juuri noin. Niin kun vielä muistaa että komentohistoria tallentuu normaaliin TXT-tiedostoon ja Geany on ainut editori joka ei mene kyykkyyn vaikka listaukset olisi useampia miljoonia rivejä.
Jatka vaan, olet oikealla asialla.
Työlästä. Editoi suoraan esim:
nano .bash_history
Niin, avataan Geany editori suoraan sille riville missä se "poistettava salasana on"
geany -l $(awk '/salasana/{ print NR; exit }' words) -i words
"words" on esimerkissä se tiedosto ja sisältää useita miljoonia rivejä joten avaus suoraan käsiteltävälle riville on tarpeen.
Huomaa, jos teet saman millä tahaansa muulla editorilla, vain pampula pyörii ja pyörii ja kohta on kone jumissa eli Geany on tosiaankin ainut vaihtoehto enkä pysty kertomaan kuinka hitossa se pystyy tuohon.
Ei tarvitse edes penkoa historiaa, vaan poistaa kaikki rivit missä epämiellyttävä sana.
bash -c "unset HISTFILE && sed -i '/pahasana/d' historiatiedosto"
Tuossa suoritetaan omassa shellissä, ja "unset HISTFILE" tarkoittaa ettei juuri tuota komentoa tallenneta enää historiatiedostoon.
No joo, HISTFILE on ympäristömuuttuja ja sisältää täydellisen polun historia tiedostoon, jos sen sisältö tyhjennetään ei siinä istunnossa mitkään muutkaan ohjelmat tavoita kyseistä tiedostoa.
Ehkä sed komennon käyttö suoraan on fiksumpi tapa:
sed -i '/pahasana/d' $HISTFILE
Tuosta jäi välilyönti pois rivin alusta, se estää suorituksen historiaan kirjautumisen.
Livessä tuokin on aina tyhjä jos niin haluaa eikä paska talletu "ikuisiksi" ajoiksi.
Livessä elämä niin paljon helpompaa. Ei tarvi miettiä mitä tekee vaan voi vaan kokeilla.
https://aanatoly.github.io/fbpanel/
Tuon asetustiedostoa helppo muokata käytönaikana bash scriptauksella ja tuonjälkeen scriptissä komento
"killall -USR1 fbpanel"
Lataa sillai asetustiedoston uudestaan muutetuin asetuksin. Saa lisää ohjelmia paneeliin tai niitä pois.
Jos vaikka mounttaa ajonaikana lisää moduuleita peliin
Tämän jakelun tapaan
http://www.porteus.org
sen käyttämään tint2 paneeliin meni hermot.....
No niin bash "hyöty" scriptausta?
Jos mää kirjotan ihan mille riville tahansa sanotaan "#alkaa"
niin miten te kirjotatte sen alle lisää "uusia" rivejä? (scriptillä). "#alkaa" ei saa vahingoittua eikä sen sanan alapuolella olevat rivit....pitää siis luoda "tyhjästä" uusia rivejä sanan "#alkaa" alle ja kirjoittaa senjälkeen mitä paskaa nyt haluaakin kirjoittaa rivi kerralla?
Tuon jälkeen pitää tietysti pystyä poistaan kaikki kirjoitetut rivit ja "#alkaa" ei saa vahingoittua.
Helppoo kuin heinän teko.
Näinhän se on nähtävä, kaikki on helppoa kun osaa. Ehkä harvempi aloitteleva perehtyy tput- komentoriviympäristön mahdollisuuksiin.
Mutta ohjeistuskin sisältää virheitä jotka kopioituvat sivulta toiselle. Yksi sellainen on värien määrä jonka kerrotaan 0-8 väriä merkille ja saman verran taustalle, mutta totuus on 0-15 väriä.
MERKIN VÄRI, kirkas valkoinen
tput setaf 15; echo " x "
TAUSTAN VÄRI, kirkas valkoinen
tput setap 15; echo " x "
Niinpä minä olettaisin sinun käyttäneen ruudun tallennus/palautus komentoa.
jos tiedostossa kokeilu.txt lukee millä tahansa yhdellä rivillä "#alkaa" niin sen alle helppo kirjoittaa sed:llä esimerkiksi.
sed -i 's/#alkaa/#alkaa\n#poista\npaskaa\npaskaa\npaskaa\n/g' kokeilu.txt
tuo siis korvaa "#alkaa" sanan sanalla "#alkaa" kirjoittaa sen alle "#poista" (jota voidaan myöhemmin tarvita (jos halutaan lisätyt rivit poistaa) lisää sen alle 3 riviä jossa lukee "paskaa") #paska:n sijaan vois lukea mitä tahansa....
pos tuon saisi scriptsillä joka etsii kohdan "#poista"
sed -i '/#poista/,+3d' kokeilu.txt
Poistaa rivin jossa lukee "#poista" ja sen alta 3 riviä.
Harvinaisen asiapitonen ketju, näitä syntyy kun kaksi osaavaa törmää yhteen.
Historian uudelleen kirjoittaminen kuulostaa venäläiseltä jutulta.
En tiedä olisiko kuinka hyvä pistää verkosta kohdalle sattunut komentoputki talteen juuri tuohon history-tiedostoon ja testailla sitä sitten paremmalla ajalla.
Tee aliakset jotka switchaa historyfilen.
Ei hullumpi idea ja varmasti käyttökelpoinen jossakin tapauksessa, ei aina tule mieleen