Wie kann ich eine Referenz oder einen Spickzettel der grundlegenden Bash-Syntax im Linux-Terminal anzeigen?

8

Jedes Mal muss ich ein kleines Bash-Scripting mit if-Anweisungen durchführen, nach leeren Variablen und nicht vorhandenen Dateien suchen usw. Ich finde mich bei Google für ein einfaches Bash-Handbuch oder eine Anleitung.

Oft sind diese viel zu lang und kompliziert, um die Frage, die ich zur Hand habe, schnell zu beantworten.

Ich dachte also, dass es einen Befehl oder eine Manpage geben muss, die die grundlegende Bash-Syntax (für Dinge wie if-Anweisungen, Überprüfung auf leere Variablen, nicht vorhandene Dateien usw.) auf kurze und zugängliche Weise abdeckt. Ich bin sicher, ich habe den Befehl gerade nicht herausgefunden (man bash scheint es nicht zu sein).

Wo finde ich das?

Samuel Lampa
quelle
2
in können bashSie versuchenhelp
mikeserv
github.com/cirosantilli/bash-cheat
Ciro Santilli 法轮功 病毒 审查 六四. 法轮功

Antworten:

13
  • man bash ist die kanonische Bash-Referenz.
  • help helpgibt Ihnen Hilfe zum helpeingebauten Bash und wie es Ihnen kurze Hilfemeldungen zu anderen eingebauten Bash gibt, wie z help for.
  • Gregs Wiki ist der beste Ort, um auf den Punkt gebrachtes, knappes und manchmal sogar unterhaltsames Referenzmaterial für so ziemlich jeden Aspekt von Bash zu finden.
  • Wenn Sie schnell nach Syntax suchen möchten, können Sie die Versionskontrolle durchführen.bash_history . Es gibt einfach zu viele Befehle, verschiedene Parameter Schreibweisen sedund awkLeitungsrauschen und andere Sachen zu immer alle daran erinnern, so schön es ist , eine „gut gepflegt“ persönliche Referenz mit Tags in nachzuschlagen.
l0b0
quelle
+1 für die Erwähnung help.
Goldlöckchen
1
Vielen Dank! Wie in der Antwort von @ polym erwähnt, hatte ich offensichtlich die falschen Suchbegriffe in man bash ("if-Anweisungen", "[-n" usw.) ohne Erfolg verwendet und dachte daher, die Informationen seien nicht vorhanden. Die Suche nach "bedingten Ausdrücken" war dort der richtige Suchbegriff.
Samuel Lampa
2
Ich habe für diesen Moment gleich viel Liebe und Hass ... 10 Jahre ... wusste nicht, dass helpes da war. So viel unnötiges man bashLesen ist nicht erforderlich!
Matt
13

Da es viele solcher Dinge online gibt , ist hier ein Vorschlag für Sie; Ich benutze dies für alle möglichen Dinge.

Erstellen Sie ein Verzeichnis $HOME/notes. Fügen Sie einen Unterordner hinzu bash. Wenn Sie keine haben $HOME/bin, erstellen Sie eine und fügen Sie sie Ihrem Pfad mit der von Ihnen bevorzugten Methode hinzu ( zum Beispiel: in~/.bashrc ). Dann fügen Sie dort ein einfaches Skript ein cmdref.sh:

#!/bin/bash

if [ -z "$CMREF_DIR" ]; then
        CMREF_DIR="$HOME/notes"
fi

cat "$CMREF_DIR/${1}/${2}.txt"

Symlink es der Einfachheit halber ln -s ~/bin/cmdref.sh ~/bin/cmdref; Ich mache das gerne, damit Sie die cmdref.shQuelle bearbeiten können und ein Editor den Dateityp weiterhin am Suffix erkennt.

Kopieren und einfügen , was in verschiedene Dateien in ~/notes/bash- zum Beispiel eine Datei haben könnte arrays.txt, loops.txtusw. Solange dies ist nur für den persönlichen Gebrauch, Sie sind nicht urheberrechtlich zu verletzen.

Sie können das jetzt über die Befehlszeile verwenden, z. B.: cmdref bash arraysUnd dieser Spickzettel wird auf der Konsole gedruckt. Beachten Sie, dass die Dateien .txt(auch hier ist die Verwendung geeigneter Suffixe für Editoren, Dateibrowser usw. nützlich) nicht verwendet werden sollten, cmdref bash arrays.txtda sie angehängt sind cmdref.sh(das Skript konvertiert nur Pfade und fügt das Suffix hinzu).

Goldlöckchen
quelle
Herrlich! Tolle Idee und brachte mir ein paar Dinge bei, an die ich nicht gedacht hatte, wie flexibel und anpassbar Linux ist.
Mightypile
@goldilocks Ich habe den Grund für die Verknüpfung der Skriptdatei nicht verstanden, insbesondere "Ich mache das gerne, damit Sie die Quelle cmdref.sh bearbeiten können und ein Editor den Dateityp weiterhin am Suffix erkennt." Kannst du bitte Erklären? Heißt das, ich kann vi cmdrefund vim öffnet die "cmdref.sh" und dann kann ich sie bearbeiten oder fehlt mir hier etwas Offensichtliches?
Geek
@Geek AFAIK Alle Editoren verwenden in erster Linie das Dateisuffix, um die Hervorhebung der WRT-Syntax des Dateityps zu bestimmen (eine andere Vorgehensweise wäre bestenfalls lückenhaft, könnte jedoch für einige Tools ein Fallback sein, wenn sie das Suffix nicht erkennen). Wenn Sie vi ~/bin/cmdrefalso nicht wirklich wissen, um welche Art von Datei es sich handelt, verwendet vim eine Standardeinstellung zum Hervorheben (ich denke, das ist es .txt). Wenn Sie jedoch vi ~/bin/cmref.shwissen, dass es sich bei der Datei um ein Shell-Skript handelt und die Hervorhebung sinnvoll ist. Aber WRT ein Befehl, den Sie eingeben möchten cmdref, nicht cmdref.sh. Deshalb benutze ich den Symlink.
Goldlöckchen
Als Seitenleiste dazu: viIst selbst normalerweise ein Symlink zu vim, weshalb Sie überhaupt eine Syntaxhervorhebung erhalten (das ursprüngliche "vi" hatte eine solche Funktion, glaube ich). Und: vim tatsächlich ist intelligent genug , um das Skript als eine Shell - Skript zu erkennen , wenn die Datei kein Suffix hat, aber das Prinzip steht;) In seltenen Fällen vielleicht muß ich / will Gebrauch etwas weniger klug.
Goldlöckchen
... wenn Sie den Unterschied sehen wollen, laden Sie eine .shDatei in vim und set filetype=txt- eek!
Goldlöckchen
3

man bashdeckt alle Aspekte von bash Syntax, zB bei if statements, string is zeround non-existent filesnur suchen (die Hit - /Taste und die folgende Eingabe) für CONDITIONAL EXPRESSIONS.

polym
quelle
1
Ah, in der Tat. Mein Gehirn muss ausgeschaltet sein oder fehlen, da ich diesen Suchbegriff nicht gefunden habe (ich habe erfolglos versucht, nach "if-Anweisungen", "\ '[-n" usw. zu suchen). Vielen Dank!
Samuel Lampa
1
@SamuelLampa Wenn Sie die Bash-Manpage ausreichend verwenden (es dauert nicht so viel), bekommen Sie ein Gefühl für ihre Struktur, sodass Sie erkennen können, was sich dort befindet und wo es sich befindet, bevor Sie es tatsächlich nachschlagen.
David Z