72 Stimmen

Versteckte Funktionen der Bash

Shell-Skripte werden oft als Klebstoff für die Automatisierung und einfache einmalige Aufgaben verwendet. Was sind Ihre bevorzugten "versteckten" Funktionen der Shell/Skriptsprache Bash?

  • Ein Merkmal pro Antwort
  • Geben Sie ein Beispiel und eine kurze Beschreibung der Funktion, nicht nur einen Link zur Dokumentation
  • Beschriften Sie das Merkmal mit einem fettgedruckten Titel in der ersten Zeile

Siehe auch:

8voto

Adam Liss Punkte 46031

Magische Tastenkombinationen aus der Bash man Seiten:

  • Ctrl + a y Ctrl + e bewegen den Cursor an den Anfang bzw. das Ende der aktuellen Zeile.

  • Ctrl + t y Alt + t vertauscht das Zeichen und das Wort vor dem Cursor mit dem aktuellen und bewegt dann den Cursor vorwärts.

  • Alt + u y Alt + l das aktuelle Wort (vom Cursor bis zum Ende) in Groß- und Kleinbuchstaben umwandeln.

    Hinweis: Presse Alt + gefolgt von einem dieser beiden Befehle, um die Anfang des aktuellen Wortes.

Bonus man Tipps:

  • Beim Betrachten man Seiten, verwenden Sie / um nach Text auf den Seiten zu suchen. verwenden n um zum nächsten Spiel zu springen oder N für das vorherige Spiel.

  • Beschleunigen Sie die Suche nach einem bestimmten Befehl oder Unterabschnitt innerhalb der man Seiten unter Ausnutzung ihrer Formatierung:

    o Anstatt zu tippen /history expansion um diesen Abschnitt zu finden, versuchen Sie /^history unter Verwendung des Cursors ( ^ ), um nur Zeilen zu finden, die beginnen mit "Geschichte".

    o Versuch /   read mit ein paar führenden Leerzeichen, um nach diesem Builtin-Befehl zu suchen. Builtins werden immer in der Datei man Seiten.

8voto

JesperE Punkte 61161

Arrays:

#!/bin/bash

array[0]="a string"
array[1]="a string with spaces and \"quotation\" marks in it"
array[2]="a string with spaces, \"quotation marks\" and (parenthesis) in it"

echo "There are ${#array[*]} elements in the array."
for n in "${array[@]}"; do
    echo "element = >>${n}<<"
done

Weitere Details zu Arrays (und anderen fortgeschrittenen Bash-Skripten) finden Sie in der Leitfaden für fortgeschrittene Bash-Skripte .

8voto

Shawn Chin Punkte 78582

Ausführen eines Befehls vor dem Anzeigen der Bash-Eingabeaufforderung

Setzen Sie einen Befehl in die Umgebungsvariable "PROMPT_COMMAND" und er wird automatisch vor jeder Eingabeaufforderung ausgeführt. Beispiel:

[lsc@home]$ export PROMPT_COMMAND="date"
Fri Jun  5 15:19:18 BST 2009
[lsc@home]$ ls
file_a  file_b  file_c
Fri Jun  5 15:19:19 BST 2009
[lsc@home]$ ls

Für den nächsten Aprilscherz fügen Sie "export PROMPT_COMMAND=cd" in die .bashrc von jemandem ein und lehnen Sie sich zurück, um die Verwirrung zu beobachten.

7voto

Sionide21 Punkte 2203

Sie können bestimmte Dateien beim Ausfüllen der Registerkarte ignorieren, indem Sie die FIGNORE variabel.

Wenn Sie zum Beispiel ein Subverion Repo haben und einfacher navigieren wollen, tun Sie

export FIGNORE=".svn"

jetzt können Sie cd ohne blockiert zu werden durch .svn Verzeichnisse.

7voto

Mike Nelson Punkte 314

export TMOUT=$((15*60))

Beendet die Bash nach 15 Minuten Leerlaufzeit, zum Deaktivieren auf 0 setzen. Ich lege dies normalerweise in ~/.bashrc auf meinen Root-Konten ab. Das ist praktisch, wenn man seine Rechner verwaltet und vielleicht vergisst, sich abzumelden, bevor man das Terminal verlässt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X