Master 1 Plurital 2012
October 23 2012
Voici les nouvelles commandes apprises pendant la séance du 17/10/12 :
|
rm |
rm˽test.txt |
Remove – supprimer un fichier sans avertissement
|
|
rm˽i |
rm˽i˽test.txt |
Remove (interactive) – supprimer un fichier avec une demande de confirmation avant la suppression |
|
rm˽r |
rm˽-r˽rep1 |
Suppression d’un répertoire (et son contenu) |
|
rm˽rf |
rm˽-rf˽rep1 |
Forcer la suppression d’un répertoire. Il faut faire très très très attention à cette option puisque l’anéantissement de l’ordinateur n’est pas impossible (si la commande rm˽-rf˽ est affectuée à partir de la racine) /!\ /!\ /!\ |
|
rmdir |
rmdir˽rep1 |
Suppresion d’un répertoire (s’il est vide) et l’affichage d’un message d’erreur s’il n’est pas vide |
|
cat |
cat˽apple.txt |
Afficher le contenu d’un fichier |
|
head |
head˽apple.txt
|
Afficher l’en tête (un certain nombre de lignes) du fichier. Le nombre de lignes est prédéfini par le système (en général 10 lignes) |
|
head˽-n |
head˽-5˽apple.txt |
Afficher les n premières lignes de texte dans le fichier (dans l’exemple les cinq premières lignes de apple.txt seront affichées) |
|
Tail |
tail˽apple.txt
|
Afficher les dernières lignes du fichier (un nombre prédéfini par le système – généralement 10 lignes) |
|
tail˽-n |
tail˽-5˽apple.txt |
Afficher les n dernières lignes du fichier |
|
tail˽-f |
tail˽-f˽apple.txt |
En ajoutant f (follow) comme option, les dernières lignes seront affichées, ainsi que toute ligne ajoutée ensuite au fichier. Cet affichage dynamique permet de suivre l’exécution d’un programme. Pour s’échapper de l’affichage dynamique taper sur Ctrl C |
|
more |
more˽apple.txt |
Afficher le contenu du fichier qui rentre dans une seule fenêtre (le terminal est rempli de caractères). ‘More’ permet de descendre dans la pagination mais ne permet pas de remonter. |
|
less |
less˽apple.txt |
Afficher le contenu du fichier comme ‘more’ mais permet de scroller l’écran vers le haut. ‘Less’ nettoie l’écran à la fin de la commande
q - Pour sortir
Entrée - Pour défiler vers le bas d’un écran
Y - Pour défiler vers le haut d’une ligne |
|
wc |
wc˽apple.txt |
Afficher le nombre de lignes, mots et caractères |
|
wc˽-l |
wc˽-l˽apple.txt |
Afficher le nombre de lignes |
|
wc˽-w |
wc˽-w˽apple.txt |
Afficher le nombre de mots |
|
wc˽-c |
wc˽-c˽apple.txt |
Afficher le nombre de caractères |
|
echo |
echo˽"hello" |
Afficher une chaîne de caractères. L’exemple va afficher : hello |
|
find |
find˽/home/documents˽-name˽ "*apples*" |
Chercher un objet dans l’arborescence depuis un certain endroit. Dans l’exemple on va chercher dans le répertoire documents tout objet contenant le mot ‘apples’ dans son nom. On peut également chercher par –type, -user, -group, -size, -atime (dernier accès) etc. en changeant l’option de la commande. |
|
read |
read˽variable1 (attend à ce que l’utilisateur entre une valeur)
echo˽$variable1 |
Permet l’affectation d’une variable en utilisant le contenu entré par l’utilisateur La valeur qu’entre l’utilisateur sera affecté à la variable Nous pouvons vérifier la valeur de variable1 en exécutant la commande ‘echo’ qui nous affiche la valeur de la variable.
Attention : le symbole $ s’utilise lors de l’affichage d’une variable, mais non pas pour son affectation |
|
let |
let˽ variable='$variable+5' |
Permet de faire des calculs avec des variables |
Métacaractères:
Ce sont des caractères qui ont une signification spéciale dans la ligne de commande (donc à éviter dans les noms de fichiers/répertoires). En général, ils sont utilisés pour remplacer le début ou la fin d’un mot recherché.
*
un nombre quelconque de caractères (n’importe quelle chaîne de caractères) – ALL
Ex : ls˽fichier*.txt renvoie fichier.txt, fichier2.txt, fichiernouveau.txt etc. pour tout fichier qui commence par fichier suivi de n’importe quelle chaîne de caractères
?
Un caractère quelconque (y compris une absence de caractère)
Ex : ls˽fichier?.txt renvoie fichier.txt, ficher2.txt, fichier9.txt etc. pour tous les fichiers qui commence par fichier suivi d’un caractère ou une absence de caractère
[ ]
Les crochets désignent une intervalle – entre la première et la deuxième valeur
Ex : ls˽[a-c]* renvoie la liste d’objets qui commencent par la lettre "a", "b" ou "c" suivi de n’importe quelle chaîne de caractères
$
désigne la position de fin de la chaîne (donc à éviter donc les noms de fichiers/répertoires)
!
Le complémentaire de quelque chose (NOT)
~
Le tilde indique le répertoire de l’utilisateur (à ne pas confondre avec le ‘.’ (Répertoire courant)
Les Entrées – Sorties:
Le flux d’entrées = les informations envoyées au programme – stdin (standard input)
Le flux de sorties = les informations renvoyées par le programme – stdout (standard output)
Le flux d’erreurs = L’output vers les erreurs - stderr (standard erreur)
echo˽"hello" renovie le mot hello
L’input saisi avec le clavier est pareil que l’output affiché à l’écran
cat˽bananas.txt
L’input est le texte du fichier et l’output est le contenu du fichier affiché à l’écran.
Le stdin est associé par défaut à la saisie du clavier et le stdout et le stderr sont associés tous les deux par défaut à l’écran. Puisque le stdout et le stdeer s’affiche tous les deux à l’écran, il n’est pas évident de les différencier. Cependant on verra qu’il est possible de les séparer, en les redirigeant vers deux endroits différents.
Il est possible de rediriger la sortie d’une commande vers un autre endroit (vers un fichier par exemple ou vers une autre commande afin d’effectuer une chaîne de commandes). La redirection s’effectue en utilisant des symboles (les flux de redirection).
Redirection de la sortie des commandes:
x > y
Redirige la sortie de la commande x vers le fichier y (en écrasant la sortie de x à la fin du fichier). Si le fichier y n’existe pas, il sera créé
echo˽"hello"
L’input saisi avec le clavier est pareil que l’output affiché à l’écran.
echo˽"hello">bananas.txt
L’input saisi avec le clavier est redirigé vers le fichier "bananas.txt". Le mot "hello" s’affiche dans ce fichier et remplace le contenu du fichier.
x >> y
Redirige la sortie de la commande x vers le fichier y (en ajoutant la sortie de x à la fin du fichier). Si le fichier y n’existe pas, il sera crée.
echo˽"hello">>bananas.txt
L’input saisi est redirigé vers le fichier banans.txt et le mot "hello" s’affiche dans le fichier après le contenu du fichier (il ne l’écrase pas)
x 2>y
Redirige le flux d’erreur de la commande x dans le fichier y
ls˽plum˽fruits.txt˽2>err.txt
Les messages d’erreur (le flux d’erreur) de la commande ls (sur les arguments "plum" et "fruits.txt") seront redirigés vers le fichier err.txt
2>> est possible aussi (voir >>) pour ne pas écraser le contenu du fichier
Ainsi, il est possible de dissocier les deux outputs (stdout et stderr). Nous pouvons les placer dans deux endroits différents. Si on ne spécifie pas, ils seront affichés à l’écran.
ls˽plum˽fruits.txt˽>˽resultat˽ 2> err.txt
Le stdout sera dirigé vers "resultat" et le stdeer vers le fichier err.txt
2>&1
Permet de rediriger les stderr vers le même endroit que le stdout si on veut les stocker ensemble
Redirection de l’entrée d’une commande: (au lieu de taper au clavier)
x < y
Redirige le fichier x sur le flux d’entrée de la commande X
cat˽
Alors il est possible de diriger l’entrée (le contenu d’un fichier) vers un autre.
cat˽
Le contenu de orange.txt sera affiché dans le fichier secondorange.txt
x << y
Les doubles chevrons nous permettent de prendre en entrée de la commande x ce qu’on tape au clavier.
Ex: cat << y (on écrit ce qu’on veut et quand on veut s’arrêter on tape y)
Redirection de la sortie vers l’entrée d’une autre commande:
Le tube (pipe) | permet de créer une chaîne de commandes. Il permet d’utiliser la sortie (stdout) de la première commande en tant qu’entrée (stdin) pour la deuxième commande. On peut ainsi compiler les commandes les unes après les autres.
find˽.˽-name˽"apples"|wc˽-l
La première commande "find˽.˽-name" cherche tout objet du nom "apples" dans le répertoire courant. Normalement le stdout serait affiché à l’écran (une liste de tout objet correspondant à la recherche. Mais ici on redirige le stdout (via le tube) vers une deuxième commande "wc_-l". La commande "wc" nous affichera le nombre de lignes comprise dans la sortie de la première commande.
Les Variables:
L’affectation des variables peut s’effectuer par la commande "read". C’est une commande qui attend à ce que l’utilisateur affecte une valeur à la variable désignée :
read˽nomvariable
Lavaleurquejeviensdentrer
à La variable nomvariable aura desormais la valeur ‘lavaleurquejeviensdentrer’. Pour tester ça, on peut utiliser "echo", qui va afficher la valeur de notre variable à l’écran.
Echo $nomvariable
Lavaleurquejeviensdentrer
Quand on invoque une variable pour l’utiliser on préfixe son nom par le symbole dollar ($). Pour l’affectation d’une variable il n’y a pas de préfixe.
Nous pouvons incrémenter une variable en utilisant la commande ‘let’ :
Let˽"variable=$variable+5"
Notre variable de type numérique a désormais sa valeur +5.
Caractères:
#
Le croisillon est un caractère utilisé pour les commentaires. Ce qui suit ne sera pas affiché ou exécuté. Il peut être utilisé pour indiquer quel dialecte il faut utiliser pour lire le programme
Ex: #!/usr/bin/bash
;
Indique que les commandes séparés par le point-virgule seront s’effectué l’une après l’autre, sans interaction
Ex: ls ; pwd ; echo˽$variable1
( )
Les parenthèses indiquent que les commandes qui se trouvent à l’intérieur devraient être considérées ensemble (pour un tube ou une redirection)
$( )
Permet l’imbrication d’une commande dans une autre.
echo˽my name is˽$(echo˽$name˽$(read˽name))
Ex: On attribue la valeur ‘Minnie Mouse’ à name
Résultat = my name is Minnie Mouse
Les droits:
Quand on affiche le résultat de "ls˽-l" nous avons la liste d’objets dans le répertoire courant. Les premières informations sont les droits – qui ont les droits et ce qu’ils autorisés de faire.
La partie du texte concernant les droits est composée de dix caractères. Le premier indique quelle sorte d’objet il est. "d" désigne un répertoire (dossier). Les neuf autres caractères sont consacrés à la description des droits. Les trois premiers sont pour l’utilisateur, les trois qui suivent pour le groupe et les trois derniers pour le monde.
r = droit de lecture (read)
w = droit de modification/suppression (write)
x = droit d’exécution
- = pas de droit
Pour donner les droits : chmod + droit(r ou w ou x)
Pour supprimer les droits : chmod - droit(r ou w ou x)
Pour préciser l’entité pour qui on veut modifier les droits :
u = user
g = groupe
o = others
chmod˽-g+x = ajouter un droit d’exécution au group
chmod˽-u+rw = ajouter le droit de lecture et modification à l’utilisateur
Pour donner tous les droits à tous les utilisateurs : chmod˽777