Bei der Installation von Ruby unter Ubuntu auf dieser Site bin ich auf einen Code gestoßen.
#Pfad hinzufügen
$ echo 'export PATH="
#Hinzufügen eines rbenv-Initialisierungsskripts $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
Was zur Hölle ist das ...
Zuerst dachte ich, aber als ich es recherchierte, verstand ich es bis zu einem gewissen Grad, also werde ich es in einem Artikel zusammenfassen, damit ich es nicht vergesse.
Wenn Sie einen Fehler machen, lassen Sie es mich bitte in den Kommentaren wissen.
# Über Echo
Lassen Sie uns zunächst über den Befehl `echo` sprechen. Eine ausführliche Erklärung von "echo" finden Sie unter [hier](https://eng-entrance.com/linux-command-echo). Es gibt drei Möglichkeiten, das im ersten Befehl, den Sie geschrieben haben, verwendete Echo zu verwenden.
>```sh
#Fügen Sie der Datei eine Zeichenfolge hinzu.
$Echo-String>>Dateiname
># 「$Zeigen Sie die Zeichenfolge "Variable" an.
$ echo '$Variable'
># 「$Zeigen Sie den Inhalt einer Variablen namens "Variable" an.
$ echo "$Variable"
Kehren Sie nun zum ersten Code zurück.
$ echo 'export PATH="
Beide Befehle haben die Form "echo string >> ~ / .bash_profile".
Mit anderen Worten, ich füge die Zeichenfolge einer Datei mit dem Namen .bash_profile in meinem Home-Verzeichnis hinzu. Dieses .bash_profile wird später erklärt.
In Bezug auf den Inhalt der Zeichenfolge "export PATH =" $ HOME / .rbenv / bin: $ PATH "" ist export ein Befehl, mit dem Sie Umgebungsvariablen definieren können. Das heißt, es setzt die Umgebungsvariable "PATH" auf den Wert "" $ HOME / .rbenv / bin: $ PATH "". Wir werden später auch Umgebungsvariablen diskutieren.
In ähnlicher Weise lautet der Inhalt der Zeichenfolge "eval" $ (rbenv init-) "", aber eval ist ein Befehl, der die angegebene Zeichenfolge nach der Auswertung verkettet und die aktuelle Shell veranlasst, sie auszuführen. [Schau dir das an. Eigentlich wusste ich nicht viel über Eval, also werde ich versuchen, ein bisschen mehr herauszufinden.
In meiner Interpretation bewirkt dieser Befehl, dass die Shell den Befehl "rbenv init-" ausführt.
## Über .bash_profile
Das .bash_profile, das früher veröffentlicht wurde, aber [dieser Artikel](https://neos21.hatenablog.com/entry/2017/02/12/142817) ist leicht zu verstehen.
Kurz zusammengefasst ist bash_profile eine Datei, die beim Anmelden nur einmal ausgeführt wird.
Betrachtet man es zusammen mit der vorherigen Geschichte
>```sh
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
Bedeutet, "$ HOME / .rbenv / bin: $ PATH" in "PATH" nur einmal beim Anmelden zu definieren und "rbenv init-" auszuführen.
Lassen Sie uns als nächstes darüber sprechen, was es bedeutet, "durchzugehen". Zusammenfassend bedeutet "Durchgang"
Ändern Sie die Beschreibung der Umgebungsvariablen ($ PATH) und fügen Sie den Befehlssuchpfad hinzu.
Zitiert von dieser Site. Bitte lesen Sie es, da es eine sehr detaillierte Beschreibung von "Durchgang" enthält.
Um auf die Geschichte zurückzukommen: Umgebungsvariablen sind Variablen, die auf Ihrem Computer gespeichert sind. Sie können die Umgebungsvariablen mit dem folgenden Befehl überprüfen.
Der Name der printenv-Umgebungsvariablen
#Wenn nach printenv kein Argument hinzugefügt wird, werden alle Umgebungsvariablen angezeigt. printenv
Wenn Sie "printenv" ausführen, werden die Umgebungsvariablen in einer Reihe angezeigt, und Sie können die Umgebungsvariable "PATH" darin sehen.
Welche Rolle dieser "Pfad" spielt, ist, dass er der Shell (dem Terminal) mitteilt, wo sich die ausführbaren Dateien befinden.
In dem zuvor veröffentlichten Befehl "printenv" verweist die Shell beispielsweise auf die ausführbare Datei "/ usr / bin / printenv". Daher sind die folgenden beiden der gleiche Befehl.
>```sh
$ /usr/bin/printenv
$ printenv
Der Grund, warum / usr / bin
zu diesem Zeitpunkt weggelassen werden kann, ist, dass dies in PATH
beschrieben ist.
Wenn Sie "printenv PATH" ausführen, wird es als "/ home / [Benutzername] / bin: ..." beschrieben. Dies liegt daran, dass die Pfade durch Folgendes getrennt sind und der Speicherort der ausführbaren Datei vom ersten Pfad aus durchsucht wird.
Werfen wir einen Blick auf den ersten Befehl, den wir hier geschrieben haben.
$ echo 'export PATH="
Ich habe dir gesagt, dass dieser Befehl den Wert `$ HOME / .rbenv / bin: $ PATH` in` PATH` definiert. Hier ist "$ HOME / .rbenv / bin: $ PATH" in "" eingeschlossen, daher beziehen sich "$ HOME" und "$ PATH" auf die Werte in den Umgebungsvariablen. Der Wert von "$ HOME" ist in meinem Fall "/ home / [Benutzername]" und "PATH" ist "/ home / [Benutzername] / bin: ..." wie zuvor.
Das heißt, der Wert von "$ PATH", definiert durch "export PATH =" $ HOME / .rbenv / bin: $ PATH "" ist "/ home / [Benutzername] /. Rbenv / bin: / home / [Benutzername] / bin: ・ ・ ・ `. Dadurch kann die Shell auf die ausführbare Datei verweisen, die sich in `/ home / [Benutzername] /. Rbenv / bin` befindet.
# Schließlich
Nein, es war lang. Zuerst dachte ich, es sei ein Durcheinander, wie das Durchlaufen eines Pfades oder eines .bash_profile, aber als ich es nachschlug, war es überraschend interessant zu verstehen. Nachdem die Schienenumgebung eingerichtet ist, möchte ich zusammenfassen, was ich aus Schienen gelernt habe.
Recommended Posts