==== Gestion des répertoires : ==== - Afficher le répertoire courant (celui dans lequel on se trouve): pwd - La commande mkdir permet de créer un répertoire : mkdir repertoire - l'option -m permet de spécifier des droits comme avec chmod à la création du répertoire :  mkdir -m 700 repertoire - Se déplacer dans un dossier : cd repertoire1 - Se déplacer dans le dossier précédent : cd .. - Aller dans le dossier de l'utilisateur (exemple : utilisateur nicolo => /home/nicolo) cd ou cd ~ - La commande rmdir permet de supprimer un répertoire : rmdir repertoire Copier le dossier site dans le dossier /var/www cp -a site /var/www ==== Gestion des fichiers : ==== - La commande ll regroupe les option -alF elle est à créé alias 'll=ls -alF' - La commande ls permet de lister le contenu d'un répertoire. Sans options ls liste le contenu du répertoire dans lequel on se trouve: ls - Afficher uniquement les fichiers commençant par la lettre s : ls s* - Voyons les options de ls :\\ - Afficher le contenu du répertoire courant en incluant les fichiers cachés: ls -a - Afficher le contenu du répertoire courant en incluant les fichiers cachés. et les détails sur les fichiers comme les permissions et la date de dernière modification: ls -al - Afficher les fichiers ordonnés par date du dernier accès et afficher cette la date: ls -lu - Affiche les fichiers par type. \\ Un fichier suivi d'un slash (/) est un répertoire\\ Un fichier suivi d'une étoile est un fichier exécutable\\ Un fichier suivi d'un "@" est un lien: ls -F - Copier le fichier  test.txt dans le dossier /var/www cp test.txt /var/www ls /var/www test.txt\\ - Déplacer le fichier test.txt dans le dossier ./var/www mv test.txt /var/www - Renommer le fichier test.txt en test2.txt mv test.txt test2.txt - Supprimer un fichier avec rm : rm test.txt - Supprimer tous les fichier txt : rm *.txt Supprimer un dossier et tout son contenu :  rm -rf dossier/ l'option -r permet d'effacer le contenu du dossier (recursive) et l'option -f permet de 'forcer' la suppression\\ - Afficher le contenu d'un fichier :  cat /var/log/messages - Afficher les 20 premières lignes d'un fichier :  head -n 20 /var/log/messages - Afficher les 20 dernières lignes d'un fichier :  tail -n 20 /var/log/messages - Afficher les lignes d'un fichier contenant "toto" :  grep toto /var/log/messages une variante :  cat /var/log/messages | grep toto - Afficher les 20 premières lignes d'un fichier contenant "toto" :  grep toto /var/log/messages | head -n 20 - Afficher un fichier log en live (suivre le déroulement en direct) tail -f /var/log/syslog ==== Droit sur fichiers et dossiers ==== === chown === - Changement de proprietaire (chown nomdugroupe:nomduuser) Pour exécuter cette commande vous devez être le propriétaire du fichier ou être logué en root. chown group:user fichier.txt ou dossier === chmod === - La commande chmod permet de changer les droits d'un fichier ou d'un répertoire. Pour exécuter cette commande vous devez être le propriétaire du fichier ou être logué en root.\\ - Rendre un fichier executable chmod +x fichier - Ajouter les droits d'écriture au propriétaire (user, write) chmod u+w fichier ou dossier - Ajouter les droits de lecture au groupe du fichier (group, read) chmod g+w fichier ou dossier - Supprimer les droits d'exécution aux autres utilisateurs (other, execution) chmod o-x fichier ou dossier - Dossier Ajouter les droits de lecture / écriture à tous (all) chmod a+rw - Ajouter les droits de lecture et d'exécution à tout ce que contient le repertoire dossier. chmod -R a+rx - Tous les droits pour le propriétaire (7xx), lecture et ecriture pour le groupe (x6x) et lecture uniquement pour les autres (xx4). chmod 764 dossier - Donner au propriétaire tous les droits (7xx), alors que seuls les droits de lecture et d'accès seront donnés aux autres (x55). Grace à l'option -R ces droits seront appliqués à tous les fichiers et dossiers contenus dans ce répertoire. chmod -R 755 dossier {{:linux:capture_d_ecran_2022-06-24_114546.png?400|}} ==== Recherche avec GREP ==== La commande grep permet de rechercher une chaîne de caractères ou un motif dans un fichier. Quelques options :\\ -v: affiche les lignes ne contenant pas la chaîne.\\ -c: compte le nombre de lignes contenant la chaîne.\\ -n: retourne les lignes préfixées par leur numéro.\\ -x: ligne correspondant exactement à la chaîne.\\ -l: affiche le nom des fichiers qui contiennent la chaîne.\\ - Recherche l’occurrence 'text' dans le fichier foo.txt. grep 'text' foo.txt - Recherche toutes les occurrences de 'foobar' dans le repertoire /project. grep -nri 'foobar' /project - Recherche toutes les occurrences à 'foo', 'bar' et 'baz' dans le repertoire /project. grep -nri '\(foo\|bar\|baz\)' /project ==== Recherche et modifs avec FIND ==== La commande find permet de chercher des fichiers et éventuellement d'exécuter des commandes dessus. Quelques options : -name: Recherche d'un fichier par son nom \\ -iname: Même chose que -name mais insensible à la casse\\ -type: Recherche de fichier d'un certain type \\ -atime: Recherche par date de dernier accès \\ -mtime: Recherche par date de dernière modification \\ -user: Recherche de fichiers appartenant à l'utilisateur donné \\ -group: Recherche de fichiers appartenant au groupe donné \\ -size: Recherche par rapport à une taille de fichier. \\ -exec: Exécute la commande donnée aux fichiers trouvés. \\ -a: Opérateur ET \\ -o: Opérateur OU \\ ! ou -not: Opérateur NOT \\ - Rechercher un fichier commençant par "myfile" find myfile* -print - Rechercher un fichier contenant "myfile" et ayant pour extention ".txt" find -name *myfile*.txt -print - Afficher tous les répertoires de /usr find /usr -type d -print - Afficher tous les fichiers .txt ou .pdf dans le répertoire home de l'utilisateur. find $HOME \( -name '*.txt' -o -name '*.pdf' \) - Supprimer tous les fichiers .txt qui n'ont pas été consultés depuis plus de 7 jours dans le répertoire home de l'utilisateur. find $HOME -name *.txt -atime +7 -exec rm {} \; - Afficher la taille de tous les fichiers de plus de 4 kilos find $HOME -name '*.txt' -size +4k -exec ls -l {} \; - Suppression de fichiers 0 octets find /chemin/dossier -type f -size 0 -delete - Suppression de fichiers par type (ex: .gz) de plus de 1 mois find /chemin/dossie -type f -name "*.gz" -mtime +60 -exec rm -f {} \; ==== Vérification avec TEST ==== La commande test permet comparer des chaines de caractères, des nombres et vérifier certaines propriétés de fichiers. Il est possible de simplifier son écriture en la remplaçant par des crochets [ ].\\ - Tester si le fichier foo.txt existe. test -e foo.txt - Tester que foo soit un répertoire. test -d foo - Tester si le fichier est accessible en écriture. test -w foo.txt - Tester si le fichier est exécutable. test -x foo.txt - Vérifier que la chaine string1 n'est pas égale à string2. [ "string1" != "string2" ] - Vérifier que le nombre int1 est inférieur à int2. [ int1 != int2 ]