Tietääkö joku miten luodaan oma Bash-scripti käsky

Utelias-jonne

Tulisi toimia kuten kaikki muutkin Bash Shell komennot, eli ottaa vastaan tulostusta ohjaavan arkumentin. Siis herättelen mielenkiintoa luoda omia käskyjä jo olemassa olevien lisäksi.

Tästä olis hyvä aloittaa:
1. - Ctrl T
2. - myip
3 - 85.76.35.211 torstaina 27.04.2017 klo:15:04:39

1. - Käynnistää komentotulkin
2. - Itse tehty käsky
3. - Käskyn tuloste (IP Aika)

Miten sinä toteuttaisit tuommosen. Jatkossa voitas kehittää sitä, niin että ottaisi vastaan vaikka -i parametrin jolla saataisiin ulos vain ip, ja -a parametrilla vastaavasti aika ilman ip:tä

Linux Mint 18 Sarah
Xfce 64-bit

38

1935

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • dsfasfasfsa

      Mikä ip? Oletetaan että oma ulospäin näkyvä ip on kyseessä. Silloin se pitää jostain palvelusta hakea vaikka wgetillä (koska välissä voi olla NAT joko kotona tai operaattorilla tai sekä että).

      1. ) tehdään tekstitiedosto munip
      https://pastebin.com/5ghUsJRC

      2.) muutetaan tiedosto suoritettavaksi
      chmod a x munip

      3.) nyt komennon voi suorittaa
      ./mun ip

      4) jos sen halutaan toimivan hakemiston ulkopuoleltakin ilman polkua, siirretään se sopivaan paikkaan
      sudo mv munip /usr/bin

      5) nyt se toimii mistä vaan komentamalla
      munip

      ei toi nyt nättiä koodia ole, mutta onpa jotain..

      • dsgsdgsdgs

        itseasiassa viimeisen rivin vertailumuuttuja pitäisi olla $argc eikä $var. mutta toimii se noinkin melkein kaikissa tilanteissa.


      • Anonyymi
        dsgsdgsdgs kirjoitti:

        itseasiassa viimeisen rivin vertailumuuttuja pitäisi olla $argc eikä $var. mutta toimii se noinkin melkein kaikissa tilanteissa.

        Ei ole mitään väliä kumpaa käyttää vai käyttääkö ihan jotain muuta, loppu tulos on sama.


      • Anonyymi

        OI JOI!!

        Oudoksuva Perseilevä 80 vuotias papparainen. Istuu koneella ja häiriköi jatkuvasti!

        Psykologeille tutkittavaa olisi siinä asiassa, miksi Windowsin käyttäminen tekee ihmisen tavattoman kateelliseksi, äreäksi ja pahansuovaksi.
        🤐 🤐🤐
        Olisi monta muutakin negatiivista psyykkistä piirrettä, mitä Windowsin käyttö ilmeisestikin aiheuttaa, mutta tällä kertaa jätän listani lyhyeksi.
        🤐 🤐🤐


    • Apua-tarvitaan-kipeesti

      Tuo oli oikein hyvä, ja toimii.
      Nyt minulla on tämmöinen Bash scripti, jolla luodaan ohjelman poistaja. Olet varmaankin huomannut että myöskään Linuxsissa tuo ohjelmien poisto ei tee puhasta jälkeä, vaan aina jää jotain siivottavaa.

      Siksipä tein tuon scriptin jonka huonoja puolia on tuo locate komentoon pohjautuminen, ja niinpä poistettavien mukaan tulee myös sellaista mitä ei ole tarkoitus poistaa. Se kuinka paljon mukana on vääriä on kiinni poistettavan ohjelman nimestä. Esimerkiksi FireFoxin poisto menee 100% oikein, mutta jos poistettavan nimi on lyhyt vaikka ftp, niin mukaan tulee vääriä poistettavia enempi kuin oikeita.

      https://pastebin.com/Y7AZazbW

      Eli tuo scripti ajetaan näin

      tee-ohjelman-poistaja firefox

      Tuon komennon seurauksena sinulle syntyy:

      poista-firefox.sh

      Kun nyt ajat tuon, poistuu FireFox täydellisesti.

      JA NYT sitten kysymys, olisko sinulla ideaa, kuinka tuosta saatas parempi ?

      Linux Mint 18 Sarah
      Xfce 64-bit

      • Anonyymi

        Ohjelmat poistetaan paketinhallinnalla.


      • Anonyymi
        Anonyymi kirjoitti:

        Ohjelmat poistetaan paketinhallinnalla.

        Tässä tapauksessa kannattaa asentaa Windows, niin pääsee kakarakurttauksesta kerralla eroon.


      • Anonyymi
        Anonyymi kirjoitti:

        Ohjelmat poistetaan paketinhallinnalla.

        Varmaan DEBIANIN kyttäjä no on Ubuntun käyttäjätkin yhtä typeriä kirjoitelleet.

        Veikkaan kuitenkin DEBIANIN käyttäjää koska ei yhtään kirjoitusvirhettä.


      • Anonyymi
        Anonyymi kirjoitti:

        Ohjelmat poistetaan paketinhallinnalla.

        Osan ohjelman asennuksen vaatimista, ohjelman itsensä tarvitsemista ja käytössä syntyneistä saa poistettua pakettienhallinta sovelluksella mutta ei kaikkia roskia ei edes yritetä jäljittää.

        Olisikin mukava tietää Windows vai Linux on asian suhteen huolellisempi, veikkaan Windowsin kykenevän hoitamaan asian paremin.


      • Anonyymi
        Anonyymi kirjoitti:

        Tässä tapauksessa kannattaa asentaa Windows, niin pääsee kakarakurttauksesta kerralla eroon.

        Kuinka niin? Windows koodataan intiassa lapsityövoimalla.


      • Anonyymi
        Anonyymi kirjoitti:

        Kuinka niin? Windows koodataan intiassa lapsityövoimalla.

        Juuri siksi se toimiikin paremmin kuin Linukka.


      • Anonyymi
        Anonyymi kirjoitti:

        Varmaan DEBIANIN kyttäjä no on Ubuntun käyttäjätkin yhtä typeriä kirjoitelleet.

        Veikkaan kuitenkin DEBIANIN käyttäjää koska ei yhtään kirjoitusvirhettä.

        MENE K0LLIMAATT0RI H0IT00N!


      • Anonyymi

        Nyt tuli jännäkakka jakkaralle!


      • Anonyymi

        Linux Mint 18 Sarah on ikivanha!


    • Anonyymi

      Alla on esimerkki siitä, miten voit luoda oman Bash-scriptin, joka tulostaa halutun IP-osoitteen ja ajan.





       

       
      Tallenna tämä scripti tiedostoon esim. myip.sh ja anna sille suoritusoikeudet komennolla chmod +x myip.sh. Tämän jälkeen voit suorittaa scriptin antamalla tiedostonimen komentorivillä.
       
       
      #!/bin/bash

      if [ "$1" == "-a" ]; then
        date
      elif [ "$1" == "-i" ]; then
        hostname -I
      else
        echo "$(hostname -I) $(date)"
      fi
      #!/bin/bash

      if [ "$1" == "-a" ]; then
        date
      elif [ "$1" == "-i" ]; then
        hostname -I
      else
        echo "$(hostname -I) $(date)"
      fi
       



       
       

      Esimerkkejä käytöstä:

      ./myip.sh tulostaa sekä IP-osoitteen että ajan
      ./myip.sh -i tulostaa vain IP-osoitteen
      ./myip.sh -a tulostaa vain ajan

      Voit laajentaa tätä scriptiä lisäämällä siihen muita toiminnallisuuksia ja parametreja.

      • Anonyymi

        Oknks kauha syvääläkin???


      • Anonyymi
        Anonyymi kirjoitti:

        Oknks kauha syvääläkin???

        No mitäs luulet! Varmasti on!


    • Anonyymi

      Itse asiass myip:n ei tarvitse olla ohjelma - se voi olla myös alias. Lisää kotihakemistosi .bashrc tiedostoon seuraavat rivit:
      alias myip4='dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com'
      alias myip6='dig -6 TXT +short o-o.myaddr.l.google.com @ns1.google.com'
      ipv4:lle ja ipv6:lle omat aliaksensa tietysti.

      Seuraavaksi voit tehdä skriptin, joka näyttää molemmat IP:t X-ikkunassa:

      #! /bin/bash -i
      xmessage `myip4` `myip6`

      Tai hiukan nätimmin:
      $ zenity --info --title 'myip' --text `myip4` --display :0

      Tai notify-viestinä:
      $ DISPLAY=:0.0 /usr/bin/notify-send `myip6`

      • Anonyymi

        Ihan hyvää vääntöä.


      • Anonyymi

        Tässä kohtaa on syytä ottaa huomioon että myip -komento on ollut Linuxiin asennettavissa jo yli 4 vuotta.

        ESIMERKIT
        myip public
        myip private


      • Anonyymi

        Ethän sä osaa edes koodata!


    • Anonyymi

      Eikö ne VPN ja muut anonyymiä koheltamista tukevat palvelut ole täysin turhia koska IP6 on suora tie ja vie vain sinun koneeseen, eli kiinni jäit.

      • Anonyymi

        VPN on tunneli yhteyspisteelle eli kaikki paketit mitkä lähetät menee ensin sinne ja vasta sieltä tavalliseen nettiin(jos lainkaan..). VPN-yhteys tietysti vaihtaa IP6:en omaan IP6:een ja tekee vastaukselle tietysti päinvastoin. Itse asiassa VPN voi reitittää paketin minnepäin maailmaa tahansa omassa salatussa verkossaan ja vasta esim. lähimmästä yhteyspisteestä tavalliseen nettiin. Näin ollen paketin sisältö ei välttämättä näy lainkaan internetissä jos yhteyspiste on samassa datakeskuksessa kuin tavoiteltu serveri.
        Totta kyllä, että oma IP6 näkyy koko maailmaan, mutta ei sitä tarvitse käyttää pois lukien VPN-yhteyspisteeseen lähetetyt paketit.


      • Anonyymi

        Windows-herrasmiehet nautiskelee Sinolia......†

        joerijjtoerj_skdjh

        Toista se on siellä periksellä, missä kannabjegkjeprjerjkerlöker......†
        Ujkfjöfl lkjkljjkl jijonop p trdyr tr trfdtfrdtdr......†
        Thrfjj asölldjf örjkl alkjsdfilkj lskj......†


      • Anonyymi
        Anonyymi kirjoitti:

        Windows-herrasmiehet nautiskelee Sinolia......†

        joerijjtoerj_skdjh

        Toista se on siellä periksellä, missä kannabjegkjeprjerjkerlöker......†
        Ujkfjöfl lkjkljjkl jijonop p trdyr tr trfdtfrdtdr......†
        Thrfjj asölldjf örjkl alkjsdfilkj lskj......†

        Mikä sille nyt tuli!


      • Anonyymi

        Se on totta!


    • Anonyymi

      🥴🥴 🥴 manit boys on Windows.
      $$$$$$$$$$$$$$$$$

    • Anonyymi

      Miksi joku apina käyttää ikivanhaan Minttiä?

      • Anonyymi

        Tuskin apinat käyttääkään - ainakaan minä en ole nähnyt. Sen sijaan Linux-puolella ei ole mitään syytä päivittää välttämättä: Uusi koodi koskee uusia prosessoreja ja niiden mahdollistamia ohjelmistoratkaisuja. Vanhassa koneessa toimii paremmin vähän vanhempi distro. Uudempi distro voi aiheuttaa jopa pettymyksen olemalla liian raskas käyttää. Omassa koneessa on asennettuna Ubuntu Mate 20.04 LTS. Jos tuon meinaisi päivittää joutuisi samalla päivittämään konetta ja se taas ei ole vaihtoehto - kuormittaa ympäristöä liikaa vaihtaa konetta vähän väliä.


    • Anonyymi

      Bash Shell scriptisi saattaa tehostua kun tarkastat sen shellcheck ohjelmalla.

      ESIMERKKI 1
      ((diff=$END-$START)) #VÄÄRIN
      ((diff=END-START)) #OIKEIN

      ESIMERKKI 2
      ((days=$diff/(60*60*24))) #VÄÄRIN
      ((days=diff/(60*60*24))) #OIKEIN

      Tarkistus tehdään näin:
      shellcheck tarkistettava.sh

      Tarkistaja ohjelma myös kertoo miksi pitäisi näin tehdä.

    • Anonyymi

      Linux Mint 18 Sarah
      Xfce 64-bit

      IHAN KAIKKISEN VANHA!

    • Anonyymi

      TÄSSÄ yksi shellcheck työkalun hyvä esimerkki miksi muuttujan käyttö tupla sulkeissa on syytä tehdä niin kuin neuvotaan vaikka se näyttääkin toimivan.

      a='1+1'
      echo $(($a * 5)) # 1+1*5 VÄÄRIN
      6
      echo $((a * 5)) # (1+1)*5 OIKEIN
      10

    • Anonyymi

      Olen löytänyt 5 pakettia joissa kussakin on noin 100 kpl lyhyttä esimerkkiä Bash Shell komentojen suorittamisesta.

    • Anonyymi

      Miksi haluat nimenomaan Bash-shell komentoja käyttää? Tokihan sillä pystyy tekemään paljon asioita, mutta tarjolla on myös paljon kätevämpiä shell-kieliä, ts. monilla oikeilla skripti-kielillä on shell-laajennokset jolloin saa taakseen niiden voiman. Näitä voi jopa hyödyntää yhdessä bash:n kanssa, katso esim. trap-komento.
      Toisaalta jos tarve on tarkistaa, että konfiguraatio löytyy tai siitä on korjattava päivityksen yhteydessä melko pieniä asioita mahdollisuudet löytää koneelta bash/dash(tai sh) ja sed ovat melko lailla suuremmat kuin täysiverinen random ohjelmointikieli.

    • Anonyymi

      "Nero" selitäppä tämä

      v=123
      echo ${v-unset}

      • Anonyymi

        Ensin määritellään muuttuja v arvolla 123. Sitten tulostetaan muuttujan v arvo, tai jos muuttujaa ei ole määritelty (eli se on unset), tulostetaan sana "unset".

        Tuolla tavalla voi asetella oletusarvoja esim. skripitin argumenteille ($1,$2 jne).


      • Anonyymi
        Anonyymi kirjoitti:

        Ensin määritellään muuttuja v arvolla 123. Sitten tulostetaan muuttujan v arvo, tai jos muuttujaa ei ole määritelty (eli se on unset), tulostetaan sana "unset".

        Tuolla tavalla voi asetella oletusarvoja esim. skripitin argumenteille ($1,$2 jne).

        Taisi olla liian helppo, entä nyt, tuleeko hiljaisuus?

        test -e $u && echo "Oh" || echo "Jees"


      • Anonyymi
        Anonyymi kirjoitti:

        Taisi olla liian helppo, entä nyt, tuleeko hiljaisuus?

        test -e $u && echo "Oh" || echo "Jees"

        Tuo "-e" tarkastaa onko muuttujan $u tiedosto olemassa, ja jos on, niin echottaa Oh, muutoin Jees.

        Linkissä on listaa mitä muita operaattoreita bashin kanssa voi käyttää.

        https://linuxhandbook.com/bash-test-operators/


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

    Takaisin ylös

    Luetuimmat keskustelut

    1. Kiitos nainen

      Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik
      Tunteet
      18
      5323
    2. MTV: Kirkossa saarnan pitänyt Jyrki 69 koki yllätyksen - Paljastaa: "Se mikä oli hyvin erikoista..."

      Jyrki Linnankivi alias Jyrki 69 on rokkari ja kirkonmies. Teologiaa opiskeleva Linnankivi piti elämänsä ensimmäisen saar
      Maailman menoa
      116
      2770
    3. Tykkään sinusta ikuisesti

      Olet niin mukava ja ihana ihminen rakas. ❤️
      Ikävä
      11
      2330
    4. Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?

      Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun
      Maailman menoa
      592
      2037
    5. Kirjoita yhdellä sanalla

      Joku meihin liittyvä asia, mitä muut ei tiedä. Sen jälkeen laitan sulle wappiviestin
      Ikävä
      123
      1756
    6. Olet hyvin erilainen

      Herkempi, ajattelevaisempi. Toisaalta taas hyvin varma siitä mitä haluat. Et anna yhtään periksi. Osaat myös ilkeillä ja
      Ikävä
      70
      1352
    7. Yksi syy nainen miksi sinusta pidän

      on se, että tykkään luomusta. Olet luonnollinen, ihana ja kaunis. Ja luonne, no, en ole tavannut vielä sellaista, joka s
      Ikävä
      42
      1325
    8. Paljastavat kuvat Selviytyjät Suomi kulisseista - 1 päivä vs 36 päivää viidakossa - Katso tästä!

      Ohhoh! Yli kuukausi viidakossa voi muuttaa ulkonäköä perusarkeen aika rajusti. Kuka mielestäsi muuttui eniten: Mia Mill
      Suomalaiset julkkikset
      3
      1098
    9. Veda uskonto vs. muut uskonnot

      Mitenkähän tuo Veda(Krisha)uskonto loppujen lopuksi eroaa muista niin sanotuista ilmoitus uskonnoista? Siinäkin vedotaan
      Ateismi
      393
      1063
    10. Hyvää Joulua mies!

      Toivottavasti kaikki on hyvin siellä. Anteeksi että olen hieman lisännyt taakkaasi ymmärtämättä kunnolla tilannettasi, o
      Ikävä
      64
      1057
    Aihe