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 ~/.profile
und dort ablegen? Wo soll ich es hinstellen?
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_profile
aber nicht ~/.bashrc
. Die Terminal-Emulatoren auf anderen Plattformen öffnen neue Shells oft als Non-Login-Shells, so dass beispielsweise bash liest, ~/.bashrc
aber nicht ~/.bash_profile
. OS X-Benutzer verwenden häufig ~/.bash_profile
die entsprechende persönliche Konfigurationsdatei ~/.bashrc
auf anderen Plattformen, aber es ist auch möglich, Terminal oder iTerm 2 zu beziehen ~/.bashrc
oder ~/.bash_profile
anzuweisen, neue Shells als Nicht-Login-Shells zu öffnen.
Wenn sowohl ~/.profile
als auch ~/.bash_profile
vorhanden sind, liest bash nur, ~/.bash_profile
wenn es als interaktive Login-Shell aufgerufen wird. ~/.profile
wird auch von anderen Shells und Programmen verwendet, die möglicherweise nicht dieselben Konfigurationsoptionen wie Bash verstehen.
/etc/bashrc
ist im Besitz von root und wird möglicherweise ersetzt, wenn Sie OS X aktualisieren.
Siehe man bash|less +^INVOCATION
oder 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 $PATH
Definitionen 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.
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.
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.
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 .
Ɱark Ƭ
ls -l P/H/O/Cla<tab>
Erweitert zum Beispiel zuls -l Projects/Home/OpenGL/Clams