Ein häufiger Alias, den ich in der ~/.bashrc
Datei gesehen habe (oder Äquivalente) ist
alias rm='rm -i'
Allerdings habe ich gesehen, dass Leute dagegen empfehlen, weil
- Der Alias existiert möglicherweise nicht auf einem anderen System und da Sie sorglos geworden sind
rm
, löschen Sie versehentlich etwas Wichtiges. [1] - Wenn Sie diesen Alias verwenden, üben Sie sich in der Tat in der Eingabe
y
oderyes
nach jedemrm
Befehl, der den gesamten Zweck zunichte macht.
Gibt es andere Gründe, sich dagegen zu empfehlen? Könnten manche Programme rm
stattdessen einfach Anrufe tätigen \rm
, und ein Alias darüber könnte Probleme für sie verursachen?
Ich benutze rm
einfach als ein Beispiel, aber ich habe andere Befehle wie gesehen cp
oder mv
von Aliasnamen als gut abgedeckt. Persönlich trainiere ich mich langsam, um einen Alias wie diesen zu verwenden, anstelle von rm -i
:
alias trash=`mv -v -t $HOME/.Trash`
shell
command-line
alias
Ricardo Altamirano
quelle
quelle
rm -i
, trainiert es mich ein bisschen mehr, das-f
Flag automatisch hinzuzufügen .rm -i
für alles erstellen , was Sie möchten. Wiedel
,irm
sie, etc. Sie nicht brauchen , um alias esrm
. Dies umgeht Punkt 1, und indem Sie punktuelldel
oderrm
je nach Wunsch Punkt 2 umgehen.Antworten:
Vorausgesetzt, Sie verwenden Bash, sollte dies keine Probleme für Skripte verursachen, da nicht interaktive Bash-Shells keine Quellen
~/.bashrc
oder~/.bash_profile
(wahrscheinlich entweder dort, wo Ihre Aliase platziert sind, oder als erster Schritt, um Ihre Aliase in einem anderen Skript zu finden). . Es kann jedoch Probleme verursachen, wenn Sie Skripte beschaffen:Ihre Frage befasst sich hauptsächlich mit dem Aliasing bestehender Befehle. Die Hauptsorge ist, dass ungewohnte Umgebungen, die auf den ersten Blick gleich erscheinen, möglicherweise zu völlig unterschiedlichen Ergebnissen führen können. Zum Beispiel hat das Aliasing
rm
fürrm -i
gute Absichten, ist jedoch aus den von Ihnen angegebenen Gründen in der Praxis schlecht.quelle
Na sicher:
(3) Weil ich hoffe, eines Tages die Fundamente der [-----------] und paranoiden Leute, die andere für das Aliasing von Standardbefehlen züchtigen, zu erweitern, obwohl das Aliasing von Standardbefehlen Standard ist .
Im Ernst, das sind nur Vorbehalte. Wenn Sie darauf vertrauen, dass Sie nicht in eine dieser Schicksalsgruben geraten, dann passen Sie einfach auf und machen Sie weiter.
Ich persönlich kenne nur sehr wenige Standardbefehle. Ich benutze leichte Variationen, weil ich nur ein bisschen paranoid und anal zurückhaltend bin. Aber eine gute Verwendung, die ich dafür gefunden habe, ist in Bezug auf Systeme, auf denen ich mich oft als root oder als anderer Benutzer anmelde, und es gibt einige Dinge, die ich nicht versehentlich / träge als root ausführen möchte:
oder
quelle
Lassen Sie mich als extremes Beispiel einen Standardbefehl aliasen, um zu veranschaulichen, warum das Aliasen von Standardbefehlen schädlich sein kann:
Offensichtlich ist dies schlecht, weil es eines Tages eine böse Überraschung verursachen würde. Ebenso wird das Ersetzen von Standardbefehlen durch Aliase zu einer unglücklichen Überraschung führen, wenn Sie es am wenigsten erwarten.
Aber lassen Sie mich ein allgemeines Szenario vorstellen, das fast jedem Unix-Administrator im Laufe seiner Karriere passieren wird:
Eines Tages werden Sie einen neuen Job beginnen und an einem neuen System arbeiten, das von anderen eingerichtet wurde. Es ist drei Uhr morgens am Samstag, und Sie denken nicht klar und neigen dazu, Fehler zu machen. Ihre Standardumgebung ist nicht verfügbar. In der Tat sind Sie root.
rm
Werdet ihr euch vor diesem Hintergrund daran erinnern, dass es keinen Alias gibtrm -i
? Werden Sie jedes Mal, wenn Sie sich in die Box einloggen, nach Ihren speziellen Aliasnamen suchen? Wenn Sie die Umgebung von root ändern, werden Ihre Mitarbeiter mit Ihrer Änderung zufrieden sein?Ich bin ehrlich gesagt auf dem Zaun darüber. Ich habe in meiner Karriere an Tausenden von Systemen gearbeitet, und wenn ich die Umgebung auf all diesen Systemen modifizieren würde, wäre es schwierig, den Wert zu erkennen.
Aliasing
rm
aufrm -i
ist sehr verbreitet und ich habe gesehen, dass es viele Probleme verhindert, aber es hat auch viele Überraschungen und Stunden zusätzlicher Arbeit verursacht, um versehentlich gelöschte Dateien wiederherzustellen.Deshalb versuche ich jetzt, Aliasing bei allgemeinen Systembefehlen zu vermeiden. Stattdessen verwende ich Aliase und Funktionen, um Dinge zu tun, die die Shell nicht leicht machen kann. Was ich jetzt tendenziell mache, ist einen zusätzlichen Brief an den Alias anzuhängen, wie:
Und vielleicht sollte ich meinen endgültigen Alias wirklich loswerden, da die Anpassung an neue Praktiken einige Zeit in Anspruch nimmt:
quelle
ls
möglicherweise praktischer als das Merken von zehn Aliasen.rm
->rm -i
Beispiel ist viel besser. Ein weiterer guter wäre man , dass Aliase rm Dinge in einem setzen~/.trash
Es gibt mehr Gefahren.
Wenn Sie zum Beispiel
shell-command
in Emacs arbeiten, denken Sie vielleicht, Sie bekommen "Ihren" Befehl (oder Alias) , aber Sie müssen nicht sols
oft einen Alias in einem Terminal setzen, bevor Sie vergessen, den Alias einzurichten und darüber nachdenken es wie jeder andere Befehl ...) - in der Tat (zurück zu Emacs), erhalten Sie den Befehl (unaliased). Emacs führt es problemlos aus, sodass Sie möglicherweise sogar blind sind für das, was gerade passiert ist!Wenn es für verschiedene Computer und / oder Systeme zu langwierig ist, einzelne
.rc
Dateien für alle einzurichten, können Sie nur eine solche Datei haben, jedoch mitif
Klauseln, die angepasst werden müssen.Anstatt beispielsweise jede Funktion zu bewerten, wenn Sie sie schreiben, fügen Sie sie zuletzt der "schwarzen Liste" hinzu, wenn Sie Probleme mit einer dieser Funktionen haben:
quelle
Das Umbenennen von Standardbefehlen durch Aliase (dh das
rm=rm -i
) Zeug kann sicherlich zu Überraschungen führen, wenn der Alias nicht verfügbar ist. Ich ziehe es nicht so verwenden, und (durch mehr bitter, bitter Erfahrungen ;-) Ich habe zweimal zu lesen jeden Befehl acustomed worden, und wenn esrm
odermv
oder irgendetwas anderes potentiell zerstörerische dreimal. Und solche Aliase führen automatisch zu "rm foo" ENTER "y" Ups !! trotzdem (und kosten jedes Mal einen zusätzlichen Tastendruck).Aber das bin nur ich. Wenn Sie nicht erwarten, in fremden Umgebungen (andere Computer, andere Benutzer, ...) ausgeführt zu werden, und Sie Ihre bevorzugten Aliase installieren können, wo immer Sie sind, gehen Sie wild. Unix ist dafür bekannt, dass Benutzer mehr als genug Seile haben, um ihre eigenen Füße zu schießen.
quelle
Die anderen Antworten sind gut, aber sie sehen alle nur, wie es Sie betrifft.
Lassen Sie mich @Stephan Laswieskis Antwort auf den Kopf stellen.
Vorausgesetzt, Sie sind nicht allwissend, müssen Sie möglicherweise jemanden an Ihrem Benutzerkonto arbeiten lassen oder Sie beraten, wie etwas zu tun ist.
Wenn sie dann etwas tun oder Ihnen sagen, dass Sie es tun sollen, funktioniert es möglicherweise nicht wie erwartet.
Bestenfalls müssen Sie Zeit damit verschwenden, ihnen zu erklären, was passiert ist (wenn Sie genau dort sind und sich erinnern oder herausfinden können, dass der Alias der Grund für das Problem ist).
Im schlimmsten Fall sehen Sie eine Wendung des Beispiels in einer der anderen Antworten: alias ls = 'rm -rf'.
quelle