C'est effectivement un peu bizarre d'écrire "l'ouverture" dans la dernière section. Cependant, le début du premier article (Opérations numériques) est en fait une petite ouverture. Il est mentionné que toute la série nécessite donc une certaine base de programmation Shell, afin de permettre aux lecteurs qui n'ont pas de base de programmation Shell de le faire. En lisant cette série, j'ai fini par réécrire ce premier chapitre. Le chapitre d'ouverture présente principalement ce qu'est Shell, l'environnement d'exploitation Shell, la syntaxe de base de Shell et les compétences de débogage.
Tout d'abord, regardons la position de Shell dans l'ensemble du système d'exploitation à partir de la figure suivante. Le cercle extérieur de la figure décrit l'ensemble du système d'exploitation (tel que).
Debian/Ubuntu/Slackwareetc.), le cercle intérieur décrit le cœur du système d'exploitation (par ex.
Noyau Linux),et
Coquilleet
Interface graphiqueSert également d'interface entre l'utilisateur et le système d'exploitation.

Interface graphiqueFournit une interface utilisateur graphique très simple à utiliser et à apprendre ;
CoquilleIl fournit aux utilisateurs une interface de ligne de commande, reçoit les entrées au clavier de l'utilisateur, analyse et exécute les commandes dans la chaîne d'entrée, puis renvoie les résultats d'exécution à l'utilisateur. Il peut être plus compliqué à utiliser, mais parce qu'il consomme moins de ressources. , De plus, après avoir maîtrisé le fonctionnement, l'efficacité du travail peut être améliorée et il a la fonction de traitement par lots, il est donc très populaire dans certaines applications.
CoquilleEn tant qu'interface utilisateur, il s'agit en fait d'un interprète (Interpreter, comme dans
LinuxLes éléments suivants sont plus couramment utilisés
Frapper), nous pouvons visualiser le courant
Coquille:
$ echo $Shell/bin/bash$ ls -l /bin/bash-rwxr-xr-x 1 racine racine 702160 2008-05-13 02:33 /bin/bash
L'interpréteur peut non seulement interpréter des commandes simples, mais également interpréter un fichier avec une structure syntaxique spécifique, appelée script. La manière dont il interprète spécifiquement ces commandes et ces fichiers de script n'est pas analysée en profondeur ici. Veuillez consulter un autre article que j'ai écrit en 2008 : « Le moment de l'exécution du programme sur la ligne de commande Linux ».
Puisque le programme peut interpréter des fichiers avec une certaine structure grammaticale, nous pouvons suivre une certaine grammaire pour l'écrire. Quel type de grammaire a-t-il, comment l'exécuter et comment le déboguer ? Ci-dessous, nous utilisons
FrapperDiscutons de ces aspects avec un exemple.
Afin de faciliter les exercices suivants, nous mettons d'abord en place un environnement d'exploitation de base : Dans un système d'exploitation Linux, il existe un
FrapperLa ligne de commande attend que nous tapions la commande. Cette ligne de commande peut être sous l'interface graphique.
Terminal(Par exemple
UbuntuTrès puissant
Terminateur), ou cela peut être une interface de caractères
Console(peut être utilisé
CTRL+ALT+F1~6bascule) si vous trouvez le courant
CoquilleNon
Frapper, veuillez le remplacer par :
$ chsh $USER -s /bin/bash$ su $USER
Ou tapez simplement en Bash :
$ bash$ echo $Shell # Confirmez /bin/bash
Si vous n'avez pas installé de système d'exploitation Linux, vous pouvez également envisager d'utiliser les services d'expérimentation virtuelle Linux fournis par certaines communautés publiques, qui fournissent généralement des services à distance.
Coquille, tu peux passer
Telnetou est
ChutConnectez-vous au client pour vous entraîner.
Avec l'environnement d'exploitation de base, comment exécuter les commandes saisies par l'utilisateur ou le fichier script écrit par l'utilisateur ?
?
Supposons que nous ayons écrit un script Shell appelé
test.sh.
La première façon est de s'assurer que la commande que nous exécutons dispose des autorisations exécutables, puis de taper directement la commande pour l'exécuter :
$ chmod +x /chemin/vers/test.sh$ /chemin/vers/test.sh
La deuxième méthode consiste à écrire directement le script comme
FrapperLes paramètres de l'interpréteur sont passés dans :
$ bash /chemin/vers/test.sh
ou
$ source /chemin/vers/test.sh
ou
$ ./chemin/vers/test.sh
Une première
Bonjour le mondeprogramme.
Présentons la structure de base d'un programme Shell pour
Bonjour le mondePar exemple:
#!/bin/bash -v# test.shecho Bonjour tout le monde
Enregistrez le code ci-dessus sous
test.sh, puis exécutez-le des deux manières différentes ci-dessus, vous pouvez voir les effets suivants.
Première méthode :
$ chmod +x test.sh$ ./test.sh ./test.sh #!/bin/bash -v echo Bonjour, le monde Bonjour, le monde
Deuxième méthode :
$ bash test.shBonjour, Monde$ source test.shBonjour, Monde$ test.shBonjour, Monde.
Nous avons constaté qu'il existe une différence entre les deux résultats d'exécution. Pourquoi ? Ici, nous devons faire attention
test.shLe contenu du fichier, il n'a que deux lignes, la deuxième ligne est imprimée
Bonjour le monde, les deux méthodes atteignent leur objectif, mais la première méthode imprime davantage de contenu du fichier de script lui-même. Pourquoi ?
La raison se trouve dans la première ligne du fichier. Lorsque nous exécutons directement le fichier de script, cette ligne indique au système d'exploitation à utiliser.
#!L'interpréteur et les paramètres correspondants après le symbole sont utilisés pour interpréter le fichier de script. En analysant la première ligne, nous avons constaté que l'interpréteur et les paramètres correspondants sont.
/bin/bash -v,et
-vIl s'agit d'imprimer le code source du programme mais nous ne l'avons pas donné lors de l'utilisation de la deuxième méthode ;
FrapperTransmettez tous les arguments supplémentaires afin qu'il interprète simplement le fichier de script lui-même.
Pour d'autres détails sur la syntaxe, veuillez vous référer directement aux « Notes d'étude sur la programmation Shell », qui se trouvent à l'annexe 1 à la fin de ce livre.
Le langage Shell est un langage interprété et son processus de programmation est quelque peu différent de celui des langages compilés. Le processus de base est le suivant :
algorithme de conception
Utiliser Shell pour écrire des scripts pour implémenter des algorithmes
Exécutez le script directement
On peut voir qu'il n'a pas le processus de compilation et de liaison fastidieux des langages compilés, mais précisément à cause de cela, il n'est pas très pratique de déboguer en cas de problème, car des erreurs de syntaxe et des erreurs de logique apparaissent au moment de l'exécution. Ci-dessous, nous présentons brièvement la méthode de débogage.
Vous pouvez directement référencer : la technologie de débogage de script Shell ou la méthode de débogage BASH.
En tant que langage interprété, le langage Shell peut utiliser un grand nombre d'outils existants, notamment les calculs numériques, le traitement symbolique, les opérations sur les fichiers, les opérations sur les réseaux, etc. Par conséquent, le processus d'écriture peut être plus efficace, mais parce qu'il est interprété, il doit à exécuter pendant l'exécution. Pendant le processus, l'appel continu de programmes externes à partir du disque et la commutation entre les processus peuvent présenter des inconvénients en termes d'efficacité opérationnelle, nous devons donc choisir d'utiliser Shell ou d'autres langages pour la programmation en fonction de l'application.
Au moment où le programme est exécuté sur la ligne de commande Linux
Notes d'étude sur la programmation Linux Shell
Technologie de débogage de script Shell
Méthodes de débogage BASH