Heim  >  Artikel  >  System-Tutorial  >  Wie kann ich eine SSH-Verbindung zu einem bestimmten Verzeichnis auf einem Linux-Server herstellen und Befehle ausführen?

Wie kann ich eine SSH-Verbindung zu einem bestimmten Verzeichnis auf einem Linux-Server herstellen und Befehle ausführen?

王林
王林nach vorne
2024-02-12 10:39:03655Durchsuche

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.

Ineffiziente Betriebsmethode

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 

Geben Sie mit einem Befehl schnell das angegebene Verzeichnis auf dem Server ein

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'

Ein Befehl zum Remote-Ausführen von Serverbefehlen

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

Eine Kompromisslösung

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:

如何 SSH 到 Linux 服务器里的特定目录及执行命令?

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen