Die Shell | Dateien | Editoren | Backups Archive | Laufwerke | Prozesse |
Administration | Netzwerk | Userverwaltung | Rechte | Links | Suchen |
apt-get | zeigt eine Liste der verfügbaren Optionen. Hier ein paar wichtige daraus |
update | aktualisiert die Paketliste mit den Servern in /etc/apt/sources.list |
upgrade | installiert neuere Versionen von allen gefundenen Paketen |
install Paketname | installiert ein bestimmtes Paket |
source | lädt nur Quelldateien runter (/usr/src) |
remove Paketname | entfernt ein Paket vom System |
dist-upgrade | Installiert alle Pakete deren Status auf install steht |
clean | löscht alle heruntergeladenen Files im cache (/var/cache/apt) |
autoclean | löscht die Pakete aus dem cache die über die sources.list nicht mehr verfügbar sind damit z.B. keine veralteten Pakete im cache bleiben |
-d | nur downloaden nicht installieren |
-y | bei Fragen immer mit ja antworten. Gilt nur für die Installation von zusätzlichen Abhängigkeiten oder so, nicht jedoch die Konfigurationsfragen der eben installierten Pakete |
apt-cache | zeigt eine Liste der verfügbaren Optionen. Hier ein paar wichtige daraus |
search Paket | sucht nach zu installierenden Paketen mit dem angegebenen Namen |
show Paket | zeigt jede Menge Informationen zu einem Paket |
depends Paket | listet die Abhängigkeiten eines Paketes auf |
Wichtige Dateien zu apt | |
/etc/apt/sources |
hier trägt man die Server ein von denen man Pakete holen will. z.B. deb http://security.debian.org/ stable/updates main contrib deb ftp://ftp.at.debian.org/debian stable main contrib Eine große Auswahl an Servern findet man unter : http://www.apt-get.org/ |
/etc/apt/preferences |
in dieser Datei kann man das "apt pinning" einstellen. Damit kann man bestimmen welche Paketversionen installiert werden sollen. So kann man recht einfach ein stable System fahren und trotzdem Pakete aus z.B. unstable benutzen ohne sein System zu verhauen. Die Datei ist wie folgt aufgebaut: Package: Paketname * für alle Pin: release oder version Pin-Priority: Priorität Package: Das kann jedes Paket sein oder einfach * für alle (z.B. apache*) Pin: version (z.B. version 2.*) oder release. release kennt noch zusätzliche Argumente wie a für stable/testing/unstable (z.B. release a=stable) v für die Debianversion (z.B. release v=3.0r1) c für main/contrib/non-free (z.B. release c=main) Pin-Priority: besagt wie mit dem Paket umgegangen werden soll. Das können 3 Zahlenbereiche sein: 0-99 - Paket wird nicht installiert 100-999 - Pakte werden normal aktualisiert, keine Downgrades <1000 - Pakete werden auch normal aktualisiert und falls nötig downgegradet Beispiel: Package: * Pin: release a=stable Pin-Priority: 1001 Package: apache* Pin: version 1.3.29.0.1* Pin-Priority: 1002 Dies bedeutet das mein System auf jeden Fall stable bleiben soll nur Apache darf in einer neueren Version rennen |
/etc/apt/apt.conf |
APT::Default-Release "stable" Mit einem solchen Eintrag kann man in seiner sources.list auch "unstable" oder "testing" Einträge haben, und es werden trotzdem nur "stable" Pakete geladen. Will man doch mal ein Packet aus einem anderen Zweig (z.B. unstable) installieren, geht man wie folgt vor: apt-get -t unstable install Paketname oder apt-get install Paketname/unstable |
Beispiele | |
apt-get update | aktualisiert die Paketliste mit denen auf den Servern |
apt-get install -y xserver-xfree86 | installiert den xserver und falls zusätzlich Pakete benötigt werden, werden diese ohne Nachfragen mit installiert |
apt-cache search php4 | zeigt eine Liste mit Kurzinfos über Pakete die mit php4 zu tun haben |
dpkg | zeigt eine Liste der verfügbaren Optionen. Hier ein paar wichtige daraus |
-l "*" | listet alle installierten Pakete auf mit Status, Version und Kurzbeschreibung. man kann auch eine bestimmtes Paket angeben mit "Paketname" oder auch nur einen teil des Namens mit "*Teilbegriff*" |
-L Paket | listet alle files auf die zu einem Paket gehören. |
-p Paket | zeigt genauere Informationen über ein Paket |
-i Paket.deb | installiert das angegebene Paket |
--remove Paket | deinstalliert das angegebene Paket |
--purge Paket | deinstalliert das angegebene Paket und löscht auch dessen Konfiguration |
--pending --configure | Konfiguriert noch nicht konfigurierte Pakete |
--get-selections | zeigt alle Pakete im System mit Status |
--set-selections | setzt den Status der Pakete im System, (Paketname Status, CTRL+D zum beenden) |
dpkg-reconfigure Paket | konfiguriert das angegeben Paket neu |
Beispiele | |
COLUMNS=180 dpkg -l | Zeigt uns alle Pakete (l) im System in schönerer Form (mit COLUMNS haben wir es nur zurecht geschoben) |
dpkg --get-selections > Paket.liste | schreibt in die Datei "Paket.liste" alle Pakete im System mit Status, das ist praktisch wenn man einem anderen Rechner identisch ausstatten will. |
cat Paket.liste | dpkg --set-selections | cat listet uns die Datei auf und durch --set-selections werden die Pakete eingetragen. Beim nächsten dselect-upgrade werden sie dann installiert. |
ldd Programm | zeigt die erforderlichen Libraries für ein Programm an. |
update-alternatives | zeigt eine Liste der verfügbaren Optionen |
--config name | listet eine Auswahl verfügbarer Alternativen zu einer Kategorie, aus welcher man wählen kann |
--list name | listet eine Auswahl verfügbarer Alternativen zu einer Kategorie |
--all | listet eine Auswahl verfügbarer Alternativen aller Kategorien, aus welcher man wählen kann |
--set name Pfad | setzt eine alternative |
Beispiele | |
update-alternatives --config x-window-manager | zeigt eine Auswahl der Window-manager aus welcher man direkt setzen kann |
update-alternatives --set editor /usr/bin/nano | setzt nano als den Standard-Editor |
/etc/adduser.conf | enthält die Standardeinstellungen für neu erstellte User mittels adduser |
/etc/crontab |
Enthält Programme die Regelmäßig laufen sollen. Der Aufbau ist recht einfach: Minute Stunde Monatstag Monat Wochentag User Kommando, Das Zeitformat ist 24h * steht für immer (Bei Tag z.B. jeden Tag) bei Debian stehen noch die Verzeichnisse cron.daily cron.hourly cron.monthly und cron.weekly zur Verfügung in die man nur noch seine Scripte rein kopieren muss. |
/etc/fstab |
hier stehen alle mountpunkte drinnen die das System beim starten einhängen soll. Hat man eine Neue Partition kann man hier einen Eintrag machen damit man sie nicht immer händisch mounten muss. Das Format ist 1. Feld Partition, Datei oder Gerät das gemountet werden soll 2. Feld das Verzeichnis auf das gemountet wird. 3. Feld den Typ des Dateisystems 4. Feld zusätzliche Parameter |
/etc/hostname | enthält den eigenen Rechnernamen |
/etc/hosts | diese Datei enthält IP und die Rechnernamen, sodass man im LAN auch ohne Nameserver auskommen kann. Diese Datei wird auch von manchen Programmen benötigt. |
/etc/hosts.allow |
hier kann man bestimmen auf welche Dienste von wo aus der Zugriff gestattet wird. Der Aufbau ist einfach: Dienst:HOST optional noch :(Kommando) Für Dienst können auch mehrere Dienste durch , getrennt angegeben werden. Genauso for den Host |
/etc/hosts.deny | ist das Gegenteil zu /etc/hosts.allow und hat Nachrang. Wenn in /etc/hosts.allow etwas erlaubt ist und hier verboten wird, wird es dennoch erlaubt. |
/etc/inittab |
in dieser Datei stehen die Parameter für init so z.B. das Standard Runlevel. Die Zeilen sind so aufgebaut: ID:Runlevel:Aktion:Prozess Die ID ist frei wählbar, eindeutig und 2-4 Zeichen lang. Runlevel können nebeneinander eingetippt werden. Als Aktion stehen mehrere zur Verfügung z.B. respawn - init startet den Prozess sobald er beendet wird (getty) wait - wartet auf die Terminierung des Prozesses once - der Prozess wird nur einmal gestartet boot - der Prozess wird während dem boot ausgeführt initdefault - gibt das default Runlevel an sysinit - startet den Prozess vor allen anderen ctrlaltdel - was bei CTRL+ALT+DEL geschehen soll |
/etc/inputrc | hier kann man Tastatureigenheiten einstellen, z.B. set meta-flag on für Umlaute und Sonderzeichen. Der Aufbau ist gleich mit dem des bind Kommandos |
/etc/init.d | in diesem Ordner sind alle Dienste drinnen die bei den jeweiligen Runlevels gestartet werden. Man kann auch eigene Startscripte schreiben und hier ablegen, dann muss man nur noch unter /etc/rcX.d einen entsprechenden Link darauf machen wobei das X für das Runlevel steht. |
/etc/rcX.d |
in diesem Ordner stehen alle Dienste als Symlinks (ln) drinnen die bei einem Runlevel gestartet bzw. gestoppt werden. Das X steht für das jeweilige Runlevel. Die Namen bestehen aus 3 Teilen: An erster Stelle steht ein K für kill oder ein S für start. Die folgende Nummer gibt die Startreihenfolge an nach der die Scripte ausgeführt werden. Und als letztes steht der Dienst/Scriptname zum besseren Verständnis. Die Runlevels sind: 0 - Herunterfahren 1-4 - Multiuser-mode, normale Konsole 5 - das X-System, die grafische Oberfläche 6 - Neustart S - singleuser-mode, für administrative Tätigkeiten die es erfordern (z.B. tune2fs) |
/etc/lilo |
in dieser Datei steht die Konfiguration für den Bootloader lilo drinnen. Wenn man was ändert sollte man nicht vergessen nachher lilo auszuführen! Wichtige Zeilen sind: boot= wohin der Bootloader installiert werden soll root= die root-Partition / default= das OS das standardmäßig gestartet werden soll image= Angaben für zu startende Kernel other= Angaben für andere Betriebssysteme |
/etc/login.defs | hier kann man eine Menge festlegen z.B. die Fehlversuche beim login, deren log, Systembegrenzungen für User (RAM, Prozesse, ...) |
/etc/issue |
bevor das login Prompt startet wird dieser Text ausgegeben, so eine Art Startmeldung. Meist stehen hier Informationen über das OS und den Rechner. Mögliche Variablen im Text: \d der aktuelle Tag in Kurzform mit Datum \l das Terminal an dem man sich befindet \m Rechnerarchitektur \n Rechnername \o Domainname \r Betriebssystemversion \s Betriebssystemname \t Aktuelle Zeit \u Anzahl angemeldeter Benutzer |
/etc/motd | "message of the day" - diesen Text sehen alle User nach einem erfolgreichen login. So kann ein Admin z.B. alle User auf Wartungsarbeiten hinweisen usw. |
/etc/network/interfaces |
hier stehen die Netzwerkkarten Einstellungen drinnen. Jede Karte beginnt mit 2 Zeilen. In der ersten steht immer auto device, und in der 2. Zeile wird bestimmt ob die Adressen per dhcp (dhcp) zu beziehen sind oder fix eingetragen werden (static). Hier mal ein Beispiel: # loopback interface auto lo iface lo inet loopback # Netzwerkkarte eth0 auto eth0 iface eth0 inet dhcp # Einstellungen per DHCP beziehen (dhcp) # Netzwerkkarte eth1 auto eth1 iface eth1 inet static # Einstellungen selber bestimmen (static) address 192.168.0.10 # IP Adresse netmask 255.255.255.0 # subnetmask network 192.168.0.0 # Netzwerk (optional) broadcast 192.168.0.255 # broadcast (optional) Man kann noch den Gateway angeben, die MAC Adresse mit hwaddress ether MAC festlegen und noch ein paar andere Sachen. |
/etc/resolv.conf |
hier stehen die DNS-Server drinnen z.B. search isp.at nameserver 195.34.133.17 nameserver 195.34.133.18 |
/etc/passwd, /etc/shadow |
In diesen Dateien stehen die login Informationen. /etc/passwd hat jede Zeile dieses Format: User:Passwort:UID:GID:gecos:home:shell user - Benutzername Passwort - Das verschlüsselte Passwort UID - eindeutige User ID GID - eindeutige Gruppen ID gecos - diverse Infos über den Benutzer home - das Heimatverzeichnis shell - die Standardshell Wenn man shadowpasswörter verwendet stehen in /etc/passwd bei Passwort nur ein * oder ein x und in /etc/shadow die User und Ihre Passwörter |
/etc/group, /etc/gshadow |
In diesen Dateien stehen die Gruppeninformationen. Das Format ist: Gruppe:Passwort:GID:user gruppe - Der Gruppenname Passwort - das Passwort der Gruppe, wenn vorhanden GID - eindeutige Gruppen ID user - durch , getrennte Liste der Mitglieder der Gruppe /etc/gshadow wiederum wenn man shadowpasswörter nutzt |
/etc/nologin | wenn diese Datei vorhanden ist kann sich nur noch root am System anmelden, alle anderen sehen beim login lediglich den Inhalt dieser Datei |
/etc/profile | Diese Datei wird beim einloggen aller User gestartet. Darin stehen z.B. einige Umgebungsvariablen, die umask diese besagt welche Rechte neue Dateien haben. Man kann auch mit ulimit Limitierungen von Ressourcen wie Filegröße, CPU-Zeit, usw. einstellen |
/etc/securetty | hier Stehen die Terminals an denen sich root anmelden darf, so kann man ganz einfach unsichere Terminals vor rootzugriffen schützen |
/etc/shells | in dieser Datei sind alle zugelassenen Loginshells eingetragen. Diese Datei wird auch von chsh ausgewertet |
/etc/skel | hier findet man Standardvorlagen für diverse Konfigs, diese werden auch beim erstellen eines neuen Benutzers in sein HOME-Verzeichnis kopiert |
/etc/sudoers |
in dieser Datei kann man einstellen wer mit mit sudo was machen darf. Der Aufbau ist recht simpel. Oben hat man 4 Bereiche in denen man Aliase Definieren kann und unten die Regeln die wie Folgt aufgebaut sind USER HOSTS=(RUN_AS) NOPASSWD: COMMAND NOPASSWD: ist optional und bedeutet das man nicht das Passwort des Zielusers wissen muss. ein Beispiel: # Benutzer Alias User_Alias USER=user1,user2 # Zielbenutzer Alias % für Gruppe, + für Netzgruppe Runas_Alias ZIELUSER=webmaster,%www-data # Rechner Alias Host_Alias RECHNER=localhost,192.168.0.1,192.168.0.2 Host_Alias LOKAL=localhost,192.168.0.1 # Kommando Alias Cmnd_Alias KOMMANDOS=/usr/sbin/apache root ALL=(ALL) ALL USER RECHNER=(ZIELUSER) NOPASSWD: KOMMANDOS camel LOKAL=(ALL) ALL Hier haben wir 2 User die als webmaster mit apache arbeiten dürfen, aber nur von den angegebenen Hosts, und einen User (camel) der lokal alles als root darf |
/etc/syslog.conf |
Hier steht drinnen was, wie und wohin geloggt werden soll. Die Zeilen bestehen aus 3 Feldern 1. Quelle - das kann folgendes sein: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, security (= auth), sys-log, user, uucp und local0 bis local7 2. Priorität - aufsteigend: debug, info, notice, warning, warn (= warning), err, error (= err), crit, alert, emerg und panic (= emerg) 3. log Datei - Die Datei in die geloggt werden soll |
/etc/X11 | hat man einen X-Server wie xfree86 installiert befindet sich hier die Konfig. eine wichtige Datei in diesem Verzeichnis ist /etc/X11/XF86Config-4. Hier stehen die ganzen Einstellungen für den X-Server in "Sections". Das sind z.B. die Pfade zu den Fonts (Section "Files"), die Tastatur und Mausbeschreibung (Section "InputDevice"), die Module die geladen werden sollen (Section "Modules") sowie Grafikkarte (Section "Device") und Monitor (Section "Monitor"). |
date | Zeigt Datum an (Sat May 15 18:49:17 CEST 2004) |
-s | setzt Datum oder Uhrzeit |
Parameter zum ausgeben | |
%a %A | Tag kurz lang (Sat, Saturday) |
%d | Tag des Monats |
%b %B | Monat kurz lang (Aug, August) |
%y %Y | Jahr kurz lang (04, 2004) |
%D | Datum 05/15/04 |
%T | Uhrzeit 18:48:56 |
Beispiele | |
date -s 15/05/04 | setzt das Datum auf 15.05.2004 |
date -s 18:45:00 | setzt die Uhrzeit auf 18:45:00 |
date +%A-%d-%b-%Y | ergibt "Saturday-15-May-2004" |
date +%a-%d-%b-%y | ergibt "Sat-15-May-04" |
rdate -s ntp0.fau.de | holt sich die Zeit vom angegebenen Timeserver uns setzt (-s) diese lokal. Ohne dem Schalter -s wird die Zeit nur angezeigt |