# Crash-Infos zur Vorbereitung eines Vorstellungsgespräch



## oraclin25 (15. Mai 2012)

Hallo zusammen ,

ich habe am kommenden Freitag ein Vorstellungsgespräch.  Als letzter Punkt im Anforderungsprofil steht:
Grundkenntnisse im Umgang mit LINUX

Ich kenne zwar LINUX, aber theoretisch.  Ich möchte am Vorstellungstag dum da sitzen wenn sie mir technische Fragen stellen.  Deshalb ein paar Fragen, die ich bereits gesammlt habe, die ich Euch gerne stellen möchte.  Es sind eher shell-/terimalbasierte Fragen:

1. Wenn ich im Homeverzeichnis bin, wie kann ich wissen, ob ein bestimmtes Programm existiert?  Sagen wir mal das Programm VLC?  Was tippe ich da ein?

2. Wenn ich "ls -l" ausführe, dann kommen die ganzen Dateien raus mit ihren Rechten.  Die Bedeutung der Rechten verstehe ich.  Ich möchte fragen, sind ausführbare Dateien nach "ls -l" auch aufgelistet?  Oder sind es nur Verzeichnisse und "Dateien"?
Entschuldige für diese unverschämte Frage, ich habe leider kein Linux, daher kann ich nicht selber nachschauen.

3. Wenn ein Programm(Wie zum Beispiel Java Compiler) installiert ist, mit welchem Befehl kann ich nachprüfen, ob seine Umgebungsvariablen gesetzt sind?  In Windows dient dies zur Ausführung eines Java-Programms aus jedem Verzeichnis, statt immer im bin-Verzeichnis zu machen.

4. Ich weiss, dass alle Programme unter /usr/bin gespeichert sind.  D.h. Nach Installation eines Programms, sind das Programm und all seine relevanten Dateien in diesem bin-verzeichnis?

5. Kann ich als normaler Benutzer eigentlich ein Programm nur für mich selbst installieren?  Weil, ich weiss dass zur Installation immer mit "sudo" ausgeführt wird, also als root bzw. admin.  Kann ich denn ein Programm nur für mich installieren, so dass andere Benutzer das Programm noch nicht mal sehen können? 

So, ich glaube, das wars.  Falls Ihr noch knackige, kurze und wichtige Themen habt, schlagt sie mir doch bitte vor.  Vielen Dank.  Wie gesagt, es ist für ein Vorstellungsgespräch.  Ich vermute mal, die Firma arbeitet mit Linux.

Vielen Dank Euch.

Schöne Grüße aus Rheinland,
Eure Ratna


----------



## sheel (15. Mai 2012)

Hi

Annahme: Ubuntu (falls irgendwas in irgendeiner Distri nicht so sein sollte
(was ziemlich sicher der Fall ist)...)

1) Warum nicht einfach "vlc" (ohne Anführungszeichen)?
Wenns das nicht gibt-> Fehlermeldung

2) Ja, da kommen auch Ausführbare Dateien
(die bei den Rechten x, also execute, haben - oder was verstehst du unter ausführbar?
Ob es wirklich ein Programm ist kann ls nicht wissen)

3) http://wiki.ubuntuusers.de/Umgebungsvariable


----------



## Matt297 (15. Mai 2012)

Hi,

vieles von dem ist halt Distributions- bzw. Packetmanager abhängig.

Zu 1.:
Kann man zum Beispiel auch oft den Packetmanager konsultieren, z.B. sowas wie "aptitude search vlc", da siehst du dann, ob das Packet installiert ist oder nicht. Der Vorteil dabei ist, dass der Name nicht exakt übereinstimmen muss. Aber meistens reicht auch schon einfach mal der Befehl, wie mein Vorredner schon erwähnt hat. Üblicherweise sind alle Programme immer klein benannt.

Zu 3.:
Das kannst du dann auch einfach überprüfen indem du in irgendeinem Verzeichnis einfach mal "java -version" oder so eintippst, dann siehst du ja sofort ob es im PATH ist oder nicht.

Zu 4.:
In '/usr/bin' liegen nur die Executables(sprich die Ausführbaren Dateien), die zugehörigen Programmdateien liegen dann immer wo anders, das ist auch wieder Distro- und Packetmanagerabhängig. Die Konfigurationsdateien liegen üblicherweise unter '/etc', Bibliotheken und Includes unter '/usr/lib/' und '/usr/include' und sonstige Dateien(Dokumentation, Man-Pages, etc) unter '/usr/share'. Programme die für Benutzer seperat Einstellungen speichern legen diese meistens im Home-Verzeichnis in einem versteckten Verzeichnis ab (z.B. '~/.firefox').

Zu 5.:
Mit den allgemeinen Packetmanagern kannst du die soweit ich weiß nur systemweit installieren. Wenn du es nur für dich installieren willst, musst du es selbst kompilieren mit einem speziellen Prefix. Es kann sein, dass es auch Packetmanager gibt, die das können, ist mir aber noch keiner untergekommen.

Aber wenn in den Anforderungen steht "Grundkenntnisse" bist du glaub ich schonmal gut dabei, wenn du den allgemeinen Aufbau von Linux kennst (z.B. sowas wie die Verzeichnisstruktur) und ein bisschen auf der Shell klarkommst(ls, cd, etc...). Kommt natürlich ganz auf den Job drauf an.

Gruß und viel Erfolg bei deinem Vorstellungsgespräch 

Matt


----------



## oraclin25 (16. Mai 2012)

Vielen Dank zusammen,

ich bin mittleweiler auf das Thema Shell-Programmierung gekommen.  Da wird sehr viel über gängige Programmiertechniken wie Schleifen, Strukturen usw. erläutert.  Ich habe noch kein Gespür, wofür Shell-Programme sind?  Um das System zu beeinflussen?  Also, mir fehlen die konkreten Nutzen von Shell-Programmierung.  Danke Euch.

Schöne Grüße aus Rheinland,
Eure Ratna


----------



## sheel (16. Mai 2012)

Einfach Arbeitsersparnis.

Wenn man bestimmte Dinge, die mehrere Shellbefehle brauchen, oft machen muss,
schreibt man sie in eine Datei und muss dann nur noch die mit einer Zeile starten.

Und um das Ganze etwas flexibler zu machen (statt immer nur on oben bis unten durcharbeiten)
kann man Sachen wie Bedingungen, Schleifen ... verwenden.
Fehlerabfragen,irgendwas für jede Datei in einem Verzeichnis machen...

Nur, ob das Programmieren ist...
Auch mit gespeichteren Skripts ist eine SHell nicht mehr als ein besserer Programmstarter.
Bez. der Möglichkeiten kann man das mit einer
"großen" Programmiersprache überhaupt nicht vergleichen.


----------

