{"id":170397,"date":"2026-05-05T00:24:37","date_gmt":"2026-05-04T22:24:38","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/brush-v0-4-0"},"modified":"2026-05-05T00:24:37","modified_gmt":"2026-05-04T22:24:38","slug":"brush-v0-4-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/brush-v0-4-0","title":{"rendered":"Brush v0.4.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Brush v0.4.0\" src=\"\/wp-content\/uploads\/2026\/05\/deb96524d1d6aa343c36a9ae0b05d47e.jpg\" style=\"display:block;margin: 0 auto;\" \/>                                    <\/p>\n<p>Brush \u2013 ist eine Shell, die in der Programmiersprache Rust geschrieben wurde und Kompatibilit\u00e4t mit POSIX und Bash mit Speichersicherheitsgarantien und Leistung kombiniert. Das Projekt hat sich zum Ziel gesetzt, eine vollst\u00e4ndige Alternative zu traditionellen Shells zu werden, indem es erm\u00f6glicht, bestehende Skripte auszuf\u00fchren und .bashrc praktisch unver\u00e4ndert zu verwenden. Diese Version vereint mehrere Monate Arbeit und \u00fcber 200 zusammengef\u00fchrte Pull-Requests und treibt die Shell erheblich in Richtung einer vollwertigen Ersatzl\u00f6sung f\u00fcr Bash und POSIX-kompatible Umgebungen voran.<\/p>\n<p>Hauptentwicklungsrichtungen in dieser Ver\u00f6ffentlichung:<\/p>\n<ul>\n<li>Bash-Kompatibilit\u00e4t: hinzugef\u00fcgt wurden set -e, set -u, pipefail, failglob, ERROR-Handler, Co-Prozesse und vieles mehr;<\/li>\n<li>Zuverl\u00e4ssigkeit: verbesserte Ausnahmebehandlung \u2013 geschlossene Kan\u00e4le, fehlerhafte Ausgaben, Nicht-UTF8-Verlauf und andere;<\/li>\n<li>Plattformen: erweiterte Unterst\u00fctzung f\u00fcr macOS (Einsatz als Login-Shell), verbesserte Funktionalit\u00e4t unter Windows, FreeBSD, Android und 32-Bit-Systemen;<\/li>\n<li>Interaktivit\u00e4t: optionale TOML-Konfigurationen, preexec\/precmd-Hooks hinzugef\u00fcgt, verbesserte Unterst\u00fctzung von Readline-Makros und mehr.<\/li>\n<\/ul>\n<h4>Wesentliche Verbesserungen der Bash-Kompatibilit\u00e4t<\/h4>\n<p>Die wichtigsten \u00dcberarbeitungen dieser Ver\u00f6ffentlichung umfassten eine signifikante Erweiterung der Bash-Funktionen. <strong>Fehlerverwaltung<\/strong>:<\/p>\n<ul>\n<li>set -e (errexit) \u2013 sofortiger Ausstieg bei Fehler;<\/li>\n<li>set -u (nounset) \u2013 Fehler beim Zugriff auf nicht deklarierte Variable;<\/li>\n<li>pipefail \u2013 Der R\u00fcckgabewert der Pipeline wird durch den letzten fehlerhaften Befehl bestimmt;<\/li>\n<li>failglob \u2013 Fehlende \u00dcbereinstimmungen f\u00fcr das glob-Muster f\u00fchren jetzt zu einem Fehler.<\/li>\n<\/ul>\n<p><strong>Handler (Traps) und Co-Prozesse<\/strong>:<\/p>\n<ul>\n<li>ERROR-Handler \u2013 erm\u00f6glicht die Ausf\u00fchrung von Befehlen bei Auftreten eines Fehlers;<\/li>\n<li>Co-Prozesse (coproc) \u2013 Ausf\u00fchrung von Hintergrundprozessen mit bidirektionaler Kommunikation.<\/li>\n<\/ul>\n<p><strong>Eingebaute Befehle<\/strong>:<\/p>\n<ul>\n<li>verbesserte Verarbeitung vieler arithmetischer Konstruktionen, einschlie\u00dflich Literale mit hoher Basis, \u00dcberl\u00e4ufe und Zuweisungsoperatoren;<\/li>\n<li>Korrekturen und Verbesserungen betrafen die eingebauten Befehle: caller, read, getopts, printf und andere.<\/li>\n<\/ul>\n<h4>Erweiterung der Plattformunterst\u00fctzung:<\/h4>\n<p>Die Ver\u00f6ffentlichung v0.4.0 macht die Shell auf einem breiteren Spektrum von Ger\u00e4ten verf\u00fcgbar:<\/p>\n<ul>\n<li>macOS: behobenes Problem, das dazu f\u00fchrte, dass die Shell beim Anmelden h\u00e4ngen blieb. Jetzt kann Brush als Login-Shell verwendet werden;<\/li>\n<li>Windows: Verbesserungen bei der Handhabung von Pfaden, hinzugef\u00fcgt wurde eine Emulation von \/dev\/null, die die Benutzerfreundlichkeit unter Windows erheblich verbessert;<\/li>\n<li>FreeBSD und Android: Unterst\u00fctzung f\u00fcr diese Plattformen wird bereitgestellt;<\/li>\n<\/ul>\n<h4>Interaktive Funktionen und API<\/h4>\n<ul>\n<li><strong>Konfiguration<\/strong>: Unterst\u00fctzung f\u00fcr eine optionale TOML-Konfigurationsdatei (~\\\/config\\\/brush\\\/config.toml) f\u00fcr spezifische Brush-Einstellungen hinzugef\u00fcgt;<\/li>\n<li><strong>Anpassung<\/strong>: Zsh-Stile f\u00fcr preexec\\\/precmd-Hooks implementiert (unter experimentellem Flag), n\u00fctzlich zur Erstellung benutzerdefinierter Eingabeaufforderungen und Zeitmessungswerkzeuge;<\/li>\n<li><strong>API f\u00fcr Entwickler<\/strong>: Typ Shell ist jetzt parametrisiert durch Erweiterungen (ShellExtensions), was Entwicklern erm\u00f6glicht, eigene integrierte Befehle hinzuzuf\u00fcgen und das Verhalten von Variablen zu \u00e4ndern, ohne das Projekt forken zu m\u00fcssen;<\/li>\n<li><strong>Verschiedenes<\/strong>:\n<ul> <noindex><\/p>\n<li>Verbesserte Unterst\u00fctzung f\u00fcr Readline-Makros zur Kompatibilit\u00e4t mit <a rel=\"nofollow\" href=\"https:\/\/github.com\/starship\/starship\">Starship<\/a>, <a rel=\"nofollow\" href=\"https:\/\/atuin.sh\/\">Atuin<\/a> und <a rel=\"nofollow\" href=\"https:\/\/github.com\/junegunn\/fzf\">fzf (github.com)<\/a>;<\/li>\n<p><\/noindex> <\/p>\n<li>M\u00f6glichkeiten zur Serialisierung von AST und Shell-Zust\u00e4nden \u00fcber Serde hinzugef\u00fcgt;<\/li>\n<li>Jetzt sind Serde-Funktionen zur Serialisierung von AST und Shell-Zust\u00e4nden in brush-parser und brush-core verf\u00fcgbar.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/18282635\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Brush &ndash; \u044d\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 POSIX \u0438 Bash \u0441 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044f\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043e\u0439 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c .bashrc \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u042d\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u0431\u043e\u043b\u0435\u0435 200 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u043f\u0443\u043b\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":170398,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-170397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Brush \u2013 \u044d\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/brush-v0-4-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Brush v0.4.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Brush \u2013 \u044d\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/brush-v0-4-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-04T22:24:38+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-04T22:24:38+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Brush v0.4.0 | ProHoster","description":"Brush ist eine Shell, die in Rust geschrieben wurde und kombiniert.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/brush-v0-4-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Brush v0.4.0 | ProHoster","og:description":"Brush \u2013 \u044d\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/brush-v0-4-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-05-04T22:24:38+00:00","article:modified_time":"2026-05-04T22:24:38+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/170397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=170397"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/170397\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/170398"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=170397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=170397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=170397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}