Ich weiß, dass einige Leute Startskripte haben und einige Leute die Eingabeaufforderung personalisieren. Ein Entwickler verwendet kurze Aliase für den langen Pfad, den er häufig besucht, und die häufigen Befehle, die er ausführt.
Welche effektiven Anpassungen haben Sie an Ihrem UNIX-Profil vorgenommen, um die Produktivität zu steigern und die Bedienung zu vereinfachen?
Antworten:
.vimrc
Speichern Sie die Datei mit Root-Rechten, indem Sie Folgendes eingebenw!!
:.bashrc
Kümmern Sie sich nicht um Geräte oder Binärdateien, wenngrep
Sie:Teilen Sie Code im Web (wie Pastebin, aber einfacher) mit
cat 1337.sh | webshare
Es gibt eine kurze URL in Ihrer Zwischenablage zurück; Sie können an die zurückgegebene URL anhängen,
?whatever-lang
um die Syntax hervorzuheben und die Zeilen zu nummerieren..inputrc
Verwenden Sie den vi-Modus in allen Anwendungen, die die readline-Bibliothek verwenden (viele Programme):quelle
Erstellen Sie ein Verzeichnis und eine CD in einem Befehl
Meistens
mkdir
ist mein nächster Befehlcd <that dir>
.Dies erspart einige Eingaben:
beispielsweise:
Eine andere Sache, die ich nützlich finde, ist eine einfache Möglichkeit, ein Wegwerfverzeichnis zu erstellen. zB wenn ich ein Programm kompiliere oder sogar versuche, ein Problem auf dieser Seite zu reproduzieren. Manchmal vergesse ich vielleicht, das Verzeichnis aufzuräumen.
es funktioniert zeigen:
Ich verlasse mich darauf, dass das System
/tmp
nach einem Neustart bereinigt, aber es wäre möglich, dies zu verbessern, z. B. das temporäre Verzeichnis nach dem Beenden der Shell zu löschen.quelle
mcd
seit vielen Jahren und werdemtd
demnächst etwas hinzufügen .mtd() { mcd $TMP/`date +%y%m%d-%H%M%S-%N`; }
. Es fehlt wahrscheinlich eine Portabilität, aber es ist gut genug für mich.Ich möchte, dass meine Bash-Eingabeaufforderung den Exit-Code des vorherigen Befehls anzeigt, wenn er nicht Null ist. Ich mag es auch, wenn meine Muschel mich aufheitert, wenn ich sie benutze, also fügte ich ein bisschen Albernheit hinzu:
Wenn ich also Befehle ausführe, erhalte ich ein nettes visuelles Feedback:
edit : das ist etwas, was ich in mein ~ / .bashrc geschrieben habe
quelle
.bashrc
vermutlich.bis N
N Verzeichnisse im Verzeichnisbaum nach oben springen
Anstatt zu tippen
du tippst einfach
und ein
bringt dich zurück
Fügen Sie die Funktion in Ihr .bashrc ein, um sie zu verwenden.
quelle
.zshrc
:.xmodmaprc
:(Vertauscht die Escape- und die Feststelltaste).
quelle
Ich vermassle meinen bashrc, da ich das Terminal oft benutze (dadurch lerne ich schnell und lerne interessante Dinge sowie interessante Werkzeuge). Normalerweise definiere ich viele Funktionen in meinem bashrc. Beispiele:
Archive extrahieren:
Dateien und Ordner umbenennen:
und so zum Teilen großer Dateien in mehrere kleine:
Außerdem habe ich viele Aliase editiert, da ich finde, dass es in manchen Fällen viel einfacher ist, einen Befehl mit Argumenten als Standard zu verwenden (wie in ls, grep und kleinen Befehlen), als all das jedes Mal einzugeben.
quelle
(Community-Wiki, daher gehört jeder Trick in eine separate Antwort.)
Sichere Abmeldung
Ctrl+ Dist die einfachste Möglichkeit, die Shell zu beenden. Wenn jedoch noch Jobs ausgeführt werden, wird die Shell trotzdem problemlos beendet. Standardmäßig bedeutet dies, dass alle Programme, die Sie in dieser Shell ausgeführt haben, beendet werden.
Bei einigen Shells können Sie sich erst nach zweimaligem Drücken von Ctrl+ Dabmelden, aber es ist immer noch zu einfach, dies versehentlich zu tun.
Fügen Sie dies stattdessen zu
.bashrc
oder zu der von.zshrc
Ihnen bevorzugten Konfigurationsdatei hinzu.quelle
(Community-Wiki, daher gehört jeder Trick in eine separate Antwort.)
Durchsuchen Sie Ihren Verlauf nach allen Methoden, mit denen Sie einen Befehl ausgeführt haben
Sie wissen vielleicht bereits über Ctrl+ R, aber dieser Weg ist meiner Meinung nach viel reibungsloser.
Richten Sie Alt+ ein P, um im Verlauf nach Befehlen zu suchen, die mit dem beginnen, was Sie bereits eingegeben haben.
zB
ls
Alt+ P, Alt+ P, Alt+P durchsucht allels
Befehle rückwärts .Sie müssen dies in Ihre
/etc/inputrc
oder.inputrc
fürbash
:und das in deinem
.zshrc
fürzsh
:Sie können sogar noch einen Schritt weiter gehen und den Aufwärtspfeil dazu bringen.
quelle
einfacher Rechner
Sie können
$(( ... ))
oder verwendenexpr ...
, um sehr einfache Berechnungen durchzuführen, aber es wird eine Ganzzahldivision durchgeführt, zEin besserer Weg ist zu verwenden
bc
.dann:
quelle
alias py='PYTHONSTARTUP=~/.pythonstartup python'
mitfrom math import *;
in dieser Datei. Das Problem der Ganzzahldivision bleibt ungelöst, ist jedoch für komplexere Operationen viel nützlicher.bessere Tab-Vervollständigung
Ich glaube nicht, dass jemand Customizing erwähnt hat Tab Fertigstellung des .
Hier ist was ich habe.
Die beiden wichtigsten Dinge, die es tut, sind:
zB
cd <Tab>
werden nur Verzeichnisse vorgeschlagenzB
d<Tab>
wird noch erledigtDesktop
undDownloads
Für die Bash:
Für zsh:
quelle
Sichere Komprimierung
Komprimierungsprogramme löschen standardmäßig die Originaldatei. Das gefällt mir nicht
Mehrzeilige Abfrage
Sie können "Tags" mit Umgebungsvariablen anzeigen. Beispiel:
Der Code ist zumindest auf teilweise auf Basis dieses .
Verlaufseinstellungen
quelle
quelle
Wenn Sie die Rechtschreibkorrektur für Autovervollständigen und Dateinamen einschalten können! Das sind wahrscheinlich die beiden Dinge, die Ihnen die meiste Zeit ersparen. Dann lerne sie zu benutzen - Bash und Zsh haben Tab-Vervollständigung. Ksh hat einen ineffizienten Escape-Backslash, daher würde ich Ksh empfehlen.
Ich benutze Zsh, aber Aliase wie dieses funktionieren in fast jeder Shell außer Csh:
Es scheint, als ob ein Alias für "ps" vorhanden sein sollte, aber ich benutze "ps" auf vielfältige Weise, und ich habe bisher nichts gefunden.
Richten Sie in Zsh Ihre Variable RPROMPT (kein Tippfehler!) Ein:
Das gesamte Verzeichnis wird rechts angezeigt Seite der Befehlszeile und kann nun zum Ausschneiden und Einfügen verwendet werden. Dazu später mehr.
Sie sollten ein ordnungsgemäß kompiliertes modernes Vim verwenden, da mehrere Vim-Fenster in einer Datei und mehrere Puffer vorhanden sein können. In Ihrer .vimrc-Datei könnte Folgendes enthalten sein:
Viele davon sind persönliche Vorlieben, aber ich glaube, dass 8-stellige Tabulatoren den Code weniger lesbar machen, und es gibt eine Studie, die das beweist.
Auch das "mouse = c" ist wichtig. Sie sollten Ihre Maus nicht verwenden, um sich in einer Datei zu bewegen. Nehmen Sie Ihre Hände von der Tastatur, berühren Sie die Maus und sie bewegen sie langsam zurück. Verwenden Sie die Cursorbewegung "hjkl" und andere Tasten für Tastatur-Paging und Cursorbewegung.
Wenn Sie X11 verwenden, sollten Sie einige Dinge an Ihrer Xterm-Konfiguration vornehmen. Dies kommt aus meiner .Xresources-Datei:
Gib Xterm standardmäßig eine Bildlaufleiste, speichere 1000 Zeilen Text im Puffer, das ist ziemlich normal.
Die charClass-Direktive lässt ein "Wort" Dinge wie ".", "/" Und "*" enthalten. Doppelklicken Sie auf einen beliebigen Teil eines durch '/' getrennten Dateinamens, und Sie erhalten das Ganze abzüglich der Zeichen ':'.
cutToBeginningOfLine funktioniert mit dem obigen Zsh RPROMPT. Klicken Sie dreimal auf den Pfad des aktuellen Arbeitsverzeichnisses, das auf der rechten Seite Ihrer Befehlszeile angezeigt wird, und Sie nehmen nur den Pfad auf: Die Kopie stoppt am Wortanfang. Sehr effizient, wenn Sie es gewohnt sind.
Die obigen X-Ressourcen machen das auch zu einem Einfüge-Schlüssel. Auf diese Weise können Sie nach dem Kopieren (wahrscheinlich mit der Maus) einfügen, ohne Ihre Hand zum Klicken zurück zur Maus zu bewegen.
quelle
Esc``Esc
oderEsc``=
inksh
undTab
funktioniert inksh93
. Nur für den Fall, dass jemand daran hängen bleibt oder es bevorzugt.Das Hinzufügen des Rückgabewerts ungleich Null des letzten Befehls ist eine gute Idee. Ich glaube, das Original-Poster hat speziell nach .profile / .cshrc / .bashrc gefragt. Es lohnt sich, die Liste anderer häufig angepasster RC-Dateien zu erwähnen, aber ich würde mich bei dieser Frage nur an Shell-Anpassungen halten.
Ich habe kürzlich ein Flag in meiner Eingabeaufforderung hinzugefügt, das angezeigt wird, wenn die Shell unter dem Bildschirm ausgeführt wird. Es verwendet den Solaris-Befehl "ptree", um Vorgängerprozesse zu durchsuchen, aber Sie können den Befehl "pstree" unter Linux verwenden, um dasselbe zu tun.
Ich habe ein paar Minuten gebraucht, um herauszufinden, wie der Rückkehrcode des letzten Befehls eingebettet werden kann. Deshalb werde ich ihn hier veröffentlichen.
Ich bin sicher, das könnte schöner gemacht werden. :-)
Zukünftiger Tipp, seien Sie vorsichtig beim Lesen von $? nach der Verwendung von "if [". Wenn die linke Klammer eine eingebaute Klammer ist, wird der Wert von $? Nicht überschrieben. Wenn Sie jedoch eine Shell verwenden, in der [nicht integriert ist, wird der Wert von $? nach dem Testen. Es ist sicherer, $ zuzuweisen? in eine temporäre Variable sofort und dann testen Sie diese Variable.
quelle
Zeigt die zuletzt geänderte Datei an
Oft möchte ich mir die aktuellste Datei ansehen. ZB bin ich möglicherweise im Protokollverzeichnis und möchte sehen, welche Datei aktuell ist, da dies der erste Ort ist, an dem Sie nach dem Grund suchen können, warum etwas nicht funktioniert.
ls -lt | head
ist eine aber umständliche Eingabe, daher hier eine Alternative:Es kann auch ein Platzhalter oder eine Liste von Dateien verwendet werden, z
Dies ist besonders praktisch, wenn alle Ihre Protokolldateien einen Zeitstempel im Namen haben. Sie können das neueste Protokoll für dieses Programm finden, ohne sich Gedanken darüber zu machen, in welchem Format sich der Zeitstempel befindet.
Und hier ist eine erweiterte Version, die eine
-<number>
Option zum Drucken von<number>
Zeilen anstelle von einer unterstützt.quelle