{"id":1546,"date":"2024-07-24T08:00:00","date_gmt":"2024-07-24T06:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=1546"},"modified":"2025-05-27T14:00:04","modified_gmt":"2025-05-27T12:00:04","slug":"shell-grundlagen-2","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2024\/07\/24\/shell-grundlagen-2\/","title":{"rendered":"Shell Grundlagen 2"},"content":{"rendered":"\n<p>In diesem Artikel werden weitere Shell Grundlagen beschrieben und Experimente durchgef\u00fchrt\u2026<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Der sleep-Befehl:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sleep 10<\/li>\n<\/ul>\n\n\n\n<p>F\u00fcr etwa 10 Sekunden passiert nichts. Jeder braucht ja mal eine Pause \u2013 also auch die Shell.<\/p>\n\n\n\n<p><strong>Hallo Terminal \u2013 Der echo-Befehl:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>echo Hallo Welt<\/li>\n<\/ul>\n\n\n\n<p>Die einfache Textausgabe im Terminal ist schon bekannt, doch schrittweise kommen jetzt neue Befehle und Funktionen dazu\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>w=Welt<\/li>\n<\/ul>\n\n\n\n<p>Eine Variable mit dem Namen \u201cw\u201c wird mit dem Wert \u201cWelt\u201c gef\u00fcllt.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>echo Hallo $w<\/li>\n<\/ul>\n\n\n\n<p>Im echo-Befehl wird die zuvor gesetzte Variable \u201cw\u201c mit vorangestelltem Dollarzeichen abgerufen. Der Inhalt, also der Wert der Variable ersetzt dann die Ausgabe.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>echo Hallo ${w}enbummler<\/li>\n<\/ul>\n\n\n\n<p>Die Ausgabe wird erweitert. Der Variablenname steht in geschweiften Klammern und die Erweiterung wird einfach direkt dahinter angeh\u00e4ngt.<\/p>\n\n\n\n<p><strong>Experimente mit dem date-Befehl:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>date<\/li>\n<\/ul>\n\n\n\n<p>Wer mal im Terminal wissen will welches Datum gerade aktuell ist, dem hilft der date-Befehl.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>export TZ=Asia\/Tokyo<\/li>\n\n\n\n<li>date<\/li>\n<\/ul>\n\n\n\n<p>Jetzt wird per date-Befehl die Tokyo-Zeit angezeigt. Das Terminal wird so also zur Weltzeituhr. Wer das nicht cool findet hat selber Schuld\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>unset TZ<\/li>\n\n\n\n<li>date<\/li>\n<\/ul>\n\n\n\n<p>Jetzt zeigt der date-Befehl wieder das lokale Datum und die lokale Zeit an.<\/p>\n\n\n\n<p>Wer mehr als nur mit der japanischen Zeit experimentieren m\u00f6chte, dem sei die Datei \u201cusr\/share\/zoneinfo\u201c empfohlen. Dort finden sich die ben\u00f6tigten Ausdr\u00fccke f\u00fcr alle verf\u00fcgbaren Zeitzonen\u2026<\/p>\n\n\n\n<p><strong>Shell Variablen:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>variable=text<\/li>\n\n\n\n<li>echo $variable<\/li>\n\n\n\n<li>export<\/li>\n<\/ul>\n\n\n\n<p>Der export-Befehl macht die Shell-Variable zu einer Umgebungsvariable\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>name=Hans<\/li>\n\n\n\n<li>export name (Die Variable name ist nun Umgebungsvariable)<\/li>\n<\/ul>\n\n\n\n<p><strong>Experimente mit der history:<\/strong><\/p>\n\n\n\n<p>Mit den Cursortasten (hoch und runter) ist es m\u00f6glich sich durch die bisherigen Terminalbefehle zu bewegen.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>history<\/li>\n<\/ul>\n\n\n\n<p><strong>Shellskripte:<\/strong><\/p>\n\n\n\n<p>Statt nun alle Befehle in ein Terminal einzutippen, k\u00f6nnen die entsprechenden Kommandos auch in eine externe Datei geschrieben werden. Diese Datei wird dann \u00fcber das Terminal ausgef\u00fchrt und die Kommandos werden dann so angewendet als ob man sie in der Shell \u2013 also im Terminal eingegeben hat.<\/p>\n\n\n\n<p>In die Datei abc.sh wird folgender Inhalt geschrieben:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ls<\/li>\n<\/ul>\n\n\n\n<p>Wurde die Datei ausf\u00fchrbar gemacht (per Kontextmen\u00fc Eigenschaften-Zugriffsrechte) kann sie mit folgendem Befehl im Terminal ausgef\u00fchrt werden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>.\/abc.sh<\/li>\n<\/ul>\n\n\n\n<p>Auf die bin\/sh Zeile kann hier also auch verzichtet werden \u2013 das ist aber kein guter Stil. Alles weitere zum Thema Shellskripte gibt es in einer zuk\u00fcnftigen Artikelserie\u2026<\/p>\n\n\n\n<p><strong>Vordergrund- und Hintergrundprozesse:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sleep 10<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sleep 10 &amp;<\/li>\n\n\n\n<li>fg<\/li>\n\n\n\n<li>bg<\/li>\n\n\n\n<li>jobs<\/li>\n<\/ul>\n\n\n\n<p>Weitere Details zum Thema Proze\u00dfverwaltung folgen in einem zuk\u00fcnftigen Artikel\u2026<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel werden weitere Shell Grundlagen beschrieben und Experimente durchgef\u00fchrt\u2026<\/p>\n","protected":false},"author":1,"featured_media":791,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[21],"class_list":["post-1546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-gruppe-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=1546"}],"version-history":[{"count":4,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1546\/revisions"}],"predecessor-version":[{"id":2815,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1546\/revisions\/2815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/791"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=1546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=1546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=1546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}