> Tech > Jouons avec le shell sur l’iSeries

Jouons avec le shell sur l’iSeries

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Tim Massaro - Mis en ligne le 9/03/2005 - Publié en Avril 2004

Quand seule une ligne de commande fait l'affaire

Reconnaissons-le : une interface ligne de commande est parfois essentielle. Les développeurs iSeries ont joui pendant longtemps de la puissance et de la facilité d'utilisation de l'interface ligne de commande du système. Les fonctions innovantes de CL (Command Language) de l'OS/400 - y compris l'invite de commande dynamique, l'aide sensible au curseur et même un schéma de nommage de commande extrêmement homogène - rendent cet environnement productif pour tout utilisateur iSeries ...Au cours des dernières années, au fur et à  mesure que l'OS/400 s'est diversifié, l'équipe iSeries d'IBM a produit de nouvelles options d'environnement ligne de commande. Ces environnements d'interface de commande supplémentaires sont du genre Unix (mais l'iSeries supporte aussi les environnements ligne de commande System/36/38). Un shell Unix est un programme placé dans une boucle en attente d'une entrée de l'utilisateur, similaire au fonctionnement du Command Entry Screen. Le shell interprète une commande quand la touche Entrée est actionnée, l'exécute et revient dans la boucle en attente d'autres entrées. Vous pouvez combiner les instructions shell sous forme de scripts, qui sont comme des programmes CL mais interprétés en temps réel, sans compilation. Sur l'iSeries, les shells sont particulièrement commodes pour les développeurs migrant d'autres systèmes ou pour ceux qui travaillent avec l'IFS ou dans le QShell ou dans des environnements PASE.

Le premier shell OS/400 à  apparaître a été l'environnement QShell (QSH), qui remonte à  la V4R2. Destiné initialement pour que l'OS/400 soit compatible avec les standards POSIX et X/Open, cet environnement est une option gratuite de l'OS/400 (option 30). On accède à  l'environnement avec la commande STRQSH ou, plus simplement, QSH, à  partir du Command Entry Screen traditionnel. QShell est compatible en amont avec les scripts shell Bourne et supporte bon nombre des fonctions utilisées par les scripts shell Korn et shell Bourne Again.

Est venu ensuite l'environnement PASE, apparu à  l'origine en V4R4. PASE (qui signifie Portable Application Solutions Environment) est l'environnement d'exécution qui permet à  de nombreuses applications AIX de fonctionner sans modification dans un environnement natif iSeries. A partir de la V5R2, PASE est fourni gratuitement avec l'OS/400. Il est aussi, en option, installé. Pour installer PASE à  partir de l'écran Go LICPGM, choisissez l'option 33 (5722SS1 - Portable Application Solutions Environment). Vous pouvez invoquer le PASE Shell via CALL QP2TERM. PASE supporte trois types de shells Unix. Il adopte par défaut le shell Korn (ksh), mais les utilisateurs peuvent aussi choisir le shell Bourne (bsh) et le shell C (csh). De précédents articles d'iSeries Network ont fourni des informations sur ces divers shells (voir l'encadré « Ressources shell iSeries »). Ces articles, combinés à  une vaste information sur les scripts shell sur le Web et dans des ouvrages techniques spécialisés, vous donneront les moyens d'utiliser ces divers shells. Dans cet article, je me concentre sur deux nouvelles améliorations : le support PTY et le support AWT natif. Quoique d'apparence mineure, ces deux fonctions faciliteront la vie des nombreux fans des scripts shell. Je présente aussi une rapide démonstration montrant OS/400 Java supportant la démo AWT généralement connue sous le nom de SwingSet.

Jouons avec le shell sur l’iSeries

Le support de PTY dans xterm, qui
était une amélioration de la V5R2, inclut
le support pseudo-terminal (PTY)
et le contrôle de job de style Unix pour
les environnements shell PASE. Cela
peut sembler obscur, mais c’est le support
basique sur lequel comptent de
nombreux fans du mode ligne de commande
Unix. Le support de PTY permet
de contrôler des jobs Unix à  partir
de la ligne de commande. L’utilisation
la plus courante du contrôle de jobs
dans une session terminal consiste à 
utiliser la séquence de touches Ctrl-C
pour annuler une commande d’exécution
longue ou en boucle (comme
System Request 2 sur iSeries). Parmi
les autres exemples, on trouve la combinaison
de frappe Ctrl-Z. On peut
l’utiliser pour suspendre une commande
trop longue ou en boucle puis
taper « bg » pour reprendre l’exécution
de ce job dans un thread d’arrière plan.
Et, avec le support de PTY, les commandes
qui lisent à  partir de STDIN
peuvent désormais compléter l’entrée
standard de manière traditionnelle, via
la combinaison de touches Ctrl-D.
Dernier avantage : en Linux et
Unix, on trouve beaucoup de programmes
qui fonctionnent en mode
console ou texte. Désormais, avec le
support de PTY, ces commandes peuvent
être portées pour s’exécuter sur
l’iSeries. Exemples de commandes qui
s’exécutent en mode texte : l’éditeur Vi
et le navigateur Web en mode texte
Lynx. A noter que les nouvelles fonctions
de PTY ne fonctionnent pas dans
le QShell ou shell PASE original (via
QP2TERM). Elles ne fonctionnent que
dans une session terminal, démarrée
par la commande aixterm ou xterm.
J’explique ci-dessous comment exécuter
xterm.

Téléchargez gratuitement cette ressource

Guide des Services Managés pour se moderniser et se sécuriser

Guide des Services Managés pour se moderniser et se sécuriser

À l’heure où les talents du numérique sont rares et difficiles à séduire, comment bénéficier des meilleures compétences en infrastructure Cloud ou en cybersécurité pour gagner en agilité et en cyber-résilience ? Découvrez le Guide des Services managés dédiés aux PME.

Tech - Par iTPro.fr - Publié le 24 juin 2010