Ich habe mehrere Terminalbefehle, die ich zur Fehlerbehebung verwende, indem ich sie eingebe nacheinander in das Terminalfenster.
Für diese Befehle muss das Kennwort des Benutzers eingegeben werden.
Ich suche nach einer Möglichkeit, eine universelle (Skript-) Datei zu erstellen mit diesen Befehlen. Ich möchte die Datei auf einem Mac ausführen können, indem ich einfach darauf doppelklicke oder sie über das Terminalsymbol ziehe.
So etwas habe ich noch nie gemacht. Gibt es eine Möglichkeit, ein solches Skript zu erstellen? Bitte geben Sie Bescheid.
Kommentare
- Wollen Sie darum bitten, dass Sie ein Skript ausführen möchten, ohne dass der Benutzer eingibt ihr Passwort?
- @Allan Ich möchte eine Datei anstelle von mehreren Befehlen ausführen. Es wäre gut, es auszuführen, ohne dass der Benutzer sein Passwort mindestens einmal eingibt, aber höchstwahrscheinlich unmöglich, wenn ich ' mich nicht irre.
- Das ' ist definitiv möglich, es sei denn, Sie müssen etwas tun, das admin erfordert – siehe meine Antwort unten
- Vielleicht nicht genau das, was Sie ' Ich bin danach, aber ich fand es sehr effektiv. Sie können
alias
verwenden, z.alias ns="sudo netstat -tulpn"
. Sie können diese sogar in@reboot
-Zeilen auf Crontab einfügen, wenn Sie sie bei jedem Start benötigen. Jetzt kann ich einfachns
eingeben. Glückseligkeit.
Antwort
Kurze Antwort
A .command
Skript sollte den Trick ausführen
Schritt für Schritt
- Öffnen Sie TextEdit und erstellen Sie eine neue Datei
- Konvertieren Klicken Sie auf Format> Nur Text erstellen
-
. Fügen Sie Ihre Befehle hinzu, einen pro Zeile. Sie können beispielsweise Folgendes tun:
#! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder
-
Führen Sie
chmod u+x ~/Desktop/myCommandScript.command
in aus Ihr Terminal, wobei~/Desktop/myCommandScript.command
der Pfad zu Ihrem Skript ist. Dadurch erhält das Terminal die Berechtigung zum Ausführen der Datei. - Sie sind fertig! Doppelklicken Sie auf die auszuführende Datei. Das Ziehen über das Terminalsymbol funktioniert ebenfalls.
Hinweise:
- Wenn Sie etwas tun müssen, für das Root-Zugriff (Administratorzugriff) erforderlich ist, können Sie Ihrem Befehl
sudo
voranstellen. Wenn das Skript ausgeführt wird, müssen Sie Ihr Kennwort eingeben (und Administrator sein). - Wenn der Endbenutzer kein Administrator ist, Sie jedoch etwas tun müssen, für das Root-Zugriff erforderlich ist, können Sie es verwenden
su someAdminName
, das den Befehl alssomeAdminName
ausführt (Sie benötigen sein Passwort).
Sie können auch hier im Stapelüberlauf sehen, um weitere Informationen zu erhalten.
Kommentare
- Gibt es eine Möglichkeit, eine Befehlsdatei so zu erstellen, dass sie sich nicht abmeldet? Ich möchte eine Befehlsdatei haben, die das Terminal mit einer vordefinierten Pfadvariablen öffnet.
Antwort
Ein Skript ist Nur eine Reihe von Befehlen, damit Sie es in ein Bash-Skript einfügen können.
#!/bin/bash command 1 command 2 command 3
Nun hängt dies alles von den Befehlstypen ab und davon, ob oder nicht Sie erfordern Benutzereingriffe.
Wenn Sie jedoch beispielsweise Diagnoseinformationen erhalten, können Sie ein Skript verwenden, das
#!/bin/bash # Get SMART status of main drive diskutil info disk0 | grep -i smart # Get the model of the machine in question system_profiler SPHardwareDataType | grep -i Identifier
Dies sind nur Beispiele . Beachten Sie, dass alle generierten Ausgaben an die Konsole (Bildschirm) gesendet werden. Sie können die Ausgabe jedoch in eine Datei umleiten, indem Sie am Ende jedes Befehls >> /path/to/outputfile.txt
anhängen, sodass Sie eine Datei haben, die Sie analysieren können, sobald die Datei ausgeführt wurde.
Sie können die Datei diagnostics.sh
benennen und an einer beliebigen Stelle platzieren. Stellen Sie einfach sicher, dass Sie es ausführbar machen, indem Sie den Befehl chmod +x diagnostics.sh
eingeben und ./diagnostics.sh
verwenden, um es auszuführen, oder Doppelklicken Sie darauf, um es auszuführen, wenn es auf Ihrem Desktop gespeichert ist. .