Bash-Aliase, ohne die Sie nicht leben können

0 Comments

Ein Bash-Alias ist eine Methode zum Ergänzen oder Überschreiben von Bash-Befehlen mit neuen. Bash-Aliase erleichtern es Benutzern, ihre Erfahrung in einem POSIX-Terminal anzupassen. Sie werden oft in $HOME / definiert.bashrc oder $HOME / bash_aliases (die von $HOME / geladen werden müssen.bashrc).

Die meisten Distributionen fügen in der Standardeinstellung mindestens einige gängige Aliase hinzu .bashrc-Datei eines neuen Benutzerkontos. Dies sind einfache, um die Syntax eines Bash-Alias zu demonstrieren:

alias ls="ls -F"
alias ll="ls -lh"

Nicht alle Distributionen werden mit vorab ausgefüllten Aliasen ausgeliefert., Wenn Sie Aliase manuell hinzufügen, müssen Sie sie in Ihre aktuelle Bash-Sitzung laden:

$ source ~/.bashrc

Andernfalls können Sie Ihr Terminal schließen und erneut öffnen, damit es seine Konfigurationsdatei neu lädt.

Mit diesen Aliasnamen, die in Ihrem Bash-Initialisierungsskript definiert sind, können Sie dann ll eingeben und die Ergebnisse von ls-l abrufen, und wenn Sie ls eingeben, erhalten Sie anstelle der Ausgabe von einfachem alten ls.

Diese Aliase sind großartig zu haben, aber sie kratzen nur an der Oberfläche dessen, was möglich ist. Hier sind die Top 10 Bash-Aliase, auf die Sie, sobald Sie sie ausprobiert haben, nicht mehr verzichten können.,

Zuerst einrichten

Erstellen Sie vor Beginn eine Datei mit dem Namen~/.bash_aliases:

$ touch ~/.bash_aliases

stellen Sie sicher, dass dieser code wird in Ihre ~/.bashrc-Datei:

if ; then
source $HOME/.bash_aliases
fi

Wenn Sie einen der Aliase in diesem Artikel selbst ausprobieren möchten, geben Sie sie in Ihr ein .bash_aliases Datei, und laden Sie sie dann in Ihre Bash-Sitzung mit der Quelle~/.bashrc-Befehl.,

Sortieren nach Dateigröße

Wenn Sie Ihr Computerleben mit GUI-Dateimanagern wie Nautilus in GNOME, dem Finder in macOS oder Explorer in Windows begonnen haben, sind Sie es wahrscheinlich gewohnt, eine Liste von Dateien nach ihrer Größe zu sortieren. Sie können das auch in einem Terminal tun, aber es ist nicht genau prägnant.

Fügen Sie diesen Alias zu Ihrer Konfiguration auf einem GNU-System hinzu:

alias lt="ls --human-readable --size -1 -S --classify"

Dieser Alias ersetzt lt durch einen ls-Befehl, der die Größe jedes Elements anzeigt, und sortiert ihn dann nach Größe in einer einzelnen Spalte mit einer Notation, um die Art der Datei anzugeben., Laden Sie Ihren neuen Alias und probieren Sie ihn dann aus:

Unter macOS oder BSD hat der Befehl ls nicht die gleichen Optionen, daher funktioniert dieser Alias stattdessen:

alias lt="du -sh * | sort -h"

Die Ergebnisse dieser Version sind etwas anders:

$ du -sh * | sort -h
0 compile
0 COPYING
0 install-sh
0 missing
4.0K configure.ac
4.0K dot-gitlab.ci.yml
4.0K flatpak.path.patch
4.0K git-portal.spec
4.0K info.slackermedia.Git-portal.json
4.0K Makefile.am
8.0K README.md
12K config.log
16K bin
24K Makefile
24K Makefile.in
32K config.status
36K LICENSE
44K aclocal.m4
60K share
140K configure
476K autom4te.cache

Tatsächlich ist dieser Befehl auch unter Linux nützlich, da ls Verzeichnisse und Symlinks als 0 auflistet, was möglicherweise nicht die Informationen, die Sie tatsächlich wollen. Es ist Ihre Wahl.

Vielen Dank an Brad Alexander für diese Alias-Idee.

Nur montierte Laufwerke anzeigen

Der mount-Befehl war früher so einfach., Mit nur einem Befehl können Sie eine Liste aller eingehängten Dateisysteme auf Ihrem Computer abrufen, die häufig für einen Überblick darüber verwendet wurde, welche Laufwerke an eine Workstation angeschlossen waren. Früher war es beeindruckend, mehr als drei oder vier Einträge zu sehen, da die meisten Computer nicht viel mehr USB-Anschlüsse haben, so dass die Ergebnisse überschaubar waren.,

Computer sind jetzt etwas komplizierter, und zwischen LVM, physischen Laufwerken, Netzwerkspeichern und virtuellen Dateisystemen können die Ergebnisse von mount schwierig zu analysieren sein:

Um dieses Problem zu lösen, versuchen Sie einen Alias wie diesen:

alias mnt="mount | awk -F" " "{ printf \"%s\t%s\n\",\$1,\$3; }" | column -t | egrep ^/dev/ | sort"

Dieser Alias verwendet awk, um die Ausgabe von mount nach Spalte zu analysieren und die Ausgabe auf das zu reduzieren, wonach Sie wahrscheinlich suchen (welche Festplatten und nicht Dateisysteme sind gemountet):

Unter macOS liefert der Befehl mount keine schrecklich ausführliche Ausgabe, sodass ein Alias möglicherweise übertrieben ist., Wenn Sie jedoch einen prägnanten Bericht bevorzugen, versuchen Sie dies:

alias mnt="mount | grep -E ^/dev | column -t"

Die Ergebnisse:

Finden Sie einen Befehl in Ihrem Grep-Verlauf

Manchmal finden Sie heraus, wie Sie etwas im Terminal tun, und versprechen Sie sich, dass Sie nie vergessen werden, was Sie gerade gelernt haben. Dann vergeht eine Stunde und du hast völlig vergessen, was du getan hast.

Das Durchsuchen Ihres Bash-Verlaufs ist etwas, was jeder von Zeit zu Zeit tun muss., Wenn Sie genau wissen, wonach Sie suchen, können Sie Strg+R verwenden, um Ihren Verlauf umzukehren, aber manchmal können Sie sich nicht genau an den Befehl erinnern, den Sie finden möchten.

Hier ist ein Alias, um diese Aufgabe ein wenig einfacher zu machen:

alias gh="history|grep"

Hier ist ein Beispiel, wie man es benutzt:

$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc

Sortieren nach Änderungszeit

Es passiert jeden Montag: Sie kommen zur Arbeit, Sie setzen sich an Ihren Computer, Sie öffnen ein Terminal und Sie haben vergessen, was Sie letzten Freitag getan haben., Sie benötigen einen Alias, um die zuletzt geänderten Dateien aufzulisten.

Sie können den Befehl ls verwenden, um einen Alias zu erstellen, um herauszufinden, wo Sie aufgehört haben:

alias left="ls -t -1"

Die Ausgabe ist einfach, obwohl Sie sie mit der Option –long erweitern können, wenn Sie möchten., Der Alias zeigt Folgendes an:

$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml

Count files

Wenn Sie wissen möchten, wie viele Dateien Sie in einem Verzeichnis haben, ist die Lösung eines der klassischsten Beispiele für die UNIX-Befehlskonstruktion: Sie listen Dateien mit dem Befehl ls auf, steuern die Ausgabe so, dass sie nur eine Spalte mit der Option -1, und leiten diese Ausgabe dann an den Befehl wc (Wortzahl) weiter, um zu zählen, wie viele Zeilen einzelner Dateien es gibt.

Es ist eine brillante Demonstration, wie die UNIX-Philosophie es Benutzern ermöglicht, ihre eigenen Lösungen mit kleinen Systemkomponenten zu erstellen., Diese Befehlskombination ist auch viel zu tippen,wenn Sie es mehrmals am Tag tun, und es funktioniert nicht genau für ein Verzeichnis von Verzeichnissen ohne die Option-R, die neue Zeilen in die Ausgabe einführt und die Übung unbrauchbar macht.

Stattdessen macht dieser Alias den Prozess einfach:

alias count="find . -type f | wc -l"

Dieser zählt Dateien, ignoriert Verzeichnisse, aber nicht den Inhalt von Verzeichnissen. Wenn Sie einen Projektordner mit zwei Verzeichnissen haben, von denen jedes zwei Dateien enthält, gibt der Alias vier zurück, da sich im gesamten Projekt vier Dateien befinden.,

$ ls
foo bar
$ count
4

Erstellen Sie eine virtuelle Python-Umgebung

Codieren Sie in Python?

Codieren Sie viel in Python?

Wenn Sie dies tun, wissen Sie, dass das Erstellen einer virtuellen Python-Umgebung mindestens 53 Tastenanschläge erfordert.
Das sind 49 zu viele, aber das lässt sich leicht mit zwei neuen Aliasnamen namens ve und va umgehen:

alias ve="python3 -m venv ./venv"
alias va="source ./venv/bin/activate"

Mit ve wird ein neues Verzeichnis namens venv erstellt, das das übliche Dateisystem für die virtuelle Umgebung für Python3 enthält., Der va-Alias aktiviert die Umgebung in Ihrer aktuellen Shell:

$ cd my-project
$ ve
$ va
(venv) $

Fügen Sie einen Kopierfortschrittsbalken hinzu

Jeder macht sich über Fortschrittsbalken lustig, weil sie berüchtigt sind ungenau. Und doch scheinen wir sie alle tief im Inneren zu wollen. Der UNIX-cp-Befehl hat keinen Fortschrittsbalken, aber er hat eine-v-Option für Ausführlichkeit, was bedeutet, dass er den Namen jeder Datei wiedergibt, die in Ihr Terminal kopiert wird. Das ist ein ziemlich guter Hack, aber es funktioniert nicht so gut, wenn Sie eine große Datei kopieren und einen Hinweis darauf haben möchten, wie viel von der Datei noch übertragen werden muss.,

Der Befehl pv stellt während des Kopierens einen Fortschrittsbalken bereit, der jedoch als Standardanwendung nicht üblich ist. Auf der anderen Seite ist der Befehl rsync in der Standardinstallation von fast jedem verfügbaren POSIX-System enthalten und wird allgemein als eine der klügsten Möglichkeiten zum Kopieren von Dateien sowohl remote als auch lokal anerkannt.

Besser noch, es hat einen eingebauten Fortschrittsbalken.,

alias cpv="rsync -ah --info=progress2"

Die Verwendung dieses Alias ist die gleiche wie die Verwendung des Befehls cp:

$ cpv bigfile.flac /run/media/seth/audio/
3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)

Ein interessanter Nebeneffekt der Verwendung dieses Befehls ist, dass rsync sowohl Dateien als auch Verzeichnisse ohne das Flag-r kopiert, das cp sonst benötigen würde.

Schützen Sie sich vor Unfällen beim Entfernen von Dateien

Sie sollten den Befehl rm nicht verwenden. Das rm-Handbuch sagt sogar so:

Warnung: Wenn Sie eine Datei mit ‚rm‘ entfernen, ist es normalerweise möglich, den Inhalt dieser Datei wiederherzustellen., Wenn Sie mehr Sicherheit wünschen, dass der Inhalt wirklich nicht wiederherstellbar ist, sollten Sie „shred“ verwenden.

Wenn Sie eine Datei entfernen möchten, sollten Sie die Datei wie bei einem Desktop in den Papierkorb verschieben.

POSIX macht das einfach, da der Papierkorb ein zugänglicher, tatsächlicher Speicherort in Ihrem Dateisystem ist. Dieser Speicherort kann sich je nach Plattform ändern: Auf einem FreeDesktop befindet sich der Papierkorb unter ~/.local/share /Trash, während es unter macOS ~ / ist.,Trash, aber so oder so, es ist nur ein Verzeichnis, in dem Sie Dateien platzieren, die Sie aus den Augen wollen, bis Sie bereit sind, sie für immer zu löschen.

Dieser einfache Alias bietet eine Möglichkeit, Dateien von Ihrem Terminal aus in den Papierkorb zu werfen:

alias tcn="mv --force -t ~/.local/share/Trash "

Dieser Alias verwendet ein wenig bekanntes mv-Flag, mit dem Sie die Datei, die Sie verschieben möchten, als letztes Argument angeben können, wobei die übliche Anforderung ignoriert wird, dass diese Datei zuerst aufgeführt wird., Jetzt können Sie Ihren neuen Befehl verwenden, um Dateien und Ordner in den Papierkorb Ihres Systems zu verschieben:

$ ls
foo bar
$ tcn foo
$ ls
bar

Jetzt ist die Datei“ weg“, aber nur, bis Sie in einem kalten Schweiß erkennen, dass Sie sie noch brauchen. An diesem Punkt können Sie die Datei aus Ihrem Systemmüll retten; Achten Sie darauf, die Bash und mv Entwickler auf dem Weg nach draußen zu kippen.

Hinweis: Wenn Sie einen robusteren Papierkorbbefehl mit besserer FreeDesktop-Konformität benötigen, siehe Trashy.

Vereinfachen Sie Ihren Git-Workflow

Jeder hat einen eindeutigen Workflow, aber es gibt normalerweise sich wiederholende Aufgaben, egal was passiert., Wenn Sie regelmäßig mit Git arbeiten, gibt es wahrscheinlich eine Sequenz, die Sie ziemlich häufig wiederholen. Vielleicht kehren Sie zum Master-Zweig zurück und ziehen tagsüber immer wieder die neuesten Änderungen, oder Sie erstellen Tags und schieben sie dann auf die Fernbedienung, oder vielleicht ist es etwas ganz anderes.

Egal welche Git-Beschwörung Sie müde von der Eingabe geworden sind, Sie können möglicherweise einige Schmerzen mit einem Bash-Alias lindern., Vor allem dank seiner Fähigkeit, Argumente an Hooks zu übergeben, verfügt Git über eine Reihe von introspektiven Befehlen, die Sie davor bewahren, unheimliche Kunststücke in Bash ausführen zu müssen.

Zum Beispiel, während Sie Schwierigkeiten haben könnten, in Bash das oberste Verzeichnis eines Projekts zu finden (was Bash betrifft, ist eine völlig willkürliche Bezeichnung, da die absolute oberste Ebene für einen Computer das Stammverzeichnis ist), kennt Git seine oberste Ebene mit einer einfachen Abfrage., Wenn Sie sich mit Git-Hooks befassen, können Sie alle Arten von Informationen herausfinden, von denen Bash nichts weiß, aber Sie können diese Informationen mit einem Bash-Alias nutzen.,

Hier ist ein Alias, um die oberste Ebene eines Git-Projekts zu finden, egal wo in diesem Projekt Sie gerade arbeiten, und dann das Verzeichnis zu ändern, in den Master-Zweig zu wechseln und einen Git-Pull durchzuführen:

alias startgit="cd `git rev-parse --show-toplevel` && git checkout master && git pull"

Diese Art von Alias ist keineswegs ein universell nützlicher Alias, aber es zeigt, wie ein relativ einfacher Alias viele mühsame Navigation, Befehle und das Warten auf Eingabeaufforderungen eliminieren kann.

Ein einfacherer und wahrscheinlich universellerer Alias bringt Sie auf die oberste Ebene des Git-Projekts zurück., Dieser Alias ist nützlich, da dieses Projekt bei der Arbeit an einem Projekt mehr oder weniger zu Ihrem „temporären Home“ – Verzeichnis wird. Es sollte so einfach sein, „nach Hause“ zu gehen, wie es ist, zu Ihrem eigentlichen Zuhause zu gehen, und hier ist ein Alias, um es zu tun:

alias cg="cd `git rev-parse --show-toplevel`"

Jetzt bringt Sie der Befehl cg an die Spitze Ihres Git-Projekts, egal wie tief Sie in seine Verzeichnisstruktur abgestiegen sind.,

Verzeichnisse wechseln und gleichzeitig den Inhalt anzeigen

Es wurde einmal (angeblich) von einem führenden Wissenschaftler vorgeschlagen, dass wir viele der Energieprobleme des Planeten lösen könnten, indem wir die Energie nutzen, die von Geeks verbraucht wird, gefolgt von ls.
Es ist ein gemeinsames Muster, denn in der Regel, wenn Sie Verzeichnisse ändern, haben Sie den Impuls oder die Notwendigkeit zu sehen,was um.

Aber das“ Gehen “ des Verzeichnisbaums Ihres Computers muss kein Start-and-Stop-Prozess sein.

Dieser betrügt, weil es überhaupt kein Alias ist, aber es ist eine großartige Ausrede, Bash-Funktionen zu erkunden., Während Aliase sind ideal für schnelle Substitutionen, Bash können Sie lokale Funktionen in Ihrem hinzufügen .bashrc-Datei (oder eine separate Funktionsdatei, in die Sie laden .bashrc, genau wie Sie Ihre Aliasdatei machen).

Um die Dinge modular zu halten, erstellen Sie eine neue Datei namens ~/.bash_functions und haben dann Ihre .,bashrc load it:

if ; then
source $HOME/.bash_functions
fi

Fügen Sie in der Funktionsdatei diesen Code hinzu:

Laden Sie die Funktion in Ihre Bash-Sitzung und probieren Sie sie dann aus:

$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop Documents Downloads

$ pwd
/home/seth

Funktionen sind viel flexibler als Aliase, aber mit dieser Flexibilität liegt die Verantwortung für Sie darin, sicherzustellen, dass Ihr Code sinnvoll ist und das tut, was Sie erwarten. Aliase sollen einfach sein, also halten Sie sie einfach, aber nützlich. Verwenden Sie für schwerwiegende Änderungen am Verhalten von Bash Funktionen oder benutzerdefinierte Shell-Skripte, die an einem Speicherort in Ihrem PFAD gespeichert sind.,

Für die Aufzeichnung gibt es einige clevere Hacks, um die CD-und ls-Sequenz als Alias zu implementieren, wenn Sie also geduldig genug sind, dann ist der Himmel die Grenze, selbst wenn Sie bescheidene Aliase verwenden.

Aliasing starten und funktionieren


Schreibe einen Kommentar

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