Vinkkejä komentoriveille

Pärsereikä

Ajattelin että jospa kouliintuneet käyttäjät antaisivat hieman vinkkejä meille vähemmän osaaville miten komentorivityötä voi helpottaa. Aloitan itse ketjun näin;

1. Kaikkea ei tarvitse kirjoittaa aina uudestaan sillä komentorivihistorian saa näkyviin komennolla " history ". Komennot on numeroitu suoritusjärjestyksessä ja jos haluat ajaa jonkun pitkän komennon menneisyydestä katso sen numero ja kirjoita se huutomerkin kera esim. " !213 " jolloin ko. komento ajetaan uudestaan. Ja esim. " !make " ajaa komentohistoriassa viimeksi käytetyn make-alkuisen komennon uudestaan.

2. Opettele käyttämään aliaksia, alias luodaan näin " alias imuri='cd /home/koti/lataus | ls' jolloin komentoriville syöte " imuri " siirtää sinut hakemistoon lataus ja tulostaa sisällön näytölle. Itselläni firefox siis lataa netistä tuon nimiseen kansioon. Pelkkä " alias " tulostaa käytössä olevat aliakset näytölle. Kotihakemistossa joutuu kuitenkin hieman muokkaamaan .bashrc -tiedostoa ja luomaan .bash_aliases -nimisen tekstitiedoston ellei sitä ole, muutoin aliakset ovat voimassa vain kunnes komentorivi-istunto päättyy. Huomaa aliaksen luomislauseessa sanojen välit tai niiden puute!

Tässä pari esimerkkiä miten töitä voi keventää, esitelkääpä lisää miten hoidatte hommia.

17

1069

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 654654

      toinen näppärä juttu on kun näppäilee "uparrow" eli nuoli ylös -näppäintä, jolla saa edellisen komennon, ja taas uusiksi näpäyttämällä sitä edellisen, jne.

    • Pärsereikä

      Että jos oikeasti tulee mieleen joitakin pikku vinkkejä joita itsekin käytätte, jotka nopeuttavat/yksinkertaistavat tavallisia puuhia. Manuaaleja lukemalla tietysti oppii mutta hain niinkun käyttäjien omia mielipiteitä siitä mitä oikopolkuja tulee käytettyä.

      Tietysti ongelma on se että ne jotka osaavat hyödyntää tehokkaasti ominaisuuksia eivät sitä itse tajua tai toisinpäin, eivät ymmärrä miten työlästä komentorivieditointi on aloittelijoille.

      Yhdistäen/soveltaen aloitussäiettä, luo alias " alias h='history' jolloin saat komentohistorian näytölle pelkästään iskemällä " h " . Kunhan historia alkaa olemaan 500 rivin pituinen niin vanhempien pitkien komentojen kaiveleminen on taatusti nopeampaa kuin nuolinäppäilemällä hakeminen.

      • niksi

        Pistäppä seuraavat kaksi bind-riviä .bashrc-tiedostoosi:

        bind '"\e[A": history-search-backward'
        bind '"\e[B": history-search-forward'

        Ota nuo muutokset käyttöön vaikkapa uudella komentorivi-ikkunalla.

        Huomaat, että nuolinäppäimillä löytää aiemmat komennot tosi nopeasti! Kokeile vaikka seuraavaa: kirjoita komentoriville vanhan komennon pari ekaa merkkiä ja sitten nuoli ylös tai alas...


      • Pärsereikä
        niksi kirjoitti:

        Pistäppä seuraavat kaksi bind-riviä .bashrc-tiedostoosi:

        bind '"\e[A": history-search-backward'
        bind '"\e[B": history-search-forward'

        Ota nuo muutokset käyttöön vaikkapa uudella komentorivi-ikkunalla.

        Huomaat, että nuolinäppäimillä löytää aiemmat komennot tosi nopeasti! Kokeile vaikka seuraavaa: kirjoita komentoriville vanhan komennon pari ekaa merkkiä ja sitten nuoli ylös tai alas...

        Hienoa, juuri tällaistä mä odottelin. Kokeilen hyvinkin pian, tätä ominaisuutta en edes muistanut.

        Entäpä tämä; Lyö mikä tahansa kirjain tai kirjainyhdistelmä ja paina TAB (tai 2xTAB) niin saat tulosteen kaikista kirjainyhdistelmän edellyttämistä komennoista jotka ovat käytettävissä.


    • bash-funktio

      .bashrc-tiedostoon voit kirjoittaa myös funktioita aliasten lisäksi. Funktiot ovat vähän monipuolisempia kuin aliakset.

      Kokeile esim. seuraavaa:

      em()
      {
      emacs $* &
      }

      Tuolla saat emacsin käynnistymään uuteen ikkunaan vaikkapa:

      em teksti.txt

      • Pärsereikä

        Jos teillä on lisää tällaisia yksinkertaisia funktioita niin antaakapa palaa, näistä on monelle lukijalle varmasti paljon hyötyä! Komentoeditoriahan oppii käyttämään oikeasti vain juuri näiden kautta ja kynnys kokeilemiseen on taatusti matalampi kun saa vähän esimerkkiä alkuun. Helppoja tietysti, ei mitään sivun pituisia skriptejä heh. Kunhan pääsee alkuun niin tunnetusti nälkä kasvaa syödessä ja kun motivoituu niin jaksaa jo itsekin tutkia manuskoja tarkemmin, lisäksi kaikki esimerkit luovat kokemuspohjaa joita voi käyttää apuna.


      • tässä hei
        Pärsereikä kirjoitti:

        Jos teillä on lisää tällaisia yksinkertaisia funktioita niin antaakapa palaa, näistä on monelle lukijalle varmasti paljon hyötyä! Komentoeditoriahan oppii käyttämään oikeasti vain juuri näiden kautta ja kynnys kokeilemiseen on taatusti matalampi kun saa vähän esimerkkiä alkuun. Helppoja tietysti, ei mitään sivun pituisia skriptejä heh. Kunhan pääsee alkuun niin tunnetusti nälkä kasvaa syödessä ja kun motivoituu niin jaksaa jo itsekin tutkia manuskoja tarkemmin, lisäksi kaikki esimerkit luovat kokemuspohjaa joita voi käyttää apuna.

        Pärsereiälle terveisiä, tuo on perhanan hyvä homma minkä alotit ei tuollaisia kikkakolmosia tietäis olevan olemassakaan ellei niitä täältä lukisi.


      • Pärsereikä

        >>Funktiot ovat vähän monipuolisempia kuin aliakset.

        Todellakin, funtiot vastaavat jonkin asteista ohjelmointia ja rajana on vain mielikuvitus. Tarkoitus on kuitenkin hyödyttää "tavallisia" käyttäjiä joilla ei yleensä ole valmiuksia/haluja opetella "c-ohjelmointia" joten aliakset ovat yksinkertaisempina parempia. Tietenkin YKSINKERTAISET funktiot käyvät yhtä hyvin.

        Kuitenkin, tässä yksi alias vaikkapa varmuuskopiointiin eli tämä luo toiselle levyosiolle pakatun arkiston omasta kotihakemistosta; alias varmistakoti='echo "VARMUUSKOPIOINTI KÄYNNISSÄ!!" && sudo tar czf /omalevy2/kotikopio.tar.gz /home/koti && echo "VALMIS!"'

        Tämän toimii vain manuaalisesti sillä se pyytää root-salasanaa eli ei voi ajaa cronilla ajastettuna. Tai siis mä en osaa sulloa sitä salasanaa tuohon sekaan.


      • Pärsereikä
        Pärsereikä kirjoitti:

        >>Funktiot ovat vähän monipuolisempia kuin aliakset.

        Todellakin, funtiot vastaavat jonkin asteista ohjelmointia ja rajana on vain mielikuvitus. Tarkoitus on kuitenkin hyödyttää "tavallisia" käyttäjiä joilla ei yleensä ole valmiuksia/haluja opetella "c-ohjelmointia" joten aliakset ovat yksinkertaisempina parempia. Tietenkin YKSINKERTAISET funktiot käyvät yhtä hyvin.

        Kuitenkin, tässä yksi alias vaikkapa varmuuskopiointiin eli tämä luo toiselle levyosiolle pakatun arkiston omasta kotihakemistosta; alias varmistakoti='echo "VARMUUSKOPIOINTI KÄYNNISSÄ!!" && sudo tar czf /omalevy2/kotikopio.tar.gz /home/koti && echo "VALMIS!"'

        Tämän toimii vain manuaalisesti sillä se pyytää root-salasanaa eli ei voi ajaa cronilla ajastettuna. Tai siis mä en osaa sulloa sitä salasanaa tuohon sekaan.

        Niin mitä se oikein tekikään.. echo eli kaiuta = näyttää tekstin "VARMUUSKOPIOINTI KÄYNNISSÄ!" ja sen jälkeen rootina (sudo) tar-apuohjelma arkistoi tiedostoksi /omalevy2/kotikopio.tar.gz oman kotihakemiston /home/koti. tar käyttää parametreja czf eli -c luo tiedosto -z käytä gzip-pakkausta ja -f arkistoi ja lopuksi kaiuttaa (echo) että homma on "VALMIS". && tarkoittaa siis loogista "JA" sanaa.


      • Pärsereikä
        tässä hei kirjoitti:

        Pärsereiälle terveisiä, tuo on perhanan hyvä homma minkä alotit ei tuollaisia kikkakolmosia tietäis olevan olemassakaan ellei niitä täältä lukisi.

        Kiitän. Juuri tämän vuoksi halusin tämän aloittaa.. että joku saisi ideoita ja oppia miten edetä linuxin kanssa. Komentoeditori on oikeasti aivan äärettömän tehokas työkalu jos sitä osaa käyttää. Sen takia olisi suotavaa/mukavaa että tehokäyttäjät kertoisivat näitä vinkkejä miten homma hoidetaan oikein. Ei kai ihan kaikea tarvi itse opiskella? Sen takia kai tämä palstakin on olemassa että saadaan apuja? Hyödyttää linuxia ja linux-käyttäjiä?


      • hoitaa seuraavasti
        Pärsereikä kirjoitti:

        >>Funktiot ovat vähän monipuolisempia kuin aliakset.

        Todellakin, funtiot vastaavat jonkin asteista ohjelmointia ja rajana on vain mielikuvitus. Tarkoitus on kuitenkin hyödyttää "tavallisia" käyttäjiä joilla ei yleensä ole valmiuksia/haluja opetella "c-ohjelmointia" joten aliakset ovat yksinkertaisempina parempia. Tietenkin YKSINKERTAISET funktiot käyvät yhtä hyvin.

        Kuitenkin, tässä yksi alias vaikkapa varmuuskopiointiin eli tämä luo toiselle levyosiolle pakatun arkiston omasta kotihakemistosta; alias varmistakoti='echo "VARMUUSKOPIOINTI KÄYNNISSÄ!!" && sudo tar czf /omalevy2/kotikopio.tar.gz /home/koti && echo "VALMIS!"'

        Tämän toimii vain manuaalisesti sillä se pyytää root-salasanaa eli ei voi ajaa cronilla ajastettuna. Tai siis mä en osaa sulloa sitä salasanaa tuohon sekaan.

        1) kirjoita tiedosto esim. /root/bu.bash, jonka sisältönä on aliaksesi sisältö ilman sudo-sanaa

        2) katso man 5 crontab:sta apuja. Komenna roottina

        crontab -e

        ja kirjoita editoriin jotain seuraavaa:

        # run five minutes after midnight, every day
        5 0 * * * /root/bu.bash >> /root/bu.log 2>&1

        ja sulje editori.

        3) huomaa kuinka varmuuskopiosi tulevat siististi joka yö.


    • jepjee

      Tabulaattorin käyttö täydentämään on myös mainio juttu. Siis kirjoita pari ensimmäistä kirjainta ja tarjoa tabulaattoria, jos herjaa eli on useita vaihtoehtoja, kirjain lisää ja taas tab jne jne.

    • tipsejä taivaasta

      .bashrc-tiedostoon:

      alias mv='mv -i'
      alias cp='cp -i'
      alias rm='rm -i'

      tarvittaessa nuo oletukset voi ohittaa komentorivillä:

      rm -f *

      • sana.

        Tuota rm -f * ei aloittelijoiden pidä mennä kokeilemaan jos ei tiedä mitä on tekemässä.

        En ymmärrä mitä liikkuu tällaisten kieroilujen postaajien korvien välissä.


      • mitä ymmärrät
        sana. kirjoitti:

        Tuota rm -f * ei aloittelijoiden pidä mennä kokeilemaan jos ei tiedä mitä on tekemässä.

        En ymmärrä mitä liikkuu tällaisten kieroilujen postaajien korvien välissä.

        se lienee paljon helpompaa.


    • Bash-shellissä on oletuksena sidottu ctrl-r aiempien komentojen hakemiseen:

      Esim. jos tyypillinen sessio menisi näin:

      @host 20:17:43 ~>man ls
      ...

      ...

      Ja sitten jossain vaiheessa haluat hakea viimeisimmän man-komennon, niin painaa ctrl-r ja alkaa kirjoittamaan osaa siitä aiemmasta komentorivistä, esim. kun alkaa kirjoittamaan "man ", niin todennäköisesti ensin löytynyt rivi on tuo "man ls".

      (reverse-i-search)`man': man ls

      Returnilla löytynyt rivi ajetaan. Jos haettu rivi ei ollut se, mitä haluttiin, niin voi painaa ctrl-r uudelleen tai kirjoittaa enemmän haettavasta rivistä.

      Aiemmin mainitut aliakset on myös kannattavaa opetella. Ne voi tietysti lisätä tiedostoon ~/.bashrc (joka siis käynnistetään ajettaessa aina bash, ks. man bash), mutta sen ylläpitäminen voi ajanmittaan käydä työlääksi. Itse tein tiedoston ~/.aliases (jonka jokaisella rivillä on samanlaiset aliakset kuin mitä lisättäisiin .bashrc:een, ali alias joku=jotain), jonka luen .bashrc:stä bashin komennolla source (source ~/.aliases). Source-komennolla on myös saman asian tekevä alias ".", eli ". ~/.aliases".

      Aliaksen käytön voi myös estää väliaikaisesti laittamalla rivin alkuun \:n, ja aliaksen voi poistaa käynnissä olevan komentotulkin ympäristöstä komennolla unalias, eli "unalias jokualias".

      Myös aiemmin mainitut funktiot ovat käteviä. Itse käytän toistuvasti bash-funktiota, joka kutsuu grepiä tietyillä optioilla ja annetulla parametrilla:

      ga ()
      {
      if [ -z "$1" ]; then
      echo "no args";
      return;
      fi;
      grep "$1" -ri --exclude=*.o --exclude=*.ko --exclude=*~ .
      }

      ga on funktio, joka etsii nykyisestä hakemistosta ja sen alihakemistoista (rekursiivisesti, -r) annettua merkkijonoa välittämättä isojen ja pienten kirjaimien rosta (-i). Niitä tiedostoja, jotka ovat muotoa *.o, *.ko tai *~ ei oteta mukaan hakuun. Käyttö on siis tyyliin "ga hakusana".

      Tästä päästäänkin toiseen asiaan, eli putkitusten käyttöön. Joskus tulostetta on niin paljon, ettei kaikki mahdu näytölle. "ga hakusana | less" pelastaa.
      Muutenkin putkitusten luovalla käytöllä saa tehtyä kaikkea hämärää tehokkasti ja helposti.

      Seuraava projekti tästä on opetella usein käytettyjä komentoja esim. mitä nyt hakemistojen /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin yms. varrelta löytyykään. Sitten vielä todo-listalle shelliskriptien tekeminen, niin sitten selviää jo aika pitkälle.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. 122
      2936
    2. Katso: Ohhoh! Miina Äkkijyrkkä sai käskyn lähteä pois Farmi-kuvauksista -Kommentoi asiaa: "En ole.."

      Tämä oli shokkiyllätys. Oliko tässä kyse tosiaan siitä, että Äkkijyrkkä sanoi asioita suoraan vai mistä.... Tsemppiä, Mi
      Tv-sarjat
      83
      2692
    3. Voi kun mies rapsuttaisit mua sieltä

      Saisit myös sormiisi ihanan tuoksukasta rakkauden mahlaa.👄
      Ikävä
      17
      2168
    4. Kyllä poisto toimii

      Esitin illan suussa kysymyksen, joka koska palstalla riehuvaa häirikköä ja tiedustelin, eikö sitä saa julistettua pannaa
      80 plus
      19
      1757
    5. "Joka miekkaan tarttuu, se siihen hukkuu"..

      "Joka miekkaan tarttuu, se siihen hukkuu".. Näin puhui jo aikoinaan Jeesus, kun yksi hänen opetuslapsistaan löi miekalla
      Yhteiskunta
      21
      1658
    6. Haluan jutella kanssasi Nainen

      Olisiko jo aika tavata ja avata tunteemme...On niin paljon asioita joihin molemmat ehkä haluaisimme saada vastaukset...O
      Ikävä
      15
      1499
    7. Poliisiauto Omasp:n edessä parkissa

      Poliisiauto oli parkissa monta tuntia Seinäjoen konttorin edessä tänään. Haettiinko joku tai jotain pankista tutkittavak
      Seinäjoki
      17
      1459
    8. Haluan tavata Sinut Rakkaani.

      Olen valmis Kaikkeen kanssasi...Tulisitko vastaa Rakkaani...Olen todella valmistautunut tulevaan ja miettinyt tulevaisuu
      Ikävä
      28
      1417
    9. Onko mies niin,

      että sinulle ei riitä yksi nainen? Minulle suhde tarkoittaa sitoutumista, tosin eihän se vankila saa olla kummallekaan.
      Tunteet
      16
      1387
    10. Kristityt "pyhät"

      Painukaa helvettiin, mä tulen sinne kans. Luetaan sitten raamattua niin Saatanallisesti. Ehkä Piru osaa opetta?!.
      Kristinusko
      6
      1302
    Aihe