D'après : http://w3.edu.polytechnique.fr/profs/informatique/Gilles.Roussel/INIT/base-shell.html

Quelques commandes shell UNIX



Le système de fichier

Les fichiers sont organisés de façon arborescente à partir de la racine /.

Un fichier est référencé par un chemin (path) dans cette arborescence. Exemple : /tmp_mnt/usr/cie6/ohane.

Les répertoires (directory) sont des fichiers spéciaux qui peuvent contenir d'autres fichiers.

Il existe deux façons de référencer un fichier  :

Il existe des références particulières  :


Les commandes de base du système de fichier

pwd

print working directory

Affiche le répertoire de travail

cd arg

change directory

Change de répertoire de travail ; arg est ce nouveau répertoire. cd sans argument positionne dans le répertoire home.

ls arg

list

Liste le contenu arg si celui-ci est un répertoire. Sans argument, ls liste le contenu du répertoire de travail.

ls -l arg

long list

Affiche des informations détaillées sur le fichier arg

ls -a arg

list all

Affiche tous les fichiers de arg, même ceux commençant par .., si celui-ci est un répertoire. Les options de ls peuvent être combinées : ls -al.

chmod droit arg

change mode

Change les droits du fichier arg, conformément à droiti>.

mkdir arg

make directory

Crée le répertoire arg.

rmdir arg

remove directory

Supprime le répertoire s'il est vide.

rm arg

remove

Supprime la référence (fichier ou dossier) arg.

rm -r arg

remove recursively

Supprime arg et, éventuellement, tous les fichiers qu'il contient.

mv arg1 arg2

move

Renomme arg1 en arg2 (avec déplacement éventuel).

touch arg

touch

Crée un fichier vide de nom arg, s'il n'existe pas, sinon met à jour, avec la date courante, sa date de dernière modification s'il existe déjà.


Liste détaillée

La commande ls -l retourne des informations sur les fichiers de la forme :

-rw-r--r--   1 roussel  users        4104 Sep 24 23:07 texte.tex
drwxr-xr-x   3 roussel  users        1024 Feb 20  1998 tmp

Le premier champs se divise en quatre parties :

Les valeurs des trois caractères de droit sont :

Les champs qui suivent sont :


Changement des droits d'un fichier

Une des formes pour les options de chmod est : dest op droit.

Les valeurs possibles de dest sont :

Les valeurs possibles de op sont :

Les valeurs principales de droit sont :

Exemples :

chmod a+rx
chmod ug+w
chmod go-wx

Il est également possible d'utiliser la notation octale :


Quelques caractères spéciaux du shell

Il existe des caractères spéciaux qui sont interprétés par le shell.

Pour despécialiser ces caractères il faut les mettre entre apostrophes.
Exemple :

rm '?'
Efface le fichier de nom ? et pas tous les fichiers dont le nom fait un caractère.


Exécution de commandes

Pour exécuter une commande comme emacs ou netscape il suffit de taper son nom dans une fenêtre shell.

Par défaut le shell reste bloqué tant que la commande n'est pas terminée.

Pour arrêter la commande taper simultanément les touches Control et C (Ctrl-C).

Pour exécuter la commande en tache de fond (ce qui permet d'utiliser le shell) il existe deux possibilités : soit taper le nom de la commande suivi de &, soit lancer la commande comme précédemment, interrompre la commande en tapant Ctrl-Z dans le shell et la faire passer en tache de fond en tapant bg (background).



Visualiser ou éditer un fichier

Pour visualiser un fichier les commandes de base sont cat et more. La commande more est beaucoup plus conviviale... Taper h pour avoir la liste des commandes disponibles.

Pour éditer un fichier il faut utiliser un programme comme emacs ou vi.

emacs est à priori plus convivial, mais vi a ses inconditionnels.


Le manuel

Le manuel d'une commande est accessible avec la commande man.
Exemple :

man tcsh
man man

Pour rechercher une commande dont on ne connait pas le nom man -k recherche un mot dans le descriptif de toutes les commandes.
Exemple :

man -k shell
man -k game

Pour aller plus loin

Le manuel du shell (man bash) contient beaucoup d'informations.
D'autres commandes sont également importantes, en voici une liste non exhaustive.

ps
kill
grep
find
diff
ln
gzip / gunzip
telnet 
rlogin
umask
lp / lpr