Ich habe ein c-Programm geschrieben. Ich möchte das Programm weiterleiten und ich möchte es sinnvoll erscheinen lassen. Also statt ./a.out
jedes Mal zu schreiben, möchte ich es changetext
nennen. Um das zu erreichen, kompilierte ich mein Programm folgendermaßen: gcc -o changetext myprog.c
. Nach meinem besten Wissen sollte dies die Verwendung von ./a.out
und changetext
ersetzen. Aber ich bekomme command not found
. Ich bin neu in c und Unix-Umgebung. Jeder Vorschlag geschätzt.Wie führe ich mein Programm ohne ./a.out Befehl aus?
Antwort
Wie ich in einem Kommentar sagte. entweder, können Sie einen Punkt Strich (./
) vor der ausführbaren Datei gesetzt, um sie auszuführen
./changetext
Oder setzen Sie in einem Verzeichnis in die in der Umgebungsvariable PATH verwiesen wird. Eine schöne Erklärung dieses Sicherheitsmerkmal ist hier zu finden (dank rubenvb):
http://www.linfo.org/dot_slash.html
Er sagt, dass dies mehr oder weniger mit dem gleichen Namen integrierten Befehle vom Benutzer geschriebenen Befehle zu unterscheiden. Ich bin jedoch nicht überzeugt. Die Shell könnte einfach vordefinierte Namen den vom Benutzer bereitgestellten Namen vorziehen und sowohl im aktuellen Verzeichnis als auch im PATH suchen.
Aber das ist der * nix Weg.
Um ein Programm wie Ihre changetext
mit nur dem Befehl chanhetext
zu kompilieren und auszuführen, müssen Sie die Binärdatei in ein Verzeichnis einfügen, das in Ihrer PATH-Umgebungsvariablen aufgeführt ist. Es wird empfohlen, Programme, die Sie selbst erstellt haben, im Verzeichnis ~/bin/
zu speichern. Der Befehl würden Sie verwenden, um dies zu erreichen, würde die folgende sein, vorausgesetzt, ~/bin/
bereits vorhanden ist:
gcc -o ~/bin/changetext myprog.cWenn es nicht vorhanden ist, können Sie es einfach erstellen, dann abmelden und in zurück
Sie müssen sich nicht abmelden, Sie können einfach Ihren '$ PATH' aktualisieren (vorausgesetzt, Sie wissen, wie). –
- 1. Ich führe mein Programm in Java aus
- 2. Wie führe ich einen Befehl ohne Sudo?
- 3. Wie führe ich ein Python-Programm aus?
- 4. Wie führe ich einen Befehl als ursprünglicher Benutzer aus einem sudo'd Programm aus?
- 5. Python: Wie führe ich ein externes Programm aus?
- 6. Wie führe ich einen Befehl am Terminal von Java-Programm?
- 7. Wie führe ich dieses einfache C++ Programm aus?
- 8. Wie führe ich ein Programm aus, bevor die Deinstallation startet?
- 9. Wie interpretiere und führe ich den folgenden ant-Befehl aus?
- 10. Wie führe ich ein Java-Programm aus einem anderen Verzeichnis?
- 11. Wie führe ich einen Befehl von mit in MSI aus?
- 12. Wie führe ich einen Befehl mit String-Formatierung aus?
- 13. Wie führe ich einen Befehl in einem Chroot-Gefängnis nicht als root und ohne sudo aus?
- 14. Wie führe ich einen SSH-Befehl in einem BASH-Shell-Skript über ein PHP-Programm aus?
- 15. Wie führe ich ein einfaches Java-Programm in Eclipse aus?
- 16. Wie führe ich ein Windows-Programm von Adobe Air aus?
- 17. Wie führe ich ein CLion Programm in Gnome Terminal aus?
- 18. Wie führe ich ein Programm vom Dateideskriptor aus?
- 19. Wie führe ich ein externes Programm von Swift aus?
- 20. Wie führe ich ein Programm mit Maven aus?
- 21. Wie führe ich Google Compute Engine ohne Segmentation-Fehler aus?
- 22. Wie führe ich einen Befehl im Hintergrund unter Windows aus?
- 23. Wie führe ich den Befehl rd in Java aus?
- 24. Wie führe ich jeden Befehl in einer Liste aus?
- 25. Wie führe ich den Befehl git von build.gradle aus?
- 26. Wie führe ich einen Befehl in C# aus?
- 27. Wie führe ich einen Befehl aus und bekomme seine Ausgabe
- 28. Wie führe ich den in einer Variablen gespeicherten Befehl aus?
- 29. Wie führe ich ein Programm als niemand?
- 30. Wie führe ich einen Fabric Anywhere Sudo Befehl aus, ohne Passwort eingeben zu müssen?
Versuchen Sie './Changetext' stattdessen. –
Und es funktioniert! Vielen Dank! –
Wenn Sie '. /' Nicht schreiben wollen, legen Sie es in ein Verzeichnis, das sich in Ihrem $ PFAD befindet. – Barmar