Maison > Tutoriel système > Linux > 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 ?

王林
Libérer: 2024-02-12 10:39:03
avant
737 Les gens l'ont consulté

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
Copier après la connexion

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

cd 
Copier après la connexion

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'
Copier après la connexion

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
Copier après la connexion

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'
Copier après la connexion

ou :

ssh -t pi@192.168.0.116 'cd /home/pi/tests && exec bash -l'
Copier après la connexion

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'
Copier après la connexion

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'
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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

cd /home/pi/tests >& /dev/null
Copier après la connexion

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

source ~/.bashrc
或者
. ~/.bashrc
Copier après la connexion

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!

source:lxlinux.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal