Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Praxisaufgabe Betriebssysteme

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Bnjmn249
Newbie
Newbie
Beiträge: 1
Registriert: 18. Nov 2017, 14:48

Praxisaufgabe Betriebssysteme

Beitrag von Bnjmn249 » 18. Nov 2017, 14:58

guten Tag
ich studiere im ersten Semester und habe eine Hausaufgabe in Betriebssysteme,die mir doch sehr Kopfzerbrechen bereitet

sie lautet

1. Pfad vom Heimatverzeichnis des aktuellen Nutzers als Variable V1 speichern

2.ermitteln in welchem Pfad sich das programm grep befindet und als Variable V2 speichern

3.Programm grep unter Verwendung der Variablen V1 und V2 in das aktuelle Heimatverzeichnis kopieren

4.kopiertes Programm grep unter Verwendung der erstellten Variablen in mygrep unbenennen

pro Aufgabe ist jeweils nur ein Befehl erlaubt

Eventuelle Lösung für den ersten Befehl von mir wäre: PATH=$PATH:/home/user export V1

vielleicht kann mir ja jemand weiter helfen :)

dankeschön

Werbung:
marce
Advanced Hacker
Advanced Hacker
Beiträge: 1077
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: Praxisaufgabe Betriebssysteme

Beitrag von marce » 18. Nov 2017, 17:09

Sorry, aber Deine Hausaufgaben solltest Du schon selbst machen - also mal die Unterlagen, Mitschriebe und vorangegangene Übungsaufgaben durchsehen - die Lösungen stehen da sicherlich brauchbar erkennbar drin.

abgdf
Guru
Guru
Beiträge: 3111
Registriert: 13. Apr 2004, 21:15

Re: Praxisaufgabe Betriebssysteme

Beitrag von abgdf » 18. Nov 2017, 22:51

Code: Alles auswählen

#!/usr/bin/perl

use warnings;
use strict;

use File::HomeDir;
use File::Copy;

my $V1 = File::HomeDir->my_home();
my $V2 = `which grep`;
chomp $V2;

copy($V2, $V1);
move("$V1/grep", "$V1/mygrep");

system("ls ~");
unlink("$V1/mygrep");
print "\n";
system("ls ~");
;)

Dirk.M
Newbie
Newbie
Beiträge: 41
Registriert: 11. Mai 2007, 20:03
Wohnort: Kitzingen

Re: Praxisaufgabe Betriebssysteme

Beitrag von Dirk.M » 19. Nov 2017, 13:27

Jawoll,

jetzt kennt er die Befehle, hat aber nichts verstanden.

Studieren heißt Zusammenhänge zu erkennen, zu hinterfragen, zu verstehen und auf andere Probleme anzuwenden.

Suche dir einen anderen Beruf.

Gruß

Dirk
Support: Wie kann ich Ihnen helfen? User: Ich arbeite mit Windows.
Support: Ja? User: Ich habe ein Problem.
Support: Das sagten sie bereits!

Gräfin Klara
Hacker
Hacker
Beiträge: 331
Registriert: 23. Jun 2008, 20:51

Re: Praxisaufgabe Betriebssysteme

Beitrag von Gräfin Klara » 19. Nov 2017, 14:41

Bnjmn249 hat geschrieben:
18. Nov 2017, 14:58
1. Pfad vom Heimatverzeichnis des aktuellen Nutzers als Variable V1 speichern
Normalerweise steht dieser Pfad in der Systemvariable $HOME. Also
# V1="$HOME"
sollte genügen. Doch nicht auf allen Systemen ist $HOME vorhanden und in chroot würde $HOME nicht funktionieren.
Deshalb:
# V1="$(echo ~)"
Bnjmn249 hat geschrieben:
18. Nov 2017, 14:58
2.ermitteln in welchem Pfad sich das programm grep befindet und als Variable V2 speichern
Diese Aufgabe ist nicht wirklich einfach zu lösen, da nur EIN Befehl als Vorgabe besteht und der Pfad die Aufgabenstellung ist.
Ich gehe nun davon aus, dass damit eine Befehlszeile gemeint ist. Deshalb:
# V2="$(dirname $(type -P grep))"
whereis sollte nicht verwendet werden, da in Systemen, die den PATH zusammenfügen, z.B. PATH=$PATH;... whereis nicht mehr funktioniert.
Bnjmn249 hat geschrieben:
18. Nov 2017, 14:58
3.Programm grep unter Verwendung der Variablen V1 und V2 in das aktuelle Heimatverzeichnis kopieren
4.kopiertes Programm grep unter Verwendung der erstellten Variablen in mygrep unbenennen
Der Rest ist simpel. Wir warnen vor Überschreiben und Achten auf die Berechtigungen
# cp -ip "$V2/grep" "$V1"
# mv -i "$V1/grep" "$V1/mygrep"

Gruß
Gräfin Klara

abgdf
Guru
Guru
Beiträge: 3111
Registriert: 13. Apr 2004, 21:15

Re: Praxisaufgabe Betriebssysteme

Beitrag von abgdf » 20. Nov 2017, 00:32

Dirk.M hat geschrieben:
19. Nov 2017, 13:27
Jawoll,

jetzt kennt er die Befehle, hat aber nichts verstanden.
So sollte es sein. Ich wollte ihm bewußt keine verwendbare (bash-)Lösung vorgeben.

spoensche
Moderator
Moderator
Beiträge: 7395
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: Praxisaufgabe Betriebssysteme

Beitrag von spoensche » 22. Nov 2017, 21:16

Gräfin Klara hat geschrieben:
19. Nov 2017, 14:41

whereis sollte nicht verwendet werden, da in Systemen, die den PATH zusammenfügen, z.B. PATH=$PATH;... whereis nicht mehr funktioniert.
Dann dürfte whereis bei dir, bei mir, kurzum bei jeder Distri nicht mehr funktionieren. Whereis oder which suchen in den mittels PATH angegebenen Verzeichnissen ob dort ein Programm mit dem mitgegebenem Namen existiert.

whereis ermittelt neben dem Binärprogramm zusätzlich auch die Manpage usw. Das ist der Unterschied zwischen whereis und which.

Code: Alles auswählen

V2=$(which grep)
passt also in 99,9% der Fälle.

Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4270
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Praxisaufgabe Betriebssysteme

Beitrag von framp » 27. Nov 2017, 19:35

Code: Alles auswählen

V2=$(find / -name grep 2>/dev/null)
sollte dann wohl 100% abdecken :D

abgdf
Guru
Guru
Beiträge: 3111
Registriert: 13. Apr 2004, 21:15

Re: Praxisaufgabe Betriebssysteme

Beitrag von abgdf » 27. Nov 2017, 23:47

which grep?

marce
Advanced Hacker
Advanced Hacker
Beiträge: 1077
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: Praxisaufgabe Betriebssysteme

Beitrag von marce » 28. Nov 2017, 06:53

Hm. Sonderlich Interesse scheint der TE an den Antworten nicht zu haben:

Code: Alles auswählen

Benutzer-Statistik

Registriert:
    18. Nov 2017, 15:48
Letzte Aktivität:
    18. Nov 2017, 17:22
... das ist noch vor der ersten Antwort.

Gräfin Klara
Hacker
Hacker
Beiträge: 331
Registriert: 23. Jun 2008, 20:51

Re: Praxisaufgabe Betriebssysteme

Beitrag von Gräfin Klara » 29. Nov 2017, 11:18

spoensche hat geschrieben:
22. Nov 2017, 21:16

Code: Alles auswählen

V2=$(which grep)
framp hat geschrieben:
27. Nov 2017, 19:35

Code: Alles auswählen

V2=$(find / -name grep 2>/dev/null)
Pflichtkurs nicht bestanden!
Die Aufgabe lautet: PFAD mit einem Befehl.
Nocheinmal von vorne bitte, sonst streiche ich euch das Leistungsstipendium.

abgdf
Guru
Guru
Beiträge: 3111
Registriert: 13. Apr 2004, 21:15

Re: Praxisaufgabe Betriebssysteme

Beitrag von abgdf » 29. Nov 2017, 19:28

Gräfin Klara hat geschrieben:
29. Nov 2017, 11:18
Pflichtkurs nicht bestanden!
Die Aufgabe lautet: PFAD mit einem Befehl.
Nocheinmal von vorne bitte, sonst streiche ich euch das Leistungsstipendium.
:???: Ich verstehe Deinen Einwand nicht so recht.

Code: Alles auswählen

dirname $(which grep)
besser?

Das ist manchmal ganz seltsam in Programmierforen, insbesondere im Python-Forum. Da wird sich nicht selten heftigst um Kleinigkeiten in den Grundlagen gestritten (so daß ich schließlich sogar gegangen bin, was eigentlich ziemlich absurd ist). Dabei ist das für Programme ganz unwichtig.
Der Lehrer will hier doch darauf hinaus, daß "grep" aus dem System nach "~" kopiert werden soll. Also muß man "grep" finden. Das macht "which". Also bringt einen das dahin, wohin man will. Ich sehe da keine weiteren Probleme.

An der Fernuni war es auch lustig: Da war eine superschwere Sortieraufgabe. Ich bin da so 'rangegangen, daß ich erst einen Prototyp in Python (und Perl) dazu gemacht hab', und das dann in das geforderte Pascal übertragen hab'. Dabei mußte die Perl-Funktion "splice()", die schon nicht mal leicht zu benutzen ist, in Pascal neu implementiert werden. Also nicht einfach.
Der Korrektor fand meine Lösung auch ziemlich gut, weil sie sauber in Funktionen (bzw. Prozeduren) gegliedert war. Und dann hat er mir einen Punkt abgezogen, weil ich zum Hochzählen irgendwo einen Integer benutzt hab'. Und Integer in Pascal nur eine begrenzten Wert erreichen können.
Das stimmt, ist aber ein lächerlicher Einwand. Zumal es im Kurs auch gar nicht darum ging, wirklich Pascal zu lernen. Na ja.

uhelp
Member
Member
Beiträge: 113
Registriert: 25. Nov 2012, 19:33

Re: Praxisaufgabe Betriebssysteme

Beitrag von uhelp » 7. Mai 2018, 22:36

Mensch Framp!!!

Was machst du, wenn dein find erst tatsächlich das Binärprogramm "grep" findet, danach aber ein Lehrvideo von YouPr0n, das mit dem Namen "grep" getarnt wurde? Hä?
Das arme grep!

Antworten