BASH parancssorban használsz-e reverse-i-search-t parancsbevitel megkönnyítésére?

 ( davebacsi | 2019. október 7., hétfő - 8:15 )
Napi szinten használom. CTRL+R és már gépelem is a keresőszót, hogy előhívjam a history-ból a régebbi parancsokat.
68% (255 szavazat)
Nem használom, mert más módon érem el a régebbi parancsokat (pl.: history|grep "parancsnév").
8% (30 szavazat)
Minden kiadott parancsot jellemzően nulláról begépelek, nem használok history-t vagy reverse-i-search feature-t.
2% (9 szavazat)
Idáig nem tudtam, hogy mi az a reverse-i-search feature.
17% (62 szavazat)
Csak az eredmény érdekel, vagy ezen feature nélküli shell-t használok.
5% (19 szavazat)
Összes szavazat: 375

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

TABTAB

reverse-i-search es "alternate mapping for pgup and pgdown" egyutt. Inkabb utobbi.

Elmorzsolok egy konnycseppet, mert ksh van....

És? set -o emacs, és már hasznáhatod is kb ugyanúgy. (Vagy a korábban más áltar idevésett set -o vi, és < ESC > ? keresőkifejezés < ENTER >

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

alólam meg timmy kiszedi a bash-t. Valszeg ubin is majd beállítom a zsh-t hogy szokjam kicsit.

--
GPLv3-as hozzászólás.

BASH parancssorban használom, amennyiben bash kerül elém, a saját jól belakott zsh-mon egyszer beállítottam a fzf[1] + ripgrep[2] kombót[3], azóta szépen muzsikál

[1] https://github.com/junegunn/fzf
[2] https://github.com/BurntSushi/ripgrep
[3] http://owen.cymru/fzf-ripgrep-navigate-with-bash-faster-than-ever-before/

+1 az fzf-re lokalisan

"BASH parancssorban" is, de jellemzően inkább cmd.exe (windows terminál) alatt. :)

windows terminal alatt mi a hotkey? Szintén ctrl-r?

Alapértelmezetten nem tudja (legalábbis nem tudok róla), de Clink segítségével igen, és egy halom mást is.

Holy shit, köszönöm a tippet, ez nagyon bitang.

Ismerem, és elég ritkán használom.

Általában sokkal gyorsabbnak, kényelmesebbnek találom, hogy a PageUp gombbal visszalépkedek azon parancsok között, amelyek a már begépelt darabkával kezdődnek. Ehhez kell egy kis szösszenet az .inputrc-be, ami némely disztribben alap, másokban nem:

"\e[5~": history-search-backward
"\e[6~": history-search-forward

Igen, tudom, más a kettő. Ez például csak a parancs elején lévő egyezésre keres, nem tetszőleges részsztringre. Ha néha az utóbbira vágyok, Ctrl+R.

Én Ctrl-R függő vagyok. Elég gyakram a korábbi parancs közepéből kezdek gépelni, mert tudom, hogy úgy hamarabb megtalálja.

+1 erre:
# page up
"\e[5~": history-search-backward
# page down
"\e[6~": history-search-forward

Van jol belakott .inputrc-m (meg ugyanez bashrc-hez), uj gep beallitasa eseten ezek is koltoznek.

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

+1, bar en azert a Ctrl-R-t ist eleg gyakran hasznalom


I hate myself, because I'm not open-source.

ctrl+r -t lelkesen nyomkodva lep elorefele a historyban.
Itt van pelda a a visszafele keresesre is:
https://unix.stackexchange.com/questions/73498/how-to-cycle-through-reverse-i-search-in-bash

"Minden kiadott parancsot jellemzően nulláról begépelek, nem használok history-t vagy reverse-i-search feature-t."

Júúj.

--
arch,ubuntu,windows,android
zbook/elitebook/rpi3/nexus5_hammerhead

Programozó vagyok, de nagyon ritkán nyúlok bash-hez, history-t arra használom, hogy ha valamit összeraktam, akkor onnan kimásolom melyik parancs és beállítás volt jó :), utána törlöm is (mondjuk én hívásnaplót és böngésző előzményeket is törlöm, így tiszta, hogy mivel van még dolgom).

Nem napi szinten használom, csak akkor, amikor kell.

+1
Igy valahogy.

--
http://www.micros~1
Rekurzió: lásd rekurzió.

set -o vi
Keresés:
<ESC>/[pattern]<CR>
és még lépkedni is lehet.

Így aztán elegendő a vi ismerete és ksh alatt is működik. Csak jobban.;)

+1

Kicsit borzolod ám a hátamon a szőrt, tudod?

Ctrl-R után újabb Ctrl-R -ekkel lehet lépkedni, én ezt használom, általában elég hamar megvan amit keresek. Ha nincs, akkor history | less és utána már tanulhatok is a történelemből.

A borzolás meg azért van, mert bár a vi marha jó, és parancsorban sem haszontalan, van egy rohadt nagy hátránya: ha nincs benne rutinod, és agyilag a feladatra koncentrálsz és nem a környezetre amibe gépelsz, akkor csúnyán pofára eshetsz.

Az egy dolog, hogy adtam már le úgy Word doksit, hogy visszakérdeztek, hogy mi az a :w a végén? Kicsit ciki, kicsit vicces, de nem fáj senkinek.

Ellenben van egy kollégánk aki beállított néhány szerveren hogy vi legyen a parancssor, na ott már követtem el olyat, hogy félkész parancssor végérem mentem (volna) END -el, majd Backspace és egy karakter hozzáad, és Enter.
Csakhogy az End kirántotta a szerkesztő üzemmódból, és az utolsó karaktert nagybetűre cserélte, a backspace csak egyet balra lépett, és amit nyomtam egy karaktert az sok vizet már nem zavart, de mivel a megfelelő számú koppanáson túl volt a kezem, már ment is az Enter.
Root joggal. Éles szerveren. Kicsit ciki, de kurvára nem vicces! Mázli, hogy nem fájt senkinek.

Azóta szégyen ide vagy oda, de ezekre a szerverekere ha bemegyek, akkor a sudo su - után már megy is hogy bash, mert nem arra akarok figyelni hogy hogyan gépelek, hanem hogy miért pont azt.

Bocs, hogy hosszú lett, de ezt ki kellett írnom magamból. :-)

> Ctrl-R után újabb Ctrl-R -ekkel lehet lépkedni, én ezt használom, általában elég hamar megvan amit keresek.

Csak erre reagálnék. A kolléga által írt, vi-módú (ksh-ban és bash-ban is működő) megoldásában valóban nem elég a Ctrl-R-et nyomogatni, de
- ha akarod, az első keresés után ott is mondhatod, hogy / < ENTER > a továbbkereséshez;
- de ha ennyit nem akarsz gépelni, akkor az n (vagy N) gombokat kell nyomogatnod.

Szóval ezt azért nem tekinteném komoly előnynek. Persze az tény, a vi-t nem árt hozzá becsukott szemmel tudni kezelni :-)

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Mint ahogy Zahy írja: Persze az tény, a vi-t nem árt hozzá becsukott szemmel tudni kezelni :-)
Ezzel sokak szemében táltos státuszt is el lehet érni, de nem erről van szó. Mikor fiatalokat tanítok, vagy fórumon, el szoktam mesélni egy-két dolgot, általában "az már régen volt", stb. a lekicsinylő válasz. Pedig a vi előnye nem az, hogy sokak számára megtanulhatatlannak tűnik. :-D
Megpróbálok néhány vitathatatlan előnyt felsorolni:
- Ha az alap regexp (awk, sed, stb.) kifejezésekkel tisztában vagy, akkor ugyanazokat használod a vi parancsai között.
- Ha hibás vagy nincs terminálemuláció, a vi akkor is működik. Nem kell hozzá funkcióbillentyű, speciális billentyű (pl. PgUp), csak az alap betűkészlet.
- Nem kell két billentyűt egyszerre megnyomni és csak egy speciális billentyűt kell ismerned, ami az ESC.
- Nincs problémád, ha 300 baud a vonali sebesség, vagy az ESCDELAY 2 sec - ami miatt lehetetlen funkcióbillentyűt használni.
- Ugyanitt a vonalszakadás, vagy crash esetén sem veszik el az addigi munkád.
- Kedvez az öreg embereknek ;), mert csak egy féle dolgot kell megtanulni, a többi meg ugyanúgy működik.
- Programozáshoz ideális, mert a parancsokat programozói aggyal lehet összerakni.
- Kevés vi paranccsal is el lehet boldogulni legalább annyira, mintha egyszerű szövegszerkesztőt használnál.
- Fejlesztéshez elég a vi+makrók, make és fordító.
- Mindazt meg lehet csinálni vi segítségével, amit a Word soha nem fog tudni. ;) (Kezdd a vi *.txt-vel!)

És még a parancssorban is ugyanazt használhatod!!!

A fentiek miatt is, Windows alatt is a vi(m) az alapértelmezett szövegszerkesztőm. Sőt, a kiterjeszés nélküli fájlokhoz is azt társítottam.

A helyzeti előnyöm meg onnan ered, hogy a vi-t 27 éve tanultam, és javarészt unix konzolon programoztam. Nekem ez az alap.

Ugyanakkor megemlíteném, hogy bármilyen oprendszeren, bármilyen NLS beállítások mellett ugyanazt a repülőékezetes EN_US klaviatúrát használom. Nekem eddig bármit sikerült leírnom, szemben a mindentudókkal. :-D

> Nem kell két billentyűt egyszerre megnyomni

Lehet, hogy félreértem, de magyar billentyűzeten pl. a kettősponthoz, perjelhez két billentyű kell, ill. angol billentyűzeten is kell a Shift pl. a nagybetűkhöz. (Ugye, nem mindegy pl., hogy `o` vagy `O`.)

Persze ezzel együtt is jó dolog a vi(m), bár én pont olyan vagyok, hogy kevessé értek hozzá, de azért boldogulok vele.

- - -

Hááát, aki magyar billentyűzettel dolgozik unix parancssorban - az meg is érdemli, vagy gépirónő! :-D

Szerintem:
Persze, vannak nagybetűk is, meg számítógépen egyéb is. Ehhez meg van ideális kiosztás.
Bal oldalon alulról felfelé: SHIFT, CTRL, TAB. Az ALT és CAPS LOCK nem része a konzolnak és az utóbbi írógépen is csak úgy van. A módosító billentyűk bal kézzel, a repülőékezet , enter, slash és az esc bal kézzel érhető el. Sem az esc, sem a funkcióbillentyűk megnyomásához nem kell felemelni a kezed. Bár a funkcióbillentyűk sem tartoznak a konzolhoz, de a konzol váltáshoz vagy debughoz kellehetnek.
Ezen a kiosztáson még a gépírni tudók is könnyen dolgoznak. Az, hogy a (magyarban is) gyakran használt írásjelekhez nem std módosító billentyűk kellenek, nem könnyíti az írást.

Szóval a kettős billentyű alatt a normál gépírástól eltérő, néha két kezet is igénylő konbinációkat értettem. Pl. az ALTGR+Q. De igen rossz a mindenki által természetesnek tartott F5=copy (akármilyen kommander). Volt olyan is, ahol a c=copy, de azt mindeni természetellenesnek tartotta. A vi-ben ilyen a c(hange)w(ord) is. Helyette természetesebb az egér shift egér kijelölés. :-D Na, vajon melyikkel lehet gyorsabban dolgozni?

Mondják, hogy a vi sem való nőknek, mert kell hozzá +1 bit buffer a parancs mód megjegyzéséhez. (Azt meg már elhasználták, hogy ne szarják össze a tyúkudvart.) Így aztán a kilépés mentéssel mindig ESC : w q - hátha insert módban voltunk. :)

OFF

Na itt egy vi szakértő, hátha tud nekem segíteni.
Mostanában mindenféle board-okon dobok össze különböző Linux disztrókat. Debian-t is, meg Yocto-t is.
Általában az első dolog, hogy induljon el az ssh szerver, meg a vi. Az egyik board-on futó vi egy kicsit furcsán viselkedik. Ha PC-ről beesesházok, a vi-ban nem működik az egér középsőgombos copy-paste. Mintha a vi megértené az egérgomb megnyomást, és valami piros hibaüzenetet ír ki alulra. Nem tudod, ez miért lehet?

Hát, olyasmire gondolok, hogy az egér vágólapon escape -el kezdődik a tartalom, vagy valami egzotikus a terminál emuláció, és emiatt command módban valami marhaságot akar csinálni a beszúrandó karakterhalmaz.

De csak találgatok. Mi az a hibaüzenet ami kiír pirossal?
Még az is lehet, hogy read-only a file, vagy a vi valamiért read-only módban nyitja meg az egyébként írható filet, és emiatt panaszkodik.

E353: Nothing in register "

Mondjuk nem olyan érdekes, csak eszembe jutott. Meg aztán közben Guglin meg is találtam. Elfelejtettem írni, hogy ez nem vi, hanem vim. Az egyszerű vi-t nagyon ritkán használom, igyekszem rögtöm a vim-et föltenni.
Amúgy ez az új vim már nekem is túlzás. Ismeri az egér görgetést, és ha egérrel belekattintok valahova, akkor oda viszi a kurzort. Az utóbbi kifejezetten idegesít, mert direkt szerettem azt a feature-t, hogy csak billentyűzettel lehetett odébbvinni a kurzort.

Idézet:
E353: Nothing in register "

Nyomd a shiftet és úgy próbáld a beillesztést!

Persze lehet, hogy ezen már túl vagy, de PC-n pl. putty-ban lehet konfigurálni, hogy az egér gombjai milyen üzeneteket küldjenek, és úgy emlékszem, az alapértelmezett nem a közép gombos beillesztés.

Szóval érdemes első körben megnézni az ssh kliensedet.

A második, némely vim (de lehet, hogy vi és más vi klónok is, nem teszteltem), a beállításoktól függően máshogy kezelik az egeret, mint a konzol. Pl. kiválasztok valamit az egér bal gombjával, és vim-ben a középső gomb nem azt illeszti be, hanem ami az ő saját vágólapján van. Meg hasonló. Ilyen esetben shift gomb nyomása mellett az egér gombok azt csinálják, amiket én elvárnék.

Szóval második körben shift-et lenyomva teszteld a középső gombos beillesztést, hátha valami hasonlóba futottál bele.

Ez túlzás, én csak használom.
Alant írják, hogy terminálemuláció. Csak azzal tudom megtoldani, hogy csak konzolon használok egeret, de akkor van gpm. Az ssh bejelentkezés esetén a két oldal többnyire egyforma, vagy a putty windows alól is ugyanúgy működik.
A középső gomb arra utal, hogy desktopról használod. Én meg nem használok ilyekor desktopot.
Legjobb rendszer a windows, mert sok putty ablakot lehet rajta nyitni! :-D

Félreértés ne essék, én nem a vi -t szidom!

Napi szinten használom a vim-et, abban fejlesztek.
Vim mágusnak nem tartom magam, az alapokon kívül néhány trükköt ismerek csak, de nincs vele gondom, tulajdonképpen szeretem.

A gondom azzal van, hogy parancssorban nem ehhez szoktam hozzá. Kiemelném, hogy parancssorban! Ott én megszoktam a Home, End használatát, és ezeket reflex szerűen nyomom. Nem is gondolok rá, hogy mit nyomok.

Na, ha itt a környezet vi, akkor az egy taposóakna, és nem csak számomra, hanem mindazok számára akik megszokták, ahogy a vim -es gondolkodást csak az editorban kell bekapcsolni.

Az End engem is rendszeresen megszivat olyan gépen, ahol még nem húztam föl a rendes TTY-t.

[x] sajat parancssoros biszbaszokba is beforditom a libreadline-t - mert sok hasznos featuraja van, tobbekkozott ez is.

rlwrap


I hate myself, because I'm not open-source.

Hogy mik vannak! Thx :)

Mondjuk a libreadline-s dolgokat C programokbol hasznalom. De majd fokozom 1x ha lesz idom, mert ha sikerulne rajonni hogy hogyan kell hasznalnom egy telnet (jellegu) backendet akkor sima mezei socket/netcat helyett telnet+readline is lehetne egy szep napon a cuccokban.

Mostanában Ctrl-R helyett: https://github.com/dvorka/hstr

Na, ezt kipróbálom.

---------------------------------------------------------------
Csak akkor szólok hozzá egy témához, ha értelmét látom.

Nagyon jó!

Köszi a tippet, már telepítettem is... ;)

En olyan szinten ra vagyok utalva a ctrl-r-re hogy szinte egy nyives git parancsot sem tudok parameterezni.... pl. a "gitk -l" parancsot a "tk"-val hivom elo... par honapja moveoltam fedora huszonvalahanyrol 29-re... legfontosabb volt kimenteni a bash_history-t :)

+1
Nem tudom fejből, hogyan kell megnézni a tag-eket, pedig hetente 1-szer 2-szer biztosan használom. De nem is akarom megtanulni, ott a Ctrl-R. :)

sub

BASH-ban keveset, IPythonban rengeteget használom.
--
eutlantis

ipythonban *mukodik*, bashban baromi gagyi

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Mivel sose használtam ipythont, így csak a part széléről kérdezek: miben ad többet ott, mint bash-ban?

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

a parancs elejere keres, es nem barmilyen egyezesre, es utana felfele nyillal tudsz lepkedni a talalatok kozott.

Ha meg megse jott be, akkor esc-re visszakapod azt ahonnan kiindultal

Bashnal ossze-vissza keress (barhol egyezesed van), es ha esc-et nyomsz akkor a legutolso talalattal otthagy amit tipikusan vissza kell torolnod es ujra begepelned.

Az ipythonnal akkor hasznalom, amikor tudom mit akarok gepelni csak nem akarom vegigirni, mert mar megtettem egyszer.

A bashnal akkor hasznalom, amikor nem emlekszem valamire. Es altalaban .bash_history turkalas a vege

Jah es ipythonnal oda-vissza is tudsz lepkedni, igy ha volt talalatod de ugy emlekszel hogy ezt reszletesebben is kiirtad akkor lepdelsz tovabb, de ha megse akkor a lefele nyillal visszamegyek a legjobb talalathoz.

Syntax highlightot ne is emlitsuk:)

Amugy mostanaban nem pythonozok annyit, de szamologepnek *mindig* ezt
hasznalom. Eredmenyt gyorsan beteszem egy valtozoba, stb,stb.
Sokkal gyorsabb, mint az excel (nekem).

Ha veletlenul gyokot kell vonni, akkor "impo" es felfele nyillal kivalasztom a mathos valamit, es van sqrt.

Szoval szamologepnek uberelhetetlen.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Idézet:
ha esc-et nyomsz akkor a legutolso talalattal otthagy amit tipikusan vissza kell torolnod

C-g

Ezt én sem értettem.

D

"Ha veletlenul gyokot kell vonni, akkor "impo" es felfele nyillal kivalasztom a mathos valamit, es van sqrt."
>>> x=9
>>> x**.5
3.0

"Szoval szamologepnek uberelhetetlen."
Hatalmas +1 erre, en is szamologepkent hasznalom a legtobbet (vagy fejleszteshez interaktiv modban). A numpy-rol nem is beszelve.

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

[X] Napi szinten rengeteget használom

Soha nem használom. Egy kicsit több, mint 10 éve írtam egy szkriptet ami felülcsapja a PROMPT_COMMAND-ot, és a parancsokat napi bontásban fájlokba menti. Zavart ugyanis, hogy a parancsokhoz nincs dátum (néha az érdekelt, hogy egy adott napon mit ügyködtem), és az is bosszantott, hogy ssh megszakadásnál ugrott a history.

Készítettem egy faék egyszerű keresőt is hozzá és azzal keresek.

Most megnéztem, az elmúlt 2134 nap kiadott parancsai itt vannak a gépemen (cipelem a mappát amikor új laptopra költözök, meg van mentésem), és ez meglepően gyakran jól jön.

Ez a szavazás annyira inspirált, hogy kiraktam github-ra, hátha valakit érdekel:
https://github.com/mheder/hse/

> Zavart ugyanis, hogy a parancsokhoz nincs dátum

Bash esetén `HISTTIMEFORMAT`?

- - -

Valamiért nem tetszett, kinullázom az elején. De már nem emlékszem, hogy miért...

Nalam ilyen van:
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Aha, lényegében ugyanez, csak napi fájlokban :)

Regen hasznaltam - meg mielott a TAB-ot megismertem volna :)

Most a systemctl idokben szinten jol jon, sose tudom, hogy melyik gepen eppen mi a mysql daemon akt. neve (mysql, mysqld, mariadb)

Szoval ritkan, de meg hasznalom. Akkor nem oke, ha sok egyforma parancsot adok ki, amik csak parameterben kulonboznek. Akkor jobb a history

--
http://www.micros~1
Rekurzió: lásd rekurzió.

Napi szinten. Egy dolog zavar csak, ha begépelek valamit, majd arra nincs találat nincs opció a már begépelt parancs részlet megtartásával kilépni a keresésből.

Minden áldott nap; többnyire azért, hogy kevesebbet gépeljek.

Pl. a `sudo apt update; sudo debdelta-upgrade; sudo apt dist-upgrade` parancsból Ctrl + R után többnyire elég annyit gépelnem, hogy `dist-`, és kész. Ugyanígy megy a VPN-kapcsolat ellenőrzése (`curl -s https://am.i.mullvad.net/json | jq` helyett csak `am.`), Tomb-titkosított kötetek megnyitása-bezárása, hosszabb, rendszeres ssh-n keresztüli parancsok kiadása, meg egyebek.

Dixlémer: a fenti "reklámokat" minden személyes előny nélkül teszem közzé, semmi refer, meg rejtett reklámszerződés nincs a háttérben. =)

- - -

Egyszer egy indiainak próbáltam volna megmutatni a ctrl+r-t, de erre büszkén kimondta, hogy ő nem használ shortcut-okat...

Én is csak akkor használom, ha kell, napi szinten nem.
Viszont ez a "hse" és a "hstr" jó cuccnak tűnnek, köszi, efel és hedermisi, hogy megosztottátok!

Én szeretek gépelni, ráadásul ritkán adom ki ugyanazt a parancsot egymás után. De ha mégis kell, akkor fc -l és ha olyan a terminal, akkor cut&paste. Ha nem, akkor gépelek.

Ave, Saabi.
ps: a kedvenc oprendszeremben POSIX shell, a többiben zsh, de amennyit én használok belőle, akár bármi is lehetne...

ZSH-m van, FZF-fel használom a zsh-autosuggestions pluginnal karöltve.