_______     ________     _______    __    __ 
            |   __  \   |        |   /       |  |  |  |  |
            |  |__|  |  |   __   |  |      __|  |  |__|  |
            |      _/   |  |__|  |   \_   |_    |        |
            |   __  \   |   __   |   __\    \   |   __   |
            |  |__|  |  |  |  |  |  |        |  |  |  |  |
            |_______/   |__|  |__|  |_______/   |__|  |__|
                          bash 24/05/2005

Administration systeme

commande

description

date

Affiche l'heure et la date


date -r f1
echo "" > `date +/tmp/tmp-%m%d%Y.%H%M%S`
 

groupadd

Ajout d'un groupe cf /etc/group /etc/gshadow groupadd -g100 group1 # 100 = gid gid>99

groupdel

Suppression d'un groupe. groupdel group1

groupmod

Modification d'un groupe. groupmod -g102 -n group2 group1

hostname

Affiche le nom de la machine.

id

Renvoit le numero d'id user et group.


id user1  -n -g -G # affiche le nom, le goup, les groupes en +
-r    --real: vrai nb id  --version --name --group --groups --help
 

logname

Affichage du nom de l'user cf /etc/utmp logname # --help --version

lpc

Relance le demon d'impression

lpq

Affiche le file d'attente d'impression d'un user cf /etc/printcap


lpq -P $PRINTER -l job user1 # imprimante, affichage detaille
 

lpr

Imprime des fichiers.


lpr -#3 -s f #lien (s)ymbolique pour les gros fichier, (#)3 copies
 

lprm

Remouve job de la file d'attente d'impression. ...

mesg

Acces aux terminaux y(yes) ou n(no). mesg y or mesg n ou mesg pour afficher le statut.

newgrp

Modifie l'appartenance a un group. newgroup - group2 ou sg group2 -c 'command'(su)

passwd

Modification de mot de passe cf /etc/passwd /etc/shadow


passwd user1 ou passwd -S user1
-g -r -R options de groupes: group, remove, restrict
-xnwi    jours max, jours min, jours warning, inactivity > j max
-lued    lock, unlock, force (a changer), del (plus de pass)
-S       {L: locked, NP: no password, P password}, date modif,
         j min, j max, j warn, inact.
 

shutdown

Arret du systeme voir telinit


shutdown -t1 -h now  # attend 1s pour init, halt, maintenant
-r -k -c reboot, warning seulement, cancel + message
-f -F -a skip fsck, force fsck, utilise /etc/shutdown.allow
+5 10:30 dans 5 min, à 10:30
 

stty

Config. interface serie

su

Changer le numero d'id user


su -c `ls -l ~` user1;
- -l --login                  cree un shell login
-c, --command=com             lancer une commande
-p -m --preserve-environment  preserver les variables
-s --shell=shell  -f: fast  --version --help
 

tty

Affiche noms des terminaux tty --help; -s, --silent, --quiet; --version retourne 0: ok, 1: stdin n'est pas un tty, 2: err d'arg, 3: wrt err

umask

Change le masque par default des fichiers normaux cf chmod


umask 022 # 0666 & ~022=0755=rw-r--r--  Retourne l'ancien masque
 

uname

Affiche des informations systemes.


uname -a # affiche toutes les infos.
-m -n -s type de machine, nom reseaux, nom du systeme --version
-r -v -a numero de version du systeme, version, all --help
 

useradd

Ajoute un utilisateur. cf passwd -S


useradd -m user1 #cree user1 en creant son repertoire home
-c -d -e commentaire, repertoire home, expire date
-f -g -G jours inactfs, groupe, autres groupes avec liste g1,g2.
-p -s -u passwd (cf crypt), shell, uid
-k skel  repertoire skelette a creer par default /etc/skel
-D -[b,e,f,g,s] options par Default. -b: home dir
 

userdel

Supprime un user. userdel -r user1 #efface tous les fichiers de l'user et son compte. retourne 0: ok, 8: user logue, 1: pas d'acce a passwd

usermod

Modifie les attributs d'un utilisateur.


usermod -l user -e YYYY-MM-DD # change le login de l'user
cf useradd opt: -c -d -e -f -g -G -p -s -u
 

wall

Envoit un message sur tty de tous les users. cd mesg wall mess_f

whereis

Recherche les fichiers executables dans des dossiers specifiques.


whereis -u -M /usr/man/man1 -S /usr/src /usr/src/sys -f "ls"
-b -m -s fichiers binaires, manuels, sources. -u: anormaux
-BMS -f  limite les dossiers bin,man,sources. -f: fin des dossiers
 

who

Affiche la liste des users connectes.


who /etc/wtmp2 # utilise un autre fichier que /etc/wtmp
-m,am i  qui suis-je
-q,--count    affiche les noms et le nombre uniquement.
-i,-u,--idle  affiche le temps d'inactivite .=actif<1min

which

Recherche une commande dans le repertoire du PATH ex: which cmd

whoami

Affiche le nom de l'utilisateur courant.

write

Envoit un message a un autre utilisateur. write user [tty2] # terminer le message par EOT (Ctrl-D)

yppasswd

passwd sur une machine cliente

Gestion de fichiers

commande

description

basename

Renvoit le nom de base d'un nom complet. basename /mnt/data/ty -> ty basename /tmp/file.c .c -> file

cd

change directory cd - :repertoire precedent cd ou cd ~ dossier user cd .. : remonte d'un niveau cd ~user1 dossier home de user1

chgrp

Change le groupe d'un ou plusieurs fichiers.


chgrp -Rc group *  #recursif (-R), affiche les fichiers changes(-c)
--deference  change les fichier cibles des liens plutot que le lien
--reference=f  change par le groupe de f
--no-deference (-h) -f (silent) --recursive
 

chown

Change le user du fichier. Memes options que chgrp. chown -Rv user2[:group] * # verbose (-v) --from=user[:group] change les fichiers de l'user specifie

chmod

Change les permission d'un fichier. Memes options que chgrp.


chmod u+x f # rajoute l'attribut exec pour l'user de f
+: ajout, -: enleve, =: specifie
t: sticky, u:user, g:group, o:other, a:all
r: read(4), w: write(2), x: exec(1), s:sticky, X. chmod 7777 f
 

cp

Copie de fichiers.


cp f1 f2 ou cp -R * /d1  # -r n'inclut pas les fichiers speciaux.
-f -i -p efface les fichiers cibles, confirmations, permissions=
 

dd

Copie avec conversion.


dd conv=lcase if=f1 of=f2 ecrit f1 dans f2 en minuscules.
bs=n ibs= obs= # taille des blocs d'e/s (b=512,c=1,k=1024,w=2,xm=m)
cbs=n          # taille de blocs pour la conversion
skip=n seek=m  # skip n blocs de f1, skip m blocs en ecrivant f2
count=n        # copier n blocs
conv=n  n=(ascii,ebcdic,ibm,block,unblock,lcase,ucase,swab,noerror,
notrunc,sync)  # block termine cbs par ' ', sync ibs par '\0'
 

df

Disk free affiche la quantite d'espace disque, ou du disque des f.


df -ahk  a: all, h:+M (megas), k|m: afficher par kilos ou megas
-i -P    # affiche les inodes, POSIX format
-T -tn   # affichage du type, selection du type n. (cf mount)
-xn      # exclure le type n.  --sync --no-sync pour la synchro.
 

dirname

Renvoit le chemin. dirname /mnt/data/ty -> ../data

du

Disk usage voir options de df (-ahk).


du -xb u* # affiche les bytes des fichiers (b), exclure autres type
-c -s -l affiche en + le total, seul le total, 2liens>n = 2*n
-D -L -S 1lien = taille du lien, 2liens>n = n, separe les dossiers
 

file

Affichage du type de fichier.


find -f fn.lst liste de noms de fichiers a traiter.
-b -cm list  brief, chek print et liste de fichiers magic
-n -L    vide le buffer stdout a chaque fichiers, lien>n = n
-z -s    regarder dans les fichiers compresser, fichier special
 

find

Trouve des fichiers. find . -name '.h' ou -path 'd' retourne 0 si pas d'erreurs, sinon >0 ...

ln

Cree un lien symbolique ou materiel.


ln -s f1 l1 #lien symbolique  ln f1 d1 d2  # 2 liens materiel crees
-f -i -d --force, --interactive, lien physique sur dossier
-n       #si l1 est deja un lien vers un dossier, l'ecraser,  plutot
         #que creer le lien dans le dossier pointe
-b -S~ -v  backup, suffix backup '~', verbose
-V (t,nil,simple) numerote, simple et numerote si plusieurs, simple
 

locate

Recherche de fichiers suivant leur nom ; utilise une bdd fichiers présents sur le système (voir la commande updatedb).

ls

Liste un repertoire.


ls -ali u*  #liste fichiers caches(a), en detail(l), avec inodes(i)
-F -d -1 #ajouter (/,*,|,@), enlever (/,*,|,@), 1 fichier par ligne
-R -r -C #recursif, inverser le trie, triage vertical, -x: horizont.
-ct -uk  #trier par statuts, par date, par date de modif, en kilo
-m -n -s #separer par des ',', uid et gid en id, afficher la taille
--color --full-time ...
 

mkdir

Cree un repertoire. mkdir -m 0777 -p d1 # mode (cf chmod), recree l'arborescence

mv

Move; deplace ou renome des fichiers cf ln opt -b -S -v -V -i -f


mv -u f1 f2   # deplace f1 en f2 en update.
 

pwd

Affiche le chemin absolu du répertoire courant

rm

Remove: suprime un objet rm -R d1 ou rm -f -- f* # -- fin args


-f --force, -i --interactive, -r -R --recursive, -d. -d unlink fsck
 

rmdir

Remove directory rmdir -p -- d1 # -- fin des arguments


-p --parents rmdir -p a/b <=> rmdir a/b; rmdir a
 

touch

Modifie la date ou creer des fichiers vides.


touch -a -t yyyymmddhhmm.ss -- f1  # -- fin args
-a -m -t modif acces, modif dare modif, specifie une date
-c -d    ne pas creer de fichiers, modif date (am),
-r f     fichier reference f prendre sa date.
 

updatedb

Création et màj de la bdd utilisée par la commande locate.

Systeme de fichier

commande

description

dumpe2fs e2fsck mke2fs mknod

Affiche des informations sur le système de fichiers.

mknod : Creer un fichier spécial

mount

Monte un système de fichier d'un certain (t)ype


mount identifie le disque
mount -t vfat /dev/fd0 /mnt/floppy  # disquette
mount -t iso9660 /dev/cdrom /cdrom  # cdrom
 

umount

umount /dev/cdrom Demonte un système de fichier

badblocks

Scan disque (démonté) pour récupérer la liste des blocs défectueux badblocks -v /dev/sdb1 > bad-blocks

fsck

Marque les blocs défectueux fsck -t ext3 -l bad-blocks /dev/hda1

umssync

Commandes de traitement de donnees

commande

description

cat

concatene 2 fichiers


cat -b f1 f2 > f3 #concate f1 et f2 en affichant les no ligne pleine
cat -ns << EOF #  affiche le texte en concatenant les lignes,
ligne2_texte   #  affiche les numeros de lignes (-n).
EOF            #  remplace plusieurs CR par un seul (-s).
-E -T -t `$' en fin de ligne, afficher tabs (^I), -t=-vT -e=-vE
-v -A    # afficher caracteres de controles sauf CR et TAB, -A=-vET

cut

extrait un champ de fichier dont le delimiteur x est -d"x"


echo "a b c d" | cut -f2 -d" "; #extrait le 2eme champ ici: "b"
echo "abcdef" | cut -b 2-2; #extrait du 2eme octet au 2eme: "b"
who | cut -c1-10; #extrait les 10 premiers caracteres
-s       Avec -f, # n'affiche pas les lignes sans delimiteurs.
 

cmp

compare 2 fichiers


cmp -i 100 f1 f2 # compare f1,f2 a partir du 100eme octet.
cmp -c -l f1 f2  # print les caracteres qui different (-c)
cmp f1 f2 M1+N1 M2-N2 # pour f1: debute a M1 et compare N1 oct
          # pour f2: debude a M2 et termine a N2 oct equ M2,N2
-s -v     # silent, verbose.  retourne 0=, 1!=, >1 error
 

diff

liste de differences 2f


diff -3 -aBb f1 f2 #compare f1,f2 en mode texte (-a) en affichant 3
     # lignes de contexte, sans comparer les blancs chr: b, cr: B
diff -iPBbqr d1 d2 # compare d1, d2 avec leur  sous repertoires (-r)
                   # en affichant uniquement les fichiers (-q).
                   # (-i) ignore la case (-P) fichier manquant=vide
--brief  # affiche si les fichiers different uniquement.
-c --exclude=nm --expand-tabs -- etc retourne 0=, 1!=, 2 error ...
 

expand

Convertir les tabulations en espaces. expand -t 8,6,6,8 f1 place les taquets de tabs en colonnes 8,6,6,8 echo "(tab)aze(tab)tyu" | expand -t3 -i #initial " aze(tab)tyu"

file

Retourne le type des fichiers passés en arguments.

fmt

Mettre en forme des textes en concatenant les fichiers.


fmt -t -w80 -p"//" f1 f2 # mettre en forme les lignes commencant
                         # part "//" en coupant a la colone 80
(-c) aligner la marge sur la 2eme ligne.
(-t) idem que -c  mais les  deux premieres  lignes d'un  paragraphe
doivent avoir des indentations differentes,sinon 2 paragraphes.
-u       1 seul espace entre les mots.
-s       (split) couper uniquement sans en former des plus longues

fold

positionne un texte en mots et colonnes sur une largeur maximum fold -b 2; #renvoit le texte avec une largeur de 2 octets fold -s; #coupe le texte entre les mots sur des espaces. fold -w 2; #renvoit le texte avec une largeur de 2 colones

grep

trouve une chaine dans des fichiers


grep -bin -e 'main \{' | ('void' ' main')  *.c
  # recherche 'main' ou 'void' dans *.c en affichant le nb de ligne
  # (-n) et l'octet (-b), en ignorant la case (-i).
  # (-l) fichiers uniquement...
 

head

affiche le debut d'un fichier head -n2 -q f1 # affiche les n premieres lignes, (q=quiet, v=verbo) head -c 3 k # affiche 3k octets (b=512o, k=1ko, m=1Mo)

join

fusione les champs commun de deux fichiers tries. Si -t est utilise il faut les trie en ignorand les blancs du debut (ex sort -b).


f1:  1: a:b:1              f2:  1: c::x
     2: b:a:2                   2: d:y:6
     3: c:e:3                   3: e:b:7

join -t: -e "#" f1 f2  #join f1,f2 retourne "c:e:3:#:x"
join -1 2 -t: f1 f2 #fusion sur champ 2 du fichier 1, "e:c:3:b:7"
join -2 3 -t: f1 f2 #fusion sur champ 3 du fichier 2, ""
(-a1) # en plus de la sortie, afficher les autres lignes de f1.
(-v2) # plutot que la sortie, afficher les autres lignes de f2.
 

more

Affiche page par page le contenu des fichiers passés en arguments.

nl

Numerote les lignes d'un fichier avec des delimiteurs de pages optionel, qui sont supprimes en sortie.

options de numerotation generale:


-n {ln,rn,rz} aligne a gauche, sans zeros, a droite avec ou sans 0.
-w 3          3 colones de large (001).
-s ":"        separe du texte de la numerotation par ':'
-v 4, -i 2    incremente de 2 en 2 a partir de la ligne 4
options de numerotation des sections:
-h {a,t,n}    header style: a; toutes lignes, t; non vides, nule
-b -f -d"##"  boddy style, foot style, section delimiter,
-p -l 4       ne pas compter a chaque page, 4 lignes vide=+1

objdump

Affiche les informations d'un fichier objet. obdump -S prg.exe affiche les sources assembleur ....

od

octal dump; affiche le fichier dans un format specifie. od -tx L -Ao f1 # Adresses (-A) en octal (d,o,x,n=none) # Texte (-t) en hexa (a,c,d,f,o,u,x) # -t d|o|u|x [C|S|I|L] (char,short,int,long) # -t f [F,D,L] (float,double,long) od -j400 -N2 f1 # affiche 2 octets de f1 a partir de l'octet 400.

paste

fusione des lignes dans un f paste f1 f2 # regroupe les lignes de chaque fichier, separees paste -d: f1 f2 # des Tabs ou : (-d) paste -s f1 f2 # regroupe les lignes de f1 avec des tabs, puis f2

pr

ajoute une pagination pour l'impression.


-C -a    faire C colones en tronquant et de gauche a droite
-b       equilibreer les colones sur la derniere page.
-c -d    caracteres de controle '^G', et double espacement.
-e6 -e:6 tabs en 6 espaces, : en 6 espaces.
-i:6 -o4 remplace 6  espaces en ':', marge a gauche de 4 colones
-f       saut de page au lieu de cr en fin de page.
-h"e"    remplacer le nom de fichier en en tete par e.
-l 66 -m 66 lignes max, 1 fichier par colone.
-n:3     afficher les numeros de lignes dans chaque colone 001:
-s| -t   inserrer '|' entre les colones, pas d'en-tete ni pied.
-r -v    pas de messages d'erreur, caracteres ni en \octal

sed

editeur en mode stream ...

sort

trie un fichier texte sort -b f1 -o f2 # trie f1 en ignorand les blancs de debut (-b).


-c       verifie si le fichier est trie, retourne 1 si erreur
-m       merge ; les f d'entree sont tous deja tries.
-f -i    ignore la case, ignorer hors des ASCII octal [040,0176].
-d       trier uniquement lettres, chiffres, blancs.
-M       trier les mois de 3 lettres par ligne. 'JAN'>'FEV'
-n" -00.00"    comparer suivant "  -0000.00"
-r       inverser l'ordre de tri.
-t: -of  caractere de champ, sortie vers le fichier f.

split

divise un fichier (b=512o, k=1ko, m=1Mo)


split -b 1k f1 name_ # divise f1 en fichiers name de 1k octets.
-l 1000  # divise toutes les 1000 lignes
-C 1M    # coupe apres une ligne sans depasser 1M octets
 

strings

extrait les chaines lisible d'un fichier hexa


-a       extrait tout (pas l'init et chargement de fichiers objets)
-f       print le nom du fichier a chaque ligne
-n 8     specifie le nb chr min pour printer une ligne
-to -o   print offcet en octal (o,x,d)  --objdump ...

sum

calcule le checksum d'un f sum -rs f1 compatible system V (-rs) et utilise des blocs de 512 o

tac

Concatener et afficher des fichiers a l'envers.


tac -s"<>" -b f1 f2 #separateur entre fichiers: <> place au debut du
                    #fichier suivant (-b)
tac -s23 -r f1 f2   #le separateur est une expression reguliere
 

tail

affiche la fin d'un fichier


tail -5 -n2 f1 # afficher 2 lignes a partir du 5eme octet en partant
               # de la fin
-c4k           # afficher 4k octets
 

tr

conversion de caracteres


tr "àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ" "aceeeeiioouuACEEEEIIOOUU"
tr a-z A-Z  ........
tr -d '\015' < "file.dos"  > "file.unix"
 

uniq

elimine les lignes en double dans un fichier trie.


uniq -u f1 # afficher les lignes uniques (u)
-d         # afficher les lignes doubles
-w         # verifier la longueur des lignes uniquement.
-f -s      # ignorer les champs, ignorer le nb de caractere.
 

wc

word count


wc -c f1 # compte le nombre de bytes de f1
echo "w1 w2" | wc -w # compte le nombre de mots
(-l) nombre de ligne (-L) nombre de colones max
 

Gestion processus/communication:

commande

description

bg

relance un job en arriere plan apres une interuption Ctrl-Z ou & bg job bg affiche les jobs en tache de fond

fg

relance un job en avant plan apres une interuption Ctrl-Z ou & fg job

ipcs

Donne des infos sur les communications interprocessus.


ipcs -i id specifie l'id a afficher.
-m -q -s shared memory segments, message queues, semaphore arrays
-a all   tous
-(t|p|c|l|u)      # time, pid, creator, limits, summary

jobs

Affiche les jobs en cours

kill

envoie un signal a un processus, par default: TERM


kill -s SIGKILL pid  # envoit sigkill au process pid (nom ou id)
kill -p pname        # renvoit le numero d'id
-l                   # affiche tous les signaux
 

mkfifo

Cree des FIFO ( first in, first out; tubes nommes) mkfifo -m mode tube cree un tube

nice

Execute un programme avec une priorite d'ordonnancement modifiee. L'intervale est -20 (le plus prioritaire) à 19. nice -10 bash # -10 de priorite sur champ NI de ps -l

nohup

Execute un programme même après deconnexion utilisateur. nohup updatedb

ps

Afficher l'etat des processus en cours. ps -x


ps -auxfn # (a)ll, (u)sers, (x)av/sans terminal, (f)orest, (n)umber
ps -ljc   # (l)ong ajoute NI, (j)ob ajoute pgid sid, (c)ommand
pe -er    # (e)nvironnment, (r)unning
 

pstree

Liste les processus de façon arborescente. -p : affiche aussi les PID des processus

sleep

Attendre la duree determinee. sleep 2s #attend 2 secondes (s/m/h/d)

sync

Vide les buffers du systeme de fichier.

top

Afficher l'etat des processus en temps reel. top -b -p pid # (b)atch mode (p)id

wait

Attendre la fin d'un processus. wait updatedb

Commandes reseaux:

commande

description

rlogin

rlogin machine permet de se logger sur une machine UNIX distante. .rhosts (nom_machine user_autorisé) /etc/hosts (IP nom_machine)

rsh

exécute une commande sur une machine distante. rsh machine commande

rcp

copie une arborescence d'un système à l'autre. rcp user@machine:/home/fichier .

telnet

permet de se logger sur une machine distante. telnet mail.bissymail.com 110 # port pop3: 110 port telnet: 23 user login; pass mdp; #smtp 25 ssh 24

ftp

permet de se connecter en ftp, users non autorisés: /etc/ftpusers kmail & ftp machine # user: user@machine pass:

id

Affiche les UIDs et GIDs effectifs et réels

finger user

Recherche des informations sur un utilisateur

chfn

Change les informations sur un utilisateur

ypchfn

Change le mot de passe NIS

mesg yes no

Active ou desactive les écriture sur le terminal

talk user@ma

chine Affiche un message sur un autre terminal

Shell langage script:

commande

description

echo

Affiche du texte sur la sortie stdout. echo -n ou echo chaine \n en System V

getops

Scan les options entree en paramettre du script.

read

Lecture d'un peripherique. read ans < /dev/tty

tee

Redirige l'entree vers le fichier f1 ( EQU: command > file ) tee -a f1 -a,--append; -i,--ignore-interrupts; --help; --version

xargs

Construit et execute une ligne de commande depuit stdin.

Commande man:

man - Macros pour la mise en forme des pages de manuel.

Syntaxe des pages man La première commande d'une page de manuel doit être .TH titre section date source manuel titre Le titre de la page de manuel (par exemple AR). section Le numéro de section de la page (par exemple 1). date La date de la dernière modification. source La source de la commande manuel Le titre du manuel (Manuel du programmeur Linux). Ex: .TH AR 1 "11 Août 2000" GNU "Manuel de l'utilisateur Linux"

Les sections de pages sont traditionnellement réparties ainsi :

  • 1 Commandes : Les commandes shell.
  • 2 Appel systèmes : Les fonctions fournies par le noyau.
  • 3 Fonctions de bibliothèques : La plupart des fonctions de la libc.
  • 4 Périphériques : Fichiers spéciaux trouvés dans /dev
  • 5 Formats de fichiers et conventions : Le format de /etc/passwd.
  • 6 Jeux
  • 7 Ensembles de macros et de standards : standard, jeux de caractères.
  • 8 Commandes d'administration système : Les commandes comme mount(8).
  • 9 Routines du noyau : section non-standard.

Les sections commencent par .SH suivies de leurs titres. NOM, SYNOPSIS, DESCRIPTION, OPTIONS, FICHIERS, VOIR AUSSI, DIAGNOSTIQUE, BUGS, AUTEUR. NOM, est indispensable. En anglais: NAME, SYNOPSIS, DESCRIPTION, OPTIONS, FILES, SEE ALSO, BUGS, and AUTHOR. pour que apropos marche avec les pages en francais, il faut editer le fichier /usr/sbin/makewhatis rechercher 'NAME' avec la case, et modifier la ligne : (pages == "cat" && ($1 ~ /^NAME/ || $1 ~ /^NOM/ ))) Lancer ensuite makewhatis

Fonctions Arguments en italique. le reste en gras dans SYNOPSIS Include Tout en gras dans SYNOPSIS (#include ). Fichiers Tout en italique (/etc/passwd). Macros En majuscule, et en gras. Reference En gras.

Commandes pour sélectionner les fontes :

  • .B Gras
  • .BI Gras alterné avec Italique
  • .BR Gras alterné avec Roman
  • .I Italique
  • .IB Italique alterné avec Gras
  • .IR Italique alterné avec Roman
  • .RB Roman alterné avec Gras
  • .RI Roman alterné avec Italique
  • .SB Petit alterné avec Gras
  • .SM Petit

Macros :

  • .DT Tabulation par défaut.
  • .HP Début d'indentation.
  • .IP Début de paragraphe avec un mot-clé sur la meme ligne.
  • .LP Comme .PP
  • .PD Fixe la distance entre paragraphe à la valeur fournie.
  • .PP Commencer un nouveau paragraphe.
  • .RE Fin d'indentation relative (dans un paragraphe).
  • .RS Début d'indentation relative (dans un paragraphe).
  • .SS Sous-titre, comme .SH, mais pour une sous-section.
  • .TP Début de paragraphe avec un mot-clé sur prochaine ligne.

Options :


-l, --local-file     affiche une source nroff sans creer de cache.
-L locale, --local=  assigne les variables avec setlocale $LANG $LC_MESSAGES
-D, --default        efface $MANOPT, et se lance avec les options par default.
-M path, --manpath=  force un chemin pour les pages. ($MANPATH -m ignores)
-P pager, --pager=   force le pager; /usr/bin/pager -s ($PAGER -f -k ignores).
-r prompt, --prompt= change le prompt par default:
                     " Manual page $MAN_PN ?ltlin %lt?L/%L.:
                     byte %bB?s/%s..? (END):?pB %pB\%.."
-7, --ascii          fonte ascii pure.
-S list, --sections= remplace $MANSECT pour specifier les sections 'NAME SYN'
-a, --all            montre toutes les pages references
-c, --catman         a utiliser avec le programme catman.
-d, --debug          affiche des informations de debug.
-e ext, --extension=
-f, --whatis         affiche uniquement la description
-h, --help
-k, --apropos
-m system            pour chercher dans d'autres syst ex: -m newos $SYSTEM
-p string            precise la sequence de lancement. $MANROFFSEQ
-u, --update         update cache database.
-t, --troff          utilise /usr/bin/groff -mandoc
-T device
-Z, --ditroff
-w, --where          affiche l'emplacement des pages.
-V, --version

Valeurs de retour: Retourne 0 si ok, 1 si erreur de syntaxe, 2 si erreur operationnelle, 3 pour une erreur d'un processus fils, 16 si un des mots clef n'a pas ete trouve.

Commande find:

Recherche des fichiers dans une hierarchie de repertoires.


find [chemin...] [expression] ex: find /lib -name *.sh
-daystart        Mesurer les temps depuis 12 h plutot que depuis 24 h.
-depth           Traiter d'abord les sous-repertoires.
-follow          Aller aussi la ou les liens pointent (avec -noleaf).
-help, --help    Aide
-maxdepth n      Descendre au plus n niveaux (n>=0).
-mindepth n      Debuter les tests a partir de n niveaux
-mount, -xdev    Ne pas aller sur d'autres systemes de fichiers.
-noleaf          Ne pas supposer que les  repertoires  contiennent 2 fois moins
                 de sous-repertoires que leurs nombres de liens physiques (..).
-version,        --version

Les test se presentent comme des parametres:


+n               > a n,
-n               < a n,
n                = a n.
-amin n          dernier acces au fichier il y a n minutes.
-anewer file     dernier acces au fichier plus recent que la modification.
-atime n         dernier acces au fichier il y a n*24 heures.
-cmin n          derniere modification du statut du fichier il y a n minutes.
-cnewer file     derniere modification du statut du fichier plus recente
-ctime n         derniere modification du statut du fichier il y a n*24 h.
-empty           fichier vide. De plus ce fichier doit etre regulier ou un rep.
-false           toujours faux.
-fstype type     sur un systeme de fichiers du type indique. ( -printf %F).
-gid n           Fichier de GID numerique valant n.
-group nom_g     fichier appartenant au groupe nom_g.
-ilname motif    identique a -lname, mais sans la case.
-iname pattern   identique a -name,  mais sans la case.
-inum n          fichier dont le numero d'i-noeud est n.
-ipath motif     identique a -path, mais sans la case
-iregex motif    identique a -regex, mais sans la case
-links n         fichier ayant n liens.
-lname motif     lien symbolique, dont le contenu correspond au  motif indique.
-mmin n          Fichier dont les donnees ont ete modifiees il y a n minutes.
-mtime n         Fichier  dont  les donnees ont ete modifiees il y a n*24 h.
-name motif      Fichier dont le nom de base correspond au motif du shell.
-newer fichier   Fichier modifie plus recemment que le fichier indique.
-nouser          Fichier dont l'U-ID numerique ne correspond a aucun users.
-nogroup         le G-ID numerique ne correspond a aucun groupe d'utilisateurs.
-path motif      Avec le nom complet. Ex: pour ignorer ./src/emacs
                       find . -path './src/emacs' -prune -o -print
-perm mode       Fichier avec exactement les autorisations d'acces indiques.
-perm -mode      Fichier avec au moins le mode (en octal).
-perm +mode      Fichier avec une des autorisations indiquees dans le mode.
-regex motif     Nom de fichier correspondant a l'expression reguliere motif.
-size n[bckw]    n unites d'espace.(b=512o, c=1o, k=1k, w=2o)
-true            Toujours vrai.
-type c          Fichier du type c:
                 b      fichier special en mode bloc
                 c      fichier special en mode caractere
                 d      repertoire
                 p      tube nomme (FIFO)
                 f      fichier regulier
                 l      liens symbolique
                 s      socket
-uid n           Fichier dont l'U-ID numerique vaut n.
-used n          Fichier dont le dernier acces date de n j apres modif statut.
-user u          Fichier appartenant a l'utilisateur u (ou U-ID numerique)
-xtype c         comme -type sauf si lien  symbolique.

Actions


-exec commande ; Execute la commande; vrai si le code de retour est 0. `{}' est
                 remplacee par le nom du fichier en  cours  de  traitement.  La
                 commande est executee depuis le repertoire de depart. \;
-fls fichier     vrai; comme -ls mais ecrit dans le fichier comme -fprint.
-fprint fichier  vrai; ecrit le nom complet dans le fichier. ``/dev/stdout'' et
                 ``/dev/stderr'' sont traites de maniere specifique.
-fprint0 fichier vrai; comme -print0 mais ecrit dans le fichier comme  -fprint.
-fprintf f form  vrai; comme -printf mais ecrit dans le fichier.
-ok commande ;   comme -exec mais interroge d'abord l'utilisateur.
-print vrai;     affiche le nom complet du fichier, suivi d'un saut de ligne.
-print0          vrai; affiche le nom complet du fichier, suivi de '\0'.
-printf format   vrai; affiche le format indique, avec sequences d'echappement
                 `' et directives`%'. La largeur et la precision avec printf c
                 a     Sonnerie.
                 b     Effacement Arriere (Backspace)
                 c     Arreter l'impression du format et vider la sortie.
                 f     Saut de page
                 n     Saut de ligne
                 r     Retour Chariot
                 t     Tabulation horizontale
                 v     Tabulation Verticale
                 \     Un caractere `Backslash' litteral (`').
                 %%    Un caractere pourcentage litteral (%)
                 %a    Date du dernier acces au fichier.
                 %Ak   Date du dernier acces au fichier, dans le format k, k de
                       la fonction c strftime(3).
                       @      secondes ecoulees depuis le 1/01/1970 a 00h0 GMT.
                       H      heure (00..23)
                       I      heure (01..12)
                       k      heure ( 0..23)
                       l      heure ( 1..12)
                       M      minute (00..59)
                       p      AM, ou PM,avec la designation locale
                       r      heure, sur un cadran de 12 h (hh:mm:ss [AP]M)
                       S      secondes (00..61)
                       T      heure, sur un cadran de 24 h (hh:mm:ss)
                       X      representation locale de l'heure (H:M:S)
                       Z      fuseau horaire (par exemple MET), ou rien sinon
                       a      jour de la semaine (Dim .. Sam)
                       A      jour de la semaine entier (Dimanche .. Samedi)
                       b      abreviation locale du mois (Jan..Dec)
                       B      nom local entier du mois, (Janvier .. Decembre)
                       c      date et heure (Sam  Nov  04 12:02:33 EST 1989)
                       d      quantieme du mois (01..31)
                       D      date (mm/jj/aa)
                       h      comme b
                       j      jour de l'annee (001..366)
                       m      mois (01..12)
                       U      numero de la semaine commencant par Dim (00..53)
                       w      jour (0..6), 0 correspond a Dimanche
                       W      numero de la semaine commencant par Lun (00..53)
                       x      representation  locale  de  la  date (mm/jj/aa)
                       y      les deux dernier chiffres de l'annee (00..99)
                       Y      annee (1970...)
                 %b    Taille du fichier en nombre de blocs de 512o (exces).
                 %c    Date de derniere modification du statut du fichier
                 %Ck   Date de derniere modification du statut, (cf %Ak)
                 %d    Profondeur du fichier dans l'arborescence.

                 %f     Nom du fichier, sans nom de repertoire.
                 %F     Type de systeme de fichiers (cf -fstype).
                 %g     Nom du groupe du fichier, ou G-ID num.
                 %G     G-ID numerique du fichier.
                 %h     Repertoires en tete du nom de fichier.
                 %H     Argument de la ligne de commande.
                 %i     Numero d'i-noeud du fichier (en decimal).

                 %k     Taille du fichier, en nombre de blocs de 1ko (exces).
                 %l     Destination du lien symbolique.
                 %m     Bits d'autorisation d'acces au fichier (en octal).
                 %n     Nombre de liens physiques sur le fichier.
                 %p     Nom du fichier.
                 %P     Nom  du fichier, ainsi que le nom de l'argument.
                 %s     Taille du fichier en octets.
                 %t     Date de derniere modification du fichier.
                 %Tk    Date de derniere modification du fichier, (cf %Ak).
                 %u     Nom du proprietaire du fichier, ou U-ID num.
                 %U     U-ID numerique du proprietaire du fichier.
                 Un caractere `%' suivi de tout autre caractere  est
                 elimine (mais le second caractere est affiche).
-prune           ne pas descendre dans l'arborescence du repertoire en cours.
                 vraix si l'option -depth n'est pas fournie.
-ls              vrai, affiche le nom du fichier avec  `ls  -dils'.  La  taille
                 est comptee en blocs de 1 Ko, sauf si POSIXLY_CORRECT (512 o).

Operateurs dans l'ordre de precedence decroissante :


( expr )         Force la precedence.
!                expr Vrai si expr est fausse.
-not expr        Comme ! expr.
expr1 expr2      ET (implicite);
expr1 -a expr2   ET (implicite);
expr1 -and expr2 ET (implicite);
expr1 -o expr2   OU;
expr1 -or expr2  OU;
expr1 , expr2    Liste; expr1 et expr2 sont toujours evaluees toutes les 2.  La
                 valeur de la liste est celle de expr2.

Valeur de retour : retourne 0 si pas d'erreurs, sinon >0 ...

Commande vi:

vi permet d'editer des fichier texte ou hexa. vi a 2 modes:

  • INSERT pour ecrire du texte
  • COMMAND pour piloter l'editeur. L'acces se fait avec ESC

Les commandes en ':' peuvent s'associer sur une ligne de commande.

Commandes de base:


:q!                quitter sans sauver
:q                 quitter
:wq                sauvegarder puis quitter
:10,20w tmp        sauve les lignes de 10 a 20 dans le fichier tmp
u                  annuler
.                  rappele la derniere action

Ajouter du texte en passant au mode INSERT:


i                  insere avant la position actuelle
I                  insere au debut de la ligne
a                  ajoute apres la position actuelle
A                  ajoute a la fin de la ligne
o                  ajoute une ligne et passe a cette ligne
O                  insere une ligne avant la ligne courante et y passe
:10,20 > 1         insertion d'une tabulation pour les lignes de 10 a 20

Se deplacer dans le texte:


k                  en haut
j                  en bas
h                  a gauche
l                  a droite
$                  fin de ligne
^                  debut de ligne
:10                aller a la ligne 10

Supprimer du texte:


x                  supprime le caractere a la position du curseur
X                  supprime le caractere precedant le curseur
dd                 supprime toute la ligne
:10,20d            supprime les lignes de 10 a 20
R                  passe en mode remplacement
r                  remplace un seul caractere

Coper/Coller:


yobjet             copie l'objet donne (voir la section objet)
yy                 copie la ligne courante
P                  colle apres la ligne en cours
p                  colle avant la ligne en cours
:10,20t 100        copie les lignes de 10 a 20 a la 100 eme ligne
:10,20m 100        deplace les lignes de 10 a 20 a la 100 eme ligne
< :10,20y          copie les lignes de 10 a 20
:100,$m 50         deplace les lignes de 100 jusqu'a la fin de fichier

Rechercher du texte:


/chaine            recherche la chaine dans le texte vers le bas
?chaine            recherche la chaine dans le texte vers le haut
n                  repete la recherche vers le bas
N                  repete la recherche vers le haut
%                  recherche une parenthese fermante (c)
/lin[uU]?x         recherche linux ou linUx

Remplacer du texte:


:s /str1/str2/     remplace str1 par str2 une fois par ligne
:s /str1/str2/g    remplace str1 par str2 dans toute la ligne
:n,m s/str1/str2/g remplace str1 par str2 de la ligne n a m
:1,$ s/str1/str2/g remplace str1 par str2 dans tout le texte
:% s/str1/str2/g   remplace str1 par str2 dans tout le texte
:%s/str1/str2/gc   remplace str1 par str2 dans tout le texte avec confirm
:s/[a-zA-Z]/1&/g   ajoute apres tout caracteres dans [a-zA-Z] un 1 devant
:%s /^ str1//      elimine str1 en debut de ligne (^ debut, $ fin)
:s/str1/-2,+4d     elimine 5 lignes autour de la 1ere occurence de str1
:s/[ABC]/[abc]/g   A devient a, B b, C c
:s/.*/U&/          met en majuscule la ligne courante

Action conditionnelle:


:g/str1/s/str2/str3/g       remplace str2 par str3 si str1 est dans la ligne
:g/ `^[]*$/d       supprime toutes les lignes vides
:g/linux/t 0       copi en haut du textes les lignes avec "linux"
:g/linux/cd 80     centre toutes les lignes avec "linux"
:g!/linux/d        efface les lignes sans "linux"
:v/linux/d         efface les lignes sans "linux"

Mise en forme, et gestion des fichiers:
:10,20ce 80        centre les lignes 10 a 20 sur 80 colones
:right             aligne a droite la ligne courante
:left              aligne a gauche
J                  relie la ligne courante a la ligne suivante
:10,20j            joint les lignes de 10 a 20 en une seule
Ctrl+L             rafraichit l'ecran
:r <fichier>       insere le contenu du fichier dans le texte
:r!<commande>      insere le resultat d'une commande
:e <fichier>       charge le fichier
:!<commande>       execute la commande
:e!                recharge la derniere sauvegarde

Metacatacteres: ^,$,.,*,|,[] (debut de chaine, fin)

Modifier les parametres de vi


:map #7 dd         associe la touche F7 a la commande dd
:se                affiche les options modifies
:se all            affiche toutes les options possibles
:se option         option = vrai
:se no option      option = faux
:se option = n     option = n
:se option ?       affiche la valeur de l'option
:se nu             avec numeros de lignes
:se nonu           sans numeros de lignes
:se ts=5           tab=5
:se undolevels 100
:se ul 100
:se term=vt100

Commande sed:

38 millisecondes