Kezdőlap › Fórumok › Programozás › bash segítség…
- This topic has 9 hozzászólás, 6 résztvevő, and was last updated 21 years, 3 months telt el by
fellow.
-
SzerzőBejegyzés
-
2004-02-20-06:03 #1930236
Nem tudom, hogy pontosan hogy is akarod ez pl az init pidje:
ps -aux | grep init | awk ‘{print $2}’
2004-02-20-07:12 #1930237Az 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
2004-02-20-07:17 #1930238mellesleg a ps kimenete formázható, az -o kapcsolóval, úgy egyszerûbb lesz belõle kinyerni az adatokat
man ps2004-02-20-07:18 #1930239Jééé, 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???2004-02-20-07:34 #1930240man grep:
-w csak a teljes szavakkal egyezõ
-v ami nem egyezikps -aux | grep -w init | grep -v grep | awk ‘{print $2}
2004-02-20-07:59 #19302412004-02-20-08:49 #1930242PL: kinyir.sh
Code:#!/bin/bashPROCPID=`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?
2004-02-20-19:11 #1930243Hali.
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!2004-02-22-02:02 #1930244„Vagy esetleg van jobb?”
az absnel jobb? 😉
script is tobbek kozt:
http://leapster.org/linoleum/
http://lidn.sourceforge.net/2009-12-04-19:55 #1872733Sziasztok.
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?
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz