Heim >System-Tutorial >LINUX >Wie kann ich eine SSH-Verbindung zu einem bestimmten Verzeichnis auf einem Linux-Server herstellen und Befehle ausführen?
Haben Sie jemals eine solche Szene erlebt? Verwenden Sie den SSH-Befehl, um den Server aufzurufen, und verwenden Sie dann den Befehl cd, um das entsprechende Verzeichnis aufzurufen, und setzen Sie dann Ihre Arbeit fort.
Diese Art der Operation kommt besonders bei Anfängern häufig vor, und das war auch schon früher so. In diesem Artikel werden Ihnen erfahrene Fahrer dabei helfen, effizientere Abläufe durchzuführen und in nur einem Schritt die gewünschten Ergebnisse zu erzielen.
Darüber hinaus können Sie nicht nur schnell ein bestimmtes Verzeichnis auf dem Linux-Server eingeben, sondern auch einen entsprechenden Befehl ausführen, wenn Sie eine Verbindung zum Server herstellen.
Wenn Sie die in diesem Artikel vorgestellte Methode nicht kennen, werden Sie sie wahrscheinlich in zwei Schritten durchführen:
Schritt 1: Verwenden Sie den SSH-Befehl, um den Remote-Server aufzurufen
ssh user@remote-system
Schritt 2: Geben Sie mit dem Befehl cd das gewünschte Verzeichnis ein
cd
Die oben genannte Methode ist sicherlich möglich, aber zu ineffizient. Dazu müssen Sie zwei Befehle verwenden. Tatsächlich können Sie jedoch auch einen Befehl verwenden, um den gewünschten Effekt zu erzielen, z. B.:
ssh -t pi@192.168.0.116 'cd /home/pi/tests ; bash'
Mit diesem Befehl können wir direkt das entsprechende Verzeichnis (also /home/pi/tests) im Raspberry Pi (Remote-Server) eingeben. Anschließend können Sie Ihre Arbeit fortsetzen.
Hier besteht die -t
-Option darin, die Pseudo-Terminal-Zuweisung zu erzwingen, auch wenn die Standardeingabe kein Terminal ist. Wenn Sie es nicht hinzufügen, wird möglicherweise die folgende Eingabeaufforderung angezeigt:
Pseudo-terminal will not be allocated because stdin
Hier verwenden wir eine weitere Animation, um diesen Vorgang visuell zu demonstrieren:
Darüber hinaus können Sie auch den folgenden Befehl verwenden:
ssh -t pi@192.168.0.116 'cd /home/pi/tests ; exec bash'
oder:
ssh -t pi@192.168.0.116 'cd /home/pi/tests && exec bash -l'
Hier legt die Option -l
diese Bash als Anmelde-Shell fest.
In den oben genannten drei Befehlen sind die letzten Parameter alle Bash, da der Standard-Shell-Interpreter meines Remote-Servers Bash ist. Wenn Sie den von Ihrem Remote-Server verwendeten Shell-Interpreter nicht kennen, können Sie den folgenden Befehl verwenden:
ssh -t pi@192.168.0.116 'cd /home/pi/tests && exec $SHELL'
Wie am Anfang dieses Artikels erwähnt, können wir nicht nur einen Befehl verwenden, um das angegebene Verzeichnis des Remote-Servers aufzurufen, sondern auch einen Befehl verwenden, um Serverbefehle remote auszuführen. Wir können sogar einen Befehl verwenden, um das angegebene Verzeichnis des Remote-Servers aufzurufen und einen anderen Befehl auszuführen.
Tatsächlich sind die verwendeten Methoden dieselben. Wenn wir beispielsweise den /home/pi/tests
目录,再执行 ls -al
-Befehl des Raspberry Pi eingeben möchten, können wir den Befehl wie folgt eingeben:
ssh -t pi@192.168.0.116 'cd /home/pi/tests && ls -al && exec $SHELL'
Die Ausführungsergebnisse sind wie folgt:
[Alvin.Alvin-computer] ➤ ssh -t pi@192.168.0.116 'cd /home/pi/tests && ls -al && exec $SHELL' total 48 drwxr-xr-x 4 pi pi 4096 Apr 5 14:36 . drwxr-xr-x 21 pi pi 4096 Apr 21 19:26 .. drwxrwxrwx 7 pi pi 4096 Apr 5 17:28 GIC drwxrwxrwx 3 pi pi 4096 Apr 5 17:37 gitchat -rw-r--r-- 1 pi pi 474 Apr 5 11:21 liangxu.json -rwxr-xr-x 1 pi pi 8184 Mar 17 15:34 test -rwxr-xr-x 1 pi pi 8184 Mar 17 15:34 test2 -rwxr-xr-x 1 pi pi 8184 Mar 17 15:34 test3 -rw-r--r-- 1 pi pi 131 Mar 17 15:34 test.c
Wenn Sie der Meinung sind, dass die Eingabe dieses Befehls zu lang ist, müssen Sie zuerst den Server aufrufen und dann mit cd in das entsprechende Verzeichnis wechseln. Dann können wir die .bashrc
-Datei des Remote-Servers ändern.
vim ~/.bashrc
Schreiben Sie darin den Befehl, den Sie ausführen möchten. In diesem Szenario können wir beispielsweise Folgendes hinzufügen:
cd /home/pi/tests >& /dev/null
Dann führen wir :wq
aus, um die Datei zu speichern, und führen dann den folgenden Befehl aus, damit die Änderungen wirksam werden:
source ~/.bashrc 或者 . ~/.bashrc
Auf diese Weise betreten wir automatisch das /home/pi/tests
-Verzeichnis, sobald wir den Server betreten. Wie in der folgenden Animation gezeigt:
Dies hat jedoch einen offensichtlichen Nachteil: Wir können nur das von uns angegebene Verzeichnis eingeben. Wenn wir in ein anderes Verzeichnis wechseln möchten, können wir nur die .bashrc-Datei ändern. 1
Das obige ist der detaillierte Inhalt vonWie kann ich eine SSH-Verbindung zu einem bestimmten Verzeichnis auf einem Linux-Server herstellen und Befehle ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!