Linux Kali unable to execute?
Was hab ich falsch gemacht?
Error: No such file or directory
Check nicht was da falsch ist...
4 Antworten
Warum ist das Script überhaupt in /usr/bin? Shell Scripts kannst du überall speichern, ich würde eher davon absehen, sie in /usr/bin oder /usr/sbin zu installieren. Du kannst dein Bash Script in jedem Verzeichnis einfach mit
bash /pfad/zum/script.sh
ausführen oder, wenn die Shebang richtig gesetzt ist, was bei dir nicht der Fall ist (das ist das Problem) kannst du auch einfach
/pfad/zum/script.sh
ausführen, was für den Fall, dass du im gleichen Verzeichnis bist dazu führt, dass du
./script.sh
ausführen musst, wie in einer anderen Antwort angedeutet.
In deinem Fall hast du einfach einen Tippfehler in der ersten Zeile
#!bin/bash
Da bin/bash in diesem Verzeichnis nicht existiert, weiß dein System nicht, wie sie das Script ausführen soll. Das Shebang is korrekt
#!/bin/bash
Weil was du in /usr/bin ablegst von jedem Benutzer ausgeführt werden kann, das ergibt nur dann Sinn, wenn dein Script von jedem Benutzer ausgeführt werden können soll.
Bash sagt deinem System einfach explizit, dass das Script mit der Bash Shell ausgeführt werden soll
Wie rufst du das Script denn auf? Also zunächst hat die Version, die du geteilt hast immer noch ein paar Fehler, zum andern ist mir nicht ganz klar, wozu du dafür überhaupt ein Script schreibst und nicht einfach Nmap o.ä nimmst
#!/bin/bash
for ip in $(seq 1 254); do
ping -c 1 $1.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" &
done
Wenn du das mit
bash ipsweeper.sh 10.0.0
aufrufst, oder welchem Subnet auch immer, erhälst du z.B.
10.0.0.1
10.0.0.3
10.0.0.2
10.0.0.8
10.0.0.11
10.0.0.13
10.0.0.15
10.0.0.18
10.0.0.19
10.0.0.22
10.0.0.23
Noch ein kleiner Hinweis, nicht jedes Subnet ist /24 ;), insgesamt ist das ganze Script ausbaufähig, es würde viel mehr Sinn ein Subnet als Argument zu übergeben, also sowas wie
bash ipsweeper.sh --subnet 10.0.0.0/24
Ich kenn mich leider garnicht aus, ich kenne ein paar Python Befehle die wir in der Schule gelernt haben und ich will mich da jetzt reinfinden. Da war mein erstes Script was ich einfach aus dem Internet abgeschrieben habe und austesten wollte. Aber deine ganzen Tipps helfen mir sehr weiter, danke!
Auf die fehlerhafte Shebang wurde ja bereits hingewiesen.
Ein leerer Delimiter (-d"") bei cut wird auch nicht funktionieren.
Tipp mal pwd und ls ein und guck ob du im richtigen Pfad bist und ob die bash Datei präsent ist.
Und verwend bitte nicht Kali Linux. Du bist jetzt gerade in deiner Script Kiddie Phase und das ist auch alles schön und gut, das machen die meisten Programmierer irgendwann durch. Aber Kali Linux ist einfach nur Debian mit Bloat. Kannst du auch alles auf den herkömmlichen Distros machen.
Und für nicht irgendwelche Scripts aus dem Internet mit sudo oder root aus.
Wie blöd ist denn bitte die Aussage? Lass die Leute doch bitte die Distros verwenden, die sie verwenden möchten.
Offensichtlich scheinst du nicht viel Ahnung von Linux zu haben, wenn du hier wirklich mit dem Lösungsansatz: "Gib doch mal ls ein" kommst. Das ist ja wohl offensichtlich, dass er in der richtigen Directory ist. So wie es aussieht, hast du auch noch nie nen Bash-Skript ausgeführt.
Ich sehe diese Art von Shell fast nie, ich glaube das ist fish. Die Kommandozeile hat mich verwirrt, das ist alles. Scheinbar ist `sudo ipsweeper` ja der Befehl, das ist hier aber nicht völlig ersichtlich mit dem ganzen komischen Markup im Termina Emulator.
Und ja, tatsächlich benutze ich Bash so gut wie nie abgesehen von Installationsskripten und das auch nur in Notfällen.
Nö. "sudo ipsweeper" ist eben nicht der Befehl.
das ist hier aber nicht völlig ersichtlich mit dem ganzen komischen Markup im Termina Emulator.
Doch. Schon irgendwie. ^^
Doch, sudo ipsweeper ist der Befehl in seiner Kommandozeile. Es ist nicht der richtige Befehl weil es nicht im Pfad ist, das ist mir schon bewusst. Das war aber nicht gemeint.
Er ist im richtigen Verzeichnis. Siehst du das nicht oder was? Und nein, du führst so keine shell-Skripts unter Kali aus.
Du redest die ganze Zeit an mir vorbei, ich weiß nicht was das soll.
Mir war nicht ersichtlich dass `sudo ipsweeper.sh` ein Befehl war, weil diese Form der Shell fast von niemandem benutzt wird außerhalb der Arch Community. Erst recht nicht mit der Unterstreichung und den unterschiedlichen Farben. Dass das kein richtiger Befehl ist ist mir klar, immer noch.
Das ist ne zsh Shell, ziemlich weit verbreitet…, die zsh config ist jetzt auch nichts besonderes, einfach das womit Kali per Default kommt, die PS1 ist eigentlich recht übersichtlich mMn
Ich versteh nicht was du damit meinst, Kali ist das beste Betriebssystem was das angeht?
Ich teste morgen aus was du geschrieben hast, ich bin noch am lernen, aber ich mach das nicht aus spaß sondern um mich auf mein Praktikum vorzubereiten bei einer Cyber-Security Firma
Kali ist eine Debian Distro mit Bloat. Alles was es auf Kali gibt kannst du auf jedem anderen System in jeweils 2 Sekunden installieren.
Das stimmt, aber warum benutzen es dann so viele?
Und was würdest du anstatt sudo schreiben, ist doch richtig?
Naja, um einen ping auszuführen brauchst du idr. keine erhöhten Privilegien, außer du hast die Berechtigungen der Binary geändert. Abgesehen davon führst du schon als root user aus, da ist das sudo onehin hinfällig. Wenn ein Programm Root Privilegien braucht gehört es auch nach /usr/sbin nicht /usr/bin
Du führst das Skript nicht richtig aus.Richtige Schreibweise wäre:
sudo ./ipsweeper.sh
Eventuell musst du noch Berechtigungen anpassen.
chmod +x ipsweeper.sh
Das Script ist in /usr/bin installiert, von daher ist das ./ überflüssig, die Shebang ist einfach nicht korrekt, es müsste
#!/bin/bash
sein.
Als Beispiel ein einfaches Shell Script
#!/bin/bash
echo "Hallo Welt"
Installiert in /usr/bin mit Execute Bit
realpath demo.sh
/usr/bin/demo.sh
Wenn wir jetzt which auf den Namen ausführen erhalten wir wie erwartet
which demo.sh
/usr/bin/demo.sh
und können von überall einfach das Script ausführen
pwd && demo.sh
/root
Hallo Welt
Test ich morgen mal aus mit der Schreibweise, aber die Berechtigung hab ich in der Zeile oben drüber gemacht, Vielen Dank
Hallo, erstmal vielen Dank für deine Antwort. Ich habe das im Internet gelesen mit usr bin zu speichern. Wo würdest du empfehlen zu speichern?
Was macht der Befehl Bash?