_______ ________ _______ __ __
| __ \ | | / | | | | |
| |__| | | __ | | __| | |__| |
| _/ | |__| | \_ |_ | |
| __ \ | __ | __\ \ | __ |
| |__| | | | | | | | | | | |
|_______/ |__| |__| |_______/ |__| |__|
bash 24/05/2005
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 |
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. |
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 |
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 |
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 |
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 |
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. |
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 :
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
Commandes pour sélectionner les fontes :
Macros :
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.
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 ...
vi permet d'editer des fichier texte ou hexa. vi a 2 modes:
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