Commandes UNIX
Un article de Diablotins.org.
|
Commandes de base d'UNIX
Comme vous le savez tous, les Unix, ( donc les *BSD et les linux ) se commandent beaucoup grâce a des commandes dans des Console(Shell). Cela peut être très pratique pour lancer des applications avec des paramètres, mais aussi pour éventuellement voir le résultat d'une action, qui pourrais avoir tendance a effectuer une action qui ne se déroulerait pas bien: Je veux parler d'un plantage.
Mais voyons ça de plus près
Sommaire |
les Shells
Pour lancer une commande dans un shell, il faut tout d'abord ouvrir un shell. Pour cela, 2 possibilités:
- Votre station démarre en mode texte: dès que vous vous connectez, vous êtes dans un shell.
- Votre station démarre sous X: Vous devez avoir un raccourcis pour ouvrir un shell via xterm ou rxvt.
Les shells, il en existe des différents:
- bash
- sh
- tcsh
- zsh
- et bien d'autres encore...
A vous de voir celui que vous préférez le mieux. Essayez les et jugez par vous-mêmes. Certains shells ont des fonctionnalités que d'autres n'ont pas:
- terminaison des commandes
- terminaison des chemins d'accès
- colorisation des shells
- .....
Chemin d'accès
Pour lancer une commande dans un shell, soit vous tapez le chemin relatif, soit le chemin absolu Je m'explique:
Un chemin relatif va etre un chemin par rapport au répertoire actuel, dans lequel vous vous trouvez. Si vous etes dans le répertoire “/home/sebastien” et que vous voulez exécuter le fichier “toto/titi”, vous aurez a taper:
./toto/titi
Par contre, pour le chemin absolu, tapez:
/home/sebastien/toto/titi
En plus de cela, vous avez une aide: le “PATH” .
C'est une variable de shell qui va regrouper différents chemins. Grâce a lui, au lieu de taper:
# /usr/local/bin/zsh
Vous n'aurez plus qu'a taper
zsh
à condition que “/usr/local/bin” soit dans votre PATH.
Commande ls
Elle permet de lister le contenu d'un répertoire:
$ ls /home/sebastien
vous obtiendrez donc la liste des répertoires et fichiers de l'espace de l'utilisateur «sebastien». L'avantage du monde Unix est que vous pouvez aussi lister la liste du matériel présent dans votre machine:
# ls /dev
Vous obtiendrez entre autre un aperçu des différentes partitions de votre disque dur (ex: /dev/ad0s2a), ainsi que vos cartes son, firewire, ...
Vous pouvez ajouter des paramètres à ls pour avoir plus de détails:
- ls -l -> liste détaillée du répertoire
- ls -al -> liste de tous les fichiers et répertoire (même cachées)
- ls -rtl -> liste les fichiers du plus ancien au plus récent
Commande cd
Elle permet de changer de répertoire. Rien ne vaut un exemple plutôt qu'un long discours:
/home/sebastien# cd toto /home/sebastien/toto#
Commande pwd
Elle affiche le répertoire courant:
# pwd /home/sebastien # cd toto # pwd /home/sebastien/toto
su et sudo
La commande su permet de vous substituer a un autre utilisateur.
Cela permet d'avoir un shell en root pour faire certaines commandes sans avoir a se déconnecter/connecter...x fois. La syntaxe est très simple:
$ su -> console user
(saisie de votre mot de passe)
# -> console root
Si vous voulez prendre tous le contexte du user a remplacer, il suffit de taper:
$ su - (mdp) #
Ainsi, vous prenez tous les PATH et autres variables locales a l'utilisateur
La commande sudo est quelque peut différente puisqu'elle permet d'exécuter une commande en tant que root.
par exemple:
% sudo cp /home/sebastien/prog.c /tmp/prog.c -> on veux copier le fichier prog.c en tant que root
Cela est très pratique si on ne veux pas se connecter en root, ou si on a peur d'être root dans un shell..
Commande whoami
Si vous êtes habitué a voyager souvent entre différents utilisateurs, vous risquez de ne plus savoir qui vous êtes: root? sebastien? toto?... Pour cela, une commande bien pratique: whoami. Elle permet d'interroger le shell dans lequel vous êtes pour vous dire l'utilisateur connecté.
chmod, chown et chgrp
Ces trois commandes permettent de gérer les accès aux fichiers, au niveau utilisateur etc. Il existe trois types d'accès a un fichier:
- accès en lecture (r)
- accès en écriture (w)
- accès en exécution (x)
Pour autoriser un accès a un fichier, on 'additionne' la valeur de chacun des droits (r a pour valeur 4, w 2 et x 1).
- Un accès en lecture seule: 4
- un accès en lecture + exécution: 4 + 1 = 5
- Un accès total: 4 + 2 + 1 = 7
Pour accéder a un fichier, les utilisateurs sont scindées en 3 classes:
- le propriétaire du fichier, noté u
- les autres membres du groupe, noté g
- les autres utilisateurs, noté o
Pour chaque classe d'utilisateur, il y a des droits différents.
Les droits d'accès sont un mélange de tout ca:
par exemple:
$ ls -l drwxr-xr-x 3 seub users 512 Oct 10 14:26 test.txt
Si maintenant on veux changer les droits a un fichier, on utilise 'chmod'. Nous avons 2 manières de procéder: relatif ou absolu.
De manière absolue tout d'abord,
$ chmod u+x test.txt
On ajoute les droits x (exécution) au user (u) pour le fichier test.txt
au exemple:
$ chmod g+w test.txt
ajout des droits en écriture pour le groupe propriétaire sur le fichier test.txt
De manière absolue:
un bon exemple vaut mieux qu'un long discours:
$ chmod 0754 test.txt
pour le propriétaire: contrôle totale (r + w + x)
pour le groupe : contrôle en lecture exécution
pour les autres: contrĂ´le en lecture seulement.
“chown” permet de spécifier le nouvel utilisateur propriétaire du fichier:
par exemple:
$ chown lecid test.txt
Lecid est le nouveau propriétaire du fichier.
«chgrp” permet de spécifier le nouveau groupe propriétaire du fichier:
par exemple:
$ chgrp diablotins test.txt
diablotins est le nouveau groupe propriétaire du fichier. Tout les utilisateurs membres de du groupe diablotins pourront avoir des droits spéciaux sur ce fichier.
