1

Onderwerp: Paar linux oefeningen

Hallo mensen,

Ik heb op school een aantal interessante oefeningen mogen ontvangen. Alleen, ik weet ze niet allemaal perfect op te lossen. Ze zijn wel in het Engels... Ik wil ze gerust vertalen, maar ik denk dat ze soms onduidelijker maakt.

"List all home directories which are open for other users (group or others should haver,w or x rights)."

Hier heb ik wel een oplossing voor, maar niet de meest efficiënte volgens mij.

find /home -perm 600 && find /home -perm 601 && ...

Alle mogelijkheden dus opsommen. Werkt prima, moet volgens mij alleen eenvoudiger kunnen, toch?

"Use the command cal to find out on which day of the week your birthday is in 2050 and write your output to a newly created file."

Ik ben al geraakt tot: cal 2 2050 > verjaardag.txt

Maar dan slaat hij natuurlijk de kalender van februari 2050 volledig op. Misschien is dat wel voldoende, maar ik zou het toch graag nog geavanceerder maken. Dat ik werkelijk nog ergens een dag kan meegeven en dat de output gewoon bijvoorbeeld "Wed" is. Ik zat te prutsen met grep 20 (dus 20/02/2050) maar daar kom ik niet verder mee.

"List the name and permissions of all files in the /etc directory containing the word 'host' in their name. Do this without the use of the commands grep and/or awk."

Geen flauw idee...

Moesten er geïnteresseerd zijn, ik wil gerust de andere oefeningen posten met de oplossingen :-)

Mvg,
Archa

2 Laatst bewerkt door Folkert van der Beek (22 May 2012 20:32:20)

Re: Paar linux oefeningen

Archa schreef:

find /home -perm 600 && find /home -perm 601 && ...

Alle mogelijkheden dus opsommen. Werkt prima, moet volgens mij alleen eenvoudiger kunnen, toch?:

Hint: man find, zoek onder kop EXAMPLES

"Use the command cal to find out on which day of the week your birthday is in 2050 and write your output to a newly created file."

Ik ben al geraakt tot: cal 2 2050 > verjaardag.txt

Dit zal met awk moeten, maar wordt waarschijnlijk te complex gezien de rest van je opgaven.

edit: ik herinner me net dat er recent een artikeltje in het Linux Journal stond met precies deze opgave: http://www.linuxjournal.com/content/wor … -date-past

"List the name and permissions of all files in the /etc directory containing the word 'host' in their name. Do this without the use of the commands grep and/or awk."

Hint: man stat of man find, zoek op printf

3

Re: Paar linux oefeningen

Bedankt!

De eerste oefening kan volgens mij dan als volgt opgelost worden:

find /home -type d -perm -001 2> /dev/null #moet minimaal kunnen uitgevoerd worden door others

Het tweede ben ik nog even aan het bestuderen, kom ik vast wel uit :-)

Voor de laatste kom ik dan uit op:
find /etc -printf %m" "%p\\n  -readable 2> /dev/null

4 Laatst bewerkt door Folkert van der Beek (22 May 2012 21:50:16)

Re: Paar linux oefeningen

Archa schreef:

De eerste oefening kan volgens mij dan als volgt opgelost worden:

find /home -type d -perm -001 2> /dev/null #moet minimaal kunnen uitgevoerd worden door others

Maar dan doorzoekt find natuurlijk alle directories recursief, terwijl je alleen de home-directories moest vinden. Gebruik daarvoor de optie -prune of -maxdepth

Het tweede ben ik nog even aan het bestuderen, kom ik vast wel uit :-)

Succes!

Voor de laatste kom ik dan uit op:
find /etc -printf %m" "%p\\n  -readable 2> /dev/null

Bijna, want dan heb je natuurlijk nog niet de bestanden met "host" in de bestandsnaam, zonder grep of awk te gebruiken. Daarom 1van beide:
find /etc/ -name "*host*" -printf "%M %p\n" # recursief
stat --printf "%A %n\n" /etc/*host* # niet recursief

(het gebrek aan consistentie van opties op de command line, zoals hier bij printf, vind ik trouwens een grote ergernis in het gebruik van linux)

5

Re: Paar linux oefeningen

Alweer erg bedankt!

In het eerste geval doel je dus op dat bv. /home/archa een mogelijke output is, maar /home/archo/linux_oef niet, of begrijp ik dat verkeer?
Dan zou ik het met maxdepth oplossen (omdat dit 'logischer in de oren klinkt'):
find /home -type d -perm -001 -maxdepth 1 2> /dev/null #ik verwijs sterr graag naar /dev/null, ik voer de commando's uit op een test-server van school en daar zijn dus wel wat 'permission denied' meldingen

In het tweede geval, ik was inderdaad even die "host" vergeten. Verder heb ik zowel van find als stat de manual gelezen, en wat ik inderdaad ook gelijk opmerkte: consistentie. Vervelend is dat inderdaad.

Kan je me verder lectuur aanraden om commando's, of beter gezegd in 't algemeen Linux wat onder de knie te krijgen? Nu ik hier van geproefd heb, heb ik eigenlijk zin om me te verdiepen.

Re: Paar linux oefeningen

Archa schreef:

In het eerste geval doel je dus op dat bv. /home/archa een mogelijke output is, maar /home/archo/linux_oef niet, of begrijp ik dat verkeer?

Ja (of eigenlijk nee, dat begrijp je niet verkeerd), want de opdracht luidt "list all home directories [...]" en dat zijn inderdaad /home/archa, /home/folkert, etc.

Kan je me verder lectuur aanraden om commando's, of beter gezegd in 't algemeen Linux wat onder de knie te krijgen? Nu ik hier van geproefd heb, heb ik eigenlijk zin om me te verdiepen.

Als ik voor mezelf spreek heb ik het meest al doende geleerd, dus door echte problemen echt op te lossen. Dan blijft het geleerde ook veel beter hangen dan uit leerboeken. Toen ik begon met linux heb ik de linux gebruikers handleiding uitgeprint en uit mijn hoofd geleerd. Daar heb ik veel aan gehad als basis, waarna je voor complexere of distro-specifieke vooral veel aan een zoekmachine hebt.
Verder zou je kunnen kijken in de volgende wikibooks: http://nl.wikibooks.org/wiki/Linux
of in de volgende topics in dit forum: http://forum.nedlinux.nl/viewtopic.php?id=24298 en http://forum.nedlinux.nl/viewtopic.php?id=14052.

7

Re: Paar linux oefeningen

Alweer bedankt :-)