bash segítség…

Kezdőlap Fórumok Programozás bash segítség…

10 bejegyzés megtekintése - 1-10 / 10
  • Szerző
    Bejegyzés
  • #1930236
    badur
    Felhasználó

      Nem tudom, hogy pontosan hogy is akarod ez pl az init pidje:

      ps -aux | grep init | awk ‘{print $2}’

      #1930237
      ELaci
      Felhasználó

        Az awk default space (vagy tab) mezõelválasztóval dolgozik és ez így jó. De ha neked mindenképpen pozíció kell akkor van az awk -ban substr(s, i [, n]), vagy használd a cut -c -ot.

        ELaci

        #1930238
        dr_strange
        Felhasználó

          mellesleg a ps kimenete formázható, az -o kapcsolóval, úgy egyszerûbb lesz belõle kinyerni az adatokat
          man ps

          #1930239
          mikaowx
          Felhasználó

            Jééé, tényleeeg! A $2 itt a második mezõt jelenti ezek szerint, ugye?
            Amúgy ez ‘{print$x}’ minden mezõ elválasztó (tab, :, stb.) nélküli szöveges állományokban is alkalmazható?
            Namost még lenne egy kérdés… -mivel a futó alkalmazásokban éppen futtatva vagyon a parancs amit írtál ebben a kifejezésben is szerepel az init tehát azt is meg fogja jeleníteni.
            pl. a dhcp kliensnél így:
            $ ps -aux | grep /sbin/dhclient | awk ‘{print$2}’
            942
            1495
            a második a grep részben szereplõ keresendõ minta, ugye?
            Namost akkor hogyan kéne megoldani hogy csak az elsõ sort vegye figyelembe???

            #1930240
            badur
            Felhasználó

              man grep:

              -w csak a teljes szavakkal egyezõ
              -v ami nem egyezik

              ps -aux | grep -w init | grep -v grep | awk ‘{print $2}

              #1930241
              mikaowx
              Felhasználó
                #1930242
                badur
                Felhasználó

                  PL: kinyir.sh

                  Code:
                  #!/bin/bash

                  PROCPID=`ps -aux | grep -w $1 | grep -v grep | awk ‘{print $2}’`

                  kill -9 $PROCPID

                  Használat:
                  ./kinyir.sh amit.ki.akarsz nyirni ( a processz neve)

                  De amugy miért nem jó neked a killall parancs?

                  #1930243
                  mikaowx
                  Felhasználó

                    Hali.
                    Amiatt kellene mert egy gépen ami közvetlenül csatlakozik netre és átjáró is egyben alapból el van indítva egy csomó szolgáltatás pl.: smb, ssh stb. ami csak támadási felület olyankor amikor irc, vagy warez letöltés vagy egyéb más „rizikósabb fiatalság” kerülhet a gép közelébe és ilyenkor gondoltam legegyszerûbb írni egy lekapcs.sh skriptet az összes felesleges szolgáltatás lekapcsolására.
                    Amúgy igazad van a killall is jó csak szeretnék elkezdeni egy kicsit shell programozást is. Amiatt kerestem hozzá teljesen kezdõnek -(magamnak) 🙂 érthetõ és tényleg használható példákkal ellátott anyagot, mert a shell programozás tényleg hatékony és okos módszer egy hozzáértõ kezében!
                    A netrõl eddig csak „Advanced Bash Scripting Guide” -ot sikerült meg egy-két 4-5 oldalas leírást sed és awk-ról összeszednem. A manualjaik még túl tömörek nekem…
                    Vagy esetleg van jobb?
                    Az se lenne baj ha meg kéne venni csak tényleg jó könyv legyen!

                    #1930244
                    fellow
                    Felhasználó

                      „Vagy esetleg van jobb?”
                      az absnel jobb? 😉
                      script is tobbek kozt:
                      http://leapster.org/linoleum/
                      http://lidn.sourceforge.net/

                      #1872733
                      csaba
                      Felhasználó

                        Sziasztok.
                        Kezdenék bele shell programozásba és vele együtt a szövegfeldolgozásba.
                        A problematika: szeretnék pl.: ps axu kimenetérõl folyamatsorszámot PID-et kiiratni. Mivel nagyon az elején vagyok próbáltam sed-el és greppel de a ps kimenetében a mezõ elválasztó se nem karakter pl.”:” -mint pl /etc/passwords-nél – se nem tabulátor vagy egy szóköz.
                        A sor kiiratása sikerült, de miként tudnám reguláris elválasztó karakter hiányában megmutatni neki hogy mit kell keresnie? Van valami reguláris kifejezés ehhez ami pl meg tudja számlálni, hogy sor elejétõl mettõl-meddig terjedõ numerikus karaktereket írja ki?

                        pl.: -mondjuk itt a z init PID-je.

                        USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
                        root1 0.1 0.1 1368 468 ? S 20:08 0:04 init
                        root 2 0.0 0.0 0 0 ? SW 20:08 0:00 [keventd]
                        root 3 0.0 0.0 0 0 ? SW 20:08 0:00 [kapmd]
                        root 4 0.0 0.0 0 0 ? SWN 20:08 0:00 [ksoftirqd_CPU0]
                        root 9 0.0 0.0 0 0 ? SW 20:08 0:00 [bdflush]
                        root 5 0.0 0.0 0 0 ? SW 20:08 0:00 [kswapd]
                        root 6 0.0 0.0 0 0 ? SW 20:08 0:00 [kscand/DMA]
                        root 7 0.0 0.0 0 0 ? SW 20:08 0:01 [kscand/Normal]
                        root 8 0.0 0.0 0 0 ? SW 20:08 0:00 [kscand/HighMem]

                        Valaki tud segíteni ebben?

                      10 bejegyzés megtekintése - 1-10 / 10
                      • Be kell jelentkezni a hozzászóláshoz.