Maison  >  Article  >  Tutoriel système  >  Comment se connecter en SSH à un répertoire spécifique d'un serveur Linux et exécuter des commandes ?

Comment se connecter en SSH à un répertoire spécifique d'un serveur Linux et exécuter des commandes ?

王林
王林avant
2024-02-12 10:39:03655parcourir

Avez-vous déjà rencontré une telle scène ? Utilisez la commande SSH pour accéder au serveur, puis utilisez la commande cd pour accéder au répertoire correspondant, puis continuez votre travail.

Ce genre d'opération est particulièrement courant pour les novices, et c'était pareil avant. Dans cet article, des chauffeurs expérimentés vous guideront pour effectuer des opérations plus efficaces et obtenir les résultats souhaités en une seule étape.

De plus, non seulement vous pouvez entrer rapidement dans un répertoire spécifique sur le serveur Linux, mais vous pouvez également exécuter une commande correspondante lors de la connexion au serveur.

Méthode de fonctionnement inefficace

Si vous ne connaissez pas la méthode présentée dans cet article, vous la ferez probablement en deux étapes :

Étape 1 : Utilisez la commande SSH pour accéder au serveur distant

ssh user@remote-system

Étape 2 : Utilisez la commande cd pour entrer dans le répertoire souhaité

cd 

Entrez rapidement le répertoire spécifié sur le serveur avec une seule commande

La méthode évoquée ci-dessus est bien sûr possible, mais elle est trop inefficace. Vous devez utiliser deux commandes pour ce faire, mais en fait, vous pouvez utiliser une seule commande pour obtenir l'effet souhaité, par exemple :

ssh -t pi@192.168.0.116 'cd /home/pi/tests ; bash'

Avec cette commande, nous pouvons entrer directement dans le répertoire correspondant (c'est-à-dire /home/pi/tests) dans le Raspberry Pi (serveur distant). Vous pouvez alors poursuivre votre travail.

Ici, l'option -t consiste à forcer l'allocation du pseudo-terminal même si l'entrée standard n'est pas un terminal. Si vous ne l'ajoutez pas, le message suivant peut s'afficher :

Pseudo-terminal will not be allocated because stdin

Ici, nous utilisons une autre animation pour démontrer visuellement ce processus :

De plus, vous pouvez également utiliser la commande suivante :

ssh -t pi@192.168.0.116 'cd /home/pi/tests ; exec bash'

ou :

ssh -t pi@192.168.0.116 'cd /home/pi/tests && exec bash -l'

Ici, l'option -l définit ce bash comme shell de connexion.

Dans les trois commandes ci-dessus, les derniers paramètres sont tous bash car l'interpréteur shell par défaut de mon serveur distant est bash. Si vous ne connaissez pas l'interpréteur shell utilisé par votre serveur distant, vous pouvez utiliser la commande suivante :

ssh -t pi@192.168.0.116 'cd /home/pi/tests && exec $SHELL'

Une commande pour exécuter à distance les commandes du serveur

Comme mentionné au début de cet article, nous pouvons non seulement utiliser une commande pour entrer dans le répertoire spécifié du serveur distant, mais également utiliser une commande pour exécuter à distance des commandes du serveur. Nous pouvons même utiliser une commande pour entrer dans le répertoire spécifié du serveur distant et exécuter une autre commande.

En fait, les méthodes utilisées sont les mêmes. Par exemple, si on veut saisir la commande /home/pi/tests 目录,再执行 ls -al du Raspberry Pi, on peut saisir la commande comme ceci :

ssh -t pi@192.168.0.116 'cd /home/pi/tests && ls -al && exec $SHELL'

Les résultats d'exécution sont les suivants :

[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

Une solution de compromis

Si vous pensez que cette commande est trop longue à saisir, vous devez d'abord entrer dans le serveur puis vous rendre dans le répertoire correspondant. Ensuite, nous pouvons modifier le fichier .bashrc du serveur distant.

vim ~/.bashrc

Écrivez-y la commande que vous souhaitez exécuter. Par exemple, dans ce scénario, nous pouvons ajouter :

cd /home/pi/tests >& /dev/null

Ensuite, nous exécutons :wq pour enregistrer le fichier, puis exécutons la commande suivante pour que les modifications prennent effet :

source ~/.bashrc
或者
. ~/.bashrc

De cette façon, dès que nous entrons dans le serveur, nous entrerons automatiquement dans le répertoire /home/pi/tests. Comme le montre l'animation suivante :

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

Cependant, cela présente un inconvénient évident, c'est-à-dire que nous ne pouvons entrer que dans le répertoire que nous spécifions. Si nous voulons passer à un autre répertoire, nous ne pouvons modifier que le fichier .bashrc. 1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer