Unix Raymond Ripp
Protocoles - Langages de programmation Applications En direct Navigateur Courier Mode console Fenêtrage Windows DirectX HTTP Hypertext transfer protocol SMTP Simple mail transfer protocol SSH Secure shell X-windows Windows Protocoles - Langages de programmation PHP Java Tcl C HTML Javascript X Windows Max OS Linux serveur
Windows - Linux Disques - Processeurs /home /genomics Windows Mac OS Linux ssh ssh titus ssh IGBMC Windows Mac OS Linux star6 ssh
SSH sur star8 /groupes/poch/ripp MonPremierScript.tcsh mon_pc_> ssh –l ripp –X titus.u-strasbg.fr titus_ripp_> ssh –l ripp –X star8 star8_ripp_> pwd /groupes/poch/ripp star8_ripp_> cd CoursUnix star8_CoursUnix_> ls MonPremierScript.tcsh star8_CoursTcl_> MonPremierScript.tcsh
Les commandes élémentaires cd /home/ripp pwd ls cat /home/ripp/www/fifi.txt more ./www/fifi.txt rm ./www/fifi.txt mkdir /home/ripp/CoursUlp rmdir CoursUlp
...élémentaires toujours, mv fifi.txt CoursUlp/toto.txt cp /home/depulp1/p.tcl prog.tcl cd CoursUlp cd .. chmod 755 fichier rwx r-x r-x chmod 644 fichier rw- r-- r-- chmod 640 fichier rw- r-- ---
...élémentaires encore ? alias llt ls -rt setgscope man commande apropos truc date logout
Une commande, c'est ... ls commande UNIX xplor fichier exécutable (compilation, link) settex alias sauvetout shell script /home/ripp/p.exe avec chemin d'accès explicite rehash shell built-in command
C'est toujours et uniquement... un alias taper alias pour les connaitre tous une Built-In Command du shell utilisé un fichier qui se trouve dans le path which commande commande aliased to quelquechose commande : shell built-in command /usr/bin/commande
Un fichier exécutable Fichier de commandes (shell script) Ou fichier binaire obtenu par compilation et link Fortran, C, C++ ... ou fichier système on le reconnait par son extension (.tcl, .csh, .pl, …) file fichier coeff alpha executable binay
Un shell script sh, ksh, csh, tcsh, tclsh, perl, ... .......................................... shell que j'aime: tcsh c'est un fichier texte contenant .................................. des commandes la première ligne contient le nom du shell #!/bin/tcsh ................. qui est le programme qui interprète vos commandes
... le shell script on y met des commandes on l'exécute en tapant le nom du fichier ça crée un sous-process qui exécute /etc/csh.cshrc ~/.cshrc les commandes du fichier qui oublie tout avant de revenir au process ou alors (pour les nuls) : source fichier
Le path, quand on tape une commande on exécute un fichier qui se trouve sur un disque dans un répertoire cité dans le path
le path, est un ensemble de répertoires est prédefini echo $path qui contient les fichiers exécutables est prédefini echo $path est modifié par certaines commandes setmolscript peut être modifié par set path=dir $path addpath dir (rr)
le path. ln -s /bidule/chose/fifi /home/ripp/bin/fifi si vous voulez qu'un fichier /bidule/chose/fifi devienne une commande fifi trois solutions addpath /bidule/chose cp /bidule/chose/fifi /home/bin/fifi ln -s /bidule/chose/fifi /home/ripp/bin/fifi
Les plaisirs du lien ln -s fichier lien ln -s /home/ripp/moyenne /bin/moy c'est comme si /home/ripp/moyenne était copié on fait vraiment comme si /bin/moy existait ls -l /bin/moy (lrwx--... /bin/moy -> /home/ripp/moyenne) rm /bin/moy (/home/ripp/moyenne reste) rm /home/ripp/moyenne (le lien, seul, reste)
Input Output Pipeline 1/3 Un programme « sympa » lit des données en entrée ( input = stdin) calcule écrit les résultats en sortie ( output = stout) signale les erreurs ( error = stderr) xplor < fichin > fichout
Input Output Pipeline 2/3 Si on ne met pas < ou > l’entrée standart est le clavier la sortie standart est l’écran la sortie erreur est aussi l’écran (>2 ou >&) … mais si on veut que : la sortie de l’un est l’entrée de l’autre ?
Input Output Pipeline 3/3 progA < fichin | progB progA | progB | progC > fichou Attention tous les programmes n’acceptent pas ce mécanisme stdin stdout Ne pas confondre entrée standart (avec <) et arguments
... des questions? ... plus de question? ... merci !