Befehlszeilentools für Entwickler
Veröffentlicht: 2022-03-11In der heutigen Online-Welt tobt der Kampf um die Gewinnung von Benutzern weiter, wobei App-Hersteller entweder mobile oder Web-Apps bevorzugen. Desktop-Anwendungen werden immer weniger relevant. Darüber hinaus sind sie in der Regel nichts anderes als Rich Clients für Web-Apps – Electron ist die beliebte Plattform der Wahl.
Bedeutet dies, dass wir den Desktop als Plattform bald aufgeben werden? Nein, natürlich nicht, das würde ich nicht sagen. Außerdem scheinen GUI-Apps in letzter Zeit ins Stocken geraten zu sein, aber es gibt ein Segment von Desktop-Apps, das weiter wächst.
Haben Sie jemals einen Film mit Hackern gesehen? Meistens werden diese Leute bei der Arbeit vor Monitoren gezeigt, auf denen eine Art Terminal angezeigt wird (normalerweise mit dunklem Hintergrund und hellem Vordergrund). Dieses Terminal wiederum neigt dazu, mit vorbeiziehenden Zeichen überflutet zu werden, die anscheinend eine Bedeutung für die Person haben, die sie beobachtet.
Solche Darstellungen von Hackern in Aktion werden oft von professionellen Entwicklern verspottet, und es gibt sogar einige Programme, die aus Spaß verschiedene „Hacker“-Effekte simulieren.
In der realen Welt werden Befehlszeilentools jedoch nicht wegen ihres Unterhaltungswerts verwendet.
Warum wir immer noch Tools für die Befehlszeilenschnittstelle verwenden
Dieser Artikel konzentriert sich auf die praktische Seite der Verwendung von Command Line Interface (CLI)-Tools. Die Kenntnis von CLI-Befehlen und die Verwendung hochwertiger Tools können Sie produktiver machen und auch Türen zu verschiedenen Automatisierungsansätzen öffnen, die mit Textschnittstellen weitaus praktischer sind als mit GUI-Apps.
Sie können sich wiederholende Aufgaben in der GUI besser erledigen, bis zu dem Punkt, dass Ihre mehreren Klicks als ein einziger langer gehört werden. Das Problem ist, dass dies die Effizienz eines spezialisierten Skripts immer noch nicht übertrifft. Darüber hinaus führt die manuelle Ausführung derselben Vorgänge sowohl zu einer zusätzlichen kognitiven Belastung als auch zu einer erhöhten Wahrscheinlichkeit menschlicher Fehler. Wie üblich verlassen wir uns auf Computer, um Aufgaben zu bewältigen, die Menschen langweilig, sich wiederholend oder überwältigend finden.
Es ist wichtig zu wissen, dass ein Terminal-Tool mehrere Arten von Schnittstellen anbieten kann. Es gibt nicht-interaktive wie ls, die einfach die Parameter übernehmen und die Ausgabe bereitstellen. Es gibt interaktive oder halbinteraktive Schnittstellen, die am häufigsten in Paketmanagern zu finden sind. („Sind Sie sicher, dass Sie mit der Installation von einer unverifizierten Quelle fortfahren möchten?“) Dann gibt es textuelle Benutzeroberflächen (TUIs), bei denen es sich um interaktive GUI-Apps handelt, die so konzipiert sind, dass sie den Einschränkungen eines Terminals entsprechen. Das wohl bekannteste ist Midnight Commander (mc), ein Klon des äußerst beliebten (in den 90er Jahren) Norton Commander.
Wesentliche Befehlszeilen-Tools
Wenn Sie ein Konsolenbewohner werden möchten, müssen Sie sich mit einem Minimum an Befehlszeilen-Entwicklertools ausstatten – das Nötigste. Dinge, ohne die Sie definitiv nicht leben können, sind eine interaktive Shell (streben Sie nach etwas Modernem mit bequemer Tab-Vervollständigung) und ein Texteditor .
Nun werde ich die UNIX-Philosophie erwähnen, die häufig die Grundlage für Designentscheidungen bildet, die von den Autoren des Tools bewusst oder unbewusst getroffen werden. Einige der wichtigsten Punkte lassen sich wie folgt zusammenfassen:
- Alles wie eine Datei behandeln.
- Mach nur eine Sache, aber mach es gut.
- Lesen Sie von der Standardeingabe, schreiben Sie in die Standardausgabe und übermitteln Sie Fehler an einen Standardfehlerstrom.
- Wenn erfolgreich, Rückgabecode 0. Ein Wert ungleich Null bedeutet einen Fehler (der durch den genauen Rückgabecode angegeben werden kann).
- Befehlsverkettung und Skripterstellung zulassen.
Hülse
Das erste, was Sie sehen, wenn Sie ein Terminal öffnen, ist eine Shell. Dies ist der Teil, der die Interaktion zwischen dem Benutzer und der Maschine ermöglicht. Es interpretiert Ihre Befehle, zerlegt sie in Programmnamen und Argumente und führt alle Shell-Befehle aus, die Sie ihm zuwerfen.
Historisch gesehen gab es viele verschiedene Arten von Muscheln. Zu den beliebtesten gehörten csh (C-Shell) und verschiedene Implementierungen der Bourne-Shell (normalerweise einfach als sh bekannt). Bourne Shell wurde in Korn Shell erweitert, das ebenfalls an Zugkraft gewann und immer noch von seinen Enthusiasten verwendet wird. Csh ist derzeit die Standard-Shell auf einigen BSD-Systemen, während fast alle anderen UNIX-ähnlichen Betriebssysteme eine Art Bourne-Shell bevorzugen. Linux-Distributionen neigen dazu, bash zu bevorzugen, während Mac OS X mit zsh als Standardauswahl ausgestattet ist.
Es gibt andere Möglichkeiten, aber sie sind weitaus weniger beliebt, außer Microsoft PowerShell auf Windows-Systemen. PowerShell ist teilweise von den interaktiven UNIX-Shells wie zsh und teilweise von der .NET-Laufzeit inspiriert. Anstatt alles als Text zu behandeln, ein in der UNIX-Welt übliches Konzept, ermöglicht es die objektorientierte Manipulation von Daten.
Obwohl Microsoft PowerShell im Windows-Bereich recht beliebt ist, neigen viele Programme mit UNIX-Ursprung (am bemerkenswertesten sind Git, Autotools oder Make) dazu, eine Variante der Bourne Shell zu bevorzugen. Aus diesem Grund wurden Projekte wie msys (gebündelt mit Git für Windows), Cygwin oder die jüngste WSL von Microsoft geboren. Wenn Sie ein Linux-ähnliches Gefühl unter Windows wünschen, ist MSys hier die beste Wahl. Wenn Sie eine Linux-Umgebung mit vollem Funktionsumfang wünschen, die Standard-Linux-Binärdateien ausführen kann, ist WSL der richtige Weg. Für etwas dazwischen – UNIX-API, aber als ausführbare Windows-Datei kompiliert (verwenden Sie sie nur, wenn Sie tatsächlich wissen, warum Sie das brauchen) – ist Cygwin die Antwort.
Editor
Sobald Sie sich mit Ihrer Shell vertraut gemacht haben, möchten Sie sich einige nützliche Fähigkeiten aneignen. Da sich der größte Teil der Codierungsarbeit um das Schreiben von Text dreht (Code, READMEs, Commit-Nachrichten), sind gute Kenntnisse interaktiver Texteditoren unerlässlich. Es gibt viele zur Auswahl, und da ein Editor eines der wichtigsten Werkzeuge für jeden Entwickler ist, gibt es wahrscheinlich genauso viele Meinungen darüber, welcher Editor der beste ist.
Die beliebtesten Texteditoren können in zwei grundlegende Gruppen unterteilt werden: Einfache Texteditoren und programmierbare Texteditoren .
Beide eignen sich hervorragend zum Schreiben von Code, aber wie der Name schon sagt, bieten die programmierbaren die Möglichkeit, den Editor so zu gestalten und anzupassen, dass er perfekt Ihren Anforderungen entspricht. Dies hat jedoch seinen Preis, da sie auch tendenziell eine steilere Lernkurve haben und möglicherweise mehr Zeit für die Einrichtung benötigen.
Einfache Texteditoren
Unter den einfachen Texteditoren ist GNU Nano am weitesten verbreitet. Eigentlich ist es ein Klon des Pico-Editors. Wenn also einer auf Ihrem System nicht verfügbar ist, können Sie den anderen ausprobieren. Eine weitere, modernere Alternative zu beiden ist der Mikro-Editor. Wenn Sie gleichzeitig etwas Einfaches und Erweiterbares wollen, ist dies ein guter Ausgangspunkt.
Programmierbare Texteditoren
Viele Entwickler setzen auf programmierbare Editoren aus unterschiedlichen Lagern, wie Vim und GNU Emacs. Beide Editoren können in der Konsole oder im GUI-Modus ausgeführt werden, und beide hatten Auswirkungen auf die Tastenbelegungen anderer Software. Beide bieten nicht nur eine API, sondern auch integrierte Programmiersprachen. Emacs konzentriert sich auf LISP und Vim verwendet sein eigenes VimL, bietet aber auch Schnittstellen zu anderen gängigen Skriptsprachen (wie Lua, Perl, Python oder Ruby). Ein neuerer Ansatz für Vim namens Neovim ist ebenfalls erwähnenswert, da er allmählich eine ernsthafte Anhängerschaft findet.
Es mag etwas verwirrend sein, aber es gibt auch einen Editor namens vi, der ein Vorgänger von Vim ist (was übrigens für „ Vi im bewiesen “ steht). Es ist viel einfacher als Vim, aber wenn Sie genug Selbstvertrauen haben, um in Vim zu schreiben, sollte es keine Herausforderung für Sie sein, wenn Sie feststellen, dass Sie vi verwenden müssen.
Da pico/GNU Nano und vi/Vim normalerweise auf verschiedenen Systemen vorinstalliert sind, ist es eine gute Idee, zumindest ihre Grundlagen zu verstehen (das Beenden von Vim ist ein bekanntermaßen schwieriges Problem für Anfänger). Auf diese Weise sind Sie bereit, wenn Sie etwas auf einem Remote-Computer bearbeiten müssen, unabhängig davon, welcher Editor bereits vorhanden ist. Auf Ihrem privaten Gerät können Sie jeden Editor verwenden, den Sie am bequemsten finden.
Standardsystem-Editor
Eine letzte Sache, die Sie beachten sollten, ist, dass Ihr System möglicherweise über einen sogenannten Standardeditor verfügt.
Die Umgebungsvariable $EDITOR
zeigt auf den Standard-Editor und in Bourne-kompatiblen Shells (sh, bash, ksh, zsh) können Sie ihn sehen, indem Sie echo $EDITOR
. Wenn der Wert von Ihrer persönlichen Wahl abweicht, können Sie ihn selbst festlegen, indem Sie export EDITOR=my-awesome-editor
zur Laufzeitkonfiguration Ihrer Shell hinzufügen ( ~/.profile
, ~./bashrc
, ~/.zshrc
und so weiter).
Andere Programme wie Versionskontrollsysteme und E-Mail-Clients verwenden diesen Editor, wenn sie längere Texteingaben benötigen.
Multiplexer
Sobald Sie anfangen, ernsthafte Dinge in CLI zu tun, werden Sie auf die Einschränkung stoßen, dass Sie nur eine Anwendung zu einem bestimmten Zeitpunkt geöffnet halten können. Beim Codieren möchten Sie möglicherweise den Code bearbeiten, ausführen, die Fehler beheben und erneut ausführen. Wenn Sie nach einem Fehler suchen, möchten Sie möglicherweise Protokolle auflisten und sehen, was protokolliert wird, wenn Sie eine Anfrage an den Server senden. Typischerweise würde dies entweder bedeuten, ständig zwischen den beiden Anwendungen zu wechseln oder mehrere Terminalfenster zu öffnen.
Hier kann Ihnen ein Terminal-Multiplexer helfen. Wenn man von Multiplexern spricht, nehmen manche Leute sofort das Thema GNU Screen an. Es war das erste weit verbreitete Tool seiner Art und ist auch heute noch sehr beliebt (oft standardmäßig installiert). Sein moderner Ersatz ist tmux , was wenig überraschend für „Terminal Multiple Xer “ steht.
Mit diesen beiden können Sie in einer bestimmten Terminalsitzung mehr als ein Fenster öffnen und frei zwischen diesen Sitzungen wechseln. Sie ermöglichen es Ihnen, die Fenster in Bereiche aufzuteilen, was hilft, mehrere Anwendungen gleichzeitig auszuführen und ihre Ausgabe in Echtzeit zu beobachten (ohne zwischen Fenstern zu wechseln). Außerdem arbeiten sie in einem Client-Server-Modus, was bedeutet, dass Sie sie jederzeit trennen und später zurückkehren können, um die Arbeit genau dort fortzusetzen, wo Sie aufgehört haben. Diese letzte Funktion führte zu Screens Popularität, wenn die Leute dauerhafte IRC-Sitzungen wollten.

Für die meisten Anwendungsfälle sollten GNU Screen oder tmux großartig für Sie sein, aber wenn Sie sie aus irgendeinem Grund für zu ressourcenintensiv halten, gibt es auch leichtere Alternativen. Es gibt dtach/atach und es gibt abduco. Sie sind absichtlich im Umfang begrenzt, können aber ihre jeweiligen Aufgaben gut erfüllen.
Paket-Manager
An diesem Punkt können Sie darüber nachdenken, die gesamte oben genannte Software auf Ihrem Computer zu installieren. Ein Problem ist, dass jedes der Tools unterschiedliche Installationsanweisungen hat. Manchmal müssen Sie Quellen herunterladen und selbst kompilieren, manchmal erhalten Sie die eigenständige Binärdatei, und manchmal erhalten Sie ein so genanntes Binärpaket , was normalerweise eine ausführbare Datei bedeutet, die zusammen mit einigen Metadaten komprimiert ist.
Um den Prozess der Softwareinstallation zu vereinfachen, haben Entwickler von Betriebssystemen ein Konzept von Paketmanagern entwickelt. Einfach ausgedrückt ist ein Paketmanager wie ein App Store für CLI- und Desktop-Apps. Es geht den tatsächlichen App-Stores um einige Jahrzehnte voraus. Das Problem ist, dass fast jedes System einen eigenen Paketmanager hat. Debian, Ubuntu und abgeleitete GNU/Linux-Distributionen verwenden APT, auf Red Hat basierende Distributionen bevorzugen yum oder DNF, andere Linux-Distributionen haben exotischere Mittel zum Installieren von Software, ebenso wie verschiedene BSD-Klone. Neben integrierten Paketmanagern gibt es auch vom Benutzer installierte wie Chocolatey für MS Windows und Homebrew für Mac OS X/macOS. Wenn Sie Anweisungen zur Installation Ihres Programms schreiben möchten, schreiben Sie möglicherweise Fälle für jedes dieser Systeme. Scheint ein bisschen zu viel zu sein, oder?
Glücklicherweise ist das letzte der genannten Systeme, Homebrew, dank Linuxbrew, einer Portierung von Homebrew auf GNU/Linux-Systeme, möglicherweise das portabelste. Das Lustige ist, dass es sogar auf WSL funktioniert, wenn Sie eine ähnliche Benutzererfahrung auf Microsoft Windows haben möchten. Beachten Sie jedoch, dass WSL nicht offiziell unterstützt wird.
Was kann Homebrew neben der Portabilität noch bieten? Erstens stört es nicht die Systempakete, sodass sich alles, was Sie installieren, auf einer separaten Ebene zum Betriebssystem befindet. Außerdem sind normalerweise keine Root-Berechtigungen erforderlich, um Pakete zu installieren. Sie können also über stabile und getestete Systempakete verfügen, aber gleichzeitig ihre neueren Versionen überprüfen, ohne die Stabilität des Systems zu opfern.
Wenn Sie die Editoren testen möchten, habe ich bereits erwähnt, dass Sie auf einem System mit Homebrew oder Linuxbrew lediglich diesen Befehl ausführen müssen:
brew install emacs micro nano vim neovim
.
Das glänzende Zeug
Was wir bereits besprochen haben, ist zweifellos nützlich für die Arbeit. Es gibt aber auch Anwendungen, die zwar nicht notwendig sind, aber dennoch Komfort in den Alltag bringen. Sie brauchen sie vielleicht nicht, aber es lohnt sich immer, sie zu kennen.
Interaktiver Filter
Das Durchsuchen des Befehlsverlaufs kann mühsam sein. Während sowohl bash als auch zsh über die Tastenkombination Strg+R verfügen, wird jeweils nur eine Ersetzung angezeigt. Außerdem müssen Sie genau den Text eingeben, den Sie zuvor verwendet haben. Da dies eine ziemlich häufige Operation ist, sieht es nach einem guten Ort für Verbesserungen aus, sobald Sie mit der Verwendung der Befehlszeile beginnen.
Interaktive Filter wie fzy, percol, peco oder fzf helfen Ihnen beim Filtern langer Textzeilen. Dies kann entweder der oben erwähnte Befehlsverlauf, alle Codezeilen in einem Projektverzeichnis oder eine von find .
. Die allgemeine Idee hier ist, Ihnen zuerst alle verfügbaren Zeilen zu präsentieren und sich dann auf Fuzzy-Suchalgorithmen zu verlassen, um alles herauszufiltern, was nicht übereinstimmt.
Wenn Sie beispielsweise Strg+R an fzf binden, wird Ihnen eine Liste der neuesten Befehle angezeigt, in der Sie mit den Pfeilen nach oben und unten navigieren können, oder Sie können git
eingeben, um nur Befehle anzuzeigen, die Git irgendwo enthalten. Wenn ich persönlich mit einer Shell arbeite, die keinen interaktiven Filter hat, fühle ich mich plötzlich etwas verloren. Diese Funktion ist wirklich überzeugend!
Außerdem können Sie Ihren interaktiven Filter in Ihrem programmierbaren Texteditor verfügbar machen. Auf diese Weise haben Sie einheitliche Suchfunktionen zwischen Ihrer Shell und Ihrem Editor.
Interaktiver Navigator
Facebook PathPicker war eine große Hilfe, als ich hauptsächlich mit C++-Projekten arbeitete. Das vom Compiler generierte Fehlerprotokoll kann ziemlich groß und ziemlich unangenehm werden, und die Möglichkeit, die tatsächlichen Pfade in diesem Protokoll zu finden, war ein Produktivitätsvorteil.
In jeder beliebigen Textdatei oder dem Inhalt Ihres Bildschirms bei Verwendung mit tmux filtert fpp alles außer den Dateipfaden. Anschließend wird eine Benutzeroberfläche angezeigt, in der Sie einen oder mehrere dieser Pfade auswählen und einen Befehl mit ihnen ausführen können. Die häufigste Antwort wäre natürlich, die Dateien in einem Editor zu öffnen, was die Standardaktion ist.
Git-UI
Wahrscheinlich verwendet mindestens eines der Projekte, an denen Sie arbeiten, Git als Versionskontrollsystem. Die Git-CLI ist zwar absolut leistungsfähig, aber nicht der Höhepunkt einer hervorragenden Benutzererfahrung. Um Ihnen etwas Stress beim Durchlesen aller Optionen in der Git-Hilfe $SUBCOMMAND
zu ersparen, empfehle ich Ihnen, sich tig anzusehen. Es bietet eine schöne Konsolen-Benutzeroberfläche für die Operationen, die davon profitieren, wie log
oder blame
.
Ein weiteres Tool, das Git-Benutzern helfen soll, ist fac, ein Akronym für Fix All Conflicts . Wie Sie vielleicht erraten haben, ist es praktisch, wenn Sie beim Mergen oder Rebases auf Konflikte stoßen. Es ist eine Alternative zu anderen Merge-Tools wie vimdiff.
Dateimanager
Es gab eine Zeit in den 90er Jahren, als jeder einen Dateimanager mit zwei Fenstern haben wollte. Der Trend begann mit Norton Commander. Viele andere sind dem gleichen Weg gefolgt, aber derjenige, der immer noch eine stabile Benutzerbasis sieht, ist Midnight Commander. Der offensichtlichste Anwendungsfall ist die Verwendung von mc zum Bearbeiten lokaler Dateien, aber es ist auch sehr nützlich, wenn Sie mit Remote-Computern arbeiten.
Wie die meisten Befehlszeilenprogramme ist es sehr leichtgewichtig, sodass es kein Problem darstellt, es über ssh auszuführen, und dank der Unterstützung von FTP- und FISH-Protokollen können Sie ein lokales Dateisystem in einem Bereich und das Remote-Dateisystem im anderen sehen – praktisch Funktion, wenn Sie vermeiden möchten, Dateinamen als Argumente für scp einzugeben oder zu kopieren.
CLI-Tools nur zum Spaß
„Alle Arbeit und kein Spiel machen Jack zu einem langweiligen Jungen“ , sagen sie. Es gibt viele Programme, Kommandozeilen und andere, die nur Ihrer Unterhaltung dienen. Das Rogue-Videospiel fällt in diese Kategorie. Es gab sogar dem ganzen Genre der Spiele seinen Namen! Andere beliebte Spielzeuge sind Fortune und Cowsay, die Ihren Tag etwas weniger langweilig machen können, wenn Sie sie beispielsweise irgendwo in Ihren CI-Skripten verwenden.
Aber für einige von uns besteht der Hauptreiz bei der Verwendung einer Konsole darin, sich wie ein Hacker im Film zu fühlen. No More Secrets und Hollywood Hacker repräsentieren diese Gruppe gut. Probieren Sie es aus, wenn Ihnen jemand bei der Arbeit zusieht, und Ihr Hacker-Glauben wird sicher steigen!
Kommandozeile in der Praxis
Was ist also so attraktiv an der Befehlszeile, die die Stunden ausgleicht, die Sie damit verbracht haben, die Shell, den Editor und alle Schalter verschiedener Apps zu lernen? Die kurze Antwort lautet Produktivität , die sich aus zwei Dingen ergibt:
Einer davon ist, dass Sie sich intensiver konzentrieren können, wenn Ihnen nur ein Terminalfenster und nichts weiter präsentiert wird, da es nicht viel gibt, was Sie ablenken könnte. Keine Benachrichtigungen, keine Werbung, keine Bilder von hübschen Kätzchen. Nur du und dein Ziel.
Die zweite Sache ist die Automatisierung. Sie können mehrere häufig kombinierte Aktionen in ein Skript packen und es später als Ganzes aufrufen, anstatt sie jedes Mal alle von Hand einzutippen. Sie können schnell zu einem besonders komplexen Befehl zurückkehren, den Sie einmal geschrieben haben, indem Sie den Verlauf Ihrer Shell durchsuchen. Grundsätzlich können Sie alles aufzeichnen und wiedergeben, und der Code ist als Dokumentation Ihrer Arbeit verfügbar.
Die Möglichkeit, Aliase hinzuzufügen, trägt ebenfalls zu den Gewinnen bei. Zum Beispiel erfinde ich mich oft dabei, Commits in Git zu erstellen, indem ich denselben aktualisiere, bis er (für den Moment) perfekt ist. Sobald ich die gewünschten Dateien bereitgestellt habe, führe ich git carmh
. Versuchen Sie nicht, es im Handbuch nachzuschlagen, da es mein privater Alias ist, der commit --amend --reuse-message=HEAD
bedeutet. Es erspart sicher etwas Tipparbeit.
Die Sache ist, dass es den Leuten langweilig wird, dieselben Aktionen immer und immer wieder zu wiederholen, und Langeweile verringert die Konzentration. Dies kann zu Fehlern und Irrtümern führen. Die einzige Möglichkeit, sie zu vermeiden, besteht darin, Aktionen mit hohem und niedrigem Fokus nicht zu verschränken. Das Schreiben von Code ist hochkonzentriert und das Überprüfen einer Commit-Nachricht und des Inhalts ist hochkonzentriert, aber wenn Sie hier und da mehrere mechanische Klicks wiederholen müssen, um zur Phase der Commit-Überprüfung zu gelangen, ist Ihr Fokus wahrscheinlich geringer. Die Befehlszeile ist natürlich nicht frei von solchen mechanischen Aktivitäten, aber dank der Automatisierung können Sie die meisten davon vermeiden.
Weitere Erkundungen
Möglicherweise sind Ihnen einige oder alle in diesem Artikel erwähnten Befehlszeilentools bereits bekannt. Vielleicht haben Sie beim Lesen etwas Neues und Nützliches gelernt. Wenn ja, ausgezeichnet – mein Ziel war es hier nicht, einen umfassenden Überblick und Vergleich verschiedener Tools zu bieten, sondern einige wichtige Tools zu demonstrieren, die ich bei meiner täglichen Arbeit als hilfreich empfunden habe, in der Hoffnung, dass Sie einige davon nützlich finden könnten. zu.
Es gibt weitaus interessantere Befehlszeilenprogramme, und wenn Sie daran interessiert sind, empfehle ich, die von Awesome Shell kuratierte Liste mit einigen der besten heute verfügbaren Befehlszeilentools zu überprüfen.
Die meisten GUI-Apps haben ihr Terminal-Gegenstück. Dazu gehören Webbrowser, E-Mail-Clients, Chat-Clients (IRC, Slack, XMPP), PIM-Suiten oder Tabellenkalkulationen. Wenn Sie gute Programme kennen, die ich nicht erwähnt habe, bringen Sie sie bitte in den Kommentaren zur Sprache.