Linux Grundlagen I

Linux Grundlagen I



Vorwort



Linux ist ein frei verfügbares Betriebssystem welches auch im
Professionellen Umfeld Anwendung findet. Hierfür gibt es mindestens zwei
große Distributionen. Novell SLES und Redhat Enterprice. Beide bieten
nur eine Auswahl an Softwarepaketen. Dabei schränkt sich die Auswahl
auf Programme ein die als ausgereift und stabil gelten.



Als vollständiges Betriebssystem darf man Linux nicht auf eine seiner
Komponenten reduzieren, sondern muss die Vielfalt aller einzelnen
Programme sehen. Keines ist für sich gesehen lauffähig nur wenn alle
zusammenarbeiten entsteht ein gutes Betriebssystem.



Im weiteren Verlauf möchte ich gerne die Grundalgen erläutern um mit dem Betriebssystem Linux umzugehen. Die hier beschriebenen Vorgehensweisen und Grundlagen lassen sich Systeme übertragen. Gemeint ist hierbei vorallem auch Mac OS X.

Terminalfenster


Um mit dem Betriebssystem Kontakt aufzunehmen benötigt man eine Schnittstelle oder ein Programm. In Linux nutzt man dazu das Terminalfenster.


Benutzer und Gruppen

Neben dem Superuser root, der per Definition alles darf. Gibt es nur noch normale Benutzer. Wir arbeiten auf Linuxsystemen nur als normaler Benutzer, so kann man verhindern das man aus versehen wichtige für den Betrieb des Servers notwendige Dateien löscht. Der Systemverwalter hat so auch die Möglichkeit normale Benutzer von Systemwichtigen Bereichen fern zu halten. Um doch die Möglichkeit zu haben auch als normaler ausgewählte Funktionen als root-User auszuführen gibt es die sudo Funktion.

Dateien

Dateien liegen in Verzeichnisse und haben die folgenden Attribute: Besitzer, Gruppe, Rechte, Accesstime, Creationtime, Modificationtime. Im folgenden werden die einzelnen Attribute näher erläutert.

Befehlsübersicht

Zu jedem Befehl kann man sich Hilfe anzeigen lassen. Wenn also die Syntax nicht soft klar ist, bitte die Hilfe der Befehle nutzen.

Hilfe zu Befehlen

man befehl
Zeigt die man-Page zum Befehl an. Innerhalb der man-Page kann man sich so wie im vim bewegen
befehl --help
Fast alle Befehle haben eine kurze Übersicht der möglichen Befehle eingebaut
info befehl
Info Seiten zum Befehl. Die Navigation erfolgt

ssh Login/out und Benutzer

ssh digicol@lxsrvtest01
Remotelogin über ssh mit dem Benutzernamen Digicol auf den Server lxsrvtest01
id
Gibt den Benutzernamen aus mit dem ich gerade am System angemeldet bin.
who
Zeigt mir die anderen Benutzer an die gerade am System angemeldet sind.
sudo scanner stop
Es wird das eigene Passwort abgefragt dann darf man den Befehl der hinter sudo aufgeführt ist als root-user ausführen

Verzeichnisbaum


cd log/rls
Wechselt vom aktuellen Verzeichnis in das Unterverzeichnis log/tls
cd /tmp
Wechselt vom aktuellen Verzeichnis in das absolute Unterverzeichnis /tmp
pwd
Print woking Directory, zeigt das aktuelle Verzeichnis an in dem man sich aktuell Befindet.
cd ~ oder cd
Wechselt in das Homerverzeichnis des Benutzers

Dateien

Unter Linux arbeiten wir nur mit Dateien, auch Geräte werden als Datei angesprochen.

Finden


find -name "*.jpg"
Alle Dateien mit dem Wildcard Namen *.jpg vom aktuellen Verzeichnis aus finden.
find -type f
Nur Dateien finden
find -type d
Nur Verzeichnisse finden
find /dot/import-expoert/ -mmin +5 -type f
Finde im absoluten Pfad /dot/import-export/ nur Dateien die vor mehr als 5 Minuten verändert worden sind

Kopieren / Verschieben - Umbenennen

cp DateiA DateiB
Kopiert DateiA nach DateiB die Aktion wird dabei im aktuellen Verzeichnis durchgeführt.
cp DateiA /tmp
Die DateiA wird in das Verzeichnis /tmp Kopiert.
cp ~/Bilder/DateiA /dot/import-export
Kopiere die DateiA aus dem Absoluten Verzeichnis ~/Bilder/DateiA in den Pfad /dot/import-export.
Dabei behält die Datei ihren Namen
cp ~/bilder/DateiA /dot/import-export/DateiB
Kopiere die DateiA aus dem Absoluten Verzeichnis ~/Bilder/DateiA in den Pfad /dot/import-export.
Dabei bekommt die Datei den neuen Namen DateiB
mv DateiA DateiB
Die DateiA wird in DateiB umbennant die "alte" DateiA gibt es dann nicht mehr
mv DateiA /tmp
Die DateiA wird nach /tmp verschoben

Informationen anzeigen

Datei

ls -al DateiA
Zeigt ausführliche Informationen zur Datei DateiA an.


-rw-r--r--  1 root root  1773 2008-12-15 14:45 DateiA

012345678901234567890123456789012345678901234567890123456789


 

Stelle
Beschreibung
0-9Datei Rechte
12
Anzahl der Hardlinks auf diese Datei
14-17
Besitzer
19-22
Gruppe
25-28
Größe in Bytes
30-39
Datum
41-45
Uhrzeit (mtime)
47-52
Datei Name

Verzeichnis

ls -al VerzA
Zeigt ausführliche Informationen zum Verzeichnis VerzA an.


drw-r--r--  7 root root  1773 2007-10-11 09:05 VerzA

012345678901234567890123456789012345678901234567890123456789


 

Stelle
Beschreibung
0-9Datei Rechte
12
Anzahl der Verzeichnisse in diesem Verzeichnis minus 2
14-17
Besitzer
19-22
Gruppe
25-28
Größe in Bytes (immer 4k)
30-39
Datum
41-45
Uhrzeit (mtime)
47-52
Verzeichnis Name

Löschen

rm DateiA
Löscht diese Datei
rm -r /dirA
Löscht das Verzeichnis dirA absolut und alle darin enthaltenen Unterverzeichnisse und Dateien.
rm -r dirA
Löscht das Verzeichnis dirA relativ vom aktuellen Standort innerhalb des Verzeichnisbaums und alle darin enthaltenen Unterverzeichnisse und Dateien.

Schlusswort und Links







netbook-launcher ist langsam

Ich habe für meinen Nachbarn ein nettes kleines Netbook besorgt. Lenovo S10e. Und habe da auch gleich das neue Ubuntu 9.10 als Netbook-Remix drauf gemacht, so weit so gut, einziges Problem war das der schöne netbook-launcher das ganze Netbook exterm langsam gemacht hat.
Zuerst dachte ich es liegt am Kernel, der zur Zeit probleme mit Intel Grafikkarten hat, aber weit gefehlt.

Die Lösung war:
Dank der Autokonfiguration der xorg.conf wurde diese im Section "Screen" um folgendes erweitert:

SubSection "Display"
Virtual 2048 768
EndSubSection

Diese drei Zeilen habe ich einfach gelöscht. Abmelden - Anmelden nnd jetzt läuft es wie geschmiert. Eigentlich unglaublich oder?
crond zieht keine neue crontab aus /etc/cron.d

Auf einem Cluster verteilen wir neue crontab Einträge als Datei im Verzeichnis /etc/cron.d. Jetzt habe ich mich immer wieder gewundert warum die neue crontab-Datei nicht vom crond gezogen wurde.
Dies liegt daran das crond die modification time des Ordners überwacht und nicht die der Datei(en). Wärend ich darüber nachdenke macht ja auch nur das Sinn. Wie soll er sonst mitbekommen wenn eine neue Datei im Verzeichnis abgelegt wird.
Mein Problem ist das meine Verteilung nur bereits vorhandene Dateien überschreibt und das ändernt nicht die modifikation time des Ordners, also bekommt es der crond nicht mit.
Jetzt werde ich in mein Verteilscript einbauen das es einen touch auf den Ordner /etc/cron.d gibt.