Ich habe mich gefragt, ob ich meine eigenen Befehle eingeben könnte, als ob ich "Musik" in der Befehlszeile eingeben würde. Mein VLC sollte sich öffnen und mit der Wiedergabe meiner Wiedergabeliste beginnen. Das VLC-Ding ist nur ein Beispiel, aber die Frage bleibt.
Kann ich meine eigenen Befehle machen? Wenn ja wie
command-line
harisibrahimkv
quelle
quelle
Antworten:
Ja - erstellen Sie eine Datei mit dem Namen music und fügen Sie Folgendes ein:
Geben Sie als Nächstes Folgendes ein
chmod +x music
: Dadurch wird die Datei ausführbar. Sie können jetzt eingeben./music
, um dieses Skript auszuführen.Es ist eine gute Idee,
echo $PATH
das Skript einzugeben und in eines dieser Verzeichnisse zu kopieren. Ich würde vorschlagen,$HOME/bin
das zu deinem PFAD über~/.bash_profile
oder hinzuzufügen~/.profile
. Dies kann durch Hinzufügen (zu einer dieser Dateien) durchgeführt werden:export PATH="$HOME/bin:$PATH"
. Sie müssen dann ausführensource .bash_profile
(vorausgesetzt, Sie haben das in diese Datei geschrieben), um sie neu zu laden.Eine andere Alternative wäre, den Befehl hinzuzufügen, den Sie als Bash-Alias ausführen möchten. Sie können dies tun, indem Sie einer Datei
.bash_aliases
in Ihrem Ausgangsverzeichnis Folgendes hinzufügen :Laufen
source ~/.bash_aliases
oder ausloggen und einloggen und es sollte funktionieren :-)quelle
Der beste Weg, dies zu tun, besteht darin, eine Datei zu ändern (oder zu erstellen), die
.bash_aliases
in Ihrem privaten Ordner aufgerufen wird .Die Syntax ist ziemlich einfach:
Wenn Sie mit diesem Befehl
install
ein Terminal eingeben, wird es stattdessen als interpretiertsudo apt-get -y install
Diese Befehle funktionieren jedoch nicht außerhalb eines Terminals.
quelle
Jede ausführbare Datei in einem Verzeichnis in Ihrem Pfad kann ein "Befehl" sein. Es kann sich um ein Skript handeln, wie in anderen Antworten vorgeschlagen, aber es kann sich auch um ein kompiliertes Programm in jeder unterstützten Sprache handeln, die Sie kennen.
Aliase funktionieren ebenfalls, sind jedoch begrenzt, da sie "Einzeiler" sind, sodass bei komplizierten Vorgängen schnell Code generiert wird, der sehr schwer zu lesen ist. Da sie im gleichen Variablenbereich wie die Shell ausgeführt werden, in die Sie sie eingeben, können sie leicht unbeabsichtigte Nebenwirkungen haben, z. B. das Verlassen eines anderen Verzeichnisses oder das Definieren von Variablen, die nur von der Aufgabe benötigt werden, die der Alias ausführt. (Natürlich möchten Sie manchmal einen Alias verwenden, da dieser erwünschte Nebenwirkungen hat.)
Wenn Sie Ihre neuen Befehle in einem Verzeichnis in Ihrem Pfad ablegen, können Sie von der Shell gefunden und ausgeführt werden. Am häufigsten werden sie in $ HOME / bin abgelegt. Wenn dieses Verzeichnis existiert, wird es häufig automatisch zu Ihrem Pfad hinzugefügt.
Zwei Dinge, die Sie bei der Einrichtung beachten sollten, sind: 1) Es ist normalerweise am besten, eindeutige Namen für Ihre Befehle zu verwenden, die nicht mit denen übereinstimmen, die bereits auf Ihrem System definiert sind. Es wird viel darüber diskutiert, aber das Wichtigste ist, dass vertraute Befehle keine unerwarteten Ergebnisse haben sollten, wenn jemand anderes Ihr System verwendet. Wenn Sie sich an einen allgemeinen Befehl gewöhnen, der etwas Besonderes ausführt, können Sie Probleme bekommen, wenn Sie auf einem anderen System arbeiten wo es nicht so definiert ist.
2) Sie können $ HOME / bin an den Anfang oder das Ende Ihres Pfades setzen (oder irgendwo dazwischen, aber das wird normalerweise nicht gemacht).
Das Hinzufügen vor Ihrem Pfad ist die bequemste Wahl, da Ihre Version eines Befehls immer diejenige ist, die ausgeführt wird und die schneller gefunden wird. Es ist auch eine Sicherheitslücke, da jeder, der eine Schreibberechtigung für $ HOME / bin erhalten kann (viel einfacher als Root-Zugriff), häufig verwendete Befehle sehr leicht durch potenziell bösartigen Code ersetzen kann. Wenn Sie jemals jemanden um Hilfe bitten müssen, der Ihr System nicht kennt, wird er wahrscheinlich durch das besondere Verhalten Ihrer benutzerdefinierten Befehle gestört, es sei denn, Sie verwenden viel zusätzlichen Aufwand, um alles zusätzlich zu erklären deine Frage stellen.
Das Hinzufügen an das Ende Ihrer Pfadanweisung ist etwas sicherer, da jeder Befehl mit demselben Namen wie Ihr Befehl, der sich bereits in Ihrem Pfad befindet, zuerst gefunden und stattdessen ausgeführt wird .
Um all dies zu vermeiden (auf Kosten einer zusätzlichen Eingabe), können Sie Ihren Befehl auch in einem Verzeichnis ablegen, das sich nicht in Ihrem Pfad befindet, sodass er so gut wie nie ungewollt ausgeführt wird, da Sie den vollständigen Pfadnamen eingeben müssen starte es.
Wie die meisten Dinge in Linux gibt es viele Möglichkeiten, neue Befehle zu erstellen und zu verwenden, und sie haben jeweils ihre eigenen Vor- und Nachteile.
quelle