Maison > Article > Tutoriel système > Comment se connecter en SSH à un répertoire spécifique d'un serveur Linux et exécuter des commandes ?
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.
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
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'
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
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 :
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!