Table des matières

Bash Doc

Ko ou Kio ? Go ou Gio ?

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 :

Commande Less

Less FR

Changer les droits par défaut, la commande umask

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
M0 0 0 0 1 0 0 1 0
NOT(M)1 1 1 1 0 1 1 0 1
D1 1 0 1 1 0 1 1 0
NOT(M) AND D1 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.

Editeur vim

editeurvim

Raccourci clavier Linux

Déplacements

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

Couper / Coller

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

Modification

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

Autres Raccourcis

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.

Commande Echo

Un signe $ précède les commandes qui ne nécessitent pas de droits administrateur ; un signe # précède celles qui nécessitent des droits administrateur (ces signes ne font PAS partie des commandes). Les lignes qui ne commencent pas par un signe $ ou # correspondent au résultat de la commande précédente. Les touches utilisées sont indiquées entre crochets, exemple [ctrl] pour la touche “contrôle”
Comme de nombreuses commandes basiques, echo peut venir de plusieurs paquets. Elle peut par exemple être incluse dans votre shell (bash par exemple), ou bien venir d'un paquet extérieur (core-utils par exemple), mais grosso modo, elle aura le même comportement dans une utilisation basique.

Utilisation basique

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 !

Quelques utilisations pratiques

 $ echo "Ma jolie phrase est belle." >> monfichier
 $ echo "Ma jolie phrase est belle." > monfichier

Ne fonctionnera PAS :

 $ 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.

Vous pouvez utiliser :

 $ 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.

Raccourcis clavier de la ligne de commande du terminal Linux

  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