IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ LinuxConsultez toutes les FAQ

Nombre d'auteurs : 45, nombre de questions : 192, dernière mise à jour : 11 mai 2012 

 
OuvrirSommaireLe Shell Commandes avancées

Par exemple, vous utilisez le shell zsh, et vous voulez savoir à quel(s) PID (Processus IDentification) il(s) est(sont) lié(s).
La commande fuser retourne les différents PID de zsh :

 
Sélectionnez
$ fuser /bin/zsh
/bin/zsh: 1942e 2860e 2996e 3469m 3487e 4527m 4607e

Comme indiqué dans le man, les caractères suivant le PID correspondent à : On observe donc ici que l'on a 5 programmes zsh en cours d'exécution, et 2 projetés en mémoire.
On vérifie la valeur des PID qui correspond bien aux valeurs retournées par fuser :

  • c : répertoire courant
  • e : programme en cours d'exécution
  • f : fichier ouvert. f est omis par défaut
  • r : répertoire racine
  • m : fichier projeté en mémoire, ou bibliothèque partagée.
 
Sélectionnez
$ ps -aux | grep zsh
francois 1942 0.0 0.0 3560 4 vc/1 S 10:24 0:00 -zsh
francois 2860 0.0 0.9 3900 2484 pts/1 S 13:43 0:00 /bin/zsh
francois 2996 0.0 0.8 3692 2212 pts/2 S 14:01 0:00 /bin/zsh
root 3469 0.0 0.8 3612 2084 pts/1 S 15:25 0:00 zsh
francois 3487 0.0 1.0 3976 2580 pts/1 S 15:25 0:00 zsh
root 4527 0.0 0.9 3768 2308 pts/2 S 19:49 0:00 zsh
francois 4607 0.2 0.8 3728 2268 pts/2 R 20:13 0:00 zsh
francois 4632 0.0 0.2 1904 760 pts/2 R 20:14 0:00 grep zsh
Créé le 20 juillet 2004  par Francois Trazzi

Ce sont les opérateurs permettant de gérer les flux de données.
La redirection '>' permet de stocker la sortie d'un programme dans un fichier. Cela crée le fichier s'il n'existait pas, et efface son contenu s'il existe (il faut donc faire attention !) :

 
Sélectionnez
$ cat fichier1 > fichier_sauvegarde

Si l'on veut rajouter des données au fichier, on utilisera la double redirection '>>' :

 
Sélectionnez
$ cat ajout >> fichier_sauvegarde

La redirection '<' joue le même rôle. Au lieu de taper au clavier le contenu du fichier, vous pouvez utiliser cette redirection et ainsi le fichier va se substituer a l'entrée standard (saisie clavier) :

 
Sélectionnez
$ cat < nom_du_fichier
$ cat < fichier1 > fichier_sauvegarde

Vous remarquerez que la dernière commande a le même effet que la première.

Mis à jour le 4 décembre 2005  par nyal

Le caractère '|' permet de lier des commandes entre elles. La sortie standard d'une commande devient l'entrée standard de la commande suivante :

 
Sélectionnez
$ cat fichier | grep YES

La commande cat envoie le contenu du fichier vers la commande grep qui va le lire. Bien entendu, si vous utilisez une commande qui ne lit pas de données sur l'entrée standard, cela n'aura aucun resultat :

 
Sélectionnez
$ cat fichier | ls

La commande cat envoie bien le contenu vers la commande ls, laquelle ne lit pas sur son entrée standard. Par conséquent, le pipe entre les deux commandes ne sert absolument à rien ;)
Il est tout à fait possible d'enchaîner un très grand nombre de pipes (la limite dépend des shells).

 
Sélectionnez
nyal $ cat fichier | grep YES | sed 's/YES/NO/'
Mis à jour le 4 décembre 2005  par nyal

Voici la signification du sticky bit :

  • sur un fichier : un programme executable sera maintenu en zone de swap après la fin de son exécution, ce qui accélerera les chargements ultérieurs
  • sur un répertoire : un fichier du répertoire ne peut être supprimé que par son propriétaire

Permettre à n'importe quel utilisateur de créer et modifier ses fichiers dans un répertoire, c'est mettre les droits rw (et x pour l'exploration) pour tous les utilisateurs (propriétaire, groupe et autres).

Le stickybit sert juste à éviter qu'un utilisateur ne détruise les fichiers des autres. On le fixe de la manière suivante :

Pour le mettre

 
Sélectionnez
chmod a+t

Pour l'enlever

 
Sélectionnez
chmod a-t

C'est aussi le 1 de la première position lorsque l'on utiliser un masque à quatre chiffres avec la notation octale de chmod

Créé le 1er juin 2006  par 2Eurocents

A l'aide des commandes grep et cut, on va extraire l'occurrence "/home/francois" du fichier /etc/passwd :

 
Sélectionnez
$ cat /etc/passwd | grep francois
francois:x:502:502::/home/francois:/bin/zsh

La commande grep permet de ne conserver que la ligne contenant "francois" de la sortie standard de cat.

 
Sélectionnez
$ cat /etc/passwd | grep francois | cut -f6 -d:
/home/francois

La commande cut permet de couper certains mots d'une ligne.
L'option -f6 indique que l'on veut garder la 6ème chaîne de caractères, délimitée par le signe ':' (option - d).

Créé le 21 juillet 2004  par Francois Trazzi

La commande find permet de faire le plus rapidement possible ce genre de traitement.

Pour afficher les fichiers vieux de plus de 24 heures :

 
Sélectionnez
$ find . -ctime +1

Pour les effacer :

 
Sélectionnez
find . -ctime +1 -exec rm -f  \{\} \;

L'option -i de la commande rm est utilisé pour demander une confirmation pour chaque fichier à effacer.

Créé le 25 juillet 2004  par nyal

Ce caractère signifie que la commande sera exécutée en tâche de fond.
Ainsi vous aurez toujours accès au shell pour exécuter d'autres commandes sur le terminal :

 
Sélectionnez
$ xmms &
$
Créé le 14 juillet 2004  par nyal

Quand on lance une application depuis le terminal (genre xpdf, emacs, etc....) , on veut souvent reprendre la main sur ce meme terminal, non ?
Mais on a oublié le & magique ! C'est terrible, il va falloir tout refermer pour tout réouvrir !
Eh bien non : imaginons le cas :

 
Sélectionnez

$ xpdf toto.pdf 

Si on veut reprendre la main sans avoir a fermer, on revient sur le terminal, puis un petit Ctrl-Z histoire de geler le processus : là, on reprend la main. Et tout de suite derriere, on fait :

 
Sélectionnez

$ bg
Créé le 4 décembre 2005  par Pouic

Il existe de nombreux programmes ftp en mode console.
Voici un exemple pour exécuter des commandes ftp automatiquement :

 
Sélectionnez
$ lftp -c "open nom_de_domaine ; user login password ; mput src destination ; ls"

ou :

 
Sélectionnez
$ ncftp -u login -p passwd host << EOF
get fichier
ls
EOF

Ces méthodes sont utilisées dans les scripts shell (par cron notamment).

Créé le 25 juillet 2004  par nyal

La commande screen permet de lancer des processus non graphiques, qui seront rattachés au processus init. Ainsi, vous pourrez enlever votre programme de votre console et le rappellez quand vous le désirez. Pour cela, commençons par créer un screen :

 
Sélectionnez

screen -dmS nom_du_screen  'commande_a_lancer' 

Vous entrez directement dans votre screen en lancant la commande. Pour détacher le screen de votre terminal:

 
Sélectionnez

CTRL+A CTRL+D 

Pour attacher le screen à votre terminal :

 
Sélectionnez

screen -x nom_du_screen

Vous pouvez ainsi lancer un bash détachable de votre terminal et récupérable n'importe quand et n'importe où. Très pratique pour ne pas avoir beaucoup de fenêtres d'ouverts ou quand on se connecte à distance à une machine de différent poste

Les raccourcis claviers sont modifiables dans un fichier de configuration /etc/screenrc

Créé le 1er septembre 2005  par Sylvain Luce
 
Sélectionnez

#:~$ toto="bonjour le monde" 
#:~$ echo ${toto:$((${#toto}-10))} 
r le monde 

${var:x} : extrait la sous chaine de $var à partir caractère n° x jusqu'à la fin.
$((....)) : permet de faire des calculs.

Créé le 1er septembre 2005  par narmataru

ou l'équivalent du for (int i=4; i<=8; i++) { ... } du C++

 
Sélectionnez


for i in `seq 4 8`; do
   # commande
done 

Attention, car si vous voulez générer de grosses listes avec cette méthode, ça bouffe de la mémoire... (toutes les valeurs sont calculées et conservées).

Créé le 7 septembre 2005  par Alveric, bobuse

Lorsqu'on lance une commande avec le caractère & à la fin, la commande est lancée en tache de fond mais reste rattachée à votre terminal. Vous pouvez continuez à travailler sur le terminal mais si vous le quittez, la tache de fond est détruite (rapport père/fils)
Si vous lancez une commande avec nohup en préfixe (exemple : nohup ma_tache.sh), alors votre tache est détachée de son père et rattaché à l'init si vous quittez votre terminal...

Créé le 6 janvier 2008  par Sylvain Luce
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.