{"id":3183,"date":"2018-04-10T09:58:39","date_gmt":"2018-04-10T07:58:39","guid":{"rendered":"http:\/\/speefak.spdns.de\/oss_lifestyle\/?p=3183"},"modified":"2024-06-02T12:23:05","modified_gmt":"2024-06-02T10:23:05","slug":"die-linux-shell-terminal","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/die-linux-shell-terminal\/","title":{"rendered":"Die Linux Shell \/ Terminal"},"content":{"rendered":"<p>Eine Shell erm\u00f6glicht die text- bzw. kommandobasierte Benutzung des Computersystems und ist i.d.R. auf Unix\/Linux Systemen standardm\u00e4\u00dfig installiert. Die Kombinierbarkeit von kleinen, aber leistungsf\u00e4higen und flexiblen Kommandozeilenprogrammen ist ein wichtiger Eckpfeiler der Unix-Philosophie. Dies verhilft der Shell, eigentlich ein Programm wie jedes andere, zu einem prominenten Status, vor allem bei fortgeschrittenen Anwendern, die mit ihr Routinen automatisieren und permanent ein oder mehrere Instanzen einer Shell f\u00fcr den schnellen Zugriff offen halten.<a id=\"overview\"><\/a><\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td style=\"text-align: left;\">\n<h2>Grundlagen<\/h2>\n<\/td>\n<td style=\"text-align: left;\">\n<h2>Bash Konfiguration<\/h2>\n<\/td>\n<td style=\"text-align: left;\">\n<h2>Externe Programme<\/h2>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><a href=\"#Shells allgemein\">Shells allgemein<\/a><\/td>\n<td style=\"text-align: left;\"><a href=\"#Installation\">Installation<\/a><\/td>\n<td style=\"text-align: left;\"><a href=\"#Screen\">Screen<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><a href=\"#Bourne again Shell ( BASH )\">Bourne again Shell ( BASH )<\/a><\/td>\n<td style=\"text-align: left;\"><a href=\"#Bash Basis Konfiguration\">Bash Basis Konfiguration<\/a><\/td>\n<td style=\"text-align: left;\"><a href=\"#Tmux\">Tmux<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><a href=\"#Tilix\">Tilix<\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/td>\n<td style=\"text-align: left;\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/td>\n<td style=\"text-align: left;\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 id=\"Das FTP Protokoll\"><a href=\"#Das FTP Protokoll\">Shells allgemein<\/a><\/h2>\n<p>Die Shell ist, wie das grafische X Window System, eine Schnittstelle zwischen Benutzer und Betriebssystem. Im Gegensatz zum X Window System ist die Shell eine reine textbasierte Anwendung. In der Linux-Welt ist zweifellos die Bourne Again Shell (bash) am weitesten verbreitet. Aber auch andere Shells wie etwa die C-Shell (csh) und ihre Nachfolger sowie ash oder zsh sind in der Praxis immer wieder anzutreffen.<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/span><\/p>\n<hr \/>\n<h2>Bourne again Shell ( BASH )<\/h2>\n<p><b>Bash<\/b> (f\u00fcr <b>B<\/b>ourne-<b>a<\/b>gain <b>sh<\/b>ell), eine Weiterentwicklung der Bourne Shell, ist eine <a title=\"Freie Software\" href=\"https:\/\/de.wikipedia.org\/wiki\/Freie_Software\">freie<\/a> <a title=\"Unix-Shell\" href=\"https:\/\/de.wikipedia.org\/wiki\/Unix-Shell\">Unix-Shell<\/a> und Teil des <a title=\"GNU-Projekt\" href=\"https:\/\/de.wikipedia.org\/wiki\/GNU-Projekt\">GNU-Projekts<\/a>. Sie ist heute auf vielen <a title=\"Unixoides System\" href=\"https:\/\/de.wikipedia.org\/wiki\/Unixoides_System\">unixoiden<\/a> Systemen die Standard-Shell. Der Name ist absichtlich mehrdeutig und bedeutet unter anderem \u201ewiedergeborene (born again) Shell\u201c, \u201ewieder einmal (eine) <a class=\"mw-redirect\" title=\"Bourne-Shell\" href=\"https:\/\/de.wikipedia.org\/wiki\/Bourne-Shell\">Bourne-Shell<\/a>\u201c. Die Bash ist gr\u00f6\u00dftenteils kompatibel zur originalen Bourne-Shell <b>(sh),<\/b> im Funktionsumfang jedoch erheblich erweitert. Vor allem beherrscht sie einen Gro\u00dfteil der F\u00e4higkeiten der <b>ksh<\/b> und versteht auch Teile der Syntax der <b>csh<\/b> wie zum Beispiel die Command-History, den Directory-Stack, die <code>$RANDOM<\/code>-Variable und die <a title=\"Portable Operating System Interface\" href=\"https:\/\/de.wikipedia.org\/wiki\/Portable_Operating_System_Interface\">POSIX<\/a>-Form der Command-Substitution <code>$(\u2026)<\/code>. Daneben sind auch eine ganze Reihe eigene Erweiterungen implementiert.<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<h2 style=\"text-align: center;\"><span style=\"color: #ff6600;\">Bash Konfiguratition<\/span><\/h2>\n<h2 id=\"Grundlegende Konfiguration\"><a href=\"#Installation\">Installation<\/a><\/h2>\n<p>Die Bourne Again Shell ist heute auf fast allen Linux oder UNIX artigen Beitriebsystemen installiert. Daher ist eine nachtr\u00e4gliche Installation meist nicht n\u00f6tig. Der unter der <a href=\"http:\/\/itoss.spdns.de\/itoss\/rechtliches\/gnu-gpl-general-public-license\/\" target=\"_blank\" rel=\"noopener noreferrer\">GPL<\/a> ver\u00f6ffentliche Quellcode der Bash kann auf <a href=\"https:\/\/www.gnu.org\/software\/bash\/\" target=\"_blank\" rel=\"noopener noreferrer\">www.gnu.org<\/a> heruntergeladen werden.<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/span><\/p>\n<hr \/>\n<h2 style=\"text-align: left;\">Bash Basis Konfiguration<\/h2>\n<p style=\"text-align: left;\">Die grundlegende Konfiguration der Bash erfolgt durch folgenden Dateien:<\/p>\n<ul>\n<li>\/$HOME\/.bash_profile (Zuweisung der Bash Konfigurationsdatei. i.d.R. ~\/.bashrc)<\/li>\n<li>\/$HOME\/.bashrc (Konfiguration der Bash)<\/li>\n<li>\/$HOME\/.bash_aliases (Mapping Datei f\u00fcr Befehle)<\/li>\n<li>\/$HOME\/.bash_logout (Auszuf\u00fchrende Befehle beim Logout)<\/li>\n<li>\/$HOME\/.bash_history (Befehlslogdatei der Bash)<\/li>\n<li>\/etc\/skel\/.bashrc (Konfigurationsbasis f\u00fcr neu angelegte User Konfigurationen)<br \/>\n<hr \/>\n<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<h2 id=\"FTP Benutzer erstellen\">Bash Befehle zuweisen (Aliases)<\/h2>\n<p>Die grundlegende Konfiguration ist von den Zuweisungsbefehlen getrennt. Alle Konfigurationen, bis auf die Befehlszuweisungen, sind in der .bashrc hinterlegt (Aussehen des Eingabeprompt z.B.). Eigene Befehle werden in der .bash_aliases gelistet, um immer wiederkehrende Befehle oder Programme samt Parametern eigenen Eingaben zuzuweisen. Der Inhalt der bash_aliases kann wie folgt aussehen:<\/p>\n<pre class=\"lang:sh decode:true\">####################################\r\n## substitution string to command ##\r\n####################################\r\n\r\n#system alias\r\nalias update='sudo apt-get update'\r\nalias upgrade='apt-get -V dist-upgrade'\r\nalias inst='sudo apt-get install'\r\nalias remove='sudo apt-get remove'\r\nalias search='sudo apt-cache search'\r\nalias show='sudo apt-cache showpkg'\r\nalias show_sources='sudo apt-cache madison'\r\n#----------------------------------------\r\n\r\n#filesystem alias\r\nalias cd..='cd ..'\r\nalias ll='ls -lh'\r\nalias lsd='ls -l | grep ^d'\r\nalias la='ls -ah'\r\nalias lsal='ls -ahl'\r\nalias mk='mkdir'\r\nalias smk='sudo mkdir'\r\nalias srm='sudo rm'\r\nalias reload='cd ~ &amp;&amp; cd -'\r\nalias size='du -ach'\r\n#----------------------------------------\r\n\r\n#editor alias\r\nalias n='nano'\r\nalias sn='sudo nano'  \r\nalias g='gedit'\r\nalias sg='sudo gedit'\r\n#----------------------------------------\r\n\r\n#network shortcuts\r\nalias mtr='mtr --curses' \r\nalias ctw='vnstat -i wlan0 -tr' \r\nalias cte='vnstat -i eth0 -tr' \r\nalias ctel='watch -n1 \"date &amp;&amp; vnstat -i eth0 -tr \"' \r\nalias stw='nload -u K wlan0' \r\nalias ste='nload -u K eth1' \r\n#----------------------------------------\r\n\r\n#tool shortcuts \r\nalias dcfldd='dd'\r\nalias mdf2iso_2='iat'\r\nalias mkiso='mkisofs -R -J -o'\r\nalias hddtemp='sudo hddtemp \/dev\/sd?'\r\nalias hddtempw=' watch -n1 sudo hddtemp \/dev\/sd{a..d}'\r\n#-----------------------------------------\r\n\r\n<\/pre>\n<hr \/>\n<p style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/span><\/p>\n<hr \/>\n<h2 style=\"text-align: center;\"><span style=\"color: #ff9900;\">Externe Programme<\/span><\/h2>\n<h2 id=\"Screen\">Screen<\/h2>\n<p>Screen ist ein Fenstermanager zur Verwendung mit textbasierten Eingabefenstern. Im Gegensatz zu anderen Fenstermanagern wie Tmux oder Tilix beendet Screen die Terminaltsitzung beim Schlie\u00dfen des Fensters nicht und f\u00fchrt die Sitzung aktiv fort. Auf die so im Hintergrund laufende Sitzung kann jederzeit wieder aktiv zugegriffen werden bzw. diese fortgef\u00fchrt werden.<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/span><\/p>\n<hr \/>\n<h2 id=\"Tmux\">Tmux<\/h2>\n<p style=\"text-align: left;\">Der Name Tmux steht f\u00fcr Terminal MUltipleXer, ist ein Projekt, das lang laufende, mit anderen teilbare, auch entfernt verf\u00fcgbare Terminalsitzungen erm\u00f6glicht, so wie man das von GNU Screen gewohnt ist. Im Gegensatz zu screen sind mehrere Instanzen in den sog. Panes auf einer Bildschirmausgabe sichtbar<\/p>\n<p style=\"text-align: left;\">Durch gleichzeitiges Dr\u00fccken von Ctlr+B wir der Prefix Befehl eingeleitet ( Prefix = an Tmux gerichteten Befehl). Unmittelbar nach dem Loslassen der o.g. Tastenkombinationen m\u00fcssen dann die f\u00fcr Tmux spezifischen Befehle durch Dr\u00fccken weiterer Tasten und Tastenkombinationen eingeleitet werden. Einige n\u00fctzliche Kombinationen finden Sie in der folgenden Liste:<\/p>\n<ul>\n<li style=\"text-align: left;\">Ctrl + B | ? =&gt; Anzeige aller aktiven Tastaturk\u00fcrzel (keybindings)<\/li>\n<li style=\"text-align: left;\">Ctrl + B | c =&gt; (create) Neues Terminal \u00f6ffnen<\/li>\n<li style=\"text-align: left;\">Ctrl + B | n =&gt; (next) Wechsel zum n\u00e4chsten Fenster<\/li>\n<li style=\"text-align: left;\">Ctrl + B | p =&gt; (previous) Wechsel zum vorherigen Fenster (z.B. von 3 nach 2)<\/li>\n<li style=\"text-align: left;\">Ctrl + B | L =&gt; (last) Wechseln zum letzten aktiven Fenster (ist durch &#8211; markiert)<\/li>\n<li style=\"text-align: left;\">Ctrl + B | d =&gt; (detach) Trennen der akt. Sitzung (Client) und in den Hintergrund verschieben<\/li>\n<li style=\"text-align: left;\">Ctrl + B | W =&gt; Liste der Fenster anzeigen, Fenster wechseln<\/li>\n<li style=\"text-align: left;\">Ctrl + B | &#8221;\u00a0 =&gt; Aktuelle &#8220;Ansicht&#8221; horizontal teilen (erzeugt weitere &#8220;Ansicht&#8221;)<\/li>\n<li style=\"text-align: left;\">Ctrl + B | % =&gt; Aktuelle &#8220;Ansicht&#8221; vertikal teilen (erzeugt weitere &#8220;Ansicht&#8221;)<\/li>\n<li style=\"text-align: left;\">Ctrl + B | \u2193 \/ \u2191 =&gt; In vorherige bzw. n\u00e4chste &#8220;Ansicht&#8221; wechseln \/ Wechsel zwischen verschiedenen Aufteilungen der &#8220;Ansicht&#8221;<\/li>\n<li style=\"text-align: left;\">Ctrl + B | [ =&gt; Scroll-Modus aktivieren, in dem Pfeiltasten zum Scrollen benutzt werden k\u00f6nnen<\/li>\n<\/ul>\n<p style=\"text-align: left;\">Tmux ist \u00fcber Konfigurationsdateien sehr gut skallier,- und anpassbar, da nahezu jeder Parameter definiert werden kann.<\/p>\n<address>* Ausf\u00fchrliche Infos auf <a href=\"http:\/\/wiki.ubuntuusers.de\/tmux\" target=\"_blank\" rel=\"noopener noreferrer\">wiki.ubuntuusers.de<\/a><\/address>\n<address>\n<hr \/>\n<\/address>\n<p style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/span><\/p>\n<hr \/>\n<h2 id=\"Tilix\">Tilix<\/h2>\n<p id=\"p_1\" class=\"oe\"><span class=\"kein_stil\">Das Tilix-Programmfenster nimmt beliebig viele Terminals auf \u2013 per Tastendruck oder Klick f\u00fcgt man horizontal oder vertikal weitere ein. Wird das Fenster zu voll, legt man eine neue Session an, die Tilix in einer ausklappbaren Seitenleiste verwaltet. Per Drag &amp; Drop lassen sich Terminals beliebig anordnen.<\/span><\/p>\n<p id=\"p_2\" class=\"normal\"><span class=\"kein_stil\">Den Titel eines Terminals legt man mit Platzhaltern und Text selbst fest. Auch Schrift, Transparenz, Hintergrundbild und einiges mehr lassen sich anpassen und in einem Profil speichern. Tilix kann anhand definierter Bedingungen automatisch zu einem anderen Profil wechseln. So k\u00f6nnen andere Farben signalisieren, dass man als root arbeitet \u2013 und entsprechend Vorsicht walten lassen sollte. Die Fensteraufteilung kann als JSON-Datei gesichert und bei Bedarf wieder geladen werden.<\/span><\/p>\n<p id=\"p_3\" class=\"normal\"><span class=\"kein_stil\">Den aus dem gleichnamigen Spiel bekannten Quake-Modus beherrscht Tilix ebenfalls. Per Tastendruck klappt dann eine Konsole vom Fensterrand aus auf. Dazu legt man den Aufruf von <\/span><span class=\"l\">tilix &#8211;quake<\/span><span class=\"kein_stil\"> auf ein Tastenk\u00fcrzel. Sollen in zwei Terminals dieselben Eingaben vorgenommen werden, kann Tilix die Eingabe synchronisieren. F\u00fcr h\u00e4ufig verwendete Verzeichnisse lassen sich Lesezeichen anlegen. <\/span><\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/><span style=\"font-size: 10pt;\">by Speefak<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine Shell erm\u00f6glicht die text- bzw. kommandobasierte Benutzung des Computersystems und ist i.d.R. auf Unix\/Linux Systemen standardm\u00e4\u00dfig installiert. Die Kombinierbarkeit von kleinen, aber leistungsf\u00e4higen und flexiblen Kommandozeilenprogrammen ist ein wichtiger Eckpfeiler der Unix-Philosophie. Dies verhilft der Shell, eigentlich ein Programm wie jedes andere, zu einem prominenten Status, vor allem bei fortgeschrittenen Anwendern, die mit ihr [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,7,24,26,54],"tags":[],"class_list":["post-3183","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-grundlagen","category-it-syntax","category-linux","category-shell-programme"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/grundlagen\/\" rel=\"category tag\">Grundlagen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/it-syntax\/\" rel=\"category tag\">IT Syntax<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/linux\/\" rel=\"category tag\">Linux<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/shell-programme\/\" rel=\"category tag\">Shell<\/a>","rttpg_excerpt":"Eine Shell erm\u00f6glicht die text- bzw. kommandobasierte Benutzung des Computersystems und ist i.d.R. auf Unix\/Linux Systemen standardm\u00e4\u00dfig installiert. Die Kombinierbarkeit von kleinen, aber leistungsf\u00e4higen und flexiblen Kommandozeilenprogrammen ist ein wichtiger Eckpfeiler der Unix-Philosophie. Dies verhilft der Shell, eigentlich ein Programm wie jedes andere, zu einem prominenten Status, vor allem bei fortgeschrittenen Anwendern, die mit ihr&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/3183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=3183"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/3183\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=3183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=3183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=3183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}