|
auteur : Francois Trazzi |
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 :
$ fuser /bin/zsh
/bin/zsh: 1942e 2860e 2996e 3469m 3487e 4527m 4607e
|
Comme indiqué dans le man, les caractères suivant le PID correspondent à :
- 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.
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 :
$ 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
|
|
|
auteur : nyal |
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 !) : $ cat fichier1 > fichier_sauvegarde
|
Si l'on veut rajouter des données au fichier, on utilisera la double redirection '>>' : $ 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) : $ cat < nom_du_fichier
$ cat < fichier1 > fichier_sauvegarde
|
Vous remarquerez que la dernière commande a le même effet que la première.
|
|
auteur : 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 :
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 :
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).
nyal $ cat fichier | grep YES | sed 's/YES/NO/'
|
|
|
auteur : 2Eurocents |
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 Pour l'enlever C'est aussi le 1 de la première position lorsque l'on utiliser un masque à quatre chiffres avec la notation octale de chmod
|
|
|
auteur : Francois Trazzi |
A l'aide des commandes grep et cut, on va extraire l'occurrence "/home/francois" du fichier /etc/passwd : $ 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.
$ 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).
|
|
auteur : nyal |
La commande find permet de faire le plus rapidement possible ce genre de traitement.
Pour afficher les fichiers vieux de plus de 24 heures : Pour les effacer : find . -ctime +1 -exec rm -f \{\} \;
|
L'option -i de la commande rm est utilisé pour demander une confirmation pour chaque fichier à effacer.
|
|
auteur : 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 :
|
|
auteur : Pouic |
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 :
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 :
|
|
auteur : nyal |
Il existe de nombreux programmes ftp en mode console.
Voici un exemple pour exécuter des commandes ftp automatiquement : $ lftp -c "open nom_de_domaine ; user login password ; mput src destination ; ls"
|
ou : $ ncftp -u login -p passwd host << EOF
get fichier
ls
EOF
|
Ces méthodes sont utilisées dans les scripts shell (par cron notamment).
|
|
auteur : Sylvain Luce |
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 :
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:
Pour attacher le screen à votre terminal :
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
|
|
auteurs : Alveric, bobuse |
ou l'équivalent du for (int i=4; i<=8; i++) { ... } du C++
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).
|
|
auteur : Sylvain Luce |
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...
|
Consultez les autres F.A.Q's
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 © 2005 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.