Wenn ich eine .sh-Datei öffne, wird sie in gedit anstelle des Terminals geöffnet. Ich kann keine ähnliche Option finden wie Rechtsklick → Öffnen mit → Andere Anwendung ... → Terminal .
Wie öffne ich diese Datei im Terminal?
ruby foo.rb
Wenn ich eine .sh-Datei öffne, wird sie in gedit anstelle des Terminals geöffnet. Ich kann keine ähnliche Option finden wie Rechtsklick → Öffnen mit → Andere Anwendung ... → Terminal .
Wie öffne ich diese Datei im Terminal?
ruby foo.rb
Antworten:
Erteilen Sie die Ausführungserlaubnis für Ihr Skript:
chmod +x /path/to/yourscript.sh
Und um dein Skript auszuführen:
/path/to/yourscript.sh
Da .
sich auf das aktuelle Verzeichnis bezieht: Wenn yourscript.sh
es sich im aktuellen Verzeichnis befindet, können Sie dies vereinfachen, um:
./yourscript.sh
bash /path/to/yourscript.sh
dann brauchen Sie nichtchmod +x
. /path/to/yourscript.sh
wenn das Skript einige Umgebungsvariablen einrichten muss.
./path/to/yourscript.sh
(ohne das Leerzeichen danach .
)? Ich finde, eines ist am einfachsten und am einfachsten zu bedienen ... Aber auf jeden Fall ist hier meine Alternative, die fast das Gleiche tun sollte ./
, obwohl ich nicht verstehe, warum Sie Folgendes nicht verwenden würden ./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... FILENAME
nach Ihren Wünschen bearbeiten . Beachten Sie auch, dass verwendet sh
wird, wenn es keine Alternative gibt.
Sie müssen Shell-Skripte als ausführbar markieren, um sie über den Dateimanager ausführen zu können:
Klicken Sie mit der rechten Maustaste auf Ihre .sh
Datei und wählen Sie Eigenschaften :
In der Berechtigungen Registerkarte überprüfen zulassen Datei als Programm ausgeführt wird :
Schließen Sie das Eigenschaftenfenster und doppelklicken Sie auf die Datei. Ein Dialogfeld wird eingeblendet, in dem Sie das Skript in einem Terminal ausführen können:
Öffnen Sie ein Terminal und navigieren Sie zu dem Ordner, in dem sich die .sh
Datei befindet. Dann tippe:
sh <name of file>.sh
Bevor Sie die .sh-Datei ausführen können, müssen Sie sie ausführbar machen:
Stellen Sie sicher, dass Sie der Quelle vertrauen, von der Sie die Datei bezogen haben. Es könnte ein Virus sein .
Das hat ein Problem. Das Terminal wird sofort geschlossen und Sie können die Ausgabe nicht sehen.
Finden Sie, wo die .sh-Datei
ls
undcd
ls
listet die Dateien und Ordner im aktuellen Ordner auf . Probieren Sie es aus: Geben Sie "ls" ein und drücken Sie die Eingabetaste.cd
, gefolgt von einem Leerzeichen und einem Ordnernamencd ..
um eine Ebene nach oben zu wechselnFühren Sie die SH-Datei aus
Sobald Sie zum Beispiel script1.sh
mit ls
ausführen können, sehen Sie Folgendes:
./script.sh
Das Terminal verfügt über zahlreiche leistungsstarke Tools, auf die Sie durch Eingabe der Befehle zugreifen können. Profis suchen die .sh-Datei, indem sie ls
und eingeben cd
. Sobald Sie sich im richtigen aktuellen Ordner befinden , können Sie das Skript folgendermaßen ausführen:
./script1.sh
oder Sie können die Ausgabe ausführen und in eine Datei umleiten:
./script1.sh > out.txt
oder Sie können die Ausgabe nach Stichwörtern filtern (zB "Äpfel") und dann in eine Datei umleiten:
./script1.sh | grep apples > ./only-apples
Es gibt Tausende von Dingen, die Sie an dieser Datei vornehmen können, indem Sie nur ein paar Befehle eingeben.
Mit einem weiteren einfachen Befehl können Sie eine Datei aus dem Internet herunterladen:
wget www.google.com/images/logos/ps_logo2.png
Und dann öffne die Datei wie folgt:
shotwell ps_logo2.png
Unter Ubuntu 13.04 werden in Nautilus geöffnete ausführbare Dateien jetzt standardmäßig in gedit geöffnet, anstatt den Benutzer zur Ausführung aufzufordern. Um das klassische Verhalten zu aktivieren, müssen Sie die Einstellungen anpassen:
Nautilus → Menü Bearbeiten → Einstellungen → Registerkarte Verhalten → Aktivieren Sie das Optionsfeld bei Jedes Mal fragen.
Wechseln Sie in das Verzeichnis, in dem sich die .sh
Datei befindet cd
. In diesem Beispiel habe ich meine sh
Datei als gespeichert~/Desktop/shell_practice/test.sh
Zuerst müssen Sie pwd
herausfinden, wo Sie sich gerade befinden. Wenn dies der Fall ist /home/username
(wo username
ist Ihr echter Benutzername?), können Sie ausführen
cd Desktop/shell/practice
Wenn Sie woanders zu sein scheinen, können Sie den absoluten Pfad verwenden
cd ~/Desktop/shell/practice
oder
cd $HOME/Desktop/shell/practice
oder auch
cd /home/$USER/Desktop/shell/practice
Dies sind alles Möglichkeiten, um den gleichen Ort zu beschreiben. Sobald Sie den Speicherort Ihres Skripts erreicht haben, geben Sie Folgendes ein
ls
Wenn Sie die sh
Datei in der Ausgabe sehen können, können Sie chmod
sie ausführbar machen. Denken Sie in meinem Fall daran, dass der Dateiname so lautet test.sh
, dass ich ausführen würde
chmod u+x test.sh
Da wir uns jetzt im selben Verzeichnis wie das Skript befinden, müssen wir der Shell angeben, dass die Datei ausgeführt werden soll, indem wir ihren Speicherort angeben ./
(das aktuelle Verzeichnis, gefolgt von einem Pfadtrennzeichen, um sie vom Dateinamen zu unterscheiden). Um meine Datei auszuführen, würde ich Folgendes eingeben:
./test.sh
Wenn Ihr Skript korrekt geschrieben wurde, wird es ohne Fehler ausgeführt ...
2 Hauptschritte.
Verwenden Sie im Terminal gedit, um ein Skript mit der Erweiterung ".sh" auf dem Desktop zu schreiben und zu speichern. (aber jeder Texteditor kann benutzt werden)
öffne Nautilus und klicke mit der rechten Maustaste auf die Datei script.sh.
Aktivieren Sie unter "Eigenschaften" das Kontrollkästchen "Ausführen der Datei zulassen".
Klicken Sie im Nautilus-Menü auf Datei, dann auf Einstellungen und dann auf Verhalten
Überprüfen Sie die Option "Ausführbare Textdateien beim Öffnen ausführen".
Wenn Sie nun auf die Datei auf dem Desktop doppelklicken, sollte sie ausgeführt werden. keine Notwendigkeit für .
oder./
Klicken Sie mit der rechten Maustaste auf die .sh
Datei und machen Sie sie ausführbar.
Öffne ein Terminal ( Ctrl+ Alt+ T).
Ziehen Sie die .sh
Datei in das Terminalfenster und beobachten Sie sie mit Ehrfurcht.
Hierfür gibt es verschiedene Möglichkeiten.
Greifen Sie im Terminal auf das Verzeichnis zu, in dem sich die Bash-Datei befindet cd
(Verzeichnis wechseln).
Ex. cd Downloads
Lauf bash <filename>.sh
Dies funktioniert auch mit .run-Dateien. Ein Beispiel für diese Verwendung finden Sie auf dieser Webseite zum Aktualisieren der Rhythmbox.
Navigieren Sie im Terminal zu dem Verzeichnis, in dem sich die Bash-Datei befindet.
Lauf chmod +x <filename>.sh
Öffnen Sie die Datei in Nautilus.
Für Ubuntu 18.04 gibt es eine kleine Änderung, da kein Popup-Dialogfeld angezeigt wird.
Was Sie also tun müssen, ist:
Klicken Sie mit der rechten Maustaste auf "Dateien", wählen Sie "Einstellungen"> "Registerkarte" Verhalten ">" Nachfragen "unter" Ausführbare Textdatei ".
Wenn Sie nun auf eine .sh-Datei doppelklicken, wird ein Popup-Fenster angezeigt. Dort können Sie die Option "Im Terminal ausführen" auswählen, um Ihre .sh-Datei auszuführen.
In Ubuntu 16.04 ist dies, wie man es in Terminal öffnet:
Zur die File Manager > Edit > Preferences > Behavior
für ein Executable Text Files
und wählen Sie Ask each time
.
Das Problem ist, dass es standardmäßig auf eingestellt ist View Executable Files when they are opened
.
Wenn Sie Ihr Shell-Skript oder eine andere ausführbare Datei, die Sie erstellt haben, in / usr / local / bin ablegen, wird es gefunden und ausgeführt, ohne dass ein Ordnerpfad in der Befehlszeile angegeben oder dem Namen ./ hinzugefügt werden muss. Zum Beispiel habe ich das folgende einfache dreizeilige Bash-Skript erstellt, um Festplatten-UUIDs anzuzeigen:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
Ich habe die Datei uuid aufgerufen und in / usr / local / bin abgelegt. Alles was ich in der Kommandozeile eingeben muss ist:
uuid
Nun, auch ich hatte das gleiche Problem. Ich wollte die .sh-Datei ausführen und sie wurde unter CentOS 7 mit Gedit geöffnet.
.sh
Datei, die ich ausführen wollte.Das Problem, das ich bei einigen Distributionen festgestellt habe, ist, dass sie die Voreinstellungsoption in Nautilus ausgeblendet haben, aber es ist dasselbe, sie in Ubuntu und anderen Distributionen mit Gnome3 zu beheben (ich habe buchstäblich nur die Fedora-Version davon gemacht und das eigentliche Update veröffentlicht, um mich daran zu erinnern wie in der Zukunft).
Installieren dconf-editor
sudo apt-get install dconf-editor
Führen Sie dconf-editor
das Programm mit dem Benutzerkonto aus, für das Sie dies möchten, dh NICHT root
dconf-editor
Navigieren Sie zu folgendem Schema:
org.gnome.nautilus.preferences
Ändern Sie die Standardoption so, dass sie nicht standardmäßig geöffnet wird:
Suchen executable-text-activation
Sie auf das Wort display
und wechseln Sie zuask
Dadurch haben Sie die Möglichkeit, die Datei in Zukunft zu bearbeiten, anzuzeigen oder auszuführen
Ich bin ein Neuling in Linux und hatte nur das gleiche Problem. Wenn alle Stricke reißen:
Sie können auch .
Tricks anwenden und andere Antworten vorschlagen.
Zum Beispiel:
chmod +x filename.sh
Unter der Annahme, dass Sie bereits den Pfad zur Datei angegeben haben, führen Sie die Datei mit einem der folgenden Befehle aus:
sh filename.sh
./filename.sh
. filename.sh