====== Ch 1 - Commandes ====== Pour Linux (noyau), tout est fichier (flux d'octets), seuls les programmes font la différence : [[https://en.wikipedia.org/wiki/Everything_is_a_file|Wikipedia]] - [[https://www.howtogeek.com/117939/htg-explains-what-everything-is-a-file-means-on-linux|Howtogeek]] * Texte, MP3, vidéo... * Dossiers (liste de fichiers), c'est un type particulier. * Lecteurs de disques. * Connexion réseau. * Périphériques (imprimante, souris, clavier...). * Processus. ==== Longueur du nom de fichier ==== 255 caractères maximum, 80 c'est déjà bien (largeur de la console). Sensible à la casse (pas Windows ni MacOS). \\ 80 caractères : 12345678901234567890123456789012345678901234567890123456789012345678901234567890 ==== Caractères interdits ==== * Windows : \ * MacOS : : * Linux : * ''/'' (slah) --- sépare les dossiers * ''-'' (touche [6]) --- (au début d'un nom) option de commande * ''.'' (point) --- (au début d'un nom) fichier caché (dotfile) * ''\'' (antislah) --- caractère d'échappement (le caractère qui suit est à interpréter comme du texte) * ''"'' (touche [3]) --- pour encadrer un nom contenant une espace * ''[ ]'' (crochets) --- liste de caractères uniques, ex. : [abc123] (a ou b ou c ou 1 ou 2 ou 3), ou une plage de caractères, ex. : [1-4] (1 ou 2 ou 3 ou 4) * ''{ }'' (accolades) --- liste de chaînes de caractères, ex. : {merle,pie} (merle ou pie), ou une plage de caractères, ex. : {a..d} (abcd ensemble) * ''?'' (point d'interrogation) --- remplace 1 caractère * ''*'' (astérisque) --- remplace 1 ou plusieurs caractères ==== Caractères sans problème ==== * Majuscules, minuscules, chiffres, ''.'' (dans le nom), ''_'', ''-'', '' '' (espace, le nom doit être encadré par ''"''). ==== Fichiers spéciaux ==== Les scripts de démarrage sont cachés (dotfiles) dans le répertoire personnel. \\ Voir : https://dotfiles.github.io --- https://github.com/rsgranne/syno-dotfiles --- https://ChainsawOnATireSwing.com 2 types de shells : de connexion ou non, interactif ou non. \\ Un **shell de connexion** (login shell) démarre à l'ouverture de la session, locale ou en réseau (SSH). ''Bash'' configure le shell en lisant ''/etc/profile'' pour tous les utilisateurs, puis recherche le 1er fichier trouvé : - ''~/.bash_profile'' --- identique à ''.profile'' mais que pour Bash - ''~/.bash_login'' --- - ''~/.profile'' --- On y trouve : les variables d'environnement, programmes à lancer automatiquement, configuration de programmes (ex. : ''bash-completion'' http://chnsa.ws/7d). Un **shell** qui n'est pas de connexion (nonlogin shell) est un sous-shell. Un **shell interactif** demande des saisies. Un **shell non interactif** ne demande pas de saisies (script de shell). Au lancement d'un **shell interactif** (sans ouverture de la session), Bash lit et exécute ''/etc/bash.bashrc'' s'il existe, puis il lit ''.bashrc'' du dossier personnel de l'utilisateur (options de Bash, alias, fonctions, invites de commande => http://chnsa.ws/7c, http://chnsa.ws/7b). \\ Quand les alias et fonctions sont trop nombreux, les déplacer dans ''.bash_aliases'' et ''.bash_functions''. \\ Il faudra ajouter ''if [ -f ~/.bash_aliases ]; then ¶ source ~/.bash_aliases ¶ fi'' dans ''.bashrc''. En fin de connexion, ''~/.bashlogout'' est exécuté. On y place ''clear'' par exemple. Astuces : voir les options de ''~/.inputrc'' qui personnalise la bibliothèque ''Readline'' utilisée par Bash. ([[https://chainsawonatireswing.com/2012/05/13/fun-with-inputrc-part-1|inputrc part 1]], [[https://brettterpstra.com/2015/07/09/shell-tricks-inputrc-binding-fun|inputrc binding fun]]) ---- Nombre de visiteurs : {{counter}} ----