FHNW: sysad
Wichtige Informationen und Befehle rundum das Modul sysad an der FHNW (1. Semester).
Wichtige Informationen und Befehle rundum das Modul sysad an der FHNW (1. Semester).
Fichier Détails
Cartes-fiches | 92 |
---|---|
Utilisateurs | 14 |
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Université |
Crée / Actualisé | 26.10.2015 / 28.04.2025 |
Lien de web |
https://card2brain.ch/box/fhnw_sysad
|
Intégrer |
<iframe src="https://card2brain.ch/box/fhnw_sysad/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Créer ou copier des fichiers d'apprentissage
Avec un upgrade tu peux créer ou copier des fichiers d'apprentissage sans limite et utiliser de nombreuses fonctions supplémentaires.
Connecte-toi pour voir toutes les cartes.
Kernel (Boot Sequence)
4. Kernel
- Mounts the root file system as specified in the “root=” in grub.conf
- Kernel executes the /sbin/init program
- Since init was the 1st program to be executed by Linux Kernel, it has the process id (PID) of 1. Do a ‘ps -ef | grep init’ and check the pid.
- initrd stands for Initial RAM Disk.
- initrd is used by kernel as temporary root file system until kernel is booted and the real root file system is mounted. It also contains necessary drivers compiled inside, which helps it to access the hard drive partitions, and other hardware.
Source: http://www.thegeekstuff.com/2011/02/linux-boot-process/
Init (Boot Sequence)
5. Init
- Looks at the /etc/inittab file to decide the Linux run level.
- Following are the available run levels
- 0 – halt
- 1 – Single user mode
- 2 – Multiuser, without NFS
- 3 – Full multiuser mode
- 4 – unused
- 5 – X11
- 6 – reboot
- Init identifies the default initlevel from /etc/inittab and uses that to load all appropriate program.
- Execute ‘grep initdefault /etc/inittab’ on your system to identify the default run level
- If you want to get into trouble, you can set the default run level to 0 or 6. Since you know what 0 and 6 means, probably you might not do that.
- Typically you would set the default run level to either 3 or 5.
Source: http://www.thegeekstuff.com/2011/02/linux-boot-process/
Runlevel (Boot Sequence)
6. Runlevel programs
- When the Linux system is booting up, you might see various services getting started. For example, it might say “starting sendmail …. OK”. Those are the runlevel programs, executed from the run level directory as defined by your run level.
- Depending on your default init level setting, the system will execute the programs from one of the following directories.
- Run level 0 – /etc/rc.d/rc0.d/
- Run level 1 – /etc/rc.d/rc1.d/
- Run level 2 – /etc/rc.d/rc2.d/
- Run level 3 – /etc/rc.d/rc3.d/
- Run level 4 – /etc/rc.d/rc4.d/
- Run level 5 – /etc/rc.d/rc5.d/
- Run level 6 – /etc/rc.d/rc6.d/
- Please note that there are also symbolic links available for these directory under /etc directly. So, /etc/rc0.d is linked to /etc/rc.d/rc0.d.
- Under the /etc/rc.d/rc*.d/ directories, you would see programs that start with S and K.
- Programs starts with S are used during startup. S for startup.
- Programs starts with K are used during shutdown. K for kill.
- There are numbers right next to S and K in the program names. Those are the sequence number in which the programs should be started or killed.
- For example, S12syslog is to start the syslog deamon, which has the sequence number of 12. S80sendmail is to start the sendmail daemon, which has the sequence number of 80. So, syslog program will be started before sendmail.
Source: http://www.thegeekstuff.com/2011/02/linux-boot-process/
Runlevels wechseln
Mit folgenden Befehlen können die Runlevel gewechselt werden:
- telinit <<runlevel>>
- shutdown
- reboot
- halt
- poweroff
Der Default Runlevel kann unter Ubuntu im folgenden File geändert werden: /etc/init/rc-sysinit.conf
Auf anderen System befindet sich dieses File eventuell unter /etc/rc.local oder /etc/inittab
Die aufgelisteten Commands befinden sich unter /sbin/. Die Binaries darin werden in der Regel nur vom System während dem Bootvorgang benutzt.
Upstart
Was ist es und was sind Vor- und Nachteile?
Upstart ist ein Hintergrundprogramm (Daemon) für Linux-Systeme, das als init-Prozess als erster Prozess (Process ID 1) zum Starten, Überwachen und Beenden weiterer Prozesse dient. Es ist ein ereignisorientierter Ersatz für das in vielen Unix-Systemen verwendete init von System V, das SysVinit.
Vorteile:
- Das Laden von Diensten verläuft asynchron und somit schneller.
- Dienste müssen Vorbedingungen erfüllen, bevor sie gestartet werden können. Es ist einfacher solche Abhängigkeiten zu definieren, als bisher in SystemV.
- Ubuntu hat das GUI höher priorisiert. Die Lademaske erscheint, während im Hintergrund andere Dienste noch starten.
Nachteile:
- Falls beim Start ein Fehler auftritt, ist es nicht einfach diesen Fehler zu reproduzieren, da die Reihenfolge bei jedem Start anders sein kann (asynchron).
- Nur auf Ubuntu anzutreffen. Nicht weitverbreitet und durchsetzungsvermögen ist zweifelhaft.
- Gewisse Dienste müssen immernoch nach alter Logik geladen werden, weil die Hersteller keine Upstart Version ausliefern.
Upstart Konfiguration und Fallback
Upstart hat einen anderen Startmechanismus als das Modell von System-V. Nicht alle Dienste können via Upstart gestartet werden. Dafür führt Upstart den Ersatz von System-V aus, welcher nach sequentieller Logik die Dienste startet.
Die Konfigurationen von Upstart findet man hier: /etc/init
Diese Config steuert die Ausführung der traditionellen Scripts (SystemV): /etc/init/rc-sysinit.conf
Die System-V Services, welche Upstart als Fallback triggered, befinden sich hier: /etc/init.d
Sie führen hauptsächlich service ... start aus. Dabei sollten sie mindestens start und stop als Befehle supporten.
/etc/default erlaubt es Upstart und System-V Scripts zu kontrollieren.
Services bewirtschaften
Service-Verzeichnis: /etc/init.d
Dieses Verzeichnis beinhaltet alle Services. Die rcx Directories verweisen darauf.
• Service zufügen: update-rc.d <<Service>> default
• Service löschen: update-rc.d <<Service>> remove, sofern der Service in /etc/init.d schon gelöscht wurde.
man update-rc.d beinhaltet weitere Informationen über diesen Befehl.
Handling von .gz & tar.gz Dateien
- Unzip:
- gz: gzip -d file.gz
- tar: tar -xvzf community_images.tar.gz
- gz & tar: gunzip file
- Zip:
- gz: gzip < file > file.gz (für eine Kopie), sonst
- gz: gzip file
- tar: tar -cvzf tarballname.tar.gz itemtocompress
Log Levels
- 0: Emergency
- 1: Alert
- 2: Critical
- 3: Error
- 4: Warning
- 5: Notice
- 6: Info
- 7: Debug
Merkkarte (Logs)
- syslog ist ein daemon / service der angesprochen werden kann. zu dem ist es de-facto ein standard. über diesen daemon können mitteilungen gesendet werden (sogar übers netzwerk)
- mit dem logger [-p facility.level] msg können mitteilungen an syslog gesendet werden.
Beispiel: logger -p auth.crit "Hello Test" - log rotation kann in /etc/logrotate.conf bearbeitet werden
Linux Modules (Kernel)
- Der Kernel ist modular aufgebaut, was das dynamische Laden und Entfernen von Modulen erlaubt.
- Module können so laufend ausgetauscht werden, ohne dabei die Maschine neuzustarten. Das ist vor allem für Entwickler und Systemadministratoren praktisch.
- Die Module findet man unter /lib/modules
- In /etc/modules können (eigene) Module hinzugefügt werden.
- In /etc/modprobe.d/blacklist befinden sich die gesperrten Module.
Linux Modules Befehle
- lsmod liefert eine Liste geladener Module, welche in der Datei /proc/modules aufgeführt wird.
- modinfo liest den Header des Moduls und kann so Auskunft über das Modul geben. Unteranderem wird die Dependency auch aufgelistet.
- depmod -a listet alle Dependencies von Modulen auf. Pro Line eine Dependency
- modprobe erlaubt es Module zu laden und zu entfernen, dabei prüft sie die Abhängigkeiten.
Kernel Tuning
- Mit ulimit -a können Benutzereinschränkungen gemacht werden. Mit dem entsprechenden Flag und einem Value können diese Einstellungen angepasst werden. Beispiel ulimit -f xxx limitiert die maximale Filesize.
- Mit sysctl -a können Kernel Parameter zur Runtime angepasst werden. Dabei werden die Files unter /proc/sys ausgelesen.
- Persistente Einträge können in /etc/sysctl.conf gemacht werden. Es gibt auch noch /etc/sysctl.d/ worin Einträge als Files abgespeichert werden können.
Sticky Bit
A sticky bit is a permission bit that is set on a directory that allows only the owner of the file within that directory or the root user to delete or rename the file. No other user has the needed privileges to delete the file created by some other user.
This is a security measure to avoid deletion of critical folders and their content (sub-directories and files), though other users have full permissions.
chmod +t ~/Desktop/test
1551793 drwxrwxrwt 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test
Prüfungsfrage von Parallelklasse:
Weshalb braucht es sowohl ein IP-, als auch ein TCP- und ein Ethernet-Protokoll um routingfähige Netzwerke zu bauen?
Das Ethernet-Protokoll erlaubt es Pakete an unmittelbare Nachbarn zu versenden (Broadcastdomäne). Die MAC-Adresse ist aber nicht routbar. Sie erlaubt es nur an direkt benachbarte Systeme zu senden. Das IP-Protokoll erlaubt es Ethernet-Pakete aufzugreifen und weiterzuleiten (routing). Wenn ein Paket allerdings in einem PC ankommt ist nicht klar, was dieser damit machen soll. Das TCP-Protokoll fügt eine Flusskontrolle hinzu (sicheres übermitteln) und erlaubt eine Unterscheidung von Paketen nach Funktion (Portadresse).
Was erlaubt eine Shell?
Sie erlaubt dem Benutzer die Interaktion mit dem Dateisystem, dem Prozess-Steuersystem sowie einfache Script programmierung.
Wo wird die Login Shell des Benutzers definiert?
Die Login Shell der Benutzer ist in /etc/passwd definiert.
In welchem File liegen die erlaubten Shells?
Im File /etc/shells sind die validen Shells aufgelistet.
Wie kann die Shell eines Benutzers gewechselt werden?
Mit dem Command chsh [-s] [LOGIN] kann die Shell auf folgende Arten geändert werden:
- Ein normaler User kann mit chsh eine vo den validen Shells in /etc/shells auswählen
- Wird mit chsh keine Shell angegeben, wird die Default-Shell gesetzt
- Ein Superuser kann den Pfad irgendeiner Shell angeben. Sie muss nicht in /etc/shells aufgelistet werden.
chsh [-s PATH_TO_SHELL] USER_LOGIN - Mit usermod -s user kann die Shell auch geändert werden
Mehr Infos: http://manpages.ubuntu.com/manpages/trusty/man1/chsh.1.html
Was ist eine Shell?
Eine Shell ist eine Benutzerschnittstelle für den Benutzer. Der Benutzer kann in einer Eingabezeile Kommandos eintippen, die der Computer dann sogleich ausführt. Man spricht darum auch von einem Kommandozeileninterpreter. Im Gegensatz zu anderen Betriebssystemen sind Unix-Shells gewöhnliche Anwenderprogramme ohne besondere Privilegien. Dadurch ist sie leicht ersetzbar.
Was sind die Aufgaben einer Shell?
- Auf ein User-Prompt warten: $ (normaler User); # (Superuser); > (weiterer Input)
- Kommandozeile intepretieren und in Kommandoname, Optionen und Parametern aufteilen
- Sucht gewünschtes Programm via PATH (welche beim Start der Shell eingelesen werden).
Es kann auch ein voller Pfad stattdessen angegeben werden. - Steuerung von Ein- und Ausgaben, welche auch umgeleitet werden können (an andere Programme oder Dateien)
- Ersetzung von Sonderzeichen und anderen Kommands, welche die Shell erweitert
- Erzeugt Child- und Hintergrundprozesse
Wie lautet die Shell Kommando Intepretation? (Reihenfolge relevant)
- Ein Kommando wird erst ausgeführt, wenn der Benutzer am Ende der
Kommandozeile die RETURN-Taste drückt.
- Die Shell liest bis zum ersten Kommandotrenner („&“ „&&“ „||“ „;“ „>“ „<„) und
stellt fest, ob Variablenzuweisungen erfolgen sollen oder die Ein-Ausgabe
umgelenkt werden muss.
- Die Shell zerlegt die Kommandozeile in einzelne Argumente. Sie trennt die
einzelnen Argumente durch eines der Zeichen, die in der Shell-Variablen IFS
(Internal Field Separator) stehen, normalerweise Leerzeichen, Tabs und
Newline-Zeichen.
- Variablenreferenzen, die in der Kommandozeile stehen, werden durch ihre
Werte ersetzt.
- Kommandos, die in `...` oder bei der bash in $(...) stehen, werden ausgeführt
und durch ihre Ausgabe ersetzt.
- stdin, stdout und stderr werden auf ihre "Zieldateien" umgelenkt.
- Falls in der Kommandozeile noch Zuweisungen an Variablen stehen, werden diese ausgeführt.
- Die Shell sucht nach Wildcard/Glob und ersetzt diese durch passende Dateinamen.
- Die Shell führt das Kommando aus.
Was sind die drei virtuelle Standarddateien, die dem Terminal zugeordnet sind?
- stdin
Damit können Daten in ein Programm (Streams) eingelesen werden. In der Regel via Tastatur. Dateideskriptor 0
less < eingaben.txt - stdout
Standardausgabe für ein Programm an den User. Normalerweise ist sie mit dem Monitor verbunden. Dateideskriptor 1
find . -name '*.html' 1> ausgaben.txt
- stderr
Fehler- und Statusmeldungen ausgeben. Diese können mit Weiterleitungen von der Standardausgabe getrennt werden. So können Vermischungen gemieden werden. Dateideskriptor 2
find . -name '*.html' 2> fehlermeldungen.txt | less
Diese virtuelle Datein findet man unter /dev/std*
Was ist mit Datenweiterleitung "Redirection" gemeint?
Es ist eine Funkton in Kommandointerpretern, die es ermöglicht, Standard Streams vom User an spezifizierte Stellen weiterzuleiten.
- command1 > file1
Output von command1 ins file1 schreiben. stdout (Bildschrim) wäre der Default
command1 < file1
Inhalte von file1 and command1 übergeben. stdin wäre der Default für Inhalte.
command1 2> file1
Die Fehler produziert duch command1 werden ins file1 geschrieben.command1 >> file1
Fügt den Output von command1 ans Ende von file1 hinzu.
Was für Spezialitäten gibt es bei der Input / Output-Umleitung?
- Die Ausgabe kann unterdrückt werden indem man ins /dev/null schreibt:
command1 > /dev/null
command1 2> /dev/null (für Fehlermeldungen)
command1 > file1 2> /dev/null (Kombinationen möglich
- Es gibt spezielle Platzhalter, welche es ermöglichen, Ausgaben an stdout und stderr kompakter zu definieren.
command1 > output 2>&1
Was macht Pipelining?
- Es verbindet zwei Kommandos über einen temporären Puffer. Die Ausgabe vom ersten Programm wird als Eingabe ans zweite Programm genutzt. Die Reihenfolge der Ausgabe wird bei der Eingabe übernommen.
- Die Pufferung und Synchronisation übernimmt das Betriebssystem.
- Es können mehrere Pipes eingesetzt werden.
Beispiel: ls | more
Was sind wichtige Merkmale von Pipelining?
- Es können mehrere Kommandos hintereinander mit Pipes verbunden werden.
- Sie haben im Vergleich zu anderen Ein- und Ausgabe Ausführungen Vorrang.
- Zuerst wird für jeden Abschnitt ein neuer Prozess erzeugt, welcher dann die Ausgabe mit der Eingabe des nächsten Prozesses verbindet.
- Fehler können ebenfalls durchgereicht werden:
command1 2> &1 | command2
Was sind nützliche Filter fürs Piping?
- head [file(s)]
Die ersten n Zeilen der Dateien. Default 10. Keine Datei angegeben holt er Daten aus stdin
- tail [-/+n] [datei]
Ausgabe der letzten n Zeilen einer Datei. Default 10. Keine Datei angegeben holt er Daten aus stdin.
- more
Seitenweise Ausgabe des stdin
- wc
Zählen von Wörtern von stdin
- sort
Sortieren des stdin nach diversen Kriterien
- tee [file]
Kopiert von stdin nach stdout und schreibt die Daten gleichzeitig in die angegebene Datei
Mit welchem Command lässt sich das aktuelle Directory ausgeben?
pwd
Mit welchen Kommands können die letzten Befehle ausgeführt werden?
- !!
führt den letzten Command (mit Flags) nochmals aus
- !le
führt den letzten Command (mit Flags) aus, der mit le begonnen hat
Diese greifen nämlich auf die Bash-History des Users zurück.
-
- 1 / 92
-