Sonntag, 11. Februar 2024

Grundkurs Linux Terminal - Teil 4

Grundkurs Linux Terminal - Teil 4

In Teil 4 des Grundkurs Linux Terminal soll es nun um einige Kommandos gehen, die Informationen zu verschiedenen Prozessen liefern, Terminal-Befehle, die Systeminformationen anzeigen und ich will noch ein paar Konvertierungstools auf Kommandozeilenebene vorstellen.

Prozesse, was sind das eigentlich? - Ein Prozess ist für die Ausführung eines Programms oder Kommandos verantwortlich. Erst dieser Prozess belebt sozusagen das Programm oder Kommando. Auf die Textkonsole bezogen startet man ein Programm indem man dessen Namen angibt und auf die Taste Return bzw. Enter drückt. Hier werden Programme in der Regel im Vordergrund gestartet und das nächste Programm bzw. Kommando kann man nur ausführen, wenn das erste beendet wurde. Es ist aber auch möglich Programme als Hintergrundprozess zu starten, indem man dem Befehl ein & anhängt. Zum Beispiel ein pix & würde den Bildbetrachter Pix starten und dennoch könnte man im Terminalfenster sofort den nächsten Befehl ausführen. Mit einem exit würde sich das Terminalfenster schließen, pix würde aber geöffnet bleiben. Bei einem Programm auf Kommandozeilenebene würde dies anders aussehen. Zur Veranschaulichung ein nano & würde den Texteditor nano im Hintergrund starten. Man würde diesen gar nicht zu Gesicht bekommen und erfährt im Terminal nur dessen Prozess-Nummer (pid) und könnte direkt das nächste Programm starten, z.B. pico &. Das würde den Editor pico im Hintergrund als Prozess 2 starten. Will man nun zu einem dieser Hintergrundprozesse wechseln, so kann man mittels fg (foreground) und Angabe der Nummer diesen in den Vordergrund bringen. Demnach würde fg 1 den ersten, also nano, anzeigen. Hat man das Programm anschließend beendet, so wird auch der Prozess gestoppt und verworfen. Eine Übersicht über die laufenden Prozesse liefert der Befehl ps. Ohne weitere Angabe liefert er nur eine Liste über die im Terminal oder Shell-Fenstern gestarteten. Ein ps ax liefert alle laufenden Prozesse und diese sind einige hundert auf einem Linux mit grafischer Oberfläche. Übersichtlicher ist das Kommando top. Top liefert eine Prozess- Tabelle, geordnet nach der aktuellen Prozessorlast. Mit der Taste K könnte man einen Prozess interaktiv beenden. Gibt man keine Prozessnummer an, so ist der gerade oberste und prozessorinstensivste PID ausgewählt. Mit Bestätigung durch ein Return wird dieser abgeschossen. Vorsicht, nicht den falschen Prozess beenden. Ein Druck auf Q beendet Top. Noch schöner ist das Paket htop, was unter Mint zuerst mittels einem apt install htop installiert werden muss. Htop bietet eine farblich dargestellte Tabelle der Prozesse an, die man bequem filtert und sortiert. Kennt man eine Prozess ID, so ist es möglich diesen Prozess gewaltsam zu beenden. Dazu gibt man ein kill PID an, welches noch die "höfliche" Form darstellt. Ein kill -9 PID wäre die extreme Variante einem Prozess den Boden zu entziehen.

Warum manche Prozesse als sudo ausführen? - Mittels sudo führt man Programme mit Root-Rechten aus. Also Programme oder Befehle die einer erhöhten Sicherheit unterliegen. Das kann z.B. die Installation einer neuen Software sein, das Verwenden von zusätzlichen Treibern, oder das Anpassen von bestimmten Konfigurationsdateien sein. Den Befehl sudo dürfen natürlich nur bestimmte Benutzer verwenden, und zwar die, die der Gruppe sudo angehören. Standardmäßig unter Linux Mint ist das der erste, bei der Installation erstellte, Benutzer. Nur dieser darf das System administrieren.

Gibt es unter Linux Mint Befehle, die Informationen zum System liefern? - Selbstverständlich gibt es die. Der wichtigste Befehl unter Mint lautet inxi -Fz. Sucht man Hilfe in einem Forum, so wird oft nach diesen Daten verlangt, damit sich die Helfer ein Bild vom System des Fragestellers machen können. Die Option -F liefert hier die vollen Informationen des Systems und der Zusatz z filtert Mac und IP-Adressen heraus, die niemanden etwas angehen. Der Befehl neofetch ist unter anderen Distributionen oft vorinstalliert, unter Mint glaube ich fehlt dieser.
Neofetch zeigt hübsch eine kleine Zusammenfassung vom System im Terminal oder in der Konsole an. Noch kürzere, aber wichtige Infos liefert auch das Kommando uname. Ein uname -r als Beispiel liefert den aktuell verwendeten Kernel zurück. Sicherlich gibt es noch viel mehr Pakete die Systeminformationen liefern, ich will es aber hier bei diesen belassen.

Folgen noch einige Programme und Befehle zur Umwandlung oder Konvertierung von bestimmten Dateien, denn auch sowas funktioniert unter Linux im Terminal recht praktisch.

Wie kann man ein JPG Bild in ein anderes Format wandeln? - So eine Möglichkeit bietet der Befehl convert aus dem Image Magik Paket. Ein convert bild.jpg bild.png würde von der Bilddatei bild.jpg eine neue Datei Namens bild.png erstellen. Das selbe Bild, nur in einem anderen Format. Convert kann aber noch viel mehr. Zum Beispiel würde ein convert -resize 50x50 bild.png bild.png die Datei bild.png in ihrer Größe auf 50 Pixel ändern. Die Geometrie wird dabei beibehalten, sodass das Bild nicht genau 50x50 Pixel hätte sondern, je nach Format (hoch oder quer), auf 50xX bzw. Xx50 Pixel hätte. Noch einfacher würde der Befehl mogrify -resize 50% bild.png die gewünschte Bilddatei in ihrer Auflösung halbieren. Somit würde sich entsprechend auch die Dateigröße anpassen, was wiederum nützlich sein kann, wenn man eine (zu)große Bilddatei per E-Mail versenden möchte. Es gibt noch sehr viel weitere Bildmanipulatoren auf Kommandoebene. Es lohnt sich da genauer das Internet zu befragen. 

Gibt es Konverter für Audio & Video im Terminal? - Die gibt es zur Genüge. Unter Mint ist z.B. ffmpeg, ein AudioVideo-Konverter, vorinstalliert. So würde das Kommando ffmpeg -i eingang.avi ausgang.mpg die Videodatei ausgang.mpg aus der Datei eingang.avi erstellen. Audiokonverter gibt es ebenfalls reichlich. Der bekannteste dürfte lame sein, womit man aus WAV Dateien MP3 zaubern kann. So würde lame musik.wav musik.mp3 eine MP3 aus der Datei musik.wav erstellen. Weitere Kommandos sind z.B. mpg123, mpg321, mp32ogg, flac, sox oder auch mencoder. Alle diese Pakete dürften in den Paketquellen vorhanden sein und können so leicht nachinstalliert werden.

Sind für Texte ebenfalls Konverter vorhanden? - Ja, wider einmal reichlich Pakete vorhanden. Als Beispiel kann ein recode latin1/cr-lf..latin1 < windowsdatei > linuxdatei die Umwandlung der Textdatei windowsdatei in die linuxdatei vollführen. Recode ändert bei der Umwandlung das Zeilentrennzeichen (CR und LF) in das unter Linux übliche Zeilenende (LF). Somit würde die linuxdatei unter Linux genauso aussehen wie die windowsdatei unter Windows. Dagegen würde die windowsdatei unter Linux anders erscheinen. Ähnliche Funktionen bieten die Kommandos iconv und dos2unix / unix2dos. Kurz erwähnen möchte ich a2ps, enscript und mpage, all diese Kommandos wandeln Text in PostScript Dateien um. Damit lassen sich die gewünschten Textdateien für einen formatierten Ausdruck vorbereiten. Ein a2ps text.txt -o pstext.ps würde den Text aus der der genannten Textdatei in eine zweispaltige Seite im Querformat mit Namen pstext.ps speichern. Das Paket enscript konvertiert sogar in die Formate HTML und RTF. Leider sind die drei zu Unicode inkompatibel und erwarten deshalb den Zeichensatz Latin-1 aus den Textdateien. Der Befehl html2text webseite.html > webseite.txt würde eine Internetseite im HTML Format in einen Text verwandeln. Ein ps2pdf pstext.ps zieltext.pdf kann die PostScript Datei pstext.ps in eine PDF Datei, hier zieltext.pdf, verwandeln. Das Paket pdf2ps macht genau das Gegenteil. Die beiden Befehle basieren auf Ghostscript (gs) einem wichtigen Bestandteil des Linux-Drucksystems. Kurz erwähnt sei noch pdftk, womit sich PDF Dateien zusammenführen und bearbeiten lassen. Genauso bieten pdfedit, poppler-utils und xpdf-utils nützliche Funktionen.

Genug für heute. Wie immer sollte man sich über die genannten Kommandos in weiteren Quellen informieren. Ich habe sie hier nur erwähnt und leicht angerissen. Die Befehle bieten sehr viele Funktionen und Möglichkeiten durch ihre Optionen, die man ihnen übergeben kann, doch das würde wiederum den "Grundkurs" sprengen. In Teil 5 will ich euch ein paar Programme im Terminal vorstellen, wie sie der Linux-"Anfänger" nicht erwarten würde. Also bleibt dran ;-) und bis demnächst.

Keine Kommentare:

Kommentar veröffentlichen

Vielen Dank für Ihren Kommentar. Die Veröffentlichung erfolgt umgehend nach meiner Prüfung. Ich bitte um etwas Geduld. MfG Mintnix