A l’origine fût le bit pourvu d’une simple valeur 0 ou 1, puis ces bits furent agrégés, généralement par 8 pour former des octets (le « byte » anglophone).
Avec un octet on ne fait pas grand-chose, on ne stocke presque rien. Rapidement, les fabricants de matériel ont fourni des mémoires, des disquettes, des disques pouvant contenir des milliers, des millions d’octets. Naturellement, ils ont réutilisé les multiples déjà en vigueur, à savoir le kilo, le méga, etc…
On a vu apparaitre alors le Ko (kilo-octets) et le Mo (méga-octets)…. seulement, les informaticiens aimant les puissances de deux, le kilo-octets (Ko) des informaticiens ne faisait pas 1000 octets mais 1024 octets, car c’est la puissance de deux la plus proche de 1000 (1024 = 2 puissance 10). Dans le même esprit, le méga-octets faisait 2 ** 20 octets, soit 1.048.576 octets et non pas un million d’octets.
Les informaticiens ont donc réutilisé le kilo pour indiquer un multiple de 1024 alors que d’habitude un kilo signifie 1000 quelque chose (kilomètre, kilogramme…).
Pourquoi pas ? On s’est bien adapté…
Mais en 1998 l’International Electrotechnical Commission (IEC) a décidé qu’il fallait clarifier la situation. Ainsi de nouvelles unités ont été créées :
Résumons : 1 Ko = 1000 octets alors que 1 Kio = 1024 octets
Quel est alors le problème ? Il est double :
La commande umask (User Mask) permet de changer les droits attribués par défaut. Elle prend en argument un masque constitué de trois valeurs octales qui détermine les droits à supprimer lors de la création d’un fichier par rapport aux droits qui lui sont attribués par défaut, à savoir 666 pour les fichiers ordinaires et 777 pour les répertoires.
Sur la plupart des systèmes le masque par défaut est 022, c’est-à-dire qu’il impose lors de la création d’un fichier de ne pas attribuer le droit d’écriture (2) pour le groupe et pour les autres utilisateurs. Ainsi, lors de la création d’un fichier ordinaire qui par défaut devrait avoir les droits 666 soit rw-rw-rw-, le masque 022 empêche de donner le droit w pour le groupe et les autres utilisateur et le fichier est finalement créé avec les droits rw-r–r– , soit 644. De manière analogue, lors de la création d’un répertoire qui devrait avoir les droits 777 soit rwxrwxrwx, le masque 022 a pour effet de le créer avec les droits rwxr-xr-x soit 755.
Plus précisément le système calcule les droits à affecter à un nouveau fichier par une opération logique bit à bit entre le masque et les droits : étant donné un masque M et des droits par défaut D, les droits attribués au fichier créé sont le résultat de l’opération logique bit à bit NOT(M) AND D. Pour visualiser cette opération il est nécessaire d’écrire M et D dans leur représentation binaire, chaque bit indiquant la présence (1) ou l’absence (0) d’un droit.
Ainsi en prenant comme masque M = 022 et comme droits par défaut D = 666 pour la création d’un fichier ordinaire, on a :
r | w | x | r | w | x | r | w | x | |||
---|---|---|---|---|---|---|---|---|---|---|---|
M | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | ||
NOT(M) | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | ||
D | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | ||
NOT(M) AND D | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
En appliquant de manière analogue le masque 022 à des droits par défaut 777 pour la création d’un répertoire on obtient les droits 755, soit rwxr-xr-x. Notez que, pour des raisons de sécurité, avec les droits par défaut 666 pour un fichier, umask ne permet pas de créer des fichiers ordinaires exécutables. Après leur création, il vous faudra ajouter explicitement les droits en exécution pour chaque fichier.
C’est la raison qui explique pourquoi les droits par défaut sont à 666 et non à 777 comme ceux des répertoires. Dans l’exemple suivant, on crée un fichier ordinaire vide par la commande touch.
On peut voir sur cet exemple que le fichier fichier1 et le répertoire rep1 se voient attribuer les droits par défaut déterminés par le masque 022. Après l’exécution de la commande umask 027, les nouveaux fichiers et répertoires ont respectivement les droits 640 et 750, ce qu’on observe pour fichier2 et rep2.
Remarquons aussi que les droits des fichiers précédemment créés ne sont pas modifiés. En effet, la commande umask n’a pas d’effet rétroactif.
CTRL + a ⇒ place le curseur au début de la ligne
CTRL + e ⇒ place le curseur à la fin de la ligne (End)
CTRL + b ⇒ recule d’un caractère (Backward)
CTRL + f ⇒ avance d’un caractère (Forward)
Alt + b ⇒ recule d’un mot i.e. place le curseur sur la première lettre du mot sur lequel se trouve le curseur
Alt + f ⇒ avance d’un mot i.e. place le curseur après la dernière lettre du mot sur lequel se trouve le curseur
Dans les raccourcis suivants, la chaîne de caractères coupée est stockée dans un presse-papier.
CTRL + k ⇒ coupe la chaîne depuis le curseur jusqu’à la fin de la ligne (Kill)
CTRL + u ⇒ coupe la chaîne depuis le début de la ligne jusqu’au caractère qui précède le curseur
CTRL + w ⇒ coupe la chaîne depuis le caractère qui précède le curseur jusqu’au début du mot (si le curseur est placé à la fin d’un mot, coupe le mot)
Alt + ←- ⇒ identique à CTRL + w
Alt + d ⇒ coupe la chaîne depuis le caractère situé sous le curseur jusqu’à la fin du mot (si le curseur est placé au début d’un mot, coupe le mot)
CTRL + y ⇒ colle la chaîne du presse-papier juste avant la position du curseur
CTRL + t ⇒ inverse la position des deux caractères situés avant le curseur (pratique quand on tape par exemple, sl au lieu de ls)
Alt + t ⇒ inverse la position des deux mots situés avant le curseur (pratique lorsqu’on a inversé deux arguments d’une commande)
Alt + c ⇒ met en majuscule la lettre située sous le curseur et déplace le curseur à la fin du mot (en plaçant le curseur au début d’un mot, met la première lettre en majuscule)
Alt + l ⇒ met en minuscule toutes les lettres depuis la position du curseur jusqu’à la fin du mot
Alt + u ⇒ met en majuscule toutes les lettres depuis la position du curseur jusqu’à la fin du mot (en plaçant le curseur au début d’un mot, met le mot en majuscule)
CTRL + _ ⇒ annule la dernière modification
CTRL + l ⇒ Permet d’effacer le contenu du terminal. ( L minuscule)
CTRL + c ⇒ En cours de frappe, permet d’arrêter la saisie de la ligne de commande et de revenir à l’invite avec une ligne vierge.
La commande echo permet simplement d'afficher une ligne. Son utilisation est plutôt simple :
$ echo “Ma jolie phrase est belle.”
Ceci aura pour conséquence d'afficher sur votre console “Ma jolie phrase est belle.”.
Vous pouvez utiliser les guillemets pour contrôler quelque peu le résultat de cette commande :
$ echo 'ca va ? oui !' ca va ? oui !
$ echo "ca va ? oui !" bash: !": event not found
$ echo ca va ? * oui ! ca va ? Desktop Documents fichier1 fichier2 fichier3 oui !
$ echo "Ma jolie phrase est belle." >> monfichier
$ echo "Ma jolie phrase est belle." > monfichier
$ sudo echo 'www.nouveau_dépôt' >> /etc/apt/sources.list
Vous obtiendrez un refus avec “bash: /etc/apt/sources.list: Permission non accordée” comme motif. Pour que ça fonctionne il faut utiliser un autre type de redirection, par exemple avec la commande “tee” qui sert justement à ça.
$ echo 'www.nouveau_dépôt' | sudo tee -a /etc/apt/sources.list
L'option “-a” indique à “tee” d'ajouter la ligne en fin de fichier, sinon le comportement par défaut de “tee” est de remplacer le fichier cible. Ne pas l'oublier !
$ echo -e '#ceci est un commentaire \nma deuxième ligne' >> /home/tux/test.txt
Vous obtiendrez dans le fichier “/home/tux/test.txt” le résultat suivant:
#ceci est un commentaire ma deuxième ligne
Pratique pour ajouter une ligne d'option dans un fichier de configuration, et un commentaire explicatif en même temps.
Parcourez l'historique des commandes saisies: ↑ / ↓ ou Ctrl + P / Ctrl + N Recherche inversée de l'historique des commandes: Ctrl + R Déplacer un mot vers la gauche (vers l'arrière): Alt + B Déplacer un mot vers la droite (vers l'avant): Alt + F Aller au début de la ligne de commande: Ctrl + A ou Début Aller à la fin de la ligne de commande: Ctrl + E ou Fin Faire défiler la fenêtre vers le haut: Shift + Page Up Faire défiler la fenêtre vers le bas: Shift + Page Down
Annuler la commande en cours ou effacer le texte saisi: Ctrl + C Envoyer 'fin de fichier' (EOF): Ctrl + D Suspendre l'exécution du job en cours (le rendre zombie, le reprendre avec la commande fg): Ctrl + Z
Effacer un mot vers la gauche: Ctrl + W ou Esc + ← Retour arrière Effacer un mot vers la droite: Alt + D Effacer une ligne à gauche: Ctrl + U Effacez une ligne à droite: Ctrl + K Collez le texte précédemment effacé: Ctrl + Y Collez le contenu du presse-papiers à la position du curseur: Maj + Ins ou Ctrl + Maj + V Insérez le caractère suivant tapé textuellement: Ctrl + V
Saisie automatique d'une commande ou d'un nom de fichier: Tab Effacer l'écran / Redessiner l'interface utilisateur actuelle de l'application si prise en charge: Ctrl + L