FOK!forum / Digital Corner / Unix shell
maniack28dinsdag 10 april 2007 @ 15:26
Ok, ik ben echt een unixnoob (kan nog net ls ) maar ik heb unix nodig voor iets. Ik heb een programma dat iedere 6 uur gedraaid moet worden, dat kan met een cronjob. Geen probleem dus.. maar, dat programma heeft ook andere bestanden nodig die moeten gedownload worden van een server. De map waarin die bestanden staan hebben een datumaanduiding, de bestanden hebben een tijdaanduiding (00z,06z,12z,18z). Ik kan alleen nergens echt een fatsoenlijke handleiding vinden over hoe ik een shell/batch kan maken die zoiets doet. Ik loop al vast bij: #!/bin/sh Dit roept de shell aan ofzo? Maar waar kan ik vinden welke shell (C-shell of Bourne-shell) onze uni gebruikt... en als ik geen toegang tot bin oid heb, hoe moet ik dat dan omzeilen?

Kortom, ik snap er geen kont van, kan ook geen fatsoenlijke handleiding vinden tot nog toe.. dus het zou fijn zijn als iemand er hier verstand van heeft
Aoristusdinsdag 10 april 2007 @ 15:28
begin bij het begin, dat is het makkelijkst.

Je moet weten welke rechten je nodig hebt, wat je met die bestanden moet doen, of je een ander proces in de gaten moet houden.

Als je eenmalig een simpel downloaddingetje wil doen en misschien iets anders er bij, dan kun je een at jobje gebruiken. Type dan na je (korn of csh, $) shell in:

at 15.45 << EOF
> wget ftp.mijnserver.nl/pub/blaat.tgz
> banner klaar
> EOF

(EOF staat voor end of file)
maniack28dinsdag 10 april 2007 @ 15:29
quote:
Op dinsdag 10 april 2007 15:28 schreef Aoristus het volgende:
begin bij het begin, dat is het makkelijkst
Ja en het begin is?
Bigsdinsdag 10 april 2007 @ 15:29
http://www.google.com/search?client=safari&rls=en&q=bash+scripting+tutorial&ie=UTF-8&oe=UTF-8

eleusisdinsdag 10 april 2007 @ 15:32
Je hebt altijd toegang tot /bin. Welke shells je hebt kan je checken met 'which'.
SPOILER
epia:~> which sh
/bin/sh
epia:~> which tcsh
/bin/tcsh
epia:~> which bash
bash: Command not found.
Zo ziet men hier dat ik bash niet heb en sh alsmede tcsh wel.
Aoristusdinsdag 10 april 2007 @ 15:33
quote:
Op dinsdag 10 april 2007 15:29 schreef maniack28 het volgende:

[..]

Ja en het begin is?
heb ik al ge-edit. Je kan ook de man(ual) proberen, type dan in :

apropos crontab (dan zie je alle gerelateerde commando's)

of direct: man crontab

en dan begint de echte hel pas
maniack28dinsdag 10 april 2007 @ 15:34
quote:
Op dinsdag 10 april 2007 15:32 schreef soylent het volgende:
Je hebt altijd toegang tot /bin. Welke shells je hebt kan je checken met 'which'.
SPOILER
epia:~> which sh
/bin/sh
epia:~> which tcsh
/bin/tcsh
epia:~> which bash
bash: Command not found.
Zo ziet men hier dat ik bash niet heb en sh alsmede tcsh wel.
Okies.. ik heb ze alle drie dus dat is geen probleem. Maar neem nu als voorbeeld dit:
quote:
#!/bin/sh
# dit programma zegt vriendelijk goedendag

echo Hallo, allemaal! ; exit 0
Dat werkt dus al gewoon niet... Ja sh staat in /bin/sh Hij geeft:

/gradstest/voorbeeld.c: Command not found.
Lucilledinsdag 10 april 2007 @ 15:34
De eerste regel geeft al aan welke shell het is. In je voorbeeld is het de Bourne shell (sh), hoewel op bijna elk Linux platform een echte Bourne shell vervangen is door de Bourne Again shell (bash), ook al staat er sh.
maniack28dinsdag 10 april 2007 @ 15:35
quote:
Op dinsdag 10 april 2007 15:33 schreef Aoristus het volgende:

[..]

heb ik al ge-edit. Je kan ook de man(ual) proberen, type dan in :

apropos crontab (dan zie je alle gerelateerde commando's)

of direct: man crontab

en dan begint de echte hel pas
I know Manuals in unix zuigen haha
eleusisdinsdag 10 april 2007 @ 15:35
quote:
Op dinsdag 10 april 2007 15:34 schreef maniack28 het volgende:

[..]

Okies.. ik heb ze alle drie dus dat is geen probleem. Maar neem nu als voorbeeld dit:
[..]

Dat werkt dus al gewoon niet... Ja sh staat in /bin/sh Hij geeft:

/gradstest/voorbeeld.c: Command not found.
Noem het eens bla.sh en doe eens: chmod a+x bla.sh, daarmee maak je het executable.
Verder staat in unix meestal '.' (de huidige dir) niet in je PATH, dus moet je aanroepen: ./bla.sh ipv gewoon bla.sh.
maniack28dinsdag 10 april 2007 @ 15:37
quote:
Op dinsdag 10 april 2007 15:35 schreef soylent het volgende:

[..]

Noem het eens bla.sh en doe eens: chmod a+x bla.sh, daarmee maak je het executable.
Verder staat in unix meestal '.' (de huidige dir) niet in je PATH, dus moet je aanroepen: ./bla.sh ipv gewoon bla.sh.
Ok.. had ook maar een willekeurige extensie meegegeven
Aoristusdinsdag 10 april 2007 @ 15:37
quote:
Op dinsdag 10 april 2007 15:35 schreef maniack28 het volgende:

[..]

I know Manuals in unix zuigen haha
type eens in : set (om je variabelen te laten zien)
eleusisdinsdag 10 april 2007 @ 15:38
quote:
Op dinsdag 10 april 2007 15:37 schreef maniack28 het volgende:

[..]

Ok.. had ook maar een willekeurige extensie meegegeven
De extensie maakt niet uit, maar sh-scripts worden meestal .sh genoemd..
maniack28dinsdag 10 april 2007 @ 15:40
quote:
Op dinsdag 10 april 2007 15:37 schreef Aoristus het volgende:

[..]

type eens in : set (om je variabelen te laten zien)
quote:
csh> set
COLORS /etc/DIR_COLORS.xterm
_
addsuffix
argv ()
cwd /home/students/0470007
dirstack /home/students/0470007
dspmbyte utf8
echo_style both
edit
file /home/students/0470007/.i18n
gid 1360
group students
history 20
home /home/students/0470007
killring 30
notify
owd
path (/usr/local/pgi/linux86-64/6.0/bin /usr/local/intel/intel_fce_80/bin /usr/local/intel/intel_cce_80/bin /usr/local/texlive/2005/bin/x86_64-linux /usr/local/sge/bin/lx24-amd64 /usr/local/grace/bin /usr/local/bin /usr/local/GMT4.1.1/bin /usr/local/ncarg/bin /usr/X11R6/bin /usr/local/pgi/linux86-64/6.0/bin /usr/local/intel/intel_fce_80/bin /usr/local/intel/intel_cce_80/bin /usr/local/texlive/2005/bin/x86_64-linux /usr/local/sge/bin/lx24-amd64 /usr/local/grace/bin /usr/local/bin /usr/local/GMT4.1.1/bin /usr/local/ncarg/bin /usr/X11R6/bin /usr/kerberos/bin /usr/local/bin /usr/bin /bin /usr/X11R6/bin . /home/students/0470007/bin . /home/students/0470007/bin)
prompt csh>
prompt2 %R?
prompt3 CORRECT>%R (y|n|e|a)?
shell /bin/tcsh
shlvl 2
sourced 1
status 0
tcsh 6.13.00
term xterm
tty pts/263
uid 6284
user 0470007
version tcsh 6.13.00 (Astron) 2004-05-19 (x86_64-unknown-linux) options 8b,nls,dl,al,kan,rh,color,dspm,filec
Hier is je set
maniack28dinsdag 10 april 2007 @ 15:45
quote:
Op dinsdag 10 april 2007 15:35 schreef soylent het volgende:

[..]

Noem het eens bla.sh en doe eens: chmod a+x bla.sh, daarmee maak je het executable.
Verder staat in unix meestal '.' (de huidige dir) niet in je PATH, dus moet je aanroepen: ./bla.sh ipv gewoon bla.sh.
Hij doet het
Aoristusdinsdag 10 april 2007 @ 15:45
quote:
Op dinsdag 10 april 2007 15:40 schreef maniack28 het volgende:

[..]


[..]

Hier is je set
Een % dus?

tcsh is tiny c shell dacht ik. Je variabelen kun je eventueel editten in .cshrc, zoals hoe je shell er uit ziet, hoever je history teruggaat, je zoekpaden etc).
maniack28dinsdag 10 april 2007 @ 15:46
quote:
Op dinsdag 10 april 2007 15:45 schreef Aoristus het volgende:

[..]

Een % dus?

tcsh is tiny c shell dacht ik. Je variabelen kun je eventueel editten in .cshrc, zoals hoe je shell er uit ziet, hoever je history teruggaat, je zoekpaden etc).
Volgens mij heb ik nog duizend stappen te gaan tot wat ik wil Maar ik kom er wel
Aoristusdinsdag 10 april 2007 @ 15:51
quote:
Op dinsdag 10 april 2007 15:46 schreef maniack28 het volgende:

[..]

Volgens mij heb ik nog duizend stappen te gaan tot wat ik wil Maar ik kom er wel
ja, je moet eerst de kunst van vi begrijpen (visual impaired), anders kan je je crontab niet wijzigen
eleusisdinsdag 10 april 2007 @ 15:54
Fuck vi
nano 4 live
maniack28dinsdag 10 april 2007 @ 15:57
quote:
Op dinsdag 10 april 2007 15:51 schreef Aoristus het volgende:

[..]

ja, je moet eerst de kunst van vi begrijpen (visual impaired), anders kan je je crontab niet wijzigen
Vast niet En als dat wel moet, dan laat ik dat wel door iemand anders doen VI is zooooooo irritant.. ik snap niet eens hoe ik daar moet typen ^^ Gebruik liever een text-editor
maniack28dinsdag 10 april 2007 @ 15:57
quote:
Op dinsdag 10 april 2007 15:54 schreef soylent het volgende:
Fuck vi
nano 4 live
pico werkt ook
Aoristusdinsdag 10 april 2007 @ 16:06
quote:
Op dinsdag 10 april 2007 15:57 schreef maniack28 het volgende:

[..]

Vast niet En als dat wel moet, dan laat ik dat wel door iemand anders doen VI is zooooooo irritant.. ik snap niet eens hoe ik daar moet typen ^^ Gebruik liever een text-editor


Als je dat begrijpt, dan begrijp je makkelijker hoe je betere mutaties kan maken met sed en awk. Perl is daarna dan een stuk beter te begrijpen.

als je de regel van man crontab begrijpt, dan kun je eventueel het volgende doen:

% crontab -e
(sturen met de pijltje Jeneden, Koven, Hinks en Lechts, i is insert, esc is functie, x is delete)

vul je regel in
* * * * 15 wget ftp.mijnserver/pub/*z

<esc> :wq!
devzerodinsdag 10 april 2007 @ 16:08
1:1,$s/fuck/fok/g

Niks mis mee :')

@TS: er zijn zat beginners-manuals te vinden, maar je kunt ook gewoon een bibliotheek binnen lopen.

Voor die tijdsaanduiding in de filename kun je het commando date gebruiken (zie man date voor volledige syntax). Bv in sh/bash
1filename=`date +"bestand-%H"`

plakt het uur achter de naam bestand en zet dat in de variabele $filename. Als je alleen niets over het werken van de back-quote en variabelen weet, dan zal het nog lastig worden :)
maniack28dinsdag 10 april 2007 @ 16:10
quote:
Op dinsdag 10 april 2007 16:06 schreef Aoristus het volgende:

[..]



Als je dat begrijpt, dan begrijp je makkelijker hoe je betere mutaties kan maken met sed en awk. Perl is daarna dan een stuk beter te begrijpen.

als je de regel van man crontab begrijpt, dan kun je eventueel het volgende doen:

% crontab -e
(sturen met de pijltje Jeneden, Koven, Hinks en Lechts, i is insert, esc is functie, x is delete)

vul je regel in
* * * * 15 wget ftp.mijnserver/pub/*z

<esc> :wq!
Ziet er leuk uit.. maar wat voor zin heeft het om een crontab te begrijpen als ik hem nog niet nodig heb? Ik ga eerst eens pielen met variabelen maken, datums opvragen, daaruit een "bestandsnaam" creeren die hij met wget gaat ophalen van een server... als dat gelukt is kan ik eens naar crontab gaan kijken, maar die heeft geen zin zolang ik niks heb om uit te voeren ^^
maniack28dinsdag 10 april 2007 @ 16:11
quote:
Op dinsdag 10 april 2007 16:08 schreef devzero het volgende:

[ code verwijderd ]

Niks mis mee

@TS: er zijn zat beginners-manuals te vinden, maar je kunt ook gewoon een bibliotheek binnen lopen.

Voor die tijdsaanduiding in de filename kun je het commando date gebruiken (zie man date voor volledige syntax). Bv in sh/bash
[ code verwijderd ]

plakt het uur achter de naam bestand en zet dat in de variabele $filename. Als je alleen niets over het werken van de back-quote en variabelen weet, dan zal het nog lastig worden
Was ik net aant uitzoeken
devzerodinsdag 10 april 2007 @ 16:14
quote:
Op dinsdag 10 april 2007 16:11 schreef maniack28 het volgende:

[..]

Was ik net aant uitzoeken
crontab komt idd wel als je script werkt. Overigens is er een centraal topic waar mensen je graag helpen met shell vraagjes: [Linux/Unix] [/Gurus/helpen/newbies]$ ./deel 16
maniack28dinsdag 10 april 2007 @ 16:16
quote:
Op dinsdag 10 april 2007 16:14 schreef devzero het volgende:

[..]

crontab komt idd wel als je script werkt. Overigens is er een centraal topic waar mensen je graag helpen met shell vraagjes: [Linux/Unix] [/Gurus/helpen/newbies]$ ./deel 16
Dank Die had ik niet gezien.. ik denk dat deze dan wel dicht kan, mijn vraagjes stel ik daar wel!

iig bedankt allemaal voor de goeie reacties, ik ben al 100% verder dan net
slakkiewoensdag 11 april 2007 @ 21:25
quote:
Op dinsdag 10 april 2007 15:51 schreef Aoristus het volgende:

[..]

ja, je moet eerst de kunst van vi begrijpen (visual impaired), anders kan je je crontab niet wijzigen
Dmv je EDITOR enviroment variable kan je dit aanpassen naar elke editor die je wilt.

export EDITOR=nano en je crontabs zal je dan met nano openen.
Aaargh!woensdag 11 april 2007 @ 21:50
quote:
Op woensdag 11 april 2007 21:25 schreef slakkie het volgende:
export EDITOR=nano en je crontabs zal je dan met nano openen.
Waarom zou je nano willen als er al vi op staat ?
gdaydonderdag 12 april 2007 @ 02:13
quote:
Op woensdag 11 april 2007 21:50 schreef Aaargh! het volgende:

[..]

Waarom zou je nano willen als er al vi op staat ?
Omdat vi ongelofelijk zuigt uiteraard. Dat vind ik reden genoeg.

Ik ben zelf overigens een liefhebber van joe.
slakkiedonderdag 12 april 2007 @ 08:22
quote:
Op woensdag 11 april 2007 21:50 schreef Aaargh! het volgende:

[..]

Waarom zou je nano willen als er al vi op staat ?
Geen idee, maar sommige mensen willen geen vi(m). Ow, ik had toch een idee
RemcoDelftvrijdag 13 april 2007 @ 17:12
Even offtopic reageren: vi is simpelweg geweldig! Als je even de moeite neemt om het ding te leren gebruiken... Zeggen dat vi "zuigt" is zoiets als zeggen dat "met 10 vingers typen zuigt" of "autorijden zuigt, want lopen is veel makkelijker"
Aoristusvrijdag 13 april 2007 @ 17:29
quote:
Op vrijdag 13 april 2007 17:12 schreef RemcoDelft het volgende:
Even offtopic reageren: vi is simpelweg geweldig! Als je even de moeite neemt om het ding te leren gebruiken... Zeggen dat vi "zuigt" is zoiets als zeggen dat "met 10 vingers typen zuigt" of "autorijden zuigt, want lopen is veel makkelijker"
Ze zouden het die kinderen op school moeten leren
gdayvrijdag 13 april 2007 @ 17:47
quote:
Op vrijdag 13 april 2007 17:12 schreef RemcoDelft het volgende:
Even offtopic reageren: vi is simpelweg geweldig! Als je even de moeite neemt om het ding te leren gebruiken... Zeggen dat vi "zuigt" is zoiets als zeggen dat "met 10 vingers typen zuigt" of "autorijden zuigt, want lopen is veel makkelijker"
Tja, dat kun je over zowat elke editor zeggen hoor.
maniack28vrijdag 13 april 2007 @ 18:02
Ik heb liever pico.. VI is gewoon irri
RemcoDelftvrijdag 13 april 2007 @ 18:20
quote:
Op vrijdag 13 april 2007 17:29 schreef Aoristus het volgende:

[..]

Ze zouden het die kinderen op school moeten leren
Ze zouden kinderen op school eens moeten leren typen... O wacht, met de huidige hervormingen waarmee VWOers al niet meer kunnen rekenen komt dat er vast nooit van...
Litphovrijdag 13 april 2007 @ 18:27
quote:
Op vrijdag 13 april 2007 17:12 schreef RemcoDelft het volgende:
Even offtopic reageren: vi is simpelweg geweldig! Als je even de moeite neemt om het ding te leren gebruiken...
Ik heb ook maar een Windowsversie geinstalleerd na herhaalde keren vi tikken op de commandprompt en nul op het rekest te krijgen .
Aaargh!vrijdag 13 april 2007 @ 18:43
quote:
Op vrijdag 13 april 2007 17:47 schreef gday het volgende:

[..]

Tja, dat kun je over zowat elke editor zeggen hoor.
eeh.. nee dus. Er zijn weinig editors met zo ongelovelijk veel mogelijkheden als vi.
RemcoDelftvrijdag 13 april 2007 @ 19:56
Ik heb hier een vi-boek staan trouwens; ruim 300 pagina's... Ooit ga ik hem helemaal doorlezen:)
slakkiezaterdag 14 april 2007 @ 09:32
quote:
Op vrijdag 13 april 2007 18:43 schreef Aaargh! het volgende:

[..]

eeh.. nee dus. Er zijn weinig editors met zo ongelovelijk veel mogelijkheden als vi.
Emacs
maniack28zaterdag 14 april 2007 @ 09:37
Ik denk dat je het moet zien als html vs php ofzo.. VI is uitgebreider, maar ook veel ingewikkelder, dus de drempel om het te leren ligt hoger. Ik heb het voorlopig niet nodig, dus waarom zou ik het gebruiken?
Bigszaterdag 14 april 2007 @ 11:27
quote:
Op zaterdag 14 april 2007 09:37 schreef maniack28 het volgende:
Ik denk dat je het moet zien als html vs php ofzo.. VI is uitgebreider, maar ook veel ingewikkelder, dus de drempel om het te leren ligt hoger. Ik heb het voorlopig niet nodig, dus waarom zou ik het gebruiken?
Dat is dan weer een vergelijking van niks.. html en php zijn twee totaal verschillende dingen (opmaaktaal vs programmeertaal).
Litphozaterdag 14 april 2007 @ 11:42
quote:
Op zaterdag 14 april 2007 11:27 schreef Bigs het volgende:

[..]

Dat is dan weer een vergelijking van niks.. html en php zijn twee totaal verschillende dingen (opmaaktaal vs programmeertaal).
Nou ja, programmeertaal .
gdayzaterdag 14 april 2007 @ 12:04
quote:
Op vrijdag 13 april 2007 18:43 schreef Aaargh! het volgende:

[..]

eeh.. nee dus. Er zijn weinig editors met zo ongelovelijk veel mogelijkheden als vi.
En vertel eens: wie hebben al die mogelijkheden nodig? Wat mij betreft is het een beetje een vergelijking tussen de wagen van James Bond en een gewone Ford Focus ofzo.
maniack28zaterdag 14 april 2007 @ 12:09
quote:
Op zaterdag 14 april 2007 11:27 schreef Bigs het volgende:

[..]

Dat is dan weer een vergelijking van niks.. html en php zijn twee totaal verschillende dingen (opmaaktaal vs programmeertaal).
Pffft... je maakt met beide een website

Nou ok dan.. uhm.. Excel en Origin (of Mathlab of IDL). Dat beter?