
Ich weiß, wie ich meine eigenen Terminalbefehle erstelle, und das wäre für mich beim Kompilieren aller meiner Java-Klassen in einem Ordner wirklich nützlich. Ich sehe auch, dass die Leute dafür normalerweise einen Ordner ~/bin erstellen und Dateien .sh mit den Zeilen ablegen, die sie ausführen möchten, aber ich konnte das nicht richtig verstehen. Ich erstelle beispielsweise eine compile.sh mit einigen Zeilen
-gcc file -o file
-gcc file1 -o file1
aber wie ich gelesen habe, muss ich auch eine Zeile zu einer Datei namens .bashrc hinzufügen, die in meinem Home-Ordner versteckt ist, und ich weiß nicht, wie das geht. Gibt es eine einfachere Möglichkeit, diese Datei zu bearbeiten? Nachdem ich das getan habe, wird mein benutzerdefinierter Befehl der Name der .sh-Datei sein (Kompilierung)?
Antwort1
Der einfachste Weg, Bash-Skripte für alle Benutzer Ihres Computers verfügbar zu machen, besteht darin, sie in zu platzieren /usr/local/bin
. Dazu benötigen Sie allerdings Administratorrechte.
Erstellen Sie Ihr Skript:
Öffnen Sie Ihren bevorzugten Texteditor und schreiben Sie alle Befehle, die das Skript ausführen soll, einen Befehl pro Zeile.
Sie können Bash-Skripten Kommentare hinzufügen, indem Sie eine Zeile mit beginnen
#
.Wenn Sie fertig sind, fügen Sie genau diese Zeile unten als erste Zeile oben in Ihrem Skript ein. Sie wird „Shebang“ genannt und teilt der Shell mit, mit welchem Interpreter Ihr Skript ausgeführt werden soll.
#!/bin/bash
Hier ist ein einfaches Beispiel eines vollständigen Skripts, das die beiden in Ihrer Frage genannten Befehle ausführt:
#!/bin/bash # Compile 'file': gcc file -o file # Compile 'file1': gcc file1 -o file1
Verschieben Sie Ihr Skript an den richtigen Speicherort:
Der Speicherort, an dem Sie eigene Skripte für alle Benutzer platzieren sollten, ist
/usr/local/bin
.Da dieses Verzeichnis dem Benutzer gehört
root
, müssen Sie ein Administrator sein undsudo
Dateien dorthin verschieben.Ich gehe davon aus, dass Sie Ihr Skript in Ihrem Home-Verzeichnis erstellt haben
~/my_script.sh
. Öffnen Sie einfach ein Terminal und geben Sie den folgenden Befehl ein. Ersetzen Sie dabeiSCRIPTNAME
durch den gewünschten Namen. Dieser Name ist der Befehl, den Sie eingeben müssen, um das Skript auszuführen. Die.sh
Dateierweiterung ist nicht erforderlich.sudo mv ~/myscript.sh /usr/local/bin/SCRIPTNAME
Legen Sie den richtigen Besitzer und die richtigen Berechtigungen fest:
Das Skript sollte Eigentum von sein und für jeden beschreibbar
root
, aber für jeden lesbar und ausführbar sein. Die beiden folgenden Befehle stellen dies sicher:sudo chown root: /usr/local/bin/SCRIPTNAME sudo chmod 755 /usr/local/bin/SCRIPTNAME
Führen Sie Ihr Skript aus und genießen Sie:
Jetzt können Sie einfach
SCRIPTNAME
(oder wie auch immer Sie es aufgerufen haben) in Ihr Terminal eingeben und das Skript wird ausgeführt.
Antwort2
Das Schreiben von Skripten ist eine sehr bequeme Möglichkeit zur Ausführungviele Befehle aus einer Datei, ich würde vorschlagen, Funktionen zu verwenden, bei denen nur ein oder zwei Befehle erforderlich sind.
Nehmen Sie zum Beispiel die Funktionsdefinition unten
compile()
{
gcc "$1" -o "${1%%.*}" && printf "<<< Compiled successfully\n"
}
Indem Sie es in Ihre .bashrc
Datei einfügen (und dann ausführen source ~/.bashrc
oder eine neue Registerkarte im Terminal öffnen), können Sie diesen Befehl von überall ausführen, ohne ihn ~/bin
zu Ihrer PATH
Variable hinzuzufügen, und einen Dateinamen als Befehlszeilenargument angeben, wie folgt
compile somecode.c
Nebenbei bemerkt, Sie können diese Datei bearbeiten, indem Sie sie einfach gedit ~/.bashrc
von der Kommandozeile aus aufrufen
Für diejenigen unter Ihnen, die sich fragen, was "$1"
und bewirkt "${1%%.*}"
: Das "$1"
bezieht sich auf den ersten Befehlszeilenparameter (in diesem Fall "somecode.c"
), was für "${1%%.*}"
- das ist die Parametererweiterung , insbesondere die, die Suffixe entfernt und alles nach dem Punkt wegwirft. Mit anderen Worten wird das somecode.c
zu somecode
. Weitere Informationen finden Sie unterBash-HandbuchseiteAbschnitt zur Parametererweiterung
Antwort3
Bevor ich darauf eingehe, möchte ich klarstellen, dass Sie keine neuen Befehle erstellen, sondern Skripte, die als ausführbare Dateien ausgeführt werden können. Sie können sich jedoch wie ein Befehl verhalten, da Sie sie von überall aus ausführen können.
Wenn Sie in Ihrem Home-Ordner keinen Ordner mit dem Namen „bin“ haben, erstellen Sie einen.
Öffnen Sie nun ein Terminalfenster und geben Sie ein nano ~/.bashrc
.
Dadurch wird ein Editor geöffnet. Fügen Sie am Ende dieser Datei eine neue Zeile mit dem Inhalt hinzu PATH="$HOME/bin:$PATH"
.
Speichern Sie die Datei nun durch Drücken von STRG+O (der Buchstabe o, nicht Null) und drücken Sie dann die Eingabetaste. Beenden Sie den Editor mit STRG+X. Melden Sie sich ab und wieder an, damit die Änderungen wirksam werden, oder starten Sie Ihren Computer neu, wenn das nicht funktioniert.
Jetzt sind alle Skripts, die Sie in Ihrem Bin-Ordner erstellen, überall in einem Terminalfenster zugänglich.
Sie können diese Skripte entweder mit nano oder gedit (dem grafischen Texteditor von Ubuntu) oder jedem beliebigen Texteditor erstellen. Denken Sie nur daran, Ihr Skript im Ordner ~/bin zu speichern und Ihre Datei ausführbar zu machen. Dafür gibt es zwei Möglichkeiten:
GUI: Klicken Sie mit der rechten Maustaste auf die Datei, wechseln Sie zur Registerkarte „Berechtigungen“ und aktivieren Sie das Kontrollkästchen „Ausführung als Programm zulassen“.
TERMINAL :chmod +x /location/of/your/file