J'ai quelques serveurs distants auxquels je me connecte via le terminal. Les serveurs n'ont pas de domaine, seulement une adresse IP difficile à retenir lorsque j'en ai eu quelques-uns.
Existe-t-il un moyen de stocker en permanence des valeurs dans le terminal afin que je puisse effectuer les opérations suivantes?
server1 = 111.222.111.222
Et tapez des commandes comme:
ssh root@server1
au lieu de:
ssh [email protected]
Pour les connexions SSH, vous pouvez créer un fichier de configuration utilisateur ~/.ssh/config
et y placer les mappages, par exemple.
Host server1
Hostname 111.222.111.222
Vous pouvez facilement ajouter d'autres champs tels que Port
(pour les ports non standard) et User
(utile si votre nom d'utilisateur sur le système distant diffère de celui du système local). Voir man ssh_config
pour plus de détails.
Oui, il suffit de les écrire dans le fichier /etc/hosts
. Il a la syntaxe suivante:
_1.2.3.4 servername additional_servername
_
Où:
1.2.3.4
_ est l'adresse IPservername
est le nomadditional_servername
_ est un nom facultatifAprès la sauvegarde, vous pouvez accéder au serveur par son nom.
Bien sûr, pour votre problème particulier, vous souhaitez suivre les conseils @chaos et @steeldriver, mais dans le cas général, afin de "stocker les valeurs de manière permanente dans le terminal", vous recherchez des variables Shell. La manière de les configurer dépendra de votre shell (je suppose que echo $Shell
fournira les informations pertinentes).
Si par "en permanence" vous voulez dire "tant que je ne quitte pas cette session de terminal", vous pouvez simplement utiliser la commande export server1=111.222.111.222
si vous utilisez un shell basé sur bash
(setenv server1 111.222.111.222
pour un shell basé sur csh/tcsh
-, si mes souvenirs sont exacts). Ensuite, vous pouvez accéder à votre variable en la préfixant avec $
: ssh root@$server1
.
Si par "en permanence" vous voulez dire "à chaque fois que je lance un nouveau terminal", vous devrez alors définir votre variable dans l'un des fichiers init du shell. Par exemple. dans $HOME/.bashrc
pour les shells basés sur bash
ou $HOME/.cshrc
- en utilisant vraisemblablement la même syntaxe que celle mentionnée dans le paragraphe précédent. Notez que vous devrez source le fichier init (par exemple source $HOME/.bashrc
] ou ouvrir un nouveau shell pour que les modifications soient prises en compte.
NB: La réponse de mémoire peut nécessiter quelques ajustements mineurs.
Pas une réponse directe à la question (chaos et steeldriver ont déjà fourni ce que je pense seraient les meilleures solutions littérales), mais si vous avez seulement besoin de ssh à l'utilisateur unique à la même adresse dans la majorité des cas, alors regardez l'édition le fichier .bash_aliases
de votre répertoire personnel devrait être utile, car vous pouvez créer un alias pour la commande complète du terminal.
Les réponses spécifiques sont très bonnes.
En général, cependant, si vous voulez que certaines choses soient définies/configurées dans un shell, écrivez simplement un script pour le faire, puis exécutez-le avec source
ou .
lorsque vous voulez que cette configuration soit effective.
Si c'est quelque chose que vous voulez tout le temps, vous pouvez l'obtenir en .profile (pour les shells de connexion) ou en .bashrc pour tous les shells (si vous utilisez bash).
Avec une approche comme celle-ci, vous pouvez avoir plusieurs scripts pour configurer différents environnements de travail en fonction de vos besoins, à condition de vous assurer qu'ils ne se superposent pas si vous appelez l'un d'entre eux après en avoir d'abord appelé un autre.