10 Befehlszeilentools, die jeder Datenwissenschaftler kennen sollte10 Befehlszeilentools, die jeder Datenwissenschaftler kennen sollte
Bild vom Autor

# Einführung

Obwohl Sie in der modernen Datenwissenschaft hauptsächlich Jupyter-Notebooks, Pandas und grafische Dashboards finden, bieten diese Ihnen nicht immer das Maß an Kontrolle, das Sie benötigen. Andererseits sind Befehlszeilentools möglicherweise nicht so intuitiv, wie Sie es sich wünschen, aber sie sind leistungsstark, leichtgewichtig und können die spezifischen Aufgaben, für die sie entwickelt wurden, viel schneller ausführen.

Für diesen Artikel habe ich versucht, ein Gleichgewicht zwischen Nutzen, Reife und Kraft herzustellen. Sie werden einige Klassiker finden, die kaum zu vermeiden sind, aber auch modernere Ergänzungen, die Lücken schließen oder die Leistung optimieren. Sie können dies sogar als a bezeichnen 2025-Model einer unverzichtbaren CLI-Instruments-Liste. Für diejenigen, die mit CLI-Instruments nicht vertraut sind, aber etwas lernen möchten, habe ich im Fazit einen Bonusabschnitt mit Ressourcen eingefügt. Scrollen Sie additionally ganz nach unten, bevor Sie beginnen, diese Instruments in Ihren Workflow einzubinden.

# 1. Locken

Locken ist meine Anlaufstelle für HTTP-Anfragen wie GET, POST oder PUT; Herunterladen von Dateien; und Senden/Empfangen von Daten über Protokolle wie HTTP oder FTP. Es eignet sich preferrred zum Abrufen von Daten aus APIs oder zum Herunterladen von Datensätzen. Außerdem können Sie es problemlos in Datenaufnahmepipelines integrieren, um JSON, CSV oder andere Nutzlasten abzurufen. Das Beste an Curl ist, dass es auf den meisten Unix-Systemen vorinstalliert ist, sodass Sie es sofort verwenden können. Allerdings kann seine Syntax (insbesondere in Bezug auf Header, Textinhalte und Authentifizierung) ausführlich und fehleranfällig sein. Wenn Sie mit komplexeren APIs interagieren, bevorzugen Sie vielleicht einen benutzerfreundlicheren Wrapper oder eine Python-Bibliothek, aber die Kenntnis von Curl ist immer noch ein wesentlicher Vorteil für schnelles Testen und Debuggen.

# 2. jq

jq ist ein kompakter JSON-Prozessor, mit dem Sie JSON-Daten abfragen, filtern, transformieren und schön drucken können. Da JSON ein vorherrschendes Format für APIs, Protokolle und Datenaustausch ist, ist jq für das Extrahieren und Umformen von JSON in Pipelines unverzichtbar. Es verhält sich wie „Pandas für JSON in der Shell“. Der größte Vorteil besteht darin, dass es eine prägnante Sprache für den Umgang mit komplexem JSON bietet. Das Erlernen der Syntax kann jedoch einige Zeit in Anspruch nehmen, und extrem große JSON-Dateien erfordern möglicherweise zusätzliche Sorgfalt bei der Speicherverwaltung.

# 3. csvkit

csvkit ist eine Suite von CSV-zentrierten Befehlszeilendienstprogrammen zum Transformieren, Filtern, Aggregieren, Zusammenführen und Durchsuchen von CSV-Dateien. Sie können Spalten auswählen und neu anordnen, Zeilen unterteilen, mehrere Dateien kombinieren, von einem Format in ein anderes konvertieren und sogar SQL-ähnliche Abfragen für CSV-Daten ausführen. csvkit versteht CSV-Zitatsemantik und -Header und ist damit sicherer als generische Textverarbeitungsdienstprogramme für dieses Format. Da es auf Python basiert, kann es bei sehr großen Datensätzen zu Leistungseinbußen kommen, und einige komplexe Abfragen sind in Pandas oder SQL möglicherweise einfacher. Wenn Sie Geschwindigkeit und effiziente Speichernutzung bevorzugen, sollten Sie Folgendes in Betracht ziehen csvtk Toolkit.

# 4. qwk / sed

Hyperlink (sed): https://www.gnu.org/software program/sed/handbook/sed.html
Klassische Unix-Instruments wie awk Und sed bleiben für die Textmanipulation unersetzlich. awk ist leistungsstark für Musterscans, feldbasierte Transformationen und schnelle Aggregationen, während sed sich bei Textersetzungen, -löschungen und -transformationen auszeichnet. Diese Werkzeuge sind schnell und leicht und eignen sich daher perfekt für schnelle Arbeiten an Rohrleitungen. Ihre Syntax kann jedoch nicht intuitiv sein. Wenn die Logik wächst, leidet die Lesbarkeit, und Sie wechseln möglicherweise zu einer Skriptsprache. Auch für verschachtelte oder hierarchische Daten (z. B. verschachteltes JSON) sind diese Instruments nur begrenzt ausdrucksstark.

# 5. parallel

GNU-Parallel beschleunigt Arbeitsabläufe durch die parallele Ausführung mehrerer Prozesse. Viele Datenaufgaben können über Datenblöcke hinweg „abgebildet“ werden. Nehmen wir an, Sie müssen die gleiche Transformation für Hunderte von Dateien ausführen – parallel kann die Arbeit auf CPU-Kerne verteilt, die Verarbeitung beschleunigt und die Jobkontrolle verwaltet werden. Sie müssen jedoch auf E/A-Engpässe und Systemlast achten, und das Angeben/Escapen kann in komplexen Pipelines schwierig sein. Erwägen Sie für Cluster-basierte oder verteilte Arbeitslasten ressourcenbewusste Planer (z. B. Spark, Dask, Kubernetes).

# 6. ripgrep (rg)

ripgrep (rg) ist ein schnelles rekursives Suchwerkzeug, das auf Geschwindigkeit und Effizienz ausgelegt ist. Es respektiert .gitignore standardmäßig und ignoriert versteckte oder binäre Dateien, was es deutlich schneller als herkömmliche macht grep. Es eignet sich perfekt für die schnelle Suche in Codebasen, Protokollverzeichnissen oder Konfigurationsdateien. Da bestimmte Pfade standardmäßig ignoriert werden, müssen Sie möglicherweise Flags anpassen, um alles zu durchsuchen, und es ist nicht immer standardmäßig auf jeder Plattform verfügbar.

# 7. Datamash

Datenmasch Bietet numerische, textuelle und statistische Operationen (Summe, Mittelwert, Median, Gruppierung usw.) direkt in der Shell über stdin oder Dateien. Es ist leichtgewichtig und nützlich für schnelle Aggregationen, ohne ein schwereres Instrument wie Python oder R starten zu müssen, was es preferrred für Shell-basiertes ETL oder explorative Analysen macht. Es ist jedoch nicht für sehr große Datensätze oder komplexe Analysen konzipiert, bei denen spezielle Instruments eine bessere Leistung erbringen. Außerdem erfordert die Gruppierung sehr hoher Kardinalitäten möglicherweise viel Speicher.

# 8. htop

htop ist ein interaktiver Systemmonitor und Prozessbetrachter, der Dwell-Einblicke in die CPU-, Speicher- und E/A-Nutzung professional Prozess bietet. Beim Betrieb umfangreicher Pipelines oder beim Modelltraining ist htop äußerst nützlich, um den Ressourcenverbrauch zu verfolgen und Engpässe zu identifizieren. Es ist benutzerfreundlicher als traditionell primeaber da es interaktiv ist, passt es nicht intestine in automatisierte Skripte. Es fehlt möglicherweise auch bei minimalen Server-Setups und ersetzt keine speziellen Leistungstools (Profiler, Metrik-Dashboards).

# 9. Git

Fool ist ein verteiltes Versionskontrollsystem, das für die Verfolgung von Änderungen an Code, Skripten und kleinen Datenbeständen unerlässlich ist. Für Reproduzierbarkeit, Zusammenarbeit, Verzweigungsexperimente und Rollback ist Git der Normal. Es lässt sich in Bereitstellungspipelines, CI/CD-Instruments und Notebooks integrieren. Der Nachteil besteht darin, dass es nicht für die Versionierung großer Binärdaten gedacht ist, wofür Git LFS, DVC oder spezialisierte Systeme besser geeignet sind. Der Verzweigungs- und Zusammenführungsworkflow bringt auch eine Lernkurve mit sich.

# 10. tmux / display

Terminal-Multiplexer wie tmux Und Bildschirm Damit können Sie mehrere Terminalsitzungen in einem einzigen Fenster ausführen, Sitzungen trennen und wieder verbinden und die Arbeit nach einer SSH-Trennung wieder aufnehmen. Sie sind unerlässlich, wenn Sie lange Experimente oder Pipelines aus der Ferne durchführen müssen. Während tmux aufgrund seiner aktiven Entwicklung und Flexibilität empfohlen wird, können seine Konfiguration und Tastenkombinationen für Neulinge schwierig sein und in minimalen Umgebungen ist es möglicherweise nicht standardmäßig installiert.

# Zusammenfassung

Wenn Sie gerade erst anfangen, Ich würde empfehlen, die „Kernvier“ zu beherrschen: Curl, JQ, AWK/SED und Git. Diese werden überall verwendet. Mit der Zeit werden Sie domänenspezifische CLIs wie SQL-Purchasers entdecken DuckDB-CLIoder Datensatz um es in Ihren Arbeitsablauf zu integrieren. Weitere Informationen finden Sie in den folgenden Ressourcen:

  1. Information Science an der Kommandozeile von Jeroen Janssens
  2. Die Kunst der Befehlszeile auf GitHub
  3. Mark Pearls Bash-Spickzettel
  4. Gemeinschaften wie die Unix & Befehlszeile Subreddits bringen oft nützliche Tips und neue Instruments zum Vorschein, die Ihren Werkzeugkasten mit der Zeit erweitern.

Kanwal Mehreen ist ein Ingenieur für maschinelles Lernen und ein technischer Redakteur mit einer großen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Technology Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Range in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist ein leidenschaftlicher Verfechter von Veränderungen und hat FEMCodes gegründet, um Frauen in MINT-Bereichen zu stärken.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert