Bonjour à tous!
Avez-vous déjà entendu parler d'un obus?
Si vous vous référez au site de ici,
Un shell est un cycle dans lequel, lors de l'utilisation du logiciel de terminal (kterm, etc.) sous UNIX / Linux, l'utilisateur entre la commande à exécuter à l'invite, voit le résultat affiché ici, puis entre la commande suivante. Travaillez de manière interactive avec. En réalité, l'utilisateur effectue divers traitements en utilisant les fonctions gérées par le noyau d'UNIX / Linux (noyau), mais le noyau lui-même n'a pas la capacité d'interagir directement avec l'utilisateur. Par conséquent, il existe un programme intermédiaire entre l'utilisateur et le noyau qui a la capacité d'interagir avec l'utilisateur et demande au noyau des opérations, et l'utilisateur effectue les opérations. Ce programme intermédiaire est appelé un shell car il ressemble à un "shell" qui s'enroule autour du noyau pour l'utilisateur (voir Figure 1). En termes simples, le shell a la capacité d'interpréter les commandes entrées par l'utilisateur, de demander au noyau de les traiter et d'afficher les résultats et les messages à l'écran.
C'est vrai!
En d'autres termes, lorsque nous donnons des instructions au noyau depuis le terminal, il semble que ce soit un interpréteur qui rompt avec le noyau et le traduit pour que le noyau puisse être compris!
Maintenant que vous avez une compréhension rapide du shell, commençons la programmation du shell en utilisant le terminal!
Il semble qu'il existe différents types de shells, mais comme bash est l'environnement standard des shells dans les récents Linux et Mac OS, nous utiliserons bash!
Un script shell est une collection de commandes exécutées par le shell dans un seul fichier.
À propos de la commande à utiliser
Pensez à la fonction que vous souhaitez utiliser et vérifiez-la!
L'extension du script shell est ".sh"
Exemple de script shell (un script qui exécute la commande date après avoir exécuté la commande ls, génère une chaîne de caractères avec la commande echo, reçoit le résultat d'entrée avec la commande read, le place dans une variable et le produit)
#!/bin/bash
ls
date
Veuillez saisir un message d'écho.
read message
echo Message d'entrée: $message
#! / Bin / bash
s'appelle" Shiban ", ce qui signifie que ce script shell est exécuté dans le shell bash situé dans / bin / bash.--Autorisations de fichier Pour tous les fichiers Linux
・ Utilisateur propriétaire du fichier ·Appartenance à un groupe ・ Autres utilisateurs Pour un groupe de trois comptes
・ Lisible ・ Inscriptible ・ Exécutable
Gère trois autorisations
chmod a + x my-first.sh
modifie les permissions des fichiers afin que my-first.sh
puisse être exécuté par tous les utilisateurs
--Exécuter un script shell
Doit être exécuté avec un chemin relatif avec . /
→ Sinon, l'erreur my-first.sh: command not found
se produira
↓
Si vous ne spécifiez pas de chemin relatif, il sera reconnu comme une commande, vous serez donc en colère contre "Il n'y a pas de telle commande!"
Résultat d'exécution
$ ./my-first.sh
my-first.sh
Jeudi 29 mars 2018 08:13:52 UTC
Veuillez saisir un message.
Message saisi: hoge
Affichez le contenu de l'entrée en remplaçant la chaîne de caractères d'entrée par la variable du premier argument par la commande read et en spécifiant la variable avec «$» avec la commande echo.
--Si instruction dans le script shell
#!/bin/bash
read -p "Yarigatake est-elle la deuxième plus haute montagne du Japon?[y/n]" yn
if [ $yn = "n" ]; then
echo Bonne réponse. La deuxième plus haute montagne du Japon est Kitadake.
else
echo Mauvaise réponse. La deuxième plus haute montagne du Japon est Kitadake.
fi
La commande read peut recevoir une entrée dans une variable tout en affichant des caractères en ajoutant l'option -p "chaîne de caractères à afficher".
L'instruction if est ʻif [$ yn = "n"]; then`, la condition est entrée entre [] avec un espace, et le dernier est un deux-points et "alors". De plus, il est nécessaire d'écrire «fi» à la fin de l'instruction if.
Boucle de while :; do
à done
jusqu'à ce que le message de fin soit reçu
Exemple: while :; do (echo" Merci pour votre accès! ") | Nc -l 8000; done
→ Démarrez en tant que serveur en utilisant le port 8000, et s'il y a accès, retournez le contenu de la sortie standard et quitte
Passer la sortie standard de la commande echo à la commande nc en utilisant |
(pipe)
Commande nc: abréviation de NetCat. Il s'agit d'une commande permettant de lire et d'écrire TCP et UDP, et possède diverses fonctions telles que l'acquisition d'informations à partir d'un serveur Web, l'installation d'un serveur Web simple et l'envoi de courrier.
Port: l'un des arrangements de communication TCP et UDP. Communiquez en définissant l'un des nombres de 0 à 65535. Afin de communiquer, vous devez toujours utiliser un type de port, et dans de nombreux cas, ce port est déterminé par le protocole ou le logiciel.
Recommended Posts