###### tags: `Sys.management` # Commande importante Linux https://www.raspberrypi.com/documentation/computers/using_linux.html ## commande **sudo** (**S**uper**U**ser **DO**) permet d'avoir plus d'accès tel que des permissions administrative ou de racine ## --help (pour voir les possibilités de commande) exemples: ls --help car --help ## hostname ## ifconfig ## pwd trouver le chemin du dossier actuel ( celui dans lequel on se trouve) renvoi le chemin total commancant par / ; ex: **/home/username** ## cd (change direction) pour naviguer à travers les fichiers/dossiers linux en mettant le chemin direct ou le nom du dossier * **cd ..** pour remonter d'un fichier * **cd** pour droit au fichier principal ( home folder) * **cd -** pour aller au fichier précédant * **cd /** pour aller au au root directment ## ls pour voir le contenu d'un répertoire. Par défaut ça montrera le contenu du fichier/dossier/répertoire actuel si on veut voir le contenu d'un autre fichier;: **ls/home/username/Documents** pour pouvoir le contenu de **Documents** p.ex * **ls -R** listera aussi tous les fichiers dans les sous-répertoires * **ls -a** affiche les fichiers cachés * **ls -al** liste les fichiers et les répertoires avec des taille, le propriétaire, etc. * **ls -l** liste les fichiers en long format * **ls -lisah** liste les fichiers en très long format ## cat (concatenate) Elle est utilisée pour lister le contenu d'un fichier sur la sortie standard (sdout). Pour exécuter cette commande, tapez **cat** suivi du nom du fichier et de son extension. Par exemple : **cat fichier.txt.** Voici d'autres façons d'utiliser la commande cat : * **cat > nomfichier** crée un nouveau fichier * **cat nom_fichier1 nom_fichier2>nom_fichier3** joint deux fichiers (1 et 2) et stocke leur sortie dans un nouveau fichier (3) * pour convertir un fichier en majuscules ou en minuscules, utilisez **cat nomfichier | tr a-z A-Z>sortie.txt** ### other tips Pour avoir des informations sur le cpu on peut faire cette commande: cat /proc/cpuinfo ## Autre commande pour View (comme cat) more Test (view file content pagewise) less Test (View file content scrollable) head Test (View first lines) tail Test (View last lines) tail -f Test (View last lines continous) ## cp Utilisez la commande **cp** pour copier des fichiers du répertoire actuel vers un autre répertoire. Par exemple, la commande **cp scenery.jpg /home/username/Pictures** créera une copie de **scenery.jpg** (de votre répertoire actuel) dans le répertoire **Pictures**. ## mv (move) L'utilisation principale de la commande **mv** est de déplacer des fichiers, bien qu'elle puisse également être utilisée pour renommer des fichiers. Les arguments de mv sont similaires à ceux de la commande cp. Vous devez taper mv, le nom du fichier et le répertoire de destination. Par exemple : **mv fichier.txt /home/nomd'utilisateur/Documents.** Pour renommer des fichiers, la commande Linux est **mv oldname.ext newname.ext** ## rm Le fichier sera supprimé exemple: rm Test ## mkdir (**m**a**k**e **dir**ectory) créer un nouveau dossier exemple: mkdir Test ou bien créer un fichier dans un fichier: mkdir Music/Newfile avec **-p** créer un fichier entre deux fichiers: mkdir -p Music/2020/Newfile ## rmdir (**r**e**m**ove **dir**ectory) Supprimer un dossier **vide** rmdir Test ## faire modif à travers les dossier avec **rm** exemple: supprimer un ficher Tt dans le dossier Test qui est dans le current dossier rm ./Test/Tt Si c'est seulement supprimer le répertoire - comme alternative à rmdir, utilisez: **rm -r** . ## commande **touch**, pour créer un fichier La commande touch permet de créer un nouveau fichier vierge par le biais de la ligne de commande Linux. Par exemple, entrez **touch /home/username/Documents/Web.html** pour créer un fichier HTML intitulé Web sous le répertoire Documents. ## commande **locate** pour trouver un fichier utiliser cette commande pour localiser un fichier. l'utilisation de l'argument -i avec cette commande la rendra insensible à la casse, de sorte que vous pouvez rechercher un fichier même si vous ne vous souvenez pas de son nom exact. p.ex: rechercher un fichier contenant deux mots ou plus, utilisez un astérisque (*). Par exemple, la commande locate -i school*note recherchera tout fichier contenant les mots "school" et "note", qu'ils soient en majuscules ou en minuscules. ## éditer un fichier fichier Text: nano Test (créer et éditer un fichier Test) ### autre possibilités vi emacs gedit mc ## find Recherche dans une hiérarchie de fichiers donnée, spécifiée par le chemin d'accès, en trouvant les fichiers qui correspondent aux critères donnés par l'expression find -name "*.c" Comme la commande locate, find permet de rechercher des fichiers et des répertoires. La différence est que vous utilisez la commande find pour localiser des fichiers dans un répertoire donné. Par exemple, la commande find /home/ -name notes.txt recherchera un fichier appelé notes.txt dans le répertoire home et ses sous-répertoires. Il existe d'autres variantes de la commande find : * Pour trouver des fichiers dans le répertoire actuel, utilisez la commande find . -nom notes.txt * Pour rechercher des répertoires, utilisez / -type d -name notes.txt. ## grep Recherche dans les fichiers un ou plusieurs arguments de motif. Il effectue la recherche de chaînes de caractères simples, d'expressions régulières de base et d'expressions régulières étendues. expression régulière étendue grep "text" * -r ## commande df pour avoir un rapport de l'espace du disque montré en % et en KBs. Si on veut en MB alors : **df -m** ## commande **du** (**D**isk **U**sage) pour voir combien de mémoire prend un fichier. si on veut voir en bytes, KB, et MB alors: **du -h** ## commande head pour voir les premières lignes de fichiers textes( par defaut les 10 premières lignes) si on veut voir que les 5 premières lignes p.ex alors: head -n 5 filename.ext. ## tail pour voir les derinères lignes de fichiers textes tail -n filename.ext. ## diff commande pour comparer deux fichiers ligne par ligne diff file1.ext file2.ext ## tar commande pour archiver un/des fichier/s (similaire a zip sur windows) ## who Liste des personnes actuellement connectées au système ## whoami Signaler l'utilisateur sous lequel vous êtes connecté ## ps Listez vos processus sur le système ## ps -aux Liste de tous les processus du système ## echo Écho d'une chaîne (ou d'une liste d'arguments) au terminal echo "A string to be echoed" ## chmod (droit d'accès) autorisation d'accès chmod 744 Test * 4 stands for "read", * 2 stands for "write", * 1 stands for "execute", and * 0 stands for "no permission." So 7 is the combination of permissions 4+2+1 (read, write, and execute), 5 is 4+0+1 (read, no write, and execute), and 4 is 4+0+0 (read, no write, and no execute). ## chown changer ou transferer le propriétaire d'un fichier : **chown linuxuser2 file.ext** fera que **linuxuser2** sera propriétaire du fichier **file.ext** ## créer un nouvel utilisateur adduser sudo adduser hftuser ls -l ( pour voir les dossiers) pour se connecter à un utilisateur: su visitor exit ## pour voir l'état, démarrer ou arrêter un programe - sudo systemctl start - sudo systemctl restart (après avoir modifier qqch) - sudo systemctl stop - sudo systemctl status ## **ln** (**L**i**n**k) ln est un utilitaire de ligne de commande permettant de créer des liens entre les fichiers. Par défaut, la commande ln crée des liens physiques. Pour créer un lien symbolique, utilisez l'option -s (--symbolic). La syntaxe de la commande **ln** pour créer des liens symboliques est la suivante : ln -s [OPTIONS] FILE LINK * Si les deux options **FILE** et **LINK** sont données, ln créera un lien du fichier spécifié comme premier argument (**FILE**) vers le fichier spécifié comme second argument (**LINK**). * Si un seul fichier est donné en argument ou si le second argument est un point (**.**), ln créera un lien vers ce fichier dans le répertoire de travail actuel. Le nom du lien symbolique sera le même que le nom du fichier vers lequel il pointe. Par défaut, en cas de succès, **ln** ne produit aucune sortie et renvoie zéro. ##### Création d'un lien symbolique vers un fichier Pour créer un lien symbolique vers un fichier donné, ouvrez votre terminal et tapez : ln -s fichier_source lien_symbolique Remplacez **fichier_source** par le nom du fichier existant pour lequel vous souhaitez créer un lien symbolique et **lien_symbolique** par le nom du lien symbolique. Le paramètre **lien_symbolique** est facultatif. Si vous ne spécifiez pas le lien symbolique, la commande **ln** créera un nouveau lien dans votre répertoire actuel : Dans l'exemple suivant, nous créons un lien symbolique nommé **mon_lien.txt** vers un fichier nommé **mon_fichier.txt** : ln -s mon_fichier.txt mon_lien.txt ( Pour vérifier que le lien symbolique a été créé avec succès, utilisez la commande ls : ls -l mon_lien.txt La sortie ressemblera à ceci : lrwxrwxrwx 1 linuxize users 4 Nov 2 23:03 mon_lien.txt -> mon_fichier.txt ) ## exercice des commandes: ### exercice 1 cd /home tree cd /home/pi mkdir sport cd sport mkdir volley ski athletics tennis volley cd volley touch volleyplan skiplan nano volleyplan nano skiplan mv ./skiplan ../ski/skiplan cp ./volley/volleyplan ./athletics/athleticsplan cp ./volley/volleyplan ./tennis/tennisplan tree df ps kill 941 ps sudo adduser visitor su visitor chmod 777 /home/pi ln -s /home/pi/sport/tennis/tennisplan linktennis rm tennisplan ### exercice 2 shell linux / fichier script ls /usr/bin | file *.ziprm sudo dnf install vlc cvlc v4l2:///dev/video0 nano hello #!/bin/bash read user if [ "$user" = "pi" ]; then echo "hi Mr. Gerber your last login was:" last pi | head -n2 | tail -n1 else echo "hello $USER" fi read a read b read sign if [ "$sign" = "+" ]; then echo $[$a+$b] fi if [ "$sign" = "-" ]; then echo $[$a-$b] fi if [ "$sign" = "*" ]; then echo $[$a*$b] fi if [ "$sign" = "/" ]; then echo $[$a/$b] fi #!/bin/bash for ((i=10; i>0;i--)) do echo "$i" done #!/bin/bash echo "nbr ?" read nbrStudent echo "Number of Student: $nbrStudent">>file.txt for ((i=1; i<nbrStudent+1;i++)) do echo "Name student $i:" read name echo "Student $i: $name">>file.txt done ### exécuter un fichier ./hello (il execute le fichier)[] ## répertoire important * /bin/ : Contient toutes les commandes de base nécessaires au démarrage et à l’utilisation d’un système minimaliste (par exemple : cat, ls, cp, sh). * /sbin : Contient les commandes systèmes réservées aux administrateurs. * /boot : Contient les fichiers nécessaires au démarrage du système d’exploitation. * /dev : Contient des fichiers correspondants à un périphériques (disques , disquettes …). * /etc : Contient la plupart des fichiers de configuration du système. * /home/ : Utilisé pour stocker les répertoires utilisateurs (exemple : /home/user1). * /opt : Utilisé comme emplacement d’installation d’un logiciel utilisé. * /tmp/ : Utilisé pour stocker les fichiers temporaires tout comme /var/tmp et /run/tmp et généralement vidé à chaque démarrage. ## site assez bien expliquer https://www.sitedetout.com/commandes-linux-de-base/