Vous êtes sur la page 1sur 18

Universit de Reims e

Les commandes Unix de base

Les commandes Unix de base


Avertissement : Toutes les commandes donnes dans ce cours sont e issues dune SuSe Linux 7.1 avec bash comme shell.

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Caractristiques du syst`me Unix e e


multi-utilisateur plusieurs utilisateurs peuvent travailler en mme temps. e multi-tche a excution et gestion des programmes en parall`le en temps partag e e e sur le processeur. scuris e e contrle dacc`s aux matriels et aux chiers a travers des syst`mes o e e ` e de groupes et de droits. Par dfaut, e x seul ladministrateur (le super-utilisateur) a la possibilit daccder e e aux parties sensibles du syst`me et dagir dessus. e x chaque utilisateur dispose dune zone rserve dans laquelle il a e e tous les droits, et dont il contrle les acc`s. o e x des zones compl`tes du syst`me peuvent tre rserves a des e e e e e ` groupes dutilisateurs, et interdites a dautres. ` bas sur le langage C. e le noyau du syst`me ainsi que la majorit des fonctionnalits du e e e syst`me sont implments en C. e e e conu pour fonctionner en rseau c e la majorit des protocoles standards ont t crs sous Unix et inclus e e e ee au noyau. Ils y sont naturellement adapts. e

Lensemble de ces caractristiques fait dUnix un syst`me dexploitae e tion able et performant.

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Notion dutilisateur et de groupe


utilisateur : personne autorise a se connecter sur le syst`me. e ` e t son acc`s est autoris apr`s identication : e e e u par son nom dutilisateur (username ou login). u par son mot de passe associ (password). e t il dispose dune zone prive sur le disque, gnralement situe e e e e dans /home/username ou dans /users/username sur laquelle il a tous les droits. t la taille de cette zone prive (i.e. le nombre doctets quil est e possible dy stocker) peut tre restreinte a un quota. e ` t il est identi par un numro unique ou UID (User IDentication e e number). t il appartient a un ou plusieurs groupes (mais un groupe dans ` lequel il est par dfaut). e groupe : ensemble de personnes ou de groupes. t les groupes sont utiliss pour contrler les acc`s au sein du syst`me. e o e e t le changement de groupe est (ventuellement) contrl par un e oe mot de passe. t il est gr par un administrateur spcique au groupe (ou a ee e ` dfaut le super-utilisateur). e t il est identi par un numro unique ou GID (Group IDenticae e tion number). Sous Unix , tout chier, rpertoire, service, ... e appartient a un utilisateur et a un groupe. ` ` Fichiers de description des utilisateurs et des groupes /etc/passwd pour les utilisateurs /etc/group pour les groupes

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Session
Une session est une utilisation dune machine Unix par une personne autorise. e Elle commence par son identication (logging). Elle se termine par une dconnection (delogging). e u Ouverture dune session
Welcome to SuSE Linux 6.2 (i386) - Kernel 2.2.10 (tty2). mathinfo162 login: pascal Password: Last login: Mon Jul 31 11:53:19 on tty1 Another day to die ... %

u shell Programme lanc automatiquement immdiatement apr`s louvere e e ture de la session permettant dexcuter des commandes Unix ou e des programmes en ligne de commande (souvent sh, csh ou bash). Le shell utilis dans ce cours est bash. e u Fermeture dune session Par la commande logout, exit ou avec un ctrl-D. Attention, toujours se dlogger. Sinon : e Toutes les informations contenues dans votre compte sont accessibles, modiables et eaables. c Votre identit lectronique peut tre utilise. Vous tes responee e e e sables des actions eectues depuis votre compte. e

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Commandes pour utilisateurs et groupes


id : ache les informations didentication de lutilisateur. whoami : ache le nom de lutilisateur. users : ache les noms de tous les utilisateurs connects sur le syst`me. e e who : comme users mais avec plus dinformations. passwd : change le mot de passe actuel. quota : ache les informations de quota (si disponibles). (/tmp) groups : ache les groupes auquels lutilisateur appartient. newgrp groupname : changement de groupe. su username : changement didentit de lutilisateur. e lastlog : date de la derni`re connection. e
Exemple : % id uid=500(pascal) gid=100(users) groups=100(users) % whoami pascal % users pascal pascal root % who pascal tty1 Sep 13 11:23 pascal pts/0 Sep 13 11:23 (:0.0) root tty2 Sep 13 11:45 % passwd Password: New password: New password (again): Password changed % groups users % lastlog -u pascal Username Port From Latest pascal tty1 Mon Sep 4 08:17:00 +0200 2000 % su Password: $ whoami root $ groups root bin uucp shadow dialout nogroup $ exit %

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Fichiers et rpertoires e
t R`gles sur les chiers et rpertoires sous Unix . e e 3 lors de lcriture dun chemin, les noms des rpertoires sont spars e e e e par des / (exemple : /home/pascal). 3 les noms de chiers ou rpertoires commenant par un point ne e c sont pas achs par dfaut (i.e. pour cacher un chier, le faire e e commencer par un point). 3 tous les caract`res et tous les noms de chiers sont possibles. e Eviter les noms de chiers commenant par - ou contenant des c caract`res de contrle, et comme nom dexcutable des noms de e o e commande Unix ou shell (par exemple test). t ls : contenu du rpertoire courant (list). e options : -l : format long (type, permission, nb.lien, owner, group, size, mod.time, nom) -a : ache les chiers cachs. e -R : achage rcursif. e t commandes communes cp : copie (copy). rm : eacement (remove). mv : dplacement ou renommage (move). e options : -v : verbose (achage des oprations eectues). e e -i : interactif (conrmation de chaque commande). -R : rcursif (sapplique a larborescence). e ` -f : force laction (chiers protgs). e e t commandes spciques aux rpertoires e e pwd : nom du rpertoire courant (print working directory). e cd : change de rpertoire (change directory). e mkdir : cre un rpertoire vide (make directory). e e rmdir : eace un rpertoire vide (remove directory). e pushd popd dirs : gestion de lhistorique des rpertoires avec une e pile (ajoute a la pile, dpile, contenu de la pile). ` e

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Fichiers et rpertoires : exemples e


% ls -a . .. .bashrc .profile tata titi toto % ls -l total 23 drwxr-xr-x 2 pascal users 1024 Sep 13 20:29 tata -rw-r--r-1 pascal users 4630 Sep 13 17:04 titi -rw-r--r-1 pascal users 15834 Sep 13 17:04 toto % ls -R tata titi toto tata: tutu % cp -v titi tutu titi -> tutu % rm -i t* rm: tata: is a directory rm: remove titi? n rm: remove toto? n rm: remove tutu? y % cp tata lulu cp: tata: omitting directory % cp -R tata lulu % rm -Ri lulu rm: descend directory lulu? y rm: remove lulu/tutu? y rm: remove directory lulu? n % mv lulu lolo % ls -F lolo/ tata/ toto % mv tata/ toto lolo/ % pwd /home/pascal % cd lolo % mkdir titi % ls -F tata/ titi/ toto % rmdir tata rmdir: tata: Directory not empty % rmdir titi % pushd /tmp /tmp /home/pascal/lolo % pwd /tmp % popd /home/pascal/lolo % pwd /home/pascal/lolo

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Expressions rguli`res pour les noms de e e chiers (rappel)


Lorsquune commande contient une expression rguli`re, le shell interpr`te e e e lexpression rguli`re, la remplace dans la commande par une liste de e e chiers ou de rpertoire, puis il excute la nouvelle commande ainsi e e construite. Requ`tes sur des chiers existants e Pour les expressions rguli`res suivantes, lexpression rguli`re nest e e e e tendue que sur les chiers existants correspondants a lexprese ` sion rguli`re. e e Dnition e * toute cha de caract`res. ne e ? tout caract`re. e [aeyuio] toute lettre parmi la liste {a, e, y, u, i, o}. [ !aeyuio] tout caract`re autre que {a, e, y, u, i, o}. e [a-f] les lettres de a a f . ` Exemples ab* tout chier commenant par ab. c *ab tout chier nissant par ab. a*b tout chier commenant par a et nissant par b. c a?? tout chier de 3 caract`res commenant par a. e c [a-z]*.[cho] tout chier commenant par une lettre minuscule c et dont lextension est .c, .h ou .o. Requ`tes gnrale e e e {expr1 ,...,exprn } expr1 ou expr2 ou ... ou exprn Exemples a{1,2} les chiers a1 et a2. a{1,b{A,B}} les chiers a1, abA, abB. Dirence entre ces deux critures e e ls -l a[1-3] liste les chiers existants parmi a1, a2, a3 ls -l a{1,2,3} liste les chiers a1, a2 et a3. Une erreur est signale e si lun de ces chiers nexiste pas. mkdir a[1-3] cration du rpertoire a[1-3]. e e mkdir a{1,2,3} cration des rpertoires a1, a2 et a3. e e
Pascal Mignot 8

Universit de Reims e

Les commandes Unix de base

Fichiers et rpertoires (2) e


t lien ln : copie par lien sur loriginal (link). On prf`re gnralement les liens symboliques (option -s) aux liens ee e e classiques (ou durs) car ils sont plus gnraux et permettent de lier e e des rpertoires. e
Exemple : % ls -F tata/ toto % ln toto titi % ln tata tutu ln: tata: hard link not allowed for directory % ls -li total 11 76130 drwxr-xr-x 2 local users 1024 Sep 13 76133 -rw-r--r-- 2 local users 4630 Sep 13 76133 -rw-r--r-- 2 local users 4630 Sep 13 % rm toto % ls tata titi % ln -s titi toto % ln -s tata tutu % ls -l total 6 drwxr-xr-x 2 local users 1024 Sep 13 21:55 -rw-r--r-1 local users 4630 Sep 13 21:56 lrwxrwxrwx 1 local users 4 Sep 13 23:10 lrwxrwxrwx 1 local users 4 Sep 13 23:10 % rm -R tata % cd tutu bash: cd: tutu: No such file or directory

21:55 tata 21:56 titi 21:56 toto

tata titi toto -> titi tutu -> tata

t place occupe sur le disque e du : calcul de la place occupe par des chiers ou des rpertoires. e e df : place libre sur le disque (avec point de montage).
Exemple : % ls -F lolo/ tutu % ls -F lolo tata/ titi toto@ tutu@ % du . 1 ./lolo/tata 19 ./lolo 25 . % df . Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 987220 831145 105071 89% / 9

Pascal Mignot

Universit de Reims e

Les commandes Unix de base

Droits sur les chiers et rpertoires e


t Principe : sous Unix , la scurit se g`re : e e e sur trois niveaux et avec trois types dacc`s : e x utilisateur (User) y groupe (Group) z autres (Other) lecture (Read) criture (Write) e excution ou traverse (eXecute) e e

t Exemple : sortie de la commande ls -l


-rw-r----1 pascal users 1819 Sep 7 08:32 toto

La lecture des 10 premiers caract`res est la suivante : e - type (- :chier, d :rpertoire, l :lien). toto est un chier. e rw- droits dacc`s pour lutilisateur : lecture et criture. e e r-- droits dacc`s pour le groupe : lecture seule. e --- droits dacc`s pour les autres : aucun. e t Gestion des droits chmod : changement des droits dacc`s. e
Exemple : chmod chmod chmod chmod chmod u-w g+r toto g=rx o-rxw /home/pascal a=rx /home/pascal/.messages 700 toto 644 toto

Pour les deux derniers exemples, chaque chire code un niveau dacc`s (dans lordre utilisateur-groupe-autres) dont le droit dacc`s e e est cod en octal avec : 4=lecture, 2=criture, 1=excution, 0=rien. e e e umask : xe les droits dacc`s par dfaut lors de la cration dun e e e chier en donnant le masque octal des modes a ne pas activer. `
Exemple : umask 077 umask 033 umask 227

masque par dfault : rwx --- --e


rwx r-- r-r-x r-x ---

Note : par dfaut, seuls les chiers excutables sont crs avec le e e ee droit x.

Pascal Mignot

10

Universit de Reims e

Les commandes Unix de base

Notion de processus
t Processus : tout programme en cours dexcution sur la demande e de lutilisateur et le syst`me. e t Proprits des processus sous Unix La gestion dun processus e e utilise les proprits suivantes : ee u un numro unique aect a sa cration (PID ou process ID). e e` e u le numro du processus parent qui la lanc (PPID). e e u lidentit de son propritaire. e e u ses caractristiques temporelles (date de dbut, temps CPU utie e lis). e u ses caractristiques mmoires (mmoire vive et virtuelle utilises). e e e e u sa priorit (-20=priorit minimale, 0=priorit normale, 20=prioe e e rit maximale). e u son tat (R=excution, S=endormi, T=stopp, Z=zombie, D=sommeil e e e dnitif). Deux tats supplmentaires sont signals : W=nutilise e e e e plus de mmoire, N=processus prioritaire. e t R`gle de fonctionnement des processus e u dans un shell, un processus peut tre excut soit en premier plan e e e (on doit attendre la n de lexcution pour pouvoir entrer une e nuvelle commande), soit en tche de fond (on rcup`re la main a e e tout de suite, le processes tournant en parall`le avecc le shell). e u un processus peut tre stopp, puis relanc plus tard sans lafe e e fecter, ou bien mme tu. Ceci est eectu par lenvoi de signaux e e e au processus. u seul le propritaire dun processus peut le contrler (exception e o faite du super-utilisateur). u un processus p`re ne peut pas mourir avant la mort de tous ses e processus ls. u la n dun processus p`re entra la n de tous ces processus e ne ls. t Principaux signaux 2 3 9 15 17
Pascal Mignot

SIGINT SIGQUIT SIGKILL SIGTERM SIGSTOP

interruption interruption avec core forcer terminaison terminer (dfaut) e stopper (ou pause)
11

Universit de Reims e

Les commandes Unix de base

Gestion des processus


t Information sur les processus ps : ache le statut des processus (par dfaut, seulement ceux de e lutilisateur). top : ache les processus utilisant le plus de temps de processeur (q pour quitter). pstree : ache larbre de parent des processus. e time commande : excute la commande puis ache son temps dexcution e e (real=coul, user=en mode user, sys=en mode noyau). e e t Contrle des processus o kill -num pid : envoie le signal num au processus pid. Si -num nest pas spci, le signal par dfaut est 15. e e e nohup commande : indique a la commande quelle ne doit pas se ` terminer si son p`re meurt. e wait : rend la main lorsque tous les processus en tche de fond sont a termin. e nice renice : changement de la priorit dun processus (root). e at batch : lancement dir de processus. ee t Shell et processus Un processus lanc depuis un shell sappelle un job. En plus de e leurs numros de pid, ces jobs sont numrots1 dans lordre de leurs e e e lancements. Ces numros sappellent les job id (ou jid). e Commandes jobs donne la liste des jobs en cours dexcution. e commande & lance commande en tche de fond. a bg %jid lance le job stopp jid en tche de fond. e a fg %jid lance le job stopp jid en premier plan. e Squences claviers e ctrl-C tue le processus du premier plan. ctrl-Z suspend le processus du premier plan. Rfrences ee %jid %mot % ?mot %+ %1 La

aux processus (utilisable a la place dun pid) ` le processus dont le numro de job est jid. e le processus dont la commande commence par mot. le processus dont la commande contient mot. (ou %%) le dernier processus lanc en tche de fond. e a lavant-dernier processus lanc en tche de fond. e a

numrotation est rinitialise a 1 lorsquaucun job nest excut. e e e ` e e

Pascal Mignot

12

Universit de Reims e

Les commandes Unix de base

Gestion des processus : exemples


% top 11:48pm up 12:26, 4 users, load average: 1.09, 1.06, 1.01 49 processes: 48 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 0.5% user, 0.9% system, 0.0% nice, 98.6% idle Mem: 30484K av, 28576K used, 1908K free, 24060K shrd, 764K buff Swap: 68540K av, 2340K used, 66200K free 8204K cached PID USER 2438 pascal 2376 local 1 root 2 root % time ls lolo tutu PRI 19 5 0 0 NI 0 0 0 0 SIZE RSS SHARE STAT 784 784 612 R 2620 2620 1440 S 196 196 168 S 0 0 0 SW LIB %CPU %MEM 0 1.3 2.5 0 0.1 8.5 0 0.0 0.6 0 0.0 0.0 TIME 0:00 0:00 0:03 0:00 COMMAND top xterm init kflushd

real 0m0.016s user 0m0.000s sys 0m0.000s % find / -name "toto" ^Z [1]+ Stopped find / -name "toto" % ps PID TTY STAT TIME COMMAND 2462 1 S 0:00 bash 2585 1 T 0:00 find / -name toto 2586 1 R 0:00 ps % bg %1 [1]+ find / -name "toto" & % ps PID TTY STAT TIME COMMAND 2462 1 S 0:00 bash 2585 1 D 0:01 find / -name toto 2587 1 R 0:00 ps % kill -9 2585 [1]+ Killed find / -name "toto" % find / -name "toto" ^C % ps PID TTY STAT TIME COMMAND 2462 ? S 0:00 bash 2724 ? R 0:00 ps % nohup find / -name "toto" & [1] 2750 nohup: appending output to nohup.out % ^D

Pascal Mignot

13

Universit de Reims e

Les commandes Unix de base

Shell : aide a la saisie des commandes `


t Contrle du dlement o e ctrl-S : arrt du dlement. e e ctrl-Q : reprise du dlement. e t Dplacement sur la ligne de commande e ctrl-A : dbut de ligne. e ctrl-E : n de ligne. alt- / alt- : mot prcdent/suivant. e e t Edition de la ligne de commande ctrl-K : eace jusqu` la n de la ligne. a ctrl-W : eace le mot prcdent. e e ctrl-U : eace jusquau dbut de la ligne. e t Gestion de lhistorique des commandes history : historique de lensemble des commandes tapes. e !histnum : la commande numro histnum de lhistorique. e ! ! : la commande prcdente. e e ctrl-P ou : commande prcdente. e e ctrl-N ou : commande suivante. ctrl-R : recherche dans lhistorique. t Compltion automatique des commandes e tab : (une fois) compl`te la commande ou le nom de chier. e (deux fois) ache la liste des compltions possibles. e

Pascal Mignot

14

Universit de Reims e

Les commandes Unix de base

Personnalisation de lenvironnement
t Fichiers de dmarrage et de sortie e Les chiers syst`mes suivants contiennent les congurations par dfaut : e e /etc/profile : executs au login (obligatoire). e ~/.profile : executs au login (U). e ~/.bashrc : executs a chaque lancement de shell (U). e ` e ` ~/.bash logout : executs a chaque sortie de shell (U). t Variables syst`me e Les commandes de manipulation des variables sont : printenv : ache lensemble des variables syst`mes. e printenv VAR : ache la valeur de la variable syst`me VAR. e export VAR=value : aecte value a la variable syst`me VAR. ` e Les principales variables syst`me sont : e HOME : contient le rpertoire racine de lutilisateur. e PATH : contient lensemble des chemins dans lesquels les excutables e sont recherchs. e PS1 : contient la dnition du prompt. e t Alias : les alias sont des raccourcis permettant de donner des noms simples a des commandes complexes : `
Exemple : % ll toto bash: ll: command not found % alias ll=ls -l % ll toto -rw-r--r-1 pascal users % alias l=less % alias ls=ls -$LS_OPTIONS

15834 Sep 13 17:04 toto

La commande unalias sert a supprimer un alias. En cas dalias sur ` une commande classique, penser a utiliser son chemin complet (par ` exemple, /bin/rm). t Personnalisation du terminal stty : xe ou ache les caractristiques texte du terminal. e xset : xe ou ache les caractristiques du terminal X. e autres sources : /usr/doc howto : config-HOWTO, Bash-Prompt-HOWTO mini-howto : colour-ls, Xterm-title
Pascal Mignot 15

Universit de Reims e

Les commandes Unix de base

Impression dun chier


Les impressions se g`rent avec une queue dimpression (les documents e sont imprims dans lordre o` ils arrivent, et se voient attribuer un e u numro de job jid). e lpr fichier : impression dun chier. lpq : achage de la le dattente. lpc : conguration et statut de la le dattente. lprm jid : suppression dun travail (identi par son numro) dans la e e le dattente.
Exemple : % lpr toto % lpq lp is ready and printing Rank Owner Job Files Total Size active pascal 1 toto 150 bytes % /usr/sbin/lpc lpc> help abort enable disable help restart status topq clean exit down quit start stop up lpc> status lp: queuing is enabled printing is enabled no entries lp is ready and printing lpc> quit % lprm 1 dfA001mathinfo162 dequeued cfA001mathinfo162 dequeued % lpq no entries

Toutes ces commandes ont une option commune dans le cas o` pluu sieurs imprimantes sont disponibles : -Pnomqueue o` nomqueue identie u limprimante a utiliser. `

Pascal Mignot

16

Universit de Reims e

Les commandes Unix de base

Archivage
La commande tar sert pour tous les travaux darchivage. Larchivage peut aussi bien se faire sur un disque, une bande ou un chier. La syntaxe est la suivante : tar options UnitStockage fichiers e o` les options contiennent un seul mode dacc`s a larchive, et dvenu e ` e tuelles options supplmentaires. e Modes : Options supplmentaires : e c : cration. e x : extraction. t : contenu. r : ajout.
Exemple :

v : mode verbose (dcrit les oprations faites). e e f : la sortie est un chier et non pas une unit de e stockage. z : archive en mode compress. e M : mode multivolume (i.e. sur plusieurs mdia). e

% ls -l total 22 -rw-r--r-1 pascal -rw-r--r-1 pascal % tar cvf sauve.tar t* titi toto % ls -l sauve.tar -rw-r--r-1 pascal % tar tvf sauve.tar -rw-r--r-- pascal/users -rw-r--r-- pascal/users % tar czf sauve.tgz t* % ls -l sauve.tgz -rw-r--r-1 pascal % tar cv /dev/fd0 t*

users users

4630 Sep 13 17:04 titi 15834 Sep 13 17:04 toto

users

30720 Sep 13 17:08 sauve.tar

4630 2000-09-13 17:04 titi 15834 2000-09-13 17:04 toto

users

6407 Sep 13 17:18 sauve.tgz

Compression de chiers
. compress / uncompress : compression/dcompression (Lempel-Zip adape tatif). Extension du chier compress : .Z e gzip / gunzip : compression/dcompression (LZ77). Extension du e chier compress : .gz e

Pascal Mignot

17

Universit de Reims e

Les commandes Unix de base

Help ! Mais comment ca marche ?


t Aide sur les commandes u Laide intgre e e On passe en param`tre a la commande loption --help (-help, e ` -h, - ?).
Exemple : % ls --help

u Laide en ligne Grce a la commande man. a `


Exemple : % man ls

Les manuels sont subdiviss en 10 sections : e 1 2 3 4 5 commandes fonctions noyau fonctions libraries chiers speciaux /dev format de chiers 6 7 8 9 n jeux codes et protocoles commandes syst`me e fonctions machine autres applications

Le numro de la section dans laquelle il faut rechercher peut tre e e prcis : e e


Exemple : % man exit % man 2 exit % man 3 exit

u Laide en ligne (texinfo) Sur les syst`mes Linux, de laide peut galement tre obtenue en e e e tapant avec la commande info. t Aide sur le fonctionnement et la conguration u lire la documentation. u les livres. u les HOWTO (o` mini-HOWTO) du rpertoire /usr/doc. u e

Pascal Mignot

18

Vous aimerez peut-être aussi