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 cette ressource

Prédictions 2025 des menaces persistantes avancées
L'analyse et l'évolution du paysage des menaces persistantes avancées (APT) et des conséquences sur vos infrastructures IT. Découvrez la synthèse des prédictions, tendances et recommandations pour 2025 avec les experts Kaspersky.
Les articles les plus consultés
- Afficher les icônes cachées dans la barre de notification
- Activer la mise en veille prolongée dans Windows 10
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Et si les clients n’avaient plus le choix ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- Protégez l’accès non authentifié de vos réunions
- Télécommunications et durabilité : les défis d’une transition verte dans un secteur en mutation
- Vulnerability Operation Center : concepts, mise en œuvre et exploitation
- Faire face à l’évolution des cyberattaques : l’urgence d’une cybersécurité proactive
- Le temps où le RSSI était tenu pour seul responsable est révolu – la responsabilité incombe désormais à toute l’entreprise
