So erstellen Sie eine Datei und fügen eine Zeile mit dem OS X-Terminal ein

22

Wie kann ich mit dem Terminal unter OS X Folgendes tun?

Erstellen Sie eine Datei mit dem Namen .inputrcim Home-Verzeichnis eines Benutzers und fügen Sie diese Zeile ein:

set completion-ignore-case On

GGbro
quelle

Antworten:

31

Schnelle Antwort

touch ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

Erläuterung

Erstellen Sie zuerst die Datei:

touch ~/.inputrc

Fügen Sie dann den Inhalt der Datei hinzu:

echo "set completion-ignore-case On" >> ~/.inputrc

touchErstellt eine leere Datei (vorausgesetzt, die ~/.inputrcDatei existiert noch nicht). echoSchreibt Text in die "Standardausgabe" (kurz "stdout"), die normalerweise auf Ihrem Bildschirm angezeigt wird. Aufgrund der Umleitung ( >>) wird die Ausgabe jedoch an umgeleitet ~/.inputrc. Bei diesem Setup wird die Zeile an die Datei angehängt.

Wenn es ~/.inputrcbereits existiert und Sie den Inhalt löschen (bereinigen) möchten , und dann die Zeile darin schreiben (dh eine Datei nur mit dieser Textzeile erstellen ), gehen Sie wie folgt vor:

echo "set completion-ignore-case On" > ~/.inputrc

Der einzelne Pfeil ( >), auch bekannt als "größer als", weist Sie echoan, eine Datei mit nur dem angegebenen Text als Inhalt der Datei zu erstellen, anstatt den Inhalt an das Ende der Datei zu schreiben. ( echoDie Datei wird tatsächlich nicht erstellt. Die Shell erstellt die Datei und verwirft vorhandene Inhalte. Der echoBefehl schreibt die neuen Inhalte.)


Wenn Sie den ersten Ansatz (mit dem >>) verwenden und feststellen, dass die von Ihnen hinzugefügte Zeile in die vorherige Zeile übergeht, z.

ein paar Sachen hier
Einige weitere Dinge hier setzen Completion-Ignore-Case auf On

Dann müssen Sie die Datei bearbeiten, um sie zu reparieren. Dies würde passieren, wenn die letzte Zeile der bereits vorhandenen Datei mit einem Textzeichen statt einem "Newline" -Zeichen (dh einer Zeilenende-Markierung) endet. Dies ist für .TXTDateien unter Windows üblich, unter * nix jedoch selten.

Wenn Sie im Voraus feststellen, dass Ihre .inputrcDatei bereits Inhalte enthält, die nicht mit einem Zeilenumbruch enden, sollten Sie echostattdessen die folgende Anweisung verwenden:

echo -e "\nset completion-ignore-case On" >> ~/.inputrc

Das \nZeichen vor der Phrase wird als Newline-Zeichen interpretiert, sodass nach dem vorherigen Inhalt und vor den neuen Elementen, die Sie hinzufügen möchten, eine Newline eingefügt wird.

Oder etwas mehr Tippen, aber viel besser lesbar,

echo "" >> ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

oder

(echo ""; echo "set completion-ignore-case On") >> ~/.inputrc

die das Gleiche tun; Geben Sie also das fehlende Zeilenumbruchzeichen für den vorhandenen Text ein und fügen Sie anschließend den set completion-…Befehl hinzu.

Caleb Xu
quelle
1
Es gibt keinen Grund, den touchBefehl hier zu verwenden. echo "…" >> ~/.inputrcist ganz genug.
G-Man sagt, dass Monica
1
Es sei denn, die Datei, an die Sie anhängen möchten, ist nicht vorhanden.
amrx
@Baron: Nein, echo "…" >> ~/.inputrcerstellt die Datei, wenn sie nicht existiert. Mit Ausnahme von pathologischen Fällen, wie ~sie nicht existieren, haben Sie keine Schreibberechtigung in ~oder das Dateisystem ist voll. und in solchen Fällen touchnicht helfen.  touchist hier völlig überflüssig.
G-Man sagt, dass Monica
4

Alles was Sie tun müssen ist:

echo "set completion-ignore-case On" >> ~/.inputrc 

echo gibt den Text einfach über den normalen Ausgabekanal (stdout) wieder

Das >>schreibt die stdout-Ausgabe vom linken Befehl in die rechte Datei, die in Ihrem Fall ist~/.inputrc

~/ ist das gleiche wie /home/your_username/

0x7a79
quelle