abonnement bol.com Unibet Coolblue
pi_126626309
quote:
0s.gif Op vrijdag 17 mei 2013 11:25 schreef dezomervoorbij het volgende:

#!/bin/bash verteld hoe de script uitgevoerd moet worden, in dit geval met bash

function maakt een nieuwe functie, hier heet die functie schrijf.

echo print een regel naar je terminal, doe eens "man echo".
Je kan dit zo'n beetje met elk programma of command doen. man :)
pi_126626454
quote:
0s.gif Op vrijdag 17 mei 2013 11:25 schreef dezomervoorbij het volgende:
Zoals jullie gisteren wel gemerkt hebben, ben ik een newbie als het om Linux/Unix gaat.
Ik heb wat kennis van standaard commando's en het linux bestandssysteem, maar verder niet.

Nu wil ik me wat gaan verdiepen in o.a. shell scripting, maar heb geen idee hoe ik het beste kan beginnen.
Heb onlangs een boek gekocht: Linux Systeembeheer leerboek en hieruit heb de standaard commando's kunnen leren.

Er is ook een hoofdstuk shell-scripting, maar hiebij mis ik een beetje de basis.

Wat is shell scripting?
Waarvoor gebruik je het?
Hoe begin je met het aanmaken/bewerken van een script?

Kortom, welke basiskennis moet ik onder de knie hebben voordat ik met shell-scripting kan beginnen?

Bijvoorbeeld:

#! /bin/bash
# mijnscript [bestandsnaam]

# Dit script kan gebruikt worden om.....

function schrijf
{
clear
echo "hallo"
}
schrijf
ls -l |more
schrijf
who

Staat genoemd als voorbeeld script. Wat doet dit? Ik snap het commando ls -l |more wel, maar waar staat echo "hallo" voor en waar komt ' schrijf ' vandaan?
Een functie moet je zien als een serie opdrachten die je steeds terug kan roepen.

Elke keer als je dan "schrijf" tikt, roept die de opdrachten op die je in die functie hebt gedefinieerd. :)

Echo laat simpelweg iets in de terminal verschijnen (tekst).
  vrijdag 17 mei 2013 @ 13:17:52 #203
187069 slacker_nl
Sicko pur sang
pi_126629868
quote:
0s.gif Op vrijdag 17 mei 2013 11:25 schreef dezomervoorbij het volgende:
Zoals jullie gisteren wel gemerkt hebben, ben ik een newbie als het om Linux/Unix gaat.
Ik heb wat kennis van standaard commando's en het linux bestandssysteem, maar verder niet.

Nu wil ik me wat gaan verdiepen in o.a. shell scripting, maar heb geen idee hoe ik het beste kan beginnen.
Heb onlangs een boek gekocht: Linux Systeembeheer leerboek en hieruit heb de standaard commando's kunnen leren.
Als je wat over shell scripting wilt weten: http://shop.oreilly.com/product/9780596005955.do
En in dit (DIG / you@shellscripts$ enter() { echo "Shell scripting ftw!, deel 1) topic zitten ook mensen die eea weten mbt shell-scripts.
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 17 mei 2013 @ 13:34:56 #204
187069 slacker_nl
Sicko pur sang
pi_126630540
quote:
1s.gif Op vrijdag 17 mei 2013 01:43 schreef d4v1d het volgende:

[..]

Ik heb het hiet ook op 2 debian dingen.. Heb het niet aangepast.

(Ik durf niet uit mijn hoofd te zeggen of het stable of oldstable is..)
Met stable bedoel je wheezy of squeeze?
In theory there is no difference between theory and practice. In practice there is.
pi_126630717
quote:
0s.gif Op vrijdag 17 mei 2013 13:34 schreef slacker_nl het volgende:

[..]

Met stable bedoel je wheezy of squeeze?
Wheezy
  vrijdag 17 mei 2013 @ 14:03:34 #206
187069 slacker_nl
Sicko pur sang
pi_126631604
quote:
0s.gif Op vrijdag 17 mei 2013 13:40 schreef d4v1d het volgende:
Wheezy
Apart. Want squeeze kende dash al en volgens mij Lenny ook (ik heb laatst mijn Lenny bak geupgrade naar squeeze bedenk ik me net). Maar als je bin/sh naar bash wijst ben ik er 99,9% zeker van dat je wel iets aangepast hebt.

http://wiki.debian.org/DashAsBinSh
In theory there is no difference between theory and practice. In practice there is.
pi_126631960
quote:
0s.gif Op vrijdag 17 mei 2013 14:03 schreef slacker_nl het volgende:

[..]

Apart. Want squeeze kende dash al en volgens mij Lenny ook (ik heb laatst mijn Lenny bak geupgrade naar squeeze bedenk ik me net). Maar als je bin/sh naar bash wijst ben ik er 99,9% zeker van dat je wel iets aangepast hebt.

http://wiki.debian.org/DashAsBinSh
homeserver

quote:
root@debiansrv:~# cat /etc/debian_version; file $(which sh)
wheezy/sid
/bin/sh: symbolic link to `dash'
VPS met directadmin (door hoster geinstaleerd)

quote:
admin@vps2:~$ cat /etc/debian_version; file $(which sh)
6.0.6
/bin/sh: symbolic link to `bash'
Ik heb zelf nul dingen aangepast, geen idee wat die hoster met vps heeft gedaan..
  maandag 20 mei 2013 @ 19:31:01 #208
332574 µ
alt-m
pi_126778230
Ik vergiste me in null <> zero. Server ineens onbereikbaar omdat die zero wilde redirecten naar een file.

Oeps.
జ్ఞ‌ా
  woensdag 22 mei 2013 @ 21:10:34 #209
125913 Devolution
Beep beep Richie
pi_126876469
Ik draai sinds een paar dagen Debian Wheezy met de nieuwste beschikbare versie van PHP (5.4 zo uit mijn hoofd). Ik wil echter 5.3.6 op mijn systeem hebben. Hoe kan ik dit voor elkaar krijgen? Na een dag zoeken met Google heb ik nog geen oplossing gevonden...
"You know what Hell really is? It's not lakes of burning oil or chains of ice. It's being removed from God's sight."
  woensdag 22 mei 2013 @ 21:16:34 #210
187069 slacker_nl
Sicko pur sang
pi_126876869
quote:
5s.gif Op woensdag 22 mei 2013 21:10 schreef Devolution het volgende:
Ik draai sinds een paar dagen Debian Wheezy met de nieuwste beschikbare versie van PHP (5.4 zo uit mijn hoofd). Ik wil echter 5.3.6 op mijn systeem hebben. Hoe kan ik dit voor elkaar krijgen? Na een dag zoeken met Google heb ik nog geen oplossing gevonden...
Zelf bouwen, squeeze heeft 5.3.3.

1
2
3
4
5
6
7
8
9
10
apt-cache policy php5
php5:
  Installed: 5.3.3-7+squeeze15
  Candidate: 5.3.3-7+squeeze15
  Version table:
 *** 5.3.3-7+squeeze15 0
        500 http://security.debian.org/ squeeze/updates/main i386 Packages
        100 /var/lib/dpkg/status
     5.3.3-7+squeeze14 0
        500 ftp://ftp.nl.debian.org/debian/ squeeze/main i386 Packages

Je zou de source van 5.3.6 kunnen pakken, daar een eigen package van brouwen en die installen. Of je moet kijken wat Ubuntu heeft.. Nee, zelf bouwen, maar waarom je per se die versie wilt..
In theory there is no difference between theory and practice. In practice there is.
pi_126884262
quote:
5s.gif Op woensdag 22 mei 2013 21:10 schreef Devolution het volgende:
Ik draai sinds een paar dagen Debian Wheezy met de nieuwste beschikbare versie van PHP (5.4 zo uit mijn hoofd). Ik wil echter 5.3.6 op mijn systeem hebben. Hoe kan ik dit voor elkaar krijgen? Na een dag zoeken met Google heb ik nog geen oplossing gevonden...
Waarom zou je dat uberhaupt willen?
En als je wil kan je squeeze toevoegen aan je sources.list.
Daarna moet je php pinnen op squeeze. Misschien dat het werkt.

Anders inderdaad zelf compilen.
pi_126885075
idd waarom in hemelsnaam 5.3.6? De 5.3 branch zit op versie 25. En gaat denk ik binnen nu en een half jaar wel end-of-life worden.
pi_126893279
Ben een beetje aan het oefenen met shell-scripting.
Nu staat er in mijn leerboek een simpel oefenscript, die ik twee keer op dezelfde manier heb aangemaakt.

Zie screenshot



Vraag 1:
Wat zou dit script moeten doen?

Vraag 2:
Waarom werkt het ene script wel en het andere niet?
Mee doen is belangrijker dan winnen!
pi_126895970
quote:
0s.gif Op donderdag 23 mei 2013 10:01 schreef dezomervoorbij het volgende:
Ben een beetje aan het oefenen met shell-scripting.
Nu staat er in mijn leerboek een simpel oefenscript, die ik twee keer op dezelfde manier heb aangemaakt.

Zie screenshot

[ afbeelding ]

Vraag 1:
Wat zou dit script moeten doen?

Vraag 2:
Waarom werkt het ene script wel en het andere niet?
Vraag 1:
De functie schrijf wordt aangeroepen. Deze functie maakt via commando clear het scherm leeg en print daarna met het echo commando de tekst hallo op het scherm.

Vervolgens wordt met commando ls -l een listing opgevraagd van de directory waar je in staat.

Daarna nogmaals functie schrijf aangeroepen.

Tot slot wordt met commando who een overzicht gegeven van de ingelogde users.

Vraag 2:
Het script moet wel execute rechten hebben: chmod 755 schrijf
pi_126896716
Oke bedankt voor de reactie

Het kan dus kloppen dat dit:


de uitkomst is?
Mee doen is belangrijker dan winnen!
pi_126896957
quote:
0s.gif Op donderdag 23 mei 2013 11:39 schreef dezomervoorbij het volgende:
Oke bedankt voor de reactie

Het kan dus kloppen dat dit:
[ afbeelding ]

de uitkomst is?
:Y
pi_126903839
Ik heb nu een test scriptje gemaakt:

quote:
#!/bin/bash
#
# kopieer een bestand naar de juiste directory
#
# gebruik ./test05
#
echo geef naam en locatie van het bestand dat je wil kopieren
read file

cp $file /...../...../'uname -r'
Volgens mijn leerboek zou ik 'uname -r' moeten gebruiken. Vanwaar dit commando?
Als ik hier niets invul en bijvoorbeeld cp $file /home/gebruiker invoer, wordt het bestand gewoon netjes gekopieerd.
Mee doen is belangrijker dan winnen!
pi_126904100
Het staat tussen `` dus dan creeert de shell een subshell om dat command uit te voeren, en dan paste hij de uitkomst waar de `` staan. Een betere methode is om $() te gebruiken ipv ``. Dus: $(uname -r) ipv `uname -r`.

Het aantal punten tussen de / en / lijkt wat veel trouwens.

-edit-

Hij copieert dus het bestand en noemt het de waarde van $(uname -r).
pi_126904477
En wat is dan het verschil tussen $ en " " ?

Als ik het volgende uitvoer:

bash test05

'Geef de naam van het bestand en de locatie'
test02 /home/gebruiker

dan kopieert hij het bestand test02 naar de juiste directory, maar plaatst hij daar ook een bestand met de naam uname-r

[ Bericht 75% gewijzigd door dezomervoorbij op 23-05-2013 15:06:05 ]
Mee doen is belangrijker dan winnen!
pi_126905115
quote:
0s.gif Op donderdag 23 mei 2013 15:00 schreef dezomervoorbij het volgende:
En wat is dan het verschil tussen $ en " " ?

Als ik het volgende uitvoer:

bash test05

'Geef de naam van het bestand en de locatie'
test02 /home/gebruiker

dan kopieert hij het bestand test02 naar de juiste directory, maar plaatst hij daar ook een bestand met de naam uname-r
$(uname -r) is gelijk aan `uname -r`, maar met $() valt makkelijker meerdere commands te nesten, dus $(command $(command)) vanwege de (). Bij ` moet je gaan escapen.

Wat is de exacte code van je script atm?
pi_126905302
#!/bin/bash
#
#kopieer een kernel module naar de juiste directory
#
#gebruik ./test05

echo geef naam en locatie van het bestand dat je wil kopieren
read file

cp $file /lib/modules/$(uname-r)/'uname-r'
Mee doen is belangrijker dan winnen!
pi_126905469
Bestaat de dir "/lib/modules/$(uname-r)"? En ik zou gaan testen in /tmp ofzo ipv in /lib. :o
pi_126905576
Ik kopieer alleen wat pruts bestandjes naar die directory om te kijken of het werkt.
Deze verwijder ik daarna direct weer.

de dir /lib/modules/ bestaat, maar ik snap denk ik het nut van $(uname-r) niet......
Mee doen is belangrijker dan winnen!
  donderdag 23 mei 2013 @ 15:38:29 #224
187069 slacker_nl
Sicko pur sang
pi_126906442
quote:
0s.gif Op donderdag 23 mei 2013 15:21 schreef dezomervoorbij het volgende:
Ik kopieer alleen wat pruts bestandjes naar die directory om te kijken of het werkt.
Deze verwijder ik daarna direct weer.

de dir /lib/modules/ bestaat, maar ik snap denk ik het nut van $(uname-r) niet......
Blijf uit die /lib/modules dir. Echt, als je aan het testen bent in die directories verdien je een nekschot.

echo "dit is een testfile" > file1
echo "dit is een andere testfile" | tee file2

mkdir -p /tmp/testing/$(uname -r)

mv /tmp/file1 /tmp/testing/$(uname -r)

Zoiets, maar weg weg weg uit die /lib..
In theory there is no difference between theory and practice. In practice there is.
  donderdag 23 mei 2013 @ 17:55:59 #225
125913 Devolution
Beep beep Richie
pi_126912553
quote:
5s.gif Op woensdag 22 mei 2013 23:32 schreef KomtTijd... het volgende:
idd waarom in hemelsnaam 5.3.6? De 5.3 branch zit op versie 25. En gaat denk ik binnen nu en een half jaar wel end-of-life worden.
quote:
0s.gif Op woensdag 22 mei 2013 21:16 schreef slacker_nl het volgende:
Nee, zelf bouwen, maar waarom je per se die versie wilt..
quote:
0s.gif Op woensdag 22 mei 2013 23:17 schreef t4rt4rus het volgende:
Waarom zou je dat uberhaupt willen?
En als je wil kan je squeeze toevoegen aan je sources.list.
Daarna moet je php pinnen op squeeze. Misschien dat het werkt.

Anders inderdaad zelf compilen.
Het was inderdaad op die manier gelukt.
De reden dat ik dat wil is omdat ik in een verouderde Joomla omgeving werk voor een klant en die klant houdt voet bij stuk dat hij deze verouderde Joomla versie wilt gebruiken. Aangezien deze versie geen ondersteuning heeft voor nieuwere versies van PHP moet ik dus 5.3.6 hebben voor testdoeleinden...
"You know what Hell really is? It's not lakes of burning oil or chains of ice. It's being removed from God's sight."
abonnement bol.com Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')