Erstellen Sie Verknüpfungen zu Verzeichnissen über das Terminal

Mein Problem ist: Wenn ich codiere, arbeite ich in Ordnern, die sich in anderen Ordnern befinden, und es ist ein langer Weg, Folgendes einzugeben:

cd /folder1/folder2/.../folderN

Ich weiß, dass es möglich ist, mit alias. Es wäre also:

alias ep="cd /Users/thi/Dropbox/CurrentProject"

Meine Frage ist, wo soll ich diesen Alias ​​setzen? Innen /etc/bashrc? Oder sollte ich eine Datei namens erstellen ~/.profileund dort ablegen? Wo soll ich es hinstellen?

Ich denke, was Sie auf die nächste Stufe bringen würde, wäre das Erlernen der Shell-Vervollständigung. Die Vervollständigung von bash ist ziemlich einfach, aber zsh hat eine erweiterbare Vervollständigung. ls -l P/H/O/Cla<tab>Erweitert zum Beispiel zuls -l Projects/Home/OpenGL/Clams

Antworten (5)

Ich behalte Aliase in ~/.bash_profile.

Terminal und iTerm 2 öffnen standardmäßig neue Shells als Anmelde-Shells. Wenn bash als interaktive Login-Shell aufgerufen wird, liest es ~/.bash_profileaber nicht ~/.bashrc. Die Terminal-Emulatoren auf anderen Plattformen öffnen neue Shells oft als Non-Login-Shells, so dass beispielsweise bash liest, ~/.bashrcaber nicht ~/.bash_profile. OS X-Benutzer verwenden häufig ~/.bash_profiledie entsprechende persönliche Konfigurationsdatei ~/.bashrcauf anderen Plattformen, aber es ist auch möglich, Terminal oder iTerm 2 zu beziehen ~/.bashrcoder ~/.bash_profileanzuweisen, neue Shells als Nicht-Login-Shells zu öffnen.

Wenn sowohl ~/.profileals auch ~/.bash_profilevorhanden sind, liest bash nur, ~/.bash_profilewenn es als interaktive Login-Shell aufgerufen wird. ~/.profilewird auch von anderen Shells und Programmen verwendet, die möglicherweise nicht dieselben Konfigurationsoptionen wie Bash verstehen.

/etc/bashrcist im Besitz von root und wird möglicherweise ersetzt, wenn Sie OS X aktualisieren.

Siehe man bash|less +^INVOCATIONoder https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html für weitere Informationen.

Normalerweise fügen Sie Alias-Definitionen in dieselbe Datei wie Ihre $PATHDefinitionen ein, die wahrscheinlich ~/.bashrc.


Technisch gesehen ist ein Alias ​​keine Verknüpfung zu einem Ordner, sondern zu einem beliebigen Shell-Befehl. So kann man auch Sachen haben wie

alias heal='xattr -d com.apple.quarantine'
alias la='ls -lFa'
alias ll='ls -lF'
alias ls='ls -FG'
alias show-path='echo -e ${PATH//:/\\n}'

um Ihr Leben einfacher zu machen. Aliase werden unverändert durch die Shell ersetzt, wenn Sie sie also ausführen

heal downloadedFile.dmg

es wird erweitert

xattr -d com.apple.quarantine downloadedFile.dmg

und danach hingerichtet. Wenn Sie mehr Flexibilität mit Parametern benötigen, sollten Sie sich Shell-Funktionen ansehen (aber das sollte wahrscheinlich in eine andere Frage gehen).

Ich bin kein Bash-Experte, aber ich denke, Sie sollten Ihren Alias ​​in .bashrc in Ihrem Home-Verzeichnis ablegen.

Diese Antwort fasst ordentlich zusammen, was idealerweise in jedes von ~/.bashrc, ~/.profile, und gehört ~/.bash_profile. In Summe:

  • ~/.bash_profile sollte supereinfach sein und nur .profile und .bashrc laden (in dieser Reihenfolge)

  • ~/.profile enthält Dinge, die NICHT speziell mit Bash zu tun haben, wie z. B. Umgebungsvariablen (PATH und Freunde).

  • ~/.bashrc hat alles, was Sie sich für eine interaktive Befehlszeile wünschen. Eingabeaufforderung, EDITOR-Variable, Bash-Aliase für meine Verwendung

    Noch ein paar Anmerkungen:

  • Alles, was für grafische Anwendungen ODER für sh (oder als sh aufgerufene Bash) verfügbar sein soll, MUSS in ~/.profile sein

  • ~/.bashrc darf nichts ausgeben

  • Alles, was nur für Login-Shells verfügbar sein sollte, sollte in ~/.profile abgelegt werden

  • Stellen Sie sicher, dass ~/.bash_login nicht existiert.

Die kurze Antwort lautet: (allgemein)

Fügen Sie es hinzu~/.bash_profile

echo 'alias ep="cd $HOME/Dropbox/CurrentProject"' >> ~/.bash_profile

HINWEIS: Zwischen dem Alias/der Variablen und dem Gleichheitszeichen ("=") und dem Wert darf kein Leerzeichen stehen . Wenn Ihr Wert Leerzeichen enthält, sollte der gesamte Wert in Anführungszeichen gesetzt werden.

Eine bessere Antwort ist: (wahrscheinlich)

Versuchen Sie stattdessen, eine Umgebungsvariable festzulegen. Das ist wahrscheinlich eher das, was Sie wirklich wollen.

echo 'export EP="$HOME/Dropbox/CurrentProject"' >> ~/.bash_profile
echo 'alias ep="cd $EP"' >> ~/.bash_profile

HINWEIS: Auf diese Umgebungsvariablen wird zugegriffen, indem das Dollarzeichen ("$") vorangestellt wird . Allerdings sollte bei der Definition das Dollarzeichen ("$") weggelassen werden.

Eine alternative Antwort ist: (möglicherweise)

Symbolische Links . AKA. Symlinks . {FKA. Aliase . (Mac OS)}. {BKA. Abkürzungen . (Windows-Betriebssystem)}.

ln -s <dirA/subB/fileC_in> <dirX/subY/symbZ_out>

HINWEIS: Symlinks werden manchmal durch das vorangestellte kaufmännische Und-Zeichen ("@") gekennzeichnet .

Bitte besuchen Sie den Chat-Kanal der Website , wenn Sie die Sperre dieses Beitrags und zukünftige Änderungen besprechen möchten.