Wie kann ich einen benutzerdefinierten Terminalbefehl erstellen (um ein Skript auszuführen)?

36

Ich bin ein Webentwickler. Wenn ich anfangen will zu arbeiten, führe ich immer einen Befehl auf dem Terminal aus. Beispielsweise:

sudo service apache2 start
sudo service mysql start
sublime

Um diesen Prozess zu beschleunigen, erstelle ich eine .shDatei, die diese Befehle enthält.

Wenn ich jetzt mit der Arbeit beginnen möchte, führe ich nur diese .sh-Datei aus und alle Dienste (mysql, apache2 usw.) werden gestartet.

Ist es möglich, einen benutzerdefinierten Befehl dafür zu erstellen? Wenn ich zum Beispiel sudo start-workingzu Terminal tippe, führt es diese Befehle aus

Eray
quelle

Antworten:

58

Üblicherweise erstellen die Benutzer ein binVerzeichnis in ihrem Ausgangsverzeichnis:mkdir ~/bin

Dann können Sie Ihre benutzerdefinierten Skripte dort einfügen: mv start-working ~/bin

Stellen Sie sicher, dass Ihr Skript ausführbar ist: chmod +x ~/bin/start-working

Fügen Sie dies am Ende Ihrer ~/.bashrcDatei hinzu (wenn Sie bash verwenden, was Sie wahrscheinlich sind):export PATH=$PATH:~/bin

Melden Sie sich jetzt wieder bei Ihrem Terminal an und ab, und Sie sollten in der Lage sein, einfach zu tippen start-working, und Ihr Skript wird ausgeführt.

Jetzt, da Ihr Pfad eingerichtet ist, können Sie alle neuen Skripte, die Sie in Ihren ~/bineinfügen, einfach den Namen von eingeben.

Joseph Oppegaard
quelle
13
+1 und anstatt sich abzumelden und einzuloggen, können Sie einfach den Befehl source ~/.bashrcoder . ~/.bashrcausführen, um die Änderungen zu übernehmen.
Meysam
Joe Oppegaard, ich finde diese Informationen wirklich nützlich, da es fertige Skripte gibt, die ich als Befehl ausführen möchte und nicht als Skript. Gibt es eine Möglichkeit, alle von Ihnen in ~ / bin erstellten Unterverzeichnisse einzuschließen, damit Sie nicht mehrere Exportzeilen in .bashrc einfügen müssen? Ich habe es versucht, export PATH=$PATH:~/bin/*aber das hat nicht die gewünschten Ergebnisse geliefert.
Kevin Wyman
2
Die Standardeinstellung ~/.profilefügt ~/binPATH bereits hinzu. Wenn Sie sie also zusätzlich anhängen, ~/.bashrcwird sie sinnlos zweimal oder öfter hinzugefügt.
Geirha
Es hat funktioniert, ohne dass ich irgendetwas an .bashrc angehängt habe. Sie können dies also möglicherweise überspringen, wie Geriha sagt
Aaron Flores,
Meiner Erfahrung nach müssen Sie beim Hinzufügen einer neuen Datei einen chmod-Befehl wiederholen, andernfalls wird die Erlaubnis verweigert
Webwoman
15

Ich suchte nach benutzerdefinierten Befehlen und fand diese Frage unter anderem. Ich glaube, ich habe Aliase gesucht, also gebe ich Ihnen die Möglichkeit, dies mit einem Alias ​​zu tun.

In Ihrem privaten Ordner:

nano .bash_aliases

Und dort können Sie Ihre Befehle in einer Zeile aufschreiben:

alias start-working='sudo service apache2 start; sudo service mysql start; sublime'

Nach dem Speichern der Datei konfigurieren Sie Ihren bashrc neu

. ~/.bashrc

Und überprüfen Sie, ob Ihr neuer Alias ​​geladen ist

alias

Jetzt können Sie loslegen und loslegen

start-working
roho
quelle