Commandes UNIX

Un article de Diablotins.org.


Image:brush.png

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.

Récupérée de « http://diablotins.org/index.php/Commandes_UNIX »
Projets :
Boîte à outils