- - - - - - - - - - - - - - Fichier doc - - - - - - - - - - - - - - - - Accents et cédille Adresses électronique et adresses IP Aide en ligne Alias Archivage Bibliothèques de modules objets Commandes système Compilation, liaison Compression, decompression Connexion depuis une machine Courrier Déboguer Démarrage session X Editeur Environnement X Espace disque Examen reseau Extractions Fontes Historique des commandes Impression avec laser Interpréte de commandes IUT Lien Particularismes Processus Recherche Redirection Serveurs ftp et http Sequence escape Variables d'environnement X: Connaître les ressources pour un client X: Documentation et sources (?) sur clients X: Configuration de mwm X: Couleurs X: Répertoires utilisables en compilation X: Bibliothèques utilisables a l'édition de liens X: Fichiers d'en-tête pour Xlib X: Lancer une connexion, puis un client Accents et cédille à â ç é ê è î ô û ù a` a^ e' e^ e` i^ o^ u^ u` Adresses électronique et adresses IP astier@iut-orsay.fr Roger.Astier@math.u-psud.fr # adresses IP beryl.math.u-psud.fr 129.175.54.194 www.iut-orsay.fr 129.175.248.2 host ibmh70a # réponse: 129.175.248.8 voir fichier /etc/hosts ypcat names # nom du terminal x: echo $DISPLAY | cut -f1 -d: nslookup `echo $DISPLAY | cut -f1 -d:` # arp -a | grep `echo $DISPLAY | cut -f1 -d:` | cut -f1 -d')' | cut -f2 -d'(' Aide en ligne echo $MANPATH http://www.iut-orsay.fr/ccri/aide-en-ligne.html info ou info -s slC à partir d'un nom de sous-programme: dans la fenêtre Task index cliquer dans la boite Search (en bas de la fenêtre) Apres résultat de la recherche cliquer dans la boite continue info -l /usr/lpp/info/data/Cset & man delay nroff -man /usr/local/man/man4/mailcap.4 | pg Alias # afficher les sous-répertoires réels alias -x lrep="ls -ane | grep ^d" alias -x lc="ls -ane | grep \"\.c\"$" alias -x lC="ls -ane | grep \"\.C\"$" # alias -x rm='rm -i ' Archivage tar -cvf XAID.tar assprog Si assprog est un sous-répertoire, la commande regroupe dans le fichier XAID.tar tous les fichiers de assprog et de ses sous-répertoires tar -xvf XAID.tar Recrée le répertoire assprog et tous ses sous-répertoires ainsi que tous les fichiers archivés # archivage et compression du répertoire dbx: rr=dbx; tar -cvf $rr.tar $rr; gzip $rr.tar; # rm -rf $rr Autoriser/bloquer une machine (DISPLAY est correctement définie) xhost +rubis.matups.fr # bloquer une machine xlock -nolock -mode marquee -message "EN COURS ... cf ROGER" xlock -mode marquee -message " TRAVAIL EN COURS ... cf ROGER" Bibliothèques de modules objets ar -vq iutlg.a *.o # création ar -vt iutlg.a # affiche les membres Clavier stty erase ^H # pouvoir effacer stty -a # tous les paramètres stty sane # configuration pour vi Codage décodage; uuencode, uudecode pour conversion vers code 7bits de fic (au décodage, le nom de fichier sera nom_fic): uuencode fic nom_fic > fic_code ... | uuencode nom_fic > fic_code pour décodage (tout ce qui précède begin est ignoré, par exemple les en-têtes de courriers): uudecode fic_recu # le nom du fichier décodé est nom_fic Commandes système acroread # fichiers *.pdf cat cut -f1,3 -d: # extraction de champs ou de colonnes ll ex*|cut -c 33-40,54- # taille en octets et nom de fichiers date +"%w %d %m %Y %T" # date et heure (précision seconde) date +"%w %d %m %Y %T" | read jour quant qmois annee HMS du -a matlab # espace disque echo bla* "\c" # pas de passage ligne suivante echo -n bla* # pour linux echo -e "bla\nbla" # pour linux (enable ...) env # variables exportées vers les processus find $HOME -type d # les sous-répertoires grep -wi int_max *.C # (get regular expression) extrait de lignes head -10 tmp # 10 premières lignes head divers/c/*.c # 10 premières lignes de chaque fichier head -c 2k divers/c/*.c# 2 premiers k-octets de chaque fichier hostname -i # adresses internet hostname -v hostname -y # nom de domaine kill # supprimer des processus ls -ald # fichiers et répertoires, sans les parcourir ls -as # affiche la taille # gestion des dépendances make # cf /usr/ccs/lib/aix.mk # qq variables prédéfinies en plus des variables d'environnement ${@} la cible (à gauche) ${?} fichier déclencheur (plus récent que la cible) # pour règle implicite (liée aux suffixes) ${<} fichier concerné (*.cc par ex.) ${*} la cible sans extension # exemple la production: file:/d/app/depend/tp_depend.html ${COMPIL} ${*}.cc -o ${@} # une règle de production liée aux suffixes .cc.o: ${COMPIL} -c ${<} passwd # changement de mot de passe # ps ==> plus loin Processus ps -ouid,pid,ppid,args -u astier sed exemple: sed -n -f sed_cmd sed_essai -- fichier sed_essai roger 1111 alfred 2222 bob 4444 -- un séparateur jo 5555 # sed_essai: l e s c o m m a n d e s # ignorer les lignes commençant par -- /^--/ d # après le premier groupe d'au moins 3 lettres ajouter password s/[a-z]\{2,\}/& password / # /^--/tfin # insérrer au début ALTER USER s/^/ALTER USER / # ajouter ; à la fin s/$/& ;/ p :fin set # variables définies (!= var.exportées) setenv # variables définies exportées (csh) tail -5 tmp # les 5 dernières lignes tail +20 tmp| head -5 # de la ligne 20 à 24 # translate peut supprimer des caractères; n'en rajoute jamais. tr -s ' ' < tmp # remplace toute suite d'espace par 1 seul tr '\t ' '^' < tmp # remplace esp. ou tab. par ^ # remplace ce qui n'est pas lettre nombre ou \n par un - tr -c '[:alpha:][:digit:]\n' '-' < tmp # remplace ... et remplace toute suite de - par un seul (tr -c '[:alpha:][:digit:]\n' '-' < tmp) | tr -s '-' # un mot par ligne: tr -cs '[:alpha:]\201-\377' '\n' < tmp # mots ayant au moins deux lettres, initiale en majuscule (tr -cs '[:alpha:]' '\n' < tmp) | grep '^[A-Z][[:alpha:]]' # Mots ayant au moins deux lettres avec initiale en majuscule (tr -cs '[:alpha:]' '\n' < tmp) | grep '^[[:upper]].' # info sur la machine, en particulier système d'ex. type ll # ou whence: alias, cmd.interne ... type test # commande interne (comme cd, whence ...) type ll # alias type mount # dans /usr/sbin type docUnix.txt # fichier simple du répertoire uname # système d'exploitation uname -a uname -m(ateriel) -n(noeud,machine) -s(s.ex) -r(num.s.ex) -v(version) # recherche d'exécutable dans le 'chemin' which vi Compilation, liaison cc -Aa -qcheck prog.c # compilation, source à la norme ansi xlc -E dessin1.c # pré-processeur seul xlc -c curseur.c # compil. seule, mod.objet : curseur.o xlc -o dessin1 dessin1.c curseur.o Fichiers : /usr/bin/xlc /etc/xlc.cfg /usr/lpp/xlC/lib/crt0.o Répertoires : /usr/lpp/xlc /etc/xlc.cfg /usr/include /usr/lib/libc.a /usr/lib/libm.a g++ # gnu /dpx20/8/gnat/libg++-2.7.1/libg++ /olpp/gnu/lib/gcc-lib xlC ration.C # compilation C++ xlC ../c/hexa.c Fichiers : /usr/ibmcxx/bin/xlC /etc/ibmcxx.cfg /usr/lib/crt0.o Répertoires : /usr/lpp/xlC/include /usr/lpp/xlC/lib sans option: création d'un exécutable de nom a.out xlC prem.C xlC prem1.C deux.o # deux.o mod.objet utilise par prem1.C xlC prem.C deux.C # aucun mod.objet conserve xlC prem.o deux.o # si on a deja les mod.objets option -E: pré-compilation seule, avec résultat affiché xlC -E prem.C -P: pré-compilation seule, fichiers .i créé option -c: compil. seule (module objet placé dans le rep. courant) xlC -c prem.C (pas d'executable crée; le module objet a pour nom prem.o) (l'extension .C est obligatoire) option -o: pour donner un nom à l'exécutable xlC -o prem prem.C # création d'un exécutable de nom prem option -I: pour ajouter des répertoires de fichiers .h par défaut /usr/lpp/xlC/include /usr/ibmcxx/include et /usr/include option -L: pour ajouter des répertoires de bibliothèques par défaut /usr/lib /usr/ibmcxx/lib option -l: pour ajouter des bibliothèques (essentiellement fichiers .h option -M: affichage de dépendances (surtout fichiers .h) option -MM: affichage de dépendances (sans entête système) Compression, décompression gzip -h (extension .gz) gzip XAID.tar # compresse un fichier (XAID.tar.gz) tar -cvf prog.c *.c; gzip -9 prog.c gzip -d XAID.tar.gz # décompresse; suivi de: tar -xvf XAID.tar % Archivage et compression rr=listes; tar -cvf $rr.tar $rr; gzip $rr.tar; rm -rf $rr % Decompression et desarchivage RR=listes; gzip -d $RR.tar.gz; tar -xvf $RR.tar; # rm -rf $RR.tar # uncompress, compress, zcat uncompress llnlxftp2.1.tar.Z munpack conversion mime--> .Z : compress llnlxftp2.1.tar # compression : compress -d llnlxftp2.1.tar.Z # décompression uncompress llnlxftp2.1.tar.Z .gz : gzip , gunzip : gzip llnlxftp2.1.tar # compression : gzip -d llnlxftp2.1.tar # décompression gzip -h (extension .gz) gzip XAID.tar # compresse un fichier (XAID.tar.gz) gzip -d XAID.tar.gz # decompresse tar -xvf llnlxftp2.1.tar # extraction des fichiers d'archive voir aussi: split, unzip, zcat zip ttt tmp* # si ttt.zip n'existe pas, crée le fichier ttt.zip # sinon, ajoute au fichier ttt.zip unzip -l ttt.zip # donne les noms des fichiers archives unzip ttt.zip # fournit les fichiers # Avec des fichiers dans des sous-répertoies zip -r ttt tmp* # cree fichier avec parcours des sous-répertoies unzip ttt.zip # fournit les fichiers dans les sous-répertoires # les sous-répertoires sont éventuellement créés Configuration /etc/profile /usr/lpp/X11/defaults/xinitrc # appelé par .../xinit # voir /usr/openwin/share/locale/fr/props/C setenv LANG fr # voir /usr/openwin/lib/locale /usrc2/X11/lib/app-defaults/Xedit # ~/.bash_profile # lié a tkdesk voir ~/.fvwm2rc95 # lié a tkdesk Barre d'applications: ~/.tkdesk/AppBar Barre de boutons dans gest.fichiers: ~/.tkdesk/ButtonBar # voir .fvwm95rc et /var/X11R6/lib/fvwm95/system.fvwm95rc voir Particularismes Connexion depuis la machine cristal.math.u-psud.fr ou beryl ypcat -x ypcat hosts | grep ps32 host cristal.matups.fr host 192.54.146.62 # réponse: cristal.math.u-psud.fr is 192.54.146.62 Cette machine fonctionne avec openlook xhost +dpx20.iut-orsay.fr rlogin dpx20.iut-orsay.fr # puis nom et mot de passe Courrier avec Eudora raccourci actuel: "C:\Program Files\Qualcomm\Eudora Pro\Eudora.exe" h:\.eudora créer un sous-répertoire sur ibmf50 ~/eudora pour y noter les infos d'initialisation créer un raccourci qui lance eudora en lui précisant ce sous-répertoire Eudora.exe h:\ lancer eudora, créer un nouveau compte où: nom de connexion : astier (login ibmf50) serveur courrier entrant: ibmf50.iut-orsay.fr (POP) serveur courrier sortant: mailhost.iut-orsay.fr avec outils, gérer les options ... en particulier laisser le courrier entrant dans la boîte aux lettres mail (et ~/.mailrc) ou elm ============================== la commande l donne: Commands are: next, alias, print, type, Type, Print, visual, top, touch, preserve, delete, dp, dt, undelete, unset, mail, mbox, more, page, More, Page, unread, !, copy, chdir, cd, save, source, set, shell, version, group, write, from, file, folder, folders, ?, z, headers, help, =, Reply, Respond, reply, respond, edit, echo, quit, list, xit, exit, size, hold, hold, if, else, endif, alternates, ignore, discard, retain, saveignore, savediscard, saveretain, core, #, clobber mail -s "objet du courier" Roger.Astier@math.u-psud.fr < fichier adresses : astier@.iut-orsay.fr Roger.Astier@math.u_psud.fr # les fichiers ~/.mailrc set hold ~/.forward astier@iut-orsay.fr # re-expédition automatique (avec mail): constituer le fichier ~/.forward, contenant: astier@.iut-orsay.fr # plusieurs destinataires: définir la liste dans le fichier ~/.mailrc; par exemple: group gipo devil@dpx20.iut-orsay maynard@dpx20.iut-orsay \ rousseau@dpx20.iut-orsay schoelle@dpx20.iut-orsay # envoyer un fichier: mail -s "sujet `date`" destinataire_ou_nom_de_groupe < lettre elm -s "reponse enregistrement" maynard@limsi.fr < courtmp # associer ou attacher un fichier: ~r ficcode # coder avant utilisation: # doc_encode : courrier a envoyer: mail $ADR2 < doc_encode codage par: uuencode fic nom_fic > ficcode # à la reception: sauvegarde du courrier dans c.fic on peut laisser les en-tete) uudecode c.fic # cree le fichier nom_fic # exemple mail -s envoi astier@iut-orsay.fr envoi en attaché de exo_dep.gz ~r tmp.uu en souhaitant bonne réception . # à la reception: sauvegarde du courrier dans c.fic on peut laisser les en-tete) uudecode c.fic # cree le fichier nom_fic # exemple de fichier obtenu avec uuencode: begin 600 nom_fic M"N(@X"`@ZB#I(.@@ZR`@(.X@[R`@]"#V("`@^R#\(/D*"F5T(&-A971E ungif Remarque: ungif commence par: begin 600 Ivy.gif et termine par: end # insertion dans un courrier par la commande mail, par exemple: mail -s test roger.astier@laposte.net test de fichier attaché ~r ungif suite du courrier et fin . elm -s "reponse enregistrement" maynard@limsi.fr < courtmp entre bat. de math et l'iut: il faut passer par machine beryl telnet beryl # 129.175.54.194 telnet ibmf50.iut-orsay.fr # 129.175.248.16 (telnet net-gw.iut-orsay.fr 129.175.248.2) munpack conversion mime--> --Scraw_of_Flies_253_000 Content-Type: TEXT/plain; charset=us-ascii Content-MD5: QkaGkfssa1Ge3/5OBtpy5A== # courrier et Netscape m.'Edit | preferences' développer >>>>>> Mail & Groups >>> Identity champ Email Adress : Roger.Astier@math.u-psud.fr >>> Mail Server b.'More Options...' champ 'Local mail directory' : /usr/spool/mail/ Déboguer (exécutable obtenu en utilisant l'option -g a la compilation) dbx fic_executable quit pour sortir help step [n] exécuter 1 ligne ( eventuellemnt dans un sous-prog.) next [n] exécuter 1 ligne, sans détailler appel de sous-prog. goto #n aller ligen #n (peut permettre de re-executer) print expression (, expr ... ] p kk+4, jj dump, assign var=expression modifie une variable set $hexints; set $hexchars set $hexstrings; list [n1][,n2] affiche des lignes /exp_reg recherche une expression régulière ?exp_reg recherche vers l'arrière / ou ? recherche de la même expression alias status trace delete .dbxinit Démarrage session X /etc/profile stty erase ^H # configuration clavier: stty sane # configuration pour vi /usr/lpp/X11/bin/startx /usr/lpp/X11/bin/xinit # code machine /usr/lpp/X11/defaults/xinitrc # appelé par .../xinit Editeur elvis ... $HOME/app/elvis/bin et ftp://ftp.cs.pdx.edu/pub/elvis export TERM=ansi # configuration pour vi stty sane vi +43 fic # se placer ligne 43 vi +/ksh doc # se placer première occurrence de doc vi -R tmp # pour éditer en lecture seule en mode commande :st permet d'interrompre et de revenir à l'I.C. noter le pseudo-numero du processus interrompu: pn envoyer ses commandes, puis: fg %pn permet de remettre en premier plan le processus d'édition :ab be begin permet d'avoir une abréviation :3,10 w tmp lignes 3 a 10 sauvegardée dans tmp :13,15 w >> tmp lignes 13 a 15 rajoutée à tmp les commande ex ou lancées par : :set affiche:modifie une option :set cp? valeur =de la commande de compilation :cc compilation du fichier en édition :help aide; on peut suivre des liens ^T retour au lien précédent :flêhes édition de commandes :help ex documentation sur les commandes ex ^Ws découpe une fenêtre ^Wj / ^Wk fenêtre suivante / précédente ^Wc ferme ^Wd bascule affichage [syntaxique/normal] ou [normal/hexadécimal] :help ^W documentation sur ^W les commandes vi [n]| aller colonne n (ou fin de lignne) 0 / | aller colonne 1 ^ aller premier caractère non espace :help vi documentation sur les commandes vi mode d'affichage: :display pour voir tous les modes :display hex afffichage en hexadécimal :display normal affichage sans interprétation syntaxique jetedit -fn9x15 wxd puis cliquer voir /usr/lpp/X11/lib/X11/system.wxrc /usr/local/emacsenant pas /usr/bin/emacs -fn 10x20 & ll /usr/local/emacs/info répertoire applix # more /usr/local/bin/applix; ll /olpp/applixware A propos de xedit xedit -xrm 'Xedit*bc_label*label: ^S et ^R pour chercher' & descriptif : more /usr/lpp/X11/Xamples/clients/xedit/xedit.man fichier de ressources : /usr/lpp/X11/Xamples/clients/xedit/Xedit.ad edition d'un fichier avec copie de sauvegarde xedit -xrm '*enableBackups: true' tmp & Environnement X /usr/lpp/X11/bin/tellxdt3 ll /usr/lpp/X11 more /usr/lpp/X11/defaults/Xdefaults.tmpl /usr/lpp/X11/bin/xdt3 -fn 12x24 & # ?? bureau ... AIX xev & # évènements sur fenêtre (dans /usr/lpp/X11/bin) xrdb -nocpp toto1 # gestion des ressources du serveur X ll /usr/lpp/X11/Xamples /usr/lpp/X11/Xamples/demos /usr/bin/X11 # programmes standards /usr/lpp/X11/Xamples/bin # contient les exemples standards /usr/lpp/X11/Xamples/bin/xclipboard & /usr/lpp/X11/Xamples/bin/xlsatoms # fournit les noms des atomes /usr/lpp/X11/Xamples/bin/xprop # accessoires d'une fenetre /usr/lpp/X11/Xamples/bin/xwininfo # informations sur une fenetre Espace disque du -a matlab | sort -rn | more | avec tri numérique inversé du -a # du -a matlab | sort -rn | more df quota Examen reseau arp ibmf50 # arp -a | grep ncdtx6 fournit adresse ruptime netstat -f inet | grep ncdtx6 more /etc/inetd.conf # table des services Extractions basename /users/astier/exec/conv.c #-> conv.c basename c/prem1.c .c #-> prem1 dirname /dpx20/users/astier/exec #-> exec Fontes xlsfonts > fontes # pour récupérer les noms xfd -fn lucidasanstypewriter-bold-24 xfd -fn -adobe-helvetica-bold-r-normal--*-120-*-*-*-* xterm -name 9x15bold -fn 9x15bold & 10x20 12x24 13x22 lucidasans-14 r24 r14/etc/init i9x15bold icour14b icour18 icour18b /usr/lpp/X11/Xamples/bin/xfd \ -fn "-adobe-*-bold-r-normal--0-0-75-75-m-0-iso8859-1" xlsfonts -fn "-*-*-*-*-*--0-0-*-*-*-0-iso8859-1" # fontes vectorielles Historique des commandes : fichier $HOME/.sh_history la variable FCEDIT fournit le nom de l'éditeur utilisé # export FCEDIT=/bin/ed utiliser avec ksh, pour trouver une commande:/etc/init fc -3 fc -e monediteur préciser son fichier historique de commandes export HISTFILE=.sh_tmp Impression avec imprimante laser enscript xdoc.dpx20 enscript -d ps32 xdoc.dpx20 # sur impr. poscript enscript -d ps32 -fHelvetica12 xdoc.dpx20 # fonte enscript -d ps32 -X ISO8859-1 -f Helvetica12 xdoc.dpx20 #avec accents ... enscript -ptmpps -r -f Courier-Bold16 e3_fich.doc option -n6 (6 copies); letter legal a4 option -2r page paysage, 2 pages au recto enscript -q -dhplj4m -L65 -fCourier10 -FCourier-Bold10 distHamming voir /usr/local/bin/laser lp -d ps32 temper.ps Impression d'image d'écran -------------------------- 1. constituer un fichier format XYPixmap: xwd -out tmp.xwd # deplacer et cliquer 2. Le convertir en fichier poscript (en version hp on a des niveaux de gris) xpr -rv -device ps -width 9 -height 4 -output tmp.ps tmp.xwd xpr -device ps -gray 4 -append tmp_ps tmp_xwd # sur hp !!! 2.bis visionner par xwud 3. Envoyer ce fichier sur l'imprimante lp -d ps32 tmp_ps # afficher sur l'imprimante laser lp -d hplj4m tmp_ps # afficher sur l'imprimante salle p lp -d hpdjc tmp_ps # imprimante couleur 4. On peut enchaîner xwd | xpr -device ps -gray 4 -width 6 -height 2.8 | lp -d ps32 Interpréteur de commandes # Mode interactif alias chsh -l # liste des interpréteurs (changement): echo bla* "\c" # pas de saut de ligne, pour ksh echo -n bla* # pas de saut de ligne, pour bash # Divers export DISPLAY=pci008b.iut-orsay.fr:0.0 echo $SHELL # interpréteur courant env sh -xev aexec 2 # POUR DEBOGUER set su vi (voir .exrc) (se trouve dans /usr/bin) unalias # Edition de commandes, avec ksh # dans fichier ~/.profile mesg n set -o emacs # style emacs # déplacements: flêches non utilisables, mais et : P A B F E N (Previous, At begining, Backward, Forward, End, Next) # suppressions de caractères: D H K # ajout de caractères: touche standard # complément automatique de nom: ou = set -o vi # style vi (valeur par défaut) # on commence en mode [entrée] # changement de mode: [entree] --> [commande]: # [commande] --> [entree]: i a C s cw # déplacements: flêches non utilisables, mais en mode [commande]: k 0(zéro) h l, $ j # suppressions de caractères en mode [commande]: x X D dw # ajout de caractères: [entrée] touche standard # complément automatique de nom: * = # Le langage #! /bin/sh # en première ligne d'un script # Alternatives multiples # ajouter (une seule fois) le répertoire courant case $PATH in .*) echo répertoire courant dans le chemin ;; *) PATH=.:$PATH:/usr/lpp/X11/Xamples/bin ;; esac # Instruction conditionnelle et expressions conditionnelles # if then fi ou if then else fi ou if then elif then else fi # ; pour 'terminer une ligne' # test chaine vide [ -z "$2" ] # : instruction vide if ... ; then : ; else echo else; fi # COMPARER $# AVEC -lt ou -gt (NE PAS UTILISER < > ) # ATTENTION à l'espace après [ et avant ] # instruction vide : (toujours VRAI) if : ; then echo $abc; exit 1; fi # bloc jamais exécuté if ! : ; then echo $abc; exit 1; fi #! /bin/sh if [ $# -eq 0 ] || ( [ $1 = -h ] && [ $# -lt 2 ] ) then echo aide générale elif [ $1 = -h ] && [ ! $# -gt 2 ] then echo aide sur $2 elif [ $1 != -h ]; then if [ -z "$2" ]; then echo 1 paramètre; else echo à exécuter: $0 $* fi else echo \* \* Utilisation incorrecte fi # opérateur unaire ! : deux commandes analogues: test ! "$1" = -h et ! test "$1" = -h # opérateurs binaires -o -a; opérateur unaire ! (cf man test) if [ $# -eq 0 -o \( $# -lt 2 -a "$1" = -h \) ] then echo zero ou un seul parametre qui est -h fi # connecteurs entre commandes: || && ; opérateur de négation ! if [ $# -eq 0 ] || ( [ $1 = -h ] && [ $# -lt 2 ] ) then echo zero ou un seul parametre qui est -h fi # Répétitive # (for i; do ... done i parcours les paramètres du script) nbrep=-2 for i in `ls -a` do if [ -d $i ]; then let nbrep=nbrep+1; fi done if [ $nbrep -gt 1 ]; then plu=s; else plu=""; fi echo $nbrep répertoire$plu # Lecture d'un fichier ligne à ligne while read ligne echo $ligne done < nomFic # Paramètres prédéfinis et variables $? # code retour commande ou test précédent $# # nombre de paramètres (voir aussi shift) $* # tous les paramètres "$*" : 1 valeur $@ # tous les paramètres "$@" : n valeurs $$ # numéro du processus en cours $1 # premier paramètre eval dernier=\$$# # le dernier paramètre eval dernier=\${$#} # le dernier paramètre # définir les valeurs de $1 $2 ... set abc def; echo $# $1 $2 --> 2 abc def # définir les valeurs des variables jour quant qmois annee HMS date +"%w %d %m %Y %T" | read jour quant qmois annee HMS # Affectation liée à des commandes (pas d'espace entre '$' et '(') nr=$(ls -p | grep /$ | wc -l) # nombre de répertoires echo $nr # Valeur par défaut val=${1:-par_defaut} # Sous-chaines v=abcdefg # accès par indices echo ${v:0:2} #-> ab deux car. à partir indice 0 echo ${v:2:2} #-> cd deux car. à partir indice 2 echo ${v:3} #-> defg enlever les trois premiers # tronquer à gauche (# au minimum, ## au maximum) c="de l'action ou satisfaction" echo ${c#*act} #-> ion ou satisfaction echo ${c##*act} #-> ion # tronquer à la fin (% au minimum, %% au maximum) echo ${c%c*on} #-> de l'action ou satisf echo ${c%%c*on} #-> de l'a # racine d'un nom (ex:nomcomplet=toto.C --> racine=toto) racine=${nomcomplet%.C} # Fonction un exemple sans variable locale # définit les variables DATE et HMS (heure/minute/sceonde) function ladate { date +"%w %d %m %Y %T" | read jour quant qmois annee HMS qmois=12 # Quel jour $1 ? case $jour in 0) jour=dimanche;; 1) jour=lundi;; 2) jour=mardi;; 3) jour=mercredi;; 4) jour=jeudi;; 5) jour=vendredi;; 6) jour=samedi;; esac # # variable de type tableau pour le mois set -A mois janvier février mars avril mai juin juillet aout \ septembre octobre novembre décembre DATE="$jour, $quant ${mois[$qmois-1]} $annee" } ladate; echo $DATE # Invite PS1='$PWD:' # invite avec nom du répertoire courant export PS1='- - - $DATE, ${PWD#$HOME/}:\n' IUT # Recherche d'utilisateurs qui fou # utilisateurs qui fou | cut -d: -f1,3 # sans le numéro qui e[0-9] | grep ^e # étudiants # Lien page perso # Tout fichier ou sous-répertoire doit être accessible !!! chmod go+x ~ mkdir ~/WWW chmod go+x ~/WWW vi ~/WWW/Welcome.html chmod a+r ~/WWW/Welcome.html Lecture: disquette ou disque zip-omega (attention au developpement de * ? ) commande dd ?? /dev/fd0 /dev/fd0a /dev/fd0b /dev/fd0c eject mdir \*\.bak # recherche des fichiers d'extension bak mcopy *.m a: mcopy *.m Z: Lien ln -s /dptinfo/users/tp/ftp/sources # lien sources dans rép.courant ln -s exec/am_cmd ladoc # lien vers am_cmd par ladoc ln -s /dptinfo/intranet INTRANET # pour exécuter une applet ln -s /usr/lib/netscape/java/classes download # dans ~/.netscape/java ln -s /usr/lib/netscape/java/classes plugins Matlab acajou: /usr/local/bin/matlab kaki: /cedre/bin/matlab6.1 /cedre/matlab6.1/help/begin_here.html rubis: /usrc1/matlab52/bin/matlab /usrc2/matlab/bin/matlab # matlab 4 cristal: /usrc1/matlab52/bin/matlab # matlab 5 /usrc2/matlab/bin/matlab # matlab 4 % en noir et blanc colordef black colormap autumn | bone | colorcube |cool | copper | flag | gray | hot | hsv | jet | lines | pink | prism | spring | summer | white | winter % répertoires: usrc2/matlab sous-répertoires de /usrc2/matlab/toolbox : control ident images local matlab optim robust signal symbolic voir aussi les sous-répertoires /usrc2/matlab/toolbox/matlab et en particulier: /usrc2/matlab/toolbox/matlab/graphics Impression d'une figure ----------------------- print monfic -f1 % création de monfic.ps à partir de figure numéro 1 ! lpr mofic.ps print -append -f1 monfic % ajout de fig. 1 au fichier monfic.ps % Constitution d'un fichier jpeg, pour figure 1 [X map]=capture(1); imwrite(X,map,'fig1.jpeg') % Autres format tiff, xwd, bmp, pcx ... cf help imwrite Documentation html ------------------ URL: file:/usr/local/matlab5/help/helpdesk.html Attributs spéciaux ------------------ get(0,'Default'), get(0,'factory') get(0,'FactoryTextFontSize') set(0,'DefaultTextFontSize',12) set(1,'DefaultTextFontSize',12) # cf: doc figure set(1,'DefaultUicontrolFontSize',12) Minitel telnet cypres puis xtel & Openview et sun /usr/local/netscape/netscape # sur cristal /usr/openwin/bin/xview/textedit $HOME/.mat.m & Des exemples dans : /usr/share/src/sun/sunview1/examples /usr/openwin/share/src/sun/xview/examples Particularismes export LANG=fr_FR locale # options nationales d'écriture de dates, décimaux ... comparaisons de chaînes locale -a # donne les valeurs utilisables pour LANG man locale fichiers : /usr/lib/nls/loc/ILS répertoire: /usr/lib/nls/loc/fr_FR Processus # disk and extension monitor (daemon demon démon) telnetd ps -ax ps -ux # avec bash ps -alx ps -l -u astier # liste de Processus ps -ouid,pid,ppid,command -u astier ps -ouid,pid,ppid,args -u astier # args: commande complète champ STAT ( jusqu'à $ positions remplies) : prem I en attente (idle) R runnimg deux W processus swpappe _ (espace) processus charge trois quat non documente champ TT terminal associé (/dev/tty? ; ?:pas de terminal associe) champ PRI priorité du processus champ SZ taille champ RSS taille en mémoire du processus résident Recherche de suite de caractères dans des fichiers ---------------------------------------- grep '[t]$' doc # lignes terminant par t grep '^A' doc # lignes commençant par A # dans ce qui suit voir \ qui précéde ( ] { } # motif avec répétition: lignes contenant au moins 3 chiffres grep "[0-9]\{3,\}" doc.aix # motif avec référence: lignes contenant une voyelle doublée grep "\([aeiou]\)\1" doc.aix # ligne contenant un mot d'au moins 8 lettres doublé grep "\([a-z]\\{8,\}\).*\1" doc.aix de fichiers ----------- ls !(*.m) # autre que fichiers d'extension .m ls [^0-9A-Za-z]* # nom ne commençant pas par lettre ou chiffre ll | cut -c56- | grep -v ^[0-9A-Za-z] # nom de fichiers ne commençant # pas par lettre ou chifre ls -a | grep -v ^[.0-9A-Za-z] # celle la et la suivante sont ls | grep -v ^[0-9A-Za-z] # équivalentes rm -i `ls | grep -v ^[0-9A-Za-z]` # détruire fichiers au nom bizarre de fichier ou de sous-répertoire - - - - - - - - - - - - - - - - find /usr/lpp -name xterm -print > ficresul find . -name '*.c' -print # sources c en aval du rép. courant find . \( -name "*.C" -o -name "*.cpp" \) # sources C++ find . -type f -size +100k d'une chaîne dans un ou plusieurs fichiers - - - - - - - - - - - - - - - - - - - - - grep mwmrc fich* # dans les fichiers fic* grep -v mwmrc tmp # lignes ne contenant pas grep '^[ ].*[t]$' xdoc # lignes commençant par un espace, # terminant par un t find divers -name "*.c" -exec grep -w date {} \; des sous-répertoires - - - - - - - - - - ll -p /usr/include | grep /$ # ligne terminée par / ls -Ap | grep /$ | cut -f1 -d/ # répertoires, sans les liens ll /usr/include | grep ^d # commence par d find divers -name "j*" -type d # répertoires commençant par j # avec changement de droit par exemple sur chaque répertoire find /Mozilla -type d -exec chmod a+rx {} \; Redirection ls baba doc* > tmp # erreurs à l'écran, noms dans fichier tmp ls baba doc* >& tmp # erreurs et noms dans fichier tmp (ll tutu e* >tmp1) 2>tmp2 # affichage des résultats a l'ecran et dans le fichier tmp a.out | tee tmp # pagination de la sortie erreur (redirection de la sortie erreur) xterm -h 2>&1 | more # redirection des sorties (erreur et standard) dans un fichier ll tutu tm* > tmp9 2>&1 # délimiteur de la fin des entrées clavier cf here-document # les lignes jusqu'à FIN. sont placées dans le fichier fic cat > fic << FIN. et un et deux FIN. Répertoires /usr/lib/X11/fonts/misc /usr/local/bin/matlab /usr/include/X11 -> usr/lpp/X11/include/X11 /usr/include/Xm -> usr/lpp/X11/Motif1.2/include/Xm /usr/lpp/xlC/include /usr/lpp/X11/include/X11/bitmaps # répertoire des fichiers bitmap Serveurs ftp et http ftp.ibp.fr # jussieu ? et /pub/pc/win3/winsock nom de connection: anonymous mot de passe: adr.elec. ftp://ftp.ibp.fr/pub/ghost/aladdin ftp://ftp.ibp.fr/pub/doc/internet ftp.ora.com. # O'Reilly nom:anonymous daec.obspm.fr # ? La Recherche http://www.javasoft.com/nav/read/Tutorial/TOC.html http://www.iut-orsay.fr http://www.urec.fr http://www.urec.fr/France/France.html http://www.calvacom.fr/ http://www.francenet.fr/franceweb/FWcarnetRoute.html http://daec.obspm.fr/larecherche http://www.gnn.com/ Sequence escape [ ... ; fonction peut être: A B C D f H J K m Text Attributes Foreground Background 0 - attributes off 30 black 40 1 - Bold 31 red 41 4 - Underline 32 green 42 5 - Blinking 33 yellow 43 7 - Reverse 34 blue 44 8 - Hidden 35 Magenta 45 36 Cyan 46 37 White 47 exemple: bonjour en rouge gras sur fond blanc, puis attributs standards [1;31;47m bonjour [0m Déplacement du curseur adressage ;H adressage ;f en haut A en bas B a droite C a gauche D memoriser position s replacer u Effacer l'écran: | une ligne: le bas de l'écran: 0J | la fin de la ligne: 0K ou K le haut de l'écran: 1J | le début de la ligne: 1K tout l'écran: 2J | la ligne 2K Caractère ESCAPE avec ksh: echo "\033[2J" avec bash: echo $'\e[2J' avec vi: ^V^[[2J en c: "\033[2J" Redéfinition de touches du clavier: référence: http://www.instrument.com/support/lanpoint/appnote/keyredef.htm Tex variables : BIBINPUTS=.:/usrc1/local/lib/tex/inputs DVIPSHEADERS=/usrc1/local/lib/tex/ps GFFONTS=/usrc1/local/lib/tex/fonts/gf:. GTEX=/usrc1/local/lib/tex PKFONTS=/usrc1/local/lib/tex/fonts/pk:. TEXCONFIG=.:/usrc1/local/lib/tex/ps TEXFONTS=/usrc1/local/lib/tex/fonts/tfm:. TEXFORMATS=/usrc1/local/lib/tex/formats TEXINPUTS=.:/usrc1/local/lib/tex/inputs TEXPKS=/usrc1/local/lib/tex/fonts/pk TEXPOOL=/usrc1/local/lib/tex. VFFONTS=/usrc1/local/lib/tex/fonts/vf:. XDVIFONTS=/usrc1/local/lib/tex/fonts/pk latex sample.tex # compile et fournit un sample.dvi xdvi sample # permet de voir le résultat sur terminal dvips sample # convertit en fichier postscript lprsi sample.ps # envoie à l'imprimante http://www-adele.imag.fr/~donsez/cours/#web Tkdesk file:/usr/local/lib/TkDesk/doc/guide.html # sur acajou Variables d'environnement DISPLAY HOME IFS LANG=fr LOGNAME=astier MANPATH PATH PS1 SHELL TERM USER # pour csh (unsetenv DISPLAY pour la supprimer) # setenv DISPLAY ncdtx6.iut-orsay.fr:0 X: Connaître les ressources pour un client xterm -ls -xrm '*xterm*scrollBar: TRUE' -fn 10x20 -sb -sl 512 & xterm*StringConversionWarnings:on # affichage de messages /usr/lpp/X11/Xamples/bin/appres Xterm # ressources pour un client appres bitmap /usr/lpp/X11/lib/X11/app-defaults # répertoire /usr/lpp/X11/lib/X11/app-defaults/XTerm listres ApplicationShell X: Documentation et sources (?) sur les clients dans le répertoire /usr/lpp/X11/Xamples/clients more /usr/lpp/X11/Xamples/clients/xterm/README info -s XmForm # acces aux manuels X et Motif en utilisant more /usr/lpp/X11/Xamples/clients/xedit/xedit.man xterm -ls -fn 10x20 & xterm -xrm '*xterm*scrollBar: TRUE' -fn 10x20 & xterm -ls -fn 13x22 & # autres fontes: icour18 icour18b icour14b i9x15bold X: Couleurs more /usr/lpp/X11/lib/X11/rgb.txt X: Fichier démarrage de la session /usr/lpp/X11/lib/X11/xdm/Xsession (more /usr/lpp/X11/lib/X11/xdm/Xstartup (more /usr/lpp/X11/lib/X11/xdm/README (cp /usr/lpp/X11/lib/X11/xdm/default_startup .xsession X: Répertoires utilisables en compilation /usr/include/X11 -> usr/lpp/X11/include/X11 /usr/include/Xm -> usr/lpp/X11/Motif1.2/include/Xm /usr/lpp/xlC/include /usr/lpp/X11/include/X11/bitmaps # répertoire des fichiers bitmap /usr/include/sys/X.h # des constantes, des masques ... X: Bibliothèques utilisables a l'édition de liens /usr/lib/libX11.a -> /usr/lpp/X11/lib/R5/libX11.a /usr/lib/libXm.a -> /usr/lpp/X11/Motif1.2/lib/libXm.a /usr/lib/X11 -> /usr/lpp/X11/lib/X11 /etc/xlc.cfg /usr/include /usr/lib/libc.a /usr/lib/libm.a X: Fichiers d'en-tête pour Xlib /usr/include/sys/X.h des constantes, des masques ... /usr/include/sys/types.h X: Lancer une connexion sur hp720v, puis un client xterm -title hp720v -fn 9x15bold -e rlogin hp720v & ved -display ncdtx6:0 X: et Motif # configuration de mwm cp /usr/lpp/X11/lib/X11/system.mwmrc .mwmrc /usr/include/X11 /usr/include/Xm /usr/X11/lib/libMrm.so /usr/X11/lib/libXm